// SQUARE BREVES > Developpement Paul Fauchille

var BreveAnim, BreveNb, BreveTimeAnim, BreveTime, BreveNum, BreveStart, imgHeight, BreveWidth, TIMEFORCHAR, PLUSTIME, CloneList, BreveWidthClone, Defil;
TIMEFORCHAR=90; // Time in ms for one character
PLUSTIME=1000; // Time to add at "normal" next time
BreveNum=0; BreveStart=0; Defil=1;


function StopDefil(){ Defil=0; };
function StartDefil(){ Defil=1; };


function ConfigSquareBreve(Width,Height,BgColor,Anim,TimeAnim,Time){
	
	imgHeight = Number($("#breveimg").height());
	BreveAnim = Anim;
	BreveNb=$(".actus").length-1;
	BreveTimeAnim = Number(TimeAnim);
	BreveTime = Number(Time)+(2*BreveTimeAnim);
	BreveWidth = Width;
	$("#actu").css({height: (Number(Height)+Number(imgHeight))+"px",overflow:'hidden'});	
	$("#breves").css({"width": Width+"px", "height": Height+"px", "background-color": BgColor, "overflow": "hidden"});
	
	var maxHeight=0;
	$(".actus").each(function(){
	    var h=$(this).height();
	    maxHeight=Math.max(maxHeight,h);
	});
	$(".actus,#breves,#actu").height(maxHeight);
	
	if(Anim=="slideLeft"){ // #### ANIMATION SLIDE LEFT #### //
	
		$(".actus").each( function(){ $(this).css({height: Height+'px', overflow: "hidden"}); } );
		
	}else if(Anim=="slideLeft2"){ // #### ANIMATION SLIDE (FLUX CONTINU) #### //
	
		BreveTime=Number(Time); BreveNb++; var w=0;
		$("#breves").css({width: '20000px'});
		$(".actus").each(function(){
			wid=$(this).css({'display':'block','float':'left','overflow':'hidden','height':Height+'px','line-height':Height+'px','padding':'0px','margin':'0px'}).removeAttr("id").width();
			wid+=15; $(this).css({width: wid+'px'}); w+=wid;
		});
		var clone=$("#breves").css({width:w+'px',overflow:'visible'}).html();
		$("#actu").append('<div id="breves2">'+clone+'</div>');
		$("#breves2").css({position:'absolute',top:0,left:w+'px',width:w+'px'});
		BreveWidthClone=w; w2=2*w; CloneList=new Array("breves","breves2");
		while(w2<Width*2){
			var nb=CloneList.length+1; CloneList[nb-1]="breves"+nb;
			w2+=w; $("#actu").append('<div id="'+CloneList[nb-1]+'">'+clone+'</div>');
			$("#"+CloneList[nb-1]).css({position:'absolute',top:0,left:w+'px',width:w+'px'});
		}
		$(".actus").hover(StopDefil,StartDefil)
		
	}
	
	StartSquareBreves();
	
};


function StartSquareBreves(){
	
	if(Defil==1){ // ## DEFILE OU ARRET ON HOVER
		
		
		// ######### NEWS ACTUELLE ######### //
		if(BreveAnim!="slideLeft2"){ 
		
			var d = $("#breve"+BreveNum); // Breve Actuel
			if(BreveNum<BreveNb&&BreveStart!=0) BreveNum++; else BreveNum=0; // Verifie si retour à 0
			var e = $("#breve"+BreveNum); // Breve Suivante
			var NexTime = BreveTime;
			
		} 
		// ######### NEWS ACTUELLE ######### //
		
		
		
		if(BreveStart==0) { // ## INITIALISATION ##
			
			// ################# INITIALISATION #################### //
		
			if(BreveAnim=="slideLeft") { // Show First News > Anim

				d.css({position: 'absolute',left: BreveWidth+'px',display: 'block'});
				var show = setTimeout( function(){ d.animate({left: 0},BreveTimeAnim); clearTimeout(show); }, 50 );
				NexTime = e.text().length * TIMEFORCHAR; NexTime+=PLUSTIME;

			}else if(BreveAnim=="slideLeft2"){ // Set Position for each Clone
			
				for(var i=0;i<CloneList.length;i++){
					w=BreveWidthClone*i;
					$("#"+CloneList[i]).css({position:'absolute',top:0,left:w+'px'});	
				}
				
			}else{ // ## Show First News
			
				d.show();
				
			}
			BreveStart=1; // Defini Initialisation est terminée
			
			// ################# INITIALISATION #################### //
			
			
			
			
		}else if(BreveStart==1 && BreveNb>0){ // ## Cas classique > Passage à la suivante
		
			
			// ################# ANIMATION > SUIVANTE #################### //
		
			if(BreveAnim=="slide"){ // Hide Actual SLIDE (UP)
			
				d.slideUp(BreveTimeAnim);
				
			}else if(BreveAnim=="slideLeft"){ // Hide Actual SLIDE LEFT
			
				d.css({position: 'absolute'}).animate({left: BreveWidth*-1}, BreveTimeAnim); // set position tou absolute and animate left
				var disapear = setTimeout( function(){ d.hide().css({left: BreveWidth+'px'}); clearTimeout(disapear); }, BreveTimeAnim );
				
			}else if(BreveAnim=="slideLeft2"){ // Defilement des block clones, et remet à la suite de la chaine sinon
			
				for(var i=0;i<CloneList.length;i++){
					var w=$("#"+CloneList[i]).css('left'); w=w.substring(0,w.length-2); w=Number(w)-BreveTime; // BreveTime = Nombre de pixel en moins
					if(w<=-BreveWidthClone){ w=BreveWidthClone*(CloneList.length-1); } $("#"+CloneList[i]).css({left:w+'px'});
				}
				
			}else{ // Hide Actual FADE
			
				d.fadeOut(BreveTimeAnim);
				
			}
			
			if(BreveAnim=="slide"){ // Show Next SLIDE (DOWN)
				
				var show = setTimeout( function(){ e.slideDown(BreveTimeAnim); clearTimeout(show); }, BreveTimeAnim );
				
			}else if(BreveAnim=="slideLeft") { // Show Next SLIDE LEFT
			
				e.css({position: 'absolute',left: BreveWidth+'px',display: 'block'}).animate({left: 0},BreveTimeAnim); 
				NexTime = e.text().length * TIMEFORCHAR; NexTime+=PLUSTIME; clearTimeout(show); 
				
			}else if(BreveAnim=="slideLeft2"){
				
				// Nothing
				
			}else{ // Show Next FADE
			
				var show = setTimeout( function(){ e.fadeIn(BreveTimeAnim); clearTimeout(show); }, BreveTimeAnim ); 
				
			}
			
			// ################# ANIMATION > SUIVANTE #################### //		
				
		}
		
	}// ## DEFILE OU ARRET ON HOVER
	
	
	
	
	// ########### TIMER POUR ANIMATION SUIVANTE ########### //
	if(BreveAnim=="slideLeft2"){ // ## CAS DEFILEMENT CONTINUE
	
		var next = setTimeout(function(){ StartSquareBreves(); clearTimeout(next); }, BreveTimeAnim/10 ); // Temps d'animation / 10 pour le prochain decalage
		
	}else{ // ## AUTRE CAS
	
		if(NexTime < BreveTime) NexTime = BreveTime;
		var next = setTimeout( function() { StartSquareBreves(); clearTimeout(next); } , NexTime );
		
	}
	// ########### TIMER POUR ANIMATION SUIVANTE ########### //
	
	
};