(function($) {
	var parent;
	var nombre_image;
	var widthImage;
	var pas;
	var contBtns;
	var contCercles;
	var act;
	var divImages;
	var mode;
	var alignement;
	var easing;
	var duree;
	var description;
	var intAct;
	var intAct2;
	var intAct3;
	var fleche;
	var navWidth;
	var galleryWidth;
	var diffWidth;
    var nombrePas;
	var nombreThumbs;
	var widthNavDefault;
	var widthLi;
	var miniPas;
	var lesPadding;
	var heightNavAligner;
	var widthNavAligner;
	var autoPlay;
	var autoPlay2;
	var nombreAuto;
	var startImage;
	var refSetIntervale;
	var cercle = 0;
	 $.fn.Scarousel = function(options){
		 settings = { type: "" , align : "center" , easing : "easeInOutQuint" ,  delay : 1500 , divDscription: "" , arrow : true , nombreThumb : 10 , start : 3, play_auto:true};
		 jQuery.extend(settings, options);
		 parent=this;
		 mode=settings.type;
		 alignement = settings.align;
		 easing=settings.easing;
		 duree = settings.delay;
		 description = settings.divDescription;
		 fleche=settings.arrow;
		 lespadding=16;
		 nombreThumbs = settings.nombreThumb;
		 startImage = settings.start;
		 autoPlay2 = settings.play_auto;
		 $(this).find("ul").eq(0).wrap('<div id="imagesS" />');
		 divImages = $(this).find("div").eq(0);
		 nombre_image = $(this).find("img").length;
		 widthImage = $(parent).find("img").width();
		 heightImage = $(parent).find("img").height();
		 //widthImage
		 $(divImages).width((535+50)*(nombre_image));
		 $(divImages).css("position" , "relative");
		 $(parent).find("li").css({"float" : "left" , "display" : "block"});
		 contBtns = [nombre_image];
		 if(nombreThumbs < nombre_image) {
			 alignement = "center";
		  }
		 if(nombreThumbs>nombre_image) {
			 nombreThumbs = nombre_image;
		 }
		 //les condition de mode de navigation
		 if(mode=="NUMBER" || mode=="THUMB" || mode=="CERCLE" || mode=="") {
			 	//alert("le nom de type de carousel n'est pas valide");
			 }
		 else {
			 mode="NUMBER";
		 }
			 if(mode=="NUMBER") {
				 createBtn();
				 widthLi = $("#navS").find("li").width();
				 widthNavDefault = (widthLi+lespadding)*(nombre_image+3);
				 navWidth = $("#navS").width(widthNavDefault);
				 var navHeight = $("#navS").height();
				 var demiImages;
				 if(startImage == 0 || startImage == "" ) {
					 demiImages = Math.round(nombre_image/2);
				 }
				 else {
					 demiImages = startImage;
				 }
				 var intDemiImages = demiImages-1;
				 pas = demiImages-1;
				 intAct2=pas;
				 intAct3=pas;
				 nombreAuto = pas;
				 $("#navS li a").css("opacity" , 0.5);
				 $("#img"+demiImages).children("a").css("opacity" , 1);
				 $(divImages).animate({ left: -(widthImage*demiImages-1) }, {duration: duree,easing: easing}); 
				 var selectN = $(parent).find("li").eq(demiImages-1).find("img").attr("title");
				 $(description).html(selectN);
				 $("#navS").css("padding-top" , 30);
				 heightNavAligner = (navHeight+5);
				 var espaceLeftAjouter;
				 var nombreThumbSupporter = Math.round(widthImage /54);
				 if(nombre_image>nombreThumbSupporter) {
					 espaceLeftAjouter = 10;
				 }
				 else {
					 espaceLeftAjouter = 50;
				 }
				widthNavAligner = (widthNavDefault-espaceLeftAjouter);
				alignement = settings.align;
			 }
			 if(mode =="THUMB") {
				 createThumb ();
				 if ( (nombreThumbs % 2) == 0) {
				     
					} else {
					     nombreThumbs=nombreThumbs+1;
					}
				 widthLi = $("#navS").find("li").width();
				 widthNavDefault = (widthLi+lespadding)*(nombreThumbs)-20;
				 navWidth = $("#navS").width(widthNavDefault+4);
				 var navHeight = $("#navS").height();
				 $("#miniGallery").width(nombre_image*(widthLi+lespadding));
				 // initiallise le carrossel
				 var demiNombre;
				 if(startImage == 0 || startImage == "" ) {
					 demiNombre = Math.round(nombreThumbs/2);
				 }
				 else {
					 demiNombre = startImage;
				 }
				 pas = demiNombre-1;
				 miniPas=demiNombre-1;
				 intAct=pas;
				 nombreAuto = pas;
				 avantAct = pas-1; 
				 apresAct = pas+1; 
				 $("#navS li img").css("opacity" , 0.5);
				 $("#img"+demiNombre).children("img").css("opacity" , 1);
				 $(divImages).animate({ left: -(widthImage*pas) }, {duration: duree,easing: easing}); 
				 $("#miniGallery").animate({ left: -((widthLi+lespadding)*pas+2+(widthLi+nombre_image))+(widthNavDefault/2) }, {duration: duree,easing: easing}); 
				 var select= $(parent).find("li").eq(demiNombre-1).find("img").attr("title");
				 $(description).html(select);
				 heightNavAligner = (navHeight+15);
				 widthNavAligner = widthNavDefault;
				 alignement = "center";
			 }
			 if(mode=="CERCLE") {
				 cercle=1;
				 createCercle();
				widthLi = $("#navS").find("li").width();
				 widthNavDefault = (widthLi+lespadding)*(nombre_image+3);
				 var widthSpeciale = 567;
				// navWidth = $("#navS").width(nombre_image*(17+10));
				 navWidth = $("#navS").width( widthSpeciale);
				 var navHeight = $("#navS").height();
				 $("#cercles").width(nombre_image*(17+10));
				 var demiImages;
				 if(startImage == 0 || startImage == "" ) {
					 demiImages = Math.round(nombre_image/2);
				 }
				 else {
					 demiImages = startImage;
				 }
				 //var intDemiImages = demiImages-1;
				 pas = demiImages-1;
				 intAct2=pas;
				 nombreAuto = pas;
				  $(".cercle").animate({opacity : 1},200);
				  $(".cercle").addClass("cercle_normale");
				  $("#img"+demiImages).addClass("cercle_active");
				 //$("#img"+demiImages).animate({opacity : 1},200);widthImage
				 $(divImages).animate({ left: -(535*(demiImages-1)) }, {duration: duree,easing: easing}); 
				 var selectN = $(parent).find("li").eq(demiImages-1).find("img").attr("title");
				 $(description).html(selectN);
				
				 $("#navS").css("padding-top" , 30);
				 var espaceLeftAjouter2;
				 var nombreThumbSupporter2 = Math.round(widthImage /54);
				 if(nombre_image>nombreThumbSupporter2) {
					 espaceLeftAjouter2 = -10;
				 }
				 else {
					 espaceLeftAjouter2 = 5;
				 }
				 heightNavAligner = (navHeight+5);
				 widthNavAligner = (nombre_image*(17+10))+espaceLeftAjouter2;
				 alignement = settings.align;				 
			 }
			 if(mode=="") {
				 var demiNombre = Math.round(nombreThumbs/2);
				 pas = demiNombre-1;
				 miniPas=demiNombre-1;
				 intAct=pas;
				 nombreAuto = pas;
				 avantAct = pas-1; 
				 apresAct = pas+1; 
				 $("#navS li img").css("opacity" , 0.5);
				 $("#img"+demiNombre).children("img").css("opacity" , 1);
				 $(divImages).animate({ left: -(widthImage*pas) }, {duration: duree,easing: easing}); 
				 var select= $(parent).find("li").eq(demiNombre-1).find("img").attr("title");
				 $(description).html(select);
				 createArrow();
			 }
			 else {
				 if(fleche) {
					 createArrow();
				 }
			 }
			 autoPlay = 0;
			 if(autoPlay2){
				 autoPlay = 1;
				 refAuto ();
				 $("#playS").hide();
				 $("#pauseS").show();
			 }
			 var divPlay ='<div id="playS"></div>';
			 var divPause ='<div id="pauseS"></div>';
			 $("#header").append(divPlay);
			 $("#header").append(divPause);
			 $("#pauseS").hide();
			 $("#playS").click(function(){
				 autoPlay = 1;
				 refAuto ();
				 $("#playS").hide();
				 $("#pauseS").show();
			 });
			 
			 $("#pauseS").click(function(){
				 autoPlay = 0;
				 refAuto ();
				 $("#pauseS").hide();
				 $("#playS").show();
			 });
			 
			
		$(this).width(widthImage);
		$(this).height(heightImage+30);
		 var parentWidth = $(this).width();
		 var parentHeight = $(this).height();
		 $(description).width(parentWidth+2); 

		 // les condition de l'alignement
		 if(alignement=="right" || alignement=="center") {
				// alert("le nom de type de carousel n'est pas valide");
			 }
			 else {
				 alert("le nom de type de l'alignement n'est pas valide");
				alignement="center";
			 }
		 if(alignement =="right") {
			//$("#navS").css({left :parentWidth-widthNavAligner , top :parentHeight-heightNavAligner});
		 }
		 if (alignement =="center") {
			 var centrerThumbs = (parentWidth-widthNavAligner)/2;
			 //$("#navS").css({left :centrerThumbs , top :parentHeight-heightNavAligner});
		 }
		 $("#next").css({left :parentWidth-24 , top :parentHeight/2 , opacity:0.5});
		 $("#prev").css({left :0 , top :parentHeight/2 , opacity:0.5});
		 $("#miniNext").css({left :parentWidth-(widthLi) , top :parentHeight-(widthLi-8) , opacity:0.5});
		 $("#miniPrev").css({left :(widthLi) , top :parentHeight-(widthLi-8) , opacity:0.5});
         // le survole des fleches Next et Prev
		 $("#next").hover(function(){
			 $(this).css("opacity" , 1);},
			 function(){
			 $(this).css("opacity" , 0.5);
		 })
		 $("#prev").hover(function(){
			 $(this).css("opacity" , 1);},
			 function(){
			 $(this).css("opacity" , 0.5);
		 })
		$("#next").fadeOut(500);
		 $("#prev").fadeOut(500);
		 
		 //// le survole les mini Fleches Next et Prev 
		 $("#miniNext").hover(function(){
			 $(this).css("opacity" , 1);},
			 function(){
			 $(this).css("opacity" , 0.5);
		 })
		 $("#miniPrev").hover(function(){
			 $(this).css("opacity" , 1);},
			 function(){
			 $(this).css("opacity" , 0.5);
		 })
		$("#miniNext").fadeOut(500);
		 $("#miniPrev").fadeOut(500);
         // l'evenement de click de flashe NEXT
		 $("#next").click(function(){
			 
			 if(pas<nombre_image-1) {
				 
				 pas++;
				 var act = pas+1;
				 miniPas = pas;
				 intAct2=pas;
				 intAct3=pas;
				 nombreAuto=pas;
				 $("#prev").fadeIn(500);
				 $(".cercle").addClass("cercle_normale");
				 if(cercle==1) {
					 $("#img"+act).addClass("cercle_active");
				 }
				 else {
					 $("#img"+act).css("opacity" , 1);
					 $("#navS li img").css("opacity" , 0.5);
					 $("#navS li a").css("opacity" , 0.5);
					 $("#img"+act).children("a").css("opacity" , 1);
					 $("#img"+act).children("img").css("opacity" , 1);
				 }
				  
				 $(document).pngFix();
				 var title = $(parent).find("li").eq(pas).find("img").attr("title");
				 $(description).html(title);
				  $(divImages).animate({ left: -(widthImage*pas) }, {duration: duree,easing: easing}); 
				  if(nombreThumbs >= nombre_image) {
					  
				  }
				  else {
					  $("#miniGallery").animate({ left: -((widthLi+lespadding)*pas+2+(widthLi+nombre_image))+(widthNavDefault/2) }, {duration: duree,easing: easing});
				  }
			 }
			 else {
				 $(this).fadeOut(500);
			 }
		 })
		 // l'evenement de click de flashe Prev
		 $("#prev").click(function(){
			 
			 if(pas>0) {
				 pas--;
				 var act = pas+1;
				 miniPas = pas;
				 intAct2=pas;
				 intAct3=pas;
				 nombreAuto=pas;
				 $("#next").fadeIn(500);
				 $(".cercle").addClass("cercle_normale");
				 if(cercle==1) {
					 $("#img"+act).addClass("cercle_active");
				 }
				 else {
					 $("#img"+act).css("opacity" , 1);
					 $("#navS li img").css("opacity" , 0.5);
					 $("#navS li a").css("opacity" , 0.5);
					 $("#img"+act).children("a").css("opacity" , 1);
					 $("#img"+act).children("img").css("opacity" , 1);
				 }
				  
				 $(document).pngFix();
				 var title = $(parent).find("li").eq(pas).find("img").attr("title");
				 $(description).html(title);
				 $(divImages).animate({ left: -(widthImage*pas) }, {duration: duree,easing: easing}); 
				 if(nombreThumbs >= nombre_image) {
				  }
				  else {
					  $("#miniGallery").animate({ left: -((widthLi+lespadding)*pas+2+(widthLi+nombre_image))+(widthNavDefault/2) }, {duration: duree,easing: easing});
				  }
			 }
			 else {
				 $(this).fadeOut(500);
			 }
			 
		 })

		 //pour les click des mini Fleches 
		 
		 // l'evenement de click de fleche miniNext
		 $("#miniNext").click(function(){
			 var intMiniPas = Math.round(nombrePas);
				 if(miniPas<nombre_image-1) {
						 miniPas++;
						 var act = miniPas+1;
					     pas= miniPas;
					     intAct = miniPas;
					     nombreAuto=miniPas;
						 $("#miniPrev").fadeIn(500);
						 $("#navS li img").css("opacity" , 0.5);
						 $("#img"+act).children("img").css("opacity" , 1);
						 var title = $(parent).find("li").eq(miniPas).find("img").attr("title");
						 $(description).html(title);
						 $(divImages).animate({ left: -(widthImage*miniPas) }, {duration: duree,easing: easing}); 
						 $("#miniGallery").animate({ left: -((widthLi+lespadding)*miniPas+2+(widthLi+nombre_image))+(widthNavDefault/2) }, {duration: duree,easing: easing});
					 }
					 else {
						 $(this).fadeOut(500);
					 }
		 })
		 // l'evenement de click de fleche miniPrev
		 $("#miniPrev").click(function(){
			 autoPlay = 0;
			 refAuto (); 
			 $("#pauseS").hide();
			 $("#playS").show();
			 if(miniPas>0) {
				 miniPas--;
				 var act = miniPas+1;
				 pas = miniPas;
				 intAct = miniPas;
				 nombreAuto=miniPas;
				 $("#miniNext").fadeIn(500);
				 $("#navS li img").css("opacity" , 0.5);
				 $("#img"+act).children("img").css("opacity" , 1);
				 var title = $(parent).find("li").eq(miniPas).find("img").attr("title");
				 $(description).html(title);
				 $(divImages).animate({ left: -(widthImage*miniPas) }, {duration: duree,easing: easing}); 
				 $("#miniGallery").animate({ left: -((widthLi+lespadding)*miniPas+2+(widthLi+nombre_image))+(widthNavDefault/2) }, {duration: duree,easing: easing});
			 }
			 else {
				 $(this).fadeOut(500);
			 }
		 })
		 
		 // le survole de bloc Parent pour Afficher les fleches de navigation
		 $(parent).hover(function(){
			 	$("#next").fadeIn(500);
			 	$("#prev").fadeIn(500);
			 	$("#miniNext").fadeIn(500);
			 	$("#miniPrev").fadeIn(500); 
		 	},
			 function(){
				$("#next").fadeOut(500);
				$("#prev").fadeOut(500); 
				$("#miniNext").fadeOut(500);
				$("#miniPrev").fadeOut(500); 
		 })
		 
		// l'evenement de click sur les images de thumbnail
		  $("#navS li img").click(function () {	
			  autoPlay = 0;
				 refAuto (); 
				 $("#pauseS").hide();
				 $("#playS").show();
			  var idAct = $(this).parent("li").attr("id");
			  var pa = idAct.indexOf("g",1);
			  var apresG = idAct.substring(pa+1,pa+3);
			  act =apresG; 
			 intAct = parseInt(act)-1;
			 var title = $(parent).find("li").eq(intAct).find("img").attr("title");
			 $(description).html(title);
			 $("#navS li img").css("opacity" , 0.5);
			 $(this).css("opacity" , 1);
			 pas=intAct;
			 miniPas = intAct;
			 nombreAuto=intAct;
			 $(divImages).animate({ left: -(widthImage*intAct) }, {duration: duree,easing: easing}); 
			 if(nombreThumbs >= nombre_image) {
			  }
			  else {
				  $("#miniGallery").animate({ left: -((widthLi+lespadding)*intAct+2+(widthLi+nombre_image))+(widthNavDefault/2) }, {duration: duree,easing: easing});
			  }
			 return false; 
		 })
		 // apres l'optimiser
		 //  l'evenement de click sur les numeros de navigation
		 $("#navS li a").click(function () {
			 autoPlay = 0;
			 refAuto (); 
			 $("#pauseS").hide();
			 $("#playS").show();
			  var idAct = $(this).parent("li").attr("id");
			  var pa = idAct.indexOf("g",1);
			  var apresG = idAct.substring(pa+1,pa+3);
			  act =apresG; 
			 intAct2 = parseInt(act)-1;
			 var title = $(parent).find("li").eq(intAct2).find("img").attr("title");
			 $(description).html(title);
			 $("#navS li a").css("opacity" , 0.5);
			 $(this).css("opacity" , 1);
			 pas=intAct2;
			 miniPas = intAct2;
			 nombreAuto=intAct2;
			 $(divImages).animate({ left: -(widthImage*intAct2) }, {duration: duree,easing: easing});  
			 return false; 
		 })
		 
		 $(".cercle").click(function () {
			 autoPlay = 0;
			 refAuto (); 
			 $("#pauseS").hide();
			 $("#playS").show();
			  var idAct = $(this).attr("id");
			  var pa = idAct.indexOf("g",1);
			  var apresG = idAct.substring(pa+1,pa+3);
			  act =apresG; 
			 intAct3 = parseInt(act)-1;
			 var title = $(parent).find("li").eq(intAct3).find("img").attr("title");
			 $(description).html(title);
			 $(".cercle").removeClass("cercle_active");
			 $(".cercle").addClass("cercle_normale");
			 $(this).removeClass("cercle_normale");
			 $(this).addClass("cercle_active");
			 pas=intAct3;
			 miniPas = intAct3;
			 nombreAuto=intAct3;
			 //widthImage
			 $(divImages).animate({ left: -(535*intAct3) }, {duration: duree,easing: easing});
			 
			 
		 })
    };
    //fonction de creation les bouton n umerotes
    function createBtn () {
    	var num=1;
    	var divBtn = '<div id="navS"></div>';
    	$(parent).append(divBtn);
    	$("#navS").append("<ul></ul>");
        for(var i =0 ;i<nombre_image;i++) {
        	num = i+1;
        	contBtns[i]='<li id=img'+num+'><a href="#">slide'+num+'</a></li>';
        	$("#navS ul").append(contBtns[i]);
        }
    }
    //fonction de creation les cercles de navigation
    function createCercle () {
    	var num=1;
    	var divCercle = '<div id="navS"><div id="cercles"></div></div>';
    	$("#header").append(divCercle);
        for(var i =0 ;i<nombre_image;i++) {
        	num = i+1;
        	//var srcCercle ="/site_media/images/cercle.png";
        	contBtns[i]='<div id=img'+num+' class="cercle"></div>';
        	$("#cercles").append(contBtns[i]);
        }
    }
    
    // fonction de creation les thumbnail de navigation
    function createThumb () {
    	var num=1;
    	var divBtn = '<div id="navS"> <div id="miniGallery"></div>  </div>';
    	$(parent).append(divBtn);
    	var nombreThumbSupporter = Math.round(widthImage /54);
    	var btnsMini;
    	if(nombre_image>nombreThumbSupporter) {
    		var btnsMini = '<div id="miniNext"></div>  <div id="miniPrev"></div>';
    	}
    	else {
    		btnsMini="";
    		nombreThumbs = nombre_image;
    		
    	}
    	$("#images").after(btnsMini);
    	$("#miniGallery").append("<ul></ul>");
    	var img ;
        for(var i =0 ;i<nombre_image;i++) {
        	num = i+1;
        	var srcThumb =$(parent).find("img").eq(i).attr("src");
        	contBtns[i]='<li id=img'+num+'><img src='+srcThumb+' /></li>';
        	$("#miniGallery ul").append(contBtns[i]);
        }
        navWidth = $("#navS").width();
        galleryWidth =$("#miniGallery").width();
    }
    //fonction de creation les Fleches de navigation 
    function createArrow () {
   	var num=1;
   	var divNext = '<div id="next"></div>';
   	var divprev = '<div id="prev"></div>';
   	$(parent).append(divNext);
   	$(parent).append(divprev);
   }
    
    function refAuto() {
    	if(autoPlay == 1) {
			refSetIntervale = setInterval(function(){
					nombreAuto++;
					if(nombreAuto>nombre_image-1) {
						nombreAuto=0;
					}
					autoPlaying();
					},duree*2.5);
		 }
    	else {
    		clearInterval(refSetIntervale);
    	}
    }
    function autoPlaying() {
    	$("#playS").hide();
		 $("#pauseS").show(); 
    	intAct= nombreAuto;
		pas=nombreAuto;
		miniPas=nombreAuto;
		intAct2=nombreAuto;
		intAct3=nombreAuto;
		var act = nombreAuto+1;
		 var title = $(parent).find("li").eq(pas).find("img").attr("title");
		 $(description).html(title);
		 //widthImage
		  $(divImages).animate({ left: -(535*pas) }, {duration: duree,easing: easing});
		  if(nombreThumbs >= nombre_image) {
			  var cond=0;
		  }
		  else {
			  $("#miniGallery").animate({ left: -((widthLi+lespadding)*pas+2+(widthLi+nombre_image))+(widthNavDefault/2) }, {duration: duree,easing: easing});
		  }
		  $(".cercle").addClass("cercle_normal");
			 if(cercle==1) {
				 $("#img"+act).addClass("cercle_active");
				 $(".cercle").removeClass("cercle_active");
				 $(".cercle").addClass("cercle_normale");
				 $("#img"+act).removeClass("cercle_normale");
				 $("#img"+act).addClass("cercle_active");	 
			 }
			 else {
				 $("#img"+act).css("opacity" , 1);
				 $("#navS li img").css("opacity" , 0.5);
				 $("#navS li a").css("opacity" , 0.5);
				 $("#img"+act).children("a").css("opacity" , 1);
				 $("#img"+act).children("img").css("opacity" , 1);
			 }
    }
})(jQuery);
