// Slider par Dysign

$(document).ready(function() {

	$(window).load(function(){							

		$("#slider").each(function() {
			var auto=true; // permet de tester si le slide est en mode manuel
			var enpause=false; // permet de tester si le slide est en pause
			var boucleout=false; // permet de tester si le programme est sorti de sa boucle 
			var wait=false; // permet de tester s'il faut attendre un peu avant de changer lors de repassage en auto
			
			var n=0; // slide actuel
			var i=0; // attribution des z-index
			var t=1000; // temps de fondu entre les slides
			var w=5000; // temps entre chaque slide en ms
			
			var s=$("#slider a"); // Slides
			var m=s.size()-1; // nombre total de slide
			var z=$("#slider"); // Zone d'affichage des slide
			z.append('<div id="slide_menu"></div>'); //création du bloc boutons
			var b=$("#slide_menu"); // Menu contenant les boutons
			b.css('z-index',m+2); // mise au premier plan du menu
			s.each(function() { // pour chaque slide
				$(this).css('z-index',i); // application d'un z-index
				b.append('<div class="slide_bouton" >'+(i+1)+'</div>'); // création du bouton correspondant
				i++;
			}); 
			
			z.one("mouseenter", pause); // event pour la pause
			$(".slide_bouton").bind("click", function() { manuel($(this)) });
			s.eq(n).fadeIn(t, function() { attente() });
			
			// fonction principale
			function slide() {
				boucleout=false;
				
				if (!enpause && auto) { // ### mode de fonctionnement automatique
					if(n<m) {
					n++;
					s.eq(n).fadeIn(t, function() {  
						s.eq(n-1).css('display','none');
						attente();
					});
					} else { 
						n=0;
						s.eq(n).css('z-index',m+1); //affichage du premier slide au premier plan
						s.eq(n).fadeIn(t, function() {  
							s.eq(m).css('display','none');
							s.eq(n).css('z-index','0'); // remise du premier slide au dernier plan
							attente();
						}); 
					}
				}
				else { boucleout=true; } // sortie de la boucle principale
			}
			
			// fonction d'attente
			function attente() { setTimeout(slide,w); }
			
			// gestion du changement manuel
			function manuel(l) {
				l=parseInt(l.html()-1);
				if (l!=n) { // si le bouton appuyé est bien différent de la slide en cours
					auto=false;
					$("#slide_menu div").unbind("click");
					clearTimeout();
					var ex=n;
					n=l;
					s.eq(n).css('z-index',m+1).fadeIn(t, function() { 
						s.eq(ex).css('display','none'); 
						$(this).css('z-index',n);  
						$(".slide_bouton").bind("click", function() { manuel($(this)) });
						wait=true;
						auto=true;
						setTimeout(function() { wait=false},w);
					});
				}
			}
			
			// gestion de la pause
			function pause() {
				enpause=true;
				b.fadeIn("fast");
				z.one("mouseleave", function() { 
						z.one("mouseenter", pause);
						enpause=false;
						b.fadeOut("fast");
						if (boucleout && !wait) { slide() }
						else if (boucleout && wait) { attente() }
				});
			}
		});
	
	});
	
});
