$(document).ready(function(){
	s = new slider("#galerie_salon",".salon",1);
});

/*
@elem : Div contenant le slider
@content : les élément dans le slider,    "a" par défaut
@ratio : De combien de fois on bouge
*/
var slider = function(elem,content,ratio){
 	var self = this;
	this.div=$(elem);
	this.slider=this.div.find(".slider");
	this.content= content==undefined ? this.slider.find("div") : this.slider.find(content);
	ratio = ratio==undefined ? 1 : ratio;
	this.suiv=this.div.find('.suiv_salons');
	this.prec=this.div.find('.prec_salons');
	this.hauteurCache=this.div.height();
	this.hauteur=0;
	this.content.each(function(){
		self.hauteur+=$(this).height()
		self.hauteur+=parseInt($(this).css("margin-top"));
		self.hauteur+=parseInt($(this).css("margin-bottom"));
		self.hauteur+=parseInt($(this).css("padding-top"));
		self.hauteur+=parseInt($(this).css("padding-bottom"));
		
	});
	
	this.numCourant=0;
	this.saut=this.hauteurCache*ratio;
	this.etapes=Math.ceil((this.hauteur/this.saut)-(this.hauteurCache/this.saut));
	
	this.prec.hide();
	if(this.hauteurCache>this.hauteur){this.suiv.hide();}
	
	// Avancer d'un cran
	this.next = function(){
		if(self.numCourant>=self.etapes){ return false;  }
		if(self.numCourant==0){ self.prec.fadeIn();  }
		self.numCourant++;
		self.div.find(".slider").animate({
			"top":-self.saut*self.numCourant
		},1000);
		if(self.numCourant>=self.etapes){ self.suiv.fadeOut();  }
	}
	
	// Reculer d'un cran
	this.prev = function(){
		if(self.numCourant<=0){ return false;  }
		if(self.numCourant>=self.etapes){ self.suiv.fadeIn();  }
		self.numCourant--;
		self.div.find(".slider").animate({
			"top":-self.saut*self.numCourant
		},1000);
		if(self.numCourant==0){ self.prec.fadeOut();  }	
	}
	
	// Aller à un cran particulié
	this.goto = function(num){
		if(num==0){ self.prec.fadeOut(); }
		else{self.prec.fadeIn(); }
		if(num==self.etapes){ self.suiv.fadeOut(); }
		else{self.suiv.fadeIn(); }
		self.div.find(".slider").animate({
			"top":-self.saut*num
		},1000);
		self.numCourant=num;		
		
	}

	this.prec.bind('click',this.prev);	
	this.suiv.bind('click',this.next);

}
