var carrousel = 
{
	nbSlide:0,
	nbCurrent:5,
	elemCurrent:null,
	elem:null,
	timer:null,
	
	
	init:function(elem)
		{
			this.nbSlide = elem.find(".slide").length;
			
			// Création de la pagination
			elem.append("<div class='nav'></div>");
			for(var i=1;i<=this.nbSlide;i++)
				{
					elem.find(".nav").append("<span>"+i+"</span>");
				}
			elem.find(".nav span").click(function(){carrousel.gotoSlide($(this).text());})
				
			// Initialisation du système
			this.elem = elem;
			elem.find('.slide').hide();
			elem.find('.slide:last').show();
			this.elemCurrent = elem.find('.slide:last');
			this.elem.find('.nav span:last').addClass("active");
			
			// Création du timer
			carrousel.play();
			
			// Arrêt du carrousel en survol (hover)
			elem.mouseenter(carrousel.stop);
			elem.mouseleave(carrousel.play);
		},
	gotoSlide:function(num)
		{
			if(num==this.nbCurrent){return false;}

			/* Animation fadeIn/fadeOut
			this.elemCurrent.fadeOut();
			this.elem.find('#slide'+num).fadeIn();
			*/
			/* Animation en slide passante */
			var sens = 1;
			if(num<this.nbCurrent){sens = -1;}
			var cssDeb = {'left':sens*this.elem.width()};
			var cssFin = {'left':-sens*this.elem.width()};
			this.elem.find('#slide'+num).show().css(cssDeb);
			
			this.elem.find('#slide'+num).animate({'top':0, 'left':0},800);
			this.elemCurrent.animate(cssFin,800);
			
			this.elem.find('.nav span').removeClass("active");
			this.elem.find('.nav span:eq('+(num-1)+')').addClass("active");
			this.nbCurrent = num;
			this.elemCurrent = this.elem.find('#slide'+num);
		},
		
	next:function()
		{
			var num = parseInt(this.nbCurrent) + 1;
			if(num>this.nbSlide)
				{
					num=1;
				}
			this.gotoSlide(num);
		},
		
	previous:function()
		{
			var num = parseInt(this.nbCurrent) - 1;
			if(num<1)
				{
					num=this.nbSlide;
				}
			this.gotoSlide(num);
		},
	
	stop:function()
		{
			window.clearInterval(carrousel.timer);
		},
	
	play:function()
		{
			window.clearInterval(carrousel.timer);
			carrousel.timer = window.setInterval("carrousel.next()",4500);
		},
}

$(function(){
carrousel.init($("#carrousel"));
});
