var sliderHandler = {

	slIndex : 0,

	prevSlIndex : 0,

	oLeft : 0,

	slicewidth : 0,

	slides : [],

	timerId : null,

	timerDelay : 15, //seconds

	init : function(params) {
		// container
		var container = $('slider-header');
		if (!container) return;
		// slides
		this.slides = $$('#slider-header .slidecontainer');
		if (!this.slides.length) return;
		// prev index is the last one
		this.prevSlIndex = this.slides.length - 1;
		// original left
		this.oLeft = this.slides[this.slIndex].style.left.replace('px', '')*1;
		// slice width
		this.slicewidth = this.slides[this.prevSlIndex].style.left.replace('px', '')*-1;

		// buttons
		var left = $$('#slider-header .left').pop();
		var right = $$('#slider-header .right').pop();
		left.setStyle({cursor : 'pointer'});
		right.setStyle({cursor : 'pointer'});
		left.observe('click', sliderHandler.turn.bindAsEventListener(sliderHandler));
		right.observe('click', sliderHandler.turn.bindAsEventListener(sliderHandler));

		// start automatic turning
		this.timerId = sliderHandler.turn.bind(sliderHandler).delay(this.timerDelay);
	},

	turn : function(event) {
		// clear timing
		if (this.timerId) window.clearTimeout(this.timerId);

		// direction
		var forward = event ? event.element().up('div').hasClassName('right') : true;
		this.prevSlIndex = this.slIndex;
		if (forward) {
			if (this.slIndex < this.slides.length - 1) this.slIndex++
			else this.slIndex = 0;
		} else {
			if (this.slIndex > 0) this.slIndex--;
			else this.slIndex = this.slides.length - 1;
		}

		if (forward) {
			$(this.slides[this.slIndex]).style.left = '-'+this.slicewidth+'px';
			if(this.slides[this.prevSlIndex]) new Effect.Move(this.slides[this.prevSlIndex],{ x: this.slicewidth+this.oLeft, y: 0});
			if(this.slides[this.slIndex]) new Effect.Move(this.slides[this.slIndex],{ x: this.slicewidth+this.oLeft, y: 0});
		} else {
			$(this.slides[this.slIndex]).style.left = this.slicewidth+'px';
			if(this.slides[this.prevSlIndex]) new Effect.Move(this.slides[this.prevSlIndex],{ x: -1*this.slicewidth+this.oLeft, y: 0});
			if(this.slides[this.slIndex]) new Effect.Move(this.slides[this.slIndex],{ x: -1*this.slicewidth+this.oLeft, y: 0});
		}

		// timing
		this.timerId = sliderHandler.turn.bind(sliderHandler).delay(this.timerDelay);
	}


}
