// JavaScript Document

var Slider = new Class(
{
	Implements: [Options, Events],
	options: {
		id: '',
		delay : 0,
		period : 4000,
		direction : "left"
	},
	
	initialize: function(options)
	{
		this.setOptions(options);
		this.slide_actif	=	0;//premier div
		this.slide_en_cours	=	false;
		this.slide_on		=	true;
				
		this.container		=	$(this.options.id);
		this.div_slide		=	this.container.getElement(".slide");
		this.width			=	this.div_slide.getDimensions(true).width.toInt();
		
		this.fleche_gauche	=	this.container.getElement(".fleche_gauche");
		this.fleche_droite	=	this.container.getElement(".fleche_droite");
		this.pas			=	this.div_slide.getElement(".slide_element").getDimensions(true).width.toInt();

		this.elements		=	this.div_slide.getElements(".slide_element");		
		this.nb_elements	=	this.elements.length;
		
		this.fleche_droite.addEvent("click", function(event)
		{
			event.preventDefault();
			this.slide_div("left");
		}.bind(this));
		
		this.fleche_gauche.addEvent("click", function(event)
		{
			event.preventDefault();
			this.slide_div("right");
		}.bind(this));
		
		
		var i	=	0;
		this.div_slide.getElements(".slide_element").each(function(el)
		{
			if(i != 0)
			{
				el.setStyle("left", this.width);
			}
			el.setStyle("z-index", this.nb_elements-i);
			
			i++;
		}.bind(this));
		
		this.container.addEvent('mouseover', function()
		{
			this.slide_on	=	false;
		}.bind(this));
		
		this.container.addEvent('mouseout', function()
		{
			this.slide_on	=	true;
		}.bind(this));
		
		
		if(this.nb_elements > 1)
		{
			var func	=	function()
			{
				this.timer_slide	=	this.slide_auto.periodical(this.options.period, this);
			}.bind(this);
			func.delay(this.options.delay)
		}
		else
		{
			this.fleche_droite.setStyle("display", "none");
			this.fleche_gauche.setStyle("display", "none");
		}
		
	},
	
	slide_div : function (sens)
	{
		if(!this.slide_en_cours)
		{
			this.slide_en_cours = true;
			var prev;
			var next;
			if(this.slide_actif == this.nb_elements - 1)
				next	=	0;
			else
				next	=	this.slide_actif + 1;
			
			if(this.slide_actif == 0)
				prev	=	this.nb_elements - 1;
			else
				prev	=	this.slide_actif - 1;
					
			var x_end;
			if(sens == "right")
			{
				var rang	=	prev;
				x_end		=	this.width;
			}
			else
			{
				var rang	=	next;
				x_end		=	-this.width;
			}
			
			var el		=	this.elements[this.slide_actif];
			var el2		=	this.elements[rang];
			
			el2.setStyle("left", -x_end);
			
			//alert(this.slide_actif+" "+rang+" "+x_end+" "+el+" "+el2);
			
			this.slide_actif	=	rang;
			
			var myFx	=	new Fx.Tween(el);
			var myFx2	=	new Fx.Tween(el2);
		
			myFx.start('left', 0, x_end).chain(function(){el.setStyle("left", -x_end);}); 	
			myFx2.start('left', el2.getStyle("left").toInt(), 0).chain(function(){this.slide_en_cours = false}.bind(this));
		}
	},

	slide_auto : function()
	{
		if(this.slide_on)
		{
			this.slide_div(this.options.direction);
		}
	}
});

