// JavaScript Document

var carrousel = {
	
	nbSlide : 0, /* Nb de slide */
	nbCurrent : 1, /* On commence par le 1er élement */
	elemCurrent : null, /* élément html actuellemnt affiché */
	elem : null,
	timer : null,
	
	init : function(elem){
		this.nbSlide = elem.find(".slide").length;
		
		/* Créer la pagination */
		elem.append('<div class="navigation"></div>');
		for(var i=1;i<=this.nbSlide;i++){
			elem.find(".navigation").append("<span>"+i+"</span>");
		}
		elem.find(".navigation span").click(function(){ carrousel.gotoSlide($(this).text()); })
		
		/* Initialisation du carrousel */
		this.elem=elem;
		elem.find(".slide").hide();
		elem.find(".slide:first").show();
		this.elemCurrent = elem.find(".slide:first");
		this.elem.find(".navigation span:first").addClass("active");
		
		/* On crée le timer */
		carrousel.play();
		
		/* Stopper le défilement quand on passe dessus */
		elem.mouseover(carrousel.stopp);
		elem.mouseout(carrousel.play);
	},
	
	gotoSlide : function(num){
		if(num==this.nbCurrent){ return false; }
		
		/* Animation en fadeIn/fadeOut
		this.elemCurrent.fadeOut();
		this.elem.find("#slide"+num).fadeIn();
		*/
		
		/* Animation en slide
		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},700);
		this.elemCurrent.animate(cssFin,700);
		*/
		
		/* Animation affichage des images sans slide + apparition du titre par le bas */
		this.elemCurrent.find(".visu").fadeOut();
		this.elem.find("#slide"+num).show();
		this.elem.find("#slide"+num+" .visu").hide().fadeIn();
		
		var titleHeight = this.elemCurrent.find(".title").height();
		
		this.elemCurrent.find(".title").animate({"bottom": - titleHeight},700);
		this.elem.find("#slide"+num+" .title").css("bottom",-titleHeight).animate({"bottom":0},700);
		
		/* Partie à garder après avoir choisi le type d'animation (fadeIn ou slide)*/
		this.elem.find(".navigation span").removeClass("active");
		this.elem.find(".navigation span:eq("+(num-1)+")").addClass("active");
		this.nbCurrent = num;
		this.elemCurrent = this.elem.find("#slide"+num);
	},
	
	next : function(){
		var num = this.nbCurrent+1;
		if(num>this.nbSlide){
				num = 1;
		}
		this.gotoSlide(num);
	},
	/* Dans le cas où l'on veut se servir d'un bouton "précédent" */
	prev : function(){
		var num = this.nbCurrent-1;
		if(num < 1){
				num = this.nbSlide;
		}
		this.gotoSlide(num);
	},
	
	stopp : function(){
		window.clearInterval(carrousel.timer);
	},
	
	play : function(){
		window.clearInterval(carrousel.timer);
		carrousel.timer = window.setInterval("carrousel.next()",7000);
	}
	
}

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