//---------------------------------------------------------------//
//
// Spunklab Button Library
//
// Author: Erwin Eggenberger
// Copyright: 2003 spunklab .. das ideen - und werbelabor
//
//---------------------------------------------------------------//

function sl_buttonstates()
{
	this.normal=false;
	this.over=false
	this.selected=false;
}

function sl_addButton( name, defaultstate, overstate, selectedstate )
{
	//alert('start');
    this[name] = new sl_buttonstates;
	//alert('new object');
	this[name].normal=defaultstate;
	this[name].over=overstate;
	this[name].selected=selectedstate;


	//this.buttons.push(name); //doesn't work with ie5, doesn't seem to support push
	this.buttons[this.buttons.length]=name;
	//alert('1st assignment');
	this.nbbuttons++;
	//alert('done');
}

function sl_preload()
{
    if (document.images) {
		for( i=0; i<this.buttons.length; i++ )
		{
			pre1 = new Image();
			pre1.src = this[this.buttons[i]].normal;
			pre2 = new Image();
			pre2.src = this[this.buttons[i]].over;
			pre3 = new Image();
			pre3.src = this[this.buttons[i]].selected;
		}
	}
	this.preloaded=1;
//	alert('p'+this.preloaded);
}

function sl_setOver(name){
	if( name != this.selected && this.preloaded==1)
	sl_chgImage(name, this[name].over);
}

function sl_setNormal(name)
{
	if( name != this.selected  && this.preloaded==1)
	sl_chgImage(name, this[name].normal);
}

function sl_setSelected(name)
{
	if( this.preloaded==1)
	{
		if(name==null)
		{
			this.selected='';
			for(i=0; i<this.buttons.length; i++)
			{
				this.setNormal(this.buttons[i]);
				//alert(this.buttons[i]);
			}
		}
		else
		{
			this.selected=name;
			sl_chgImage(name, this[name].selected);
			for(i=0; i<this.buttons.length; i++)
			{
				if(this.buttons[i]!=name)
					this.setNormal(this.buttons[i]);
			}
		}
	}
}

function sl_chgImage(name, newimg)
{
	//alert('c'+this.preloaded);
	//if(this.preloaded==1)
		document[name].src = newimg;
}


function sl_Buttons()
{
	this.nbbuttons=0;
	this.buttons=new Array(0);
	this.selected='';
	this.preloaded=0;

	// methods
	this.addButton = sl_addButton;
	this.preload = sl_preload;
	this.setOver = sl_setOver;
	this.setNormal = sl_setNormal;
	this.setSelected = sl_setSelected;
	this.chgImage = sl_chgImage;
}


//---------------------------------------------------------------//
// end of Spunklab Button Library
//---------------------------------------------------------------//
