var carroussel = {

	nbSlide : 0,
	nbCurrent : 1,
	elemCurrent : null,
	elem : null,	
	timer : null, 
	
	init : function(elem){
		carroussel.elem = elem;
		
		/**
		*	L'element this en Jquery s'appel grace a $(this)
		*	elem est un objet donc pour travailler avec lui faut utiliser $(elem)
		*/
		carroussel.nbSlide = $(elem).find('.slide').length;
		
		/**
		*	création de la pagination
		*/
		$(elem).append('<div class="navigationPoints"></div>');
		for(var i = 1 ; i <= carroussel.nbSlide ; i++){
			$(elem).find('.navigationPoints').append('<span class="buttonNav"></span>');
		}
		$(elem).find('.navigationPoints span.buttonNav').click(function(){ carroussel.gotoSlide($(this)); });
		
		/**
		*	Initialisation du carroussel
		*/
		$(elem+" span:first").addClass("active");
		carroussel.elemCurrent = $(elem).find('.slide:first');
		
		/**
		*	On crée le timer, Temps en milisecondes
		*/
		carroussel.play();	
			
		/**
		*	Stop qd on passe dessus
		*/
		$(elem).hover(carroussel.stop,carroussel.play);
		
	},
	
	gotoSlide : function(anObject){
		$(carroussel.elem+" span").removeClass("active");
		$(anObject).addClass("active");
		$(carroussel.elem).find(".slide .info").slideUp(250);
		pointCurrent = $(anObject).index(".navigationPoints span.buttonNav")+1;
		if (pointCurrent == carroussel.nbCurrent) { return false; }
		
		var cssAuto = {"left" : -(pointCurrent-1)*$(carroussel.elem).width()};
		$(carroussel.elem).find("#slideContent").animate(cssAuto , 500 , function(){$(carroussel.elem).find(".slide .info").slideDown(250);});
		
		carroussel.nbCurrent = pointCurrent;
		carroussel.elemCurrent = $(carroussel.elem).find("#slide"+pointCurrent);
	},
	
	gotoSlideManu : function(int){
	
		var precedent = int-1;
		
		$(carroussel.elem).find(".navigationPoints span").removeClass("active");
		$(carroussel.elem).find(".navigationPoints span:eq("+(int-1)+")").addClass("active");
		
		$(carroussel.elem).find(".slide .info").slideUp(250);	
		var cssAuto = {"left" : -(int-1)*$(carroussel.elem).width()};
		$(carroussel.elem).find("#slideContent").animate(cssAuto , 500 , function(){ $(carroussel.elem).find(".slide .info").slideDown(300); });
		
		carroussel.nbCurrent = int;
	},
	
	next : function(){
		// Si on est a la fin du slide, si on va jusqu'à la fin
		carroussel.nbCurrent++;
		
		if (carroussel.nbCurrent>carroussel.nbSlide){ 
			carroussel.nbCurrent = 1; 
		}
		carroussel.gotoSlideManu(carroussel.nbCurrent);
	},
	
	prev : function(){
		carroussel.nbCurrent--;
		
		if (carroussel.nbCurrent<1){ 
			carroussel.nbCurrent = 1; 
		}
		carroussel.gotoSlideManu(carroussel.nbCurrent);
	},
	
	play : function(){
		if(carroussel.nbSlide > 1){
			window.clearInterval(carroussel.timer);
			carroussel.timer = window.setInterval("carroussel.next()",3000);
		}	
	},
	
	stop : function(){
		window.clearInterval(carroussel.timer);
	}
}

$(function(){
	carroussel.init("#carrousselle");	
});
