function SliderContainer(){
	this.sliders = [];
	this.currentactive = 2;
	this.sliders[0] = new Slider(0,0,0,'search');
	this.sliders[1] = new Slider(1,63,420,'fas');
	this.sliders[2] = new Slider(2,175,521,'call');
	this.speed = 40;
	this.issliding = false;
}

function Slider(index,leftpos,rightpos,prefix){
	this.leftpos = leftpos;
	this.rightpos = rightpos;
	this.index = index;
	this.prefix = prefix;
	
	this.stepping = false;
	this.stepindex = 0;
	this.stepdistanceleft = 0;
	this.stepdirection = 0;
	
	// find parts of the slider
	this.sliderdiv = document.getElementById(this.prefix+'slider');
	this.buttondiv = document.getElementById(this.prefix+'button');
	this.paneldiv = document.getElementById(this.prefix+'panel');
	
	this.obj = 'Slider'+this.index;
	eval(this.obj+'=this;');
	
	// set the onclick events
	this.buttondiv.onclick = this.Click;
}

Slider.prototype.Click = function(){
	// This is a click event, so "this" is the object clicked, and not the slider object.
	var slider = null;
	for(i=0;i<SliderContainer.sliders.length;i++){
		if(SliderContainer.sliders[i].buttondiv == this){
			slider = SliderContainer.sliders[i];
			break;
		}
	}
	
	if(slider){
		if(SliderContainer.currentactive != slider.index && SliderContainer.issliding == 0){
			if(slider.index < SliderContainer.currentactive){
				// slide right
				for(i=slider.index+1;i<SliderContainer.sliders.length;i++){
					SliderContainer.sliders[i].SlideRight();
				}
			}else{
				// slide left
				for(i=SliderContainer.currentactive+1;i<=slider.index;i++){
					SliderContainer.sliders[i].SlideLeft();
				}
			}
			SliderContainer.sliders[SliderContainer.currentactive].SetOff();
			slider.SetOn();
			SliderContainer.currentactive = slider.index;
		}
	}
}

Slider.prototype.SetOn = function(){
	this.buttondiv.className = 'slider_onbutton';
	//Refreshing cufon for Element
	//Cufon.replace(this.buttondiv);
}

Slider.prototype.SetOff = function(){
	this.buttondiv.className = 'slider_offbutton';
	//Refreshing cufon for Element
	//Cufon.replace(this.buttondiv);
}

Slider.prototype.SlideLeft = function(){
	if(!this.stepping){
		SliderContainer.issliding++;
		this.stepping = true;
		this.stepdistanceleft = this.rightpos - this.leftpos;
		this.stepdirection = -1;
		this.interval = setInterval(this.obj+'._stepincrement()',SliderContainer.speed);
	}
}

Slider.prototype.SlideRight = function(){
	if(!this.stepping){
		SliderContainer.issliding++;
		this.stepping = true;
		this.stepdistanceleft = this.rightpos - this.leftpos;
		this.stepdirection = 1;
		this.interval = setInterval(this.obj+'._stepincrement()',SliderContainer.speed);
	}
}

Slider.prototype._stepincrement = function(){
	if(this.stepdistanceleft){
		var inc = Math.round(Math.min(this.stepdistanceleft,Math.max(this.stepdistanceleft/2,2)));
		if(this.stepdirection > 0){
			this.sliderdiv.style.left = (this.rightpos - inc) + 'px';
		}else{
			this.sliderdiv.style.left = (this.leftpos + inc) + 'px';
		}
		this.stepdistanceleft -= inc;
	}else{
		clearInterval (this.interval);
		if(this.stepdirection > 0){
			this.sliderdiv.style.left = this.rightpos + 'px';
		}else{
			this.sliderdiv.style.left = this.leftpos + 'px';
		}
		this.interval = null;
		this.stepping = false;
		SliderContainer.issliding--;
	}
}

var SliderContainer;
function SliderInit(){
	SliderContainer = new SliderContainer();
}
Event.add(window,'load',SliderInit);
