(function($) {
	$.fn.JSlider = function(options) {
    	
    	var defaults = {
			sliderWidth: "1000",
			sliderHeight: "284", 
			speed: "5000", 
			mode: "auto", 
		};
		
		var opts = $.extend(defaults, options);
		
		var $t = $(this);
		var nbSlides = $("li", $t).length;
		
		var i = 0;
		
		$("li:eq("+i+")", $t).show();
		$("li:eq("+i+")", $t).addClass("active_slide");
		
	//Si on est en defilement automatique on lance une premiere fois la fonction
		if(opts.mode == "auto") { showNextSlide(); }
		
	//Si on est en defilement manuel, on ajoute la zone "slideCommands" ainsi que des liens ".slideBtn"
		else if(opts.mode == "manual")
			{
				sliderCommands = '<div class="slideCommands">';
				
				//On ajoute autant de liens qu'il y a de "slides" dans la zone slideCommands
				//On demarre la boucle a 1 pour afficher la variable "i" dans le lien et ainsi ne pas commencer a 0
				
				for(var j=1; j<=nbSlides; j++)
					{
						sliderCommands += '<div class="slideBtn">'+j+'</div>';
					}
					
				sliderCommands += '</div>';
				
				//Une fois que la zone "slideCommands" est generee, ou l'ajoute apres la div "slides" qui contient la liste des "slides"
				$(".slides", $t).append(sliderCommands);
				
				$(".slides .slideBtn:eq(0)").addClass("slideBtnActive");
				
				//On specifie que lorsque on clique sur un des bouton ".slideBtn", on fais disparaitre le slide actuel et on fait appraitre celui du lien clique
				$(".slideBtn").click(function()
					{
						//Le slide a afficher
						var btnValue = $(this).text() - 1;
						
						//Si on clic sur un autre bouton que celui du "slide" affiche
						if( $("li:eq("+btnValue+")", $t).attr("class") != "active_slide")
							{
								//On change la class du bouton clique ainsi que de celui qui porte la class "slideBtnActive"
								$("div.slideBtnActive").removeClass("slideBtnActive");
								$(this).addClass("slideBtnActive");
								
								//On fait disparaitre le slide affiche et lui retire la class "active_slide"
								$("li.active_slide").fadeTo("slow", 0);
								$("li.active_slide").removeClass("active_slide");
								
								//On affiche le nouveau slide et on lui ajoute la class "active_slide"
								$("li:eq("+btnValue+")", $t).fadeTo("slow", 1.0);
								$("li:eq("+btnValue+")", $t).addClass("active_slide");
							}
						
					});
				
			}
		
		function showNextSlide()
			{
				$("li:eq("+i+")", $t).fadeTo("slow", 1.0).delay(opts.speed).fadeTo("slow", 0, function() {
					if(i == (nbSlides-1)) { i=0; }
					else { i++; }
					showNextSlide();
				});
			}
			
	};
})(jQuery);
