// JavaScript Document
(function($) {
$.fn.bandeau = function(objOptions) {
	var CS_obj;
	var CS_maListe=[];
	var CS_long=0;
	var conteneur;
	var ul_scroll;
	
	
	
	//les options
	//pour lancer avec les valeur par defaut 
	//$("madiv").bandeau({})
	
	//pour modifier une option
	//$("madiv").bandeau({startLeft:true})
	var settings = $.extend({
							stepRight:1,//pas a droite
							stepLeft:1,//pas a gauche
							startLeft:false,//direction droite si vrai
							vitesseGauche: 60,//timer gauche, pour augmenter la vitesse , diminuer le timer
							vitesseDroite: 60,
							mouseOver: function(){}//fonction utilisateur 
							}, objOptions);
	
	
	function CS_hoverOver(){
		clearTimeout(CS_obj);
		settings.mouseOver();
		};

	function CS_remplace(){
		var temp=CS_transforme(CS_maListe[CS_long-1]);
		var CS_recule=CS_maListe[CS_long-1].outerWidth(true)+conteneur.offset().left;
		ul_scroll.css({"left":(ul_scroll.offset().left-CS_recule)+"px"}).prepend(temp);
		CS_maListe[CS_long-1].unbind('mouseenter').unbind('mouseleave');
		CS_maListe[CS_long-1].remove();
		CS_maListe.pop();
		CS_maListe.unshift(temp);
		};

	function CS_remplaceLeft(){
		var temp=CS_transforme(CS_maListe[0]);
		var CS_reculeLeft=CS_maListe[0].outerWidth(true)-conteneur.offset().left;;
		CS_maListe[0].unbind('mouseenter').unbind('mouseleave');
		CS_maListe[0].remove();
		CS_maListe.shift();
		CS_maListe.push(temp);
		ul_scroll.css({"left":(ul_scroll.offset().left+CS_reculeLeft)+"px"}).append(temp);
		}
	function CS_show(){
		var init_pos=ul_scroll.offset().left;
		var left=ul_scroll.offset().left-conteneur.offset().left+settings.stepRight;
		
		ul_scroll.css({"left": left+"px"});
		var tmp=CS_maListe[CS_long-2].offset().left +CS_maListe[CS_long-2].outerWidth()- conteneur.offset().left-conteneur.width();
		
		if(tmp>=0){
			CS_remplace();
			}
		CS_obj=setTimeout (CS_show,settings.vitesseDroite ); 
		}
	function CS_showLeft(){
		var left=ul_scroll.offset().left-conteneur.offset().left-settings.stepLeft;
		ul_scroll.css({"left": left+"px"});
		var tmp=CS_maListe[0].offset().left + CS_maListe[0].outerWidth()-conteneur.offset().left;
			if(tmp <= 0){
			CS_remplaceLeft()
			}
		CS_obj=setTimeout (CS_showLeft, settings.vitesseGauche ); 
			}


		function CS_transforme(ubj){
			var tmpClone=ubj.clone().hover(
				CS_hoverOver,
				function(){
					if(settings.startLeft){
						CS_showLeft();
						}
					else{
						CS_show();
						}
					}
				);
			return tmpClone;
			};




		conteneur=$(this);
		ul_scroll=conteneur.children("ul").eq(0);
		var largeur=0;
		ul_scroll.children("li").each(function(i){
			largeur+=$(this).outerWidth(true);
			$(this).hover(
				CS_hoverOver,
				function(){
					if(settings.startLeft){
						CS_showLeft();
						}
					else{
						CS_show();
						}
					}
				);
			CS_maListe.push($(this));

			});
		var firstTry=CS_maListe.length;
		var tmpClone;
		while(largeur<2 * conteneur.width()+conteneur.offset().left){
			for(var i=0;i<firstTry;i++){
				tmpClone=CS_transforme(CS_maListe[i])
				CS_maListe.push(tmpClone);
				ul_scroll.append(tmpClone);
				largeur+=tmpClone.outerWidth(true);
				}
			}
		CS_long=CS_maListe.length;
		ul_scroll.width(largeur);
		if(settings.startLeft){
			CS_showLeft()
			}
		else{
			CS_show()
			}
	};
	})(jQuery);
