jQuery(document).ready(function() {
	var posGallerie = 0; // La position absolue de la gallerie
	var posSlider = 0; // La position absolue du slider de la gallerie
	var largeurGallerie = 574; // La largeur dont va scroller la gallerie
	var largeurSlider = 163; // La largeur dont va scroller le slider
	var childrensGallerie = $("#gallerie ul").children(); // Variable contenant les objets des LI de la gallerie
	var childrensSlider = $(".slider_gallerie ul").children(); // Variable contenant les objets des LI du slider
	var nbChildrens = childrensGallerie.length;
	var nbSlider = 3; // Le nombre de promo visible dans le slider
	var largeurTotal = 0; // Lageur total pour chaqune des promos
	var promoSelected = 1; // La promo du slider qui est selectionné
	var gallerieToSlider = 0; // La variable qui synchronisque la gallerie et le carrousel
	var oldPositionGalToSlid = 0; // L'ancienne position qui va prendre le slider par rapport à la gallerie
	var newPositionGalToSlid = 0; // La nouvelle position qui va prendre le slider par rapport à la gallerie
	var newPosition = 0; // La nouvelle position de la gallerie après avoir cliqué sur le thumbnail 
	var numSlider = 0; // Le numéro de la page du slider
	var numPromo = 0; // Le numéro de la promo sélectionnée du slider
	var posPromo = 0; // La nouvelle position de la promo selectionnée à l'intérieur du slider
	var nbSlide = 0; // Le nombre de case à slider
	var fullURL = parent.document.URL; // L'url 
	var paramString = fullURL.substring(fullURL.indexOf('?')+1, fullURL.length); // La string après le ? dans l'url
	var params = paramString.split("&"); // Tableau contenant toutes les strings passé en paramêtre et séparées par le signe &	
		
	// 'Float' les promos de la GALLERIE à l'intérieur du conteneur	
	jQuery.each(childrensGallerie, function() {
     	$(this).css("position","absolute");
		$(this).css("left",largeurTotal);
		largeurTotal += largeurGallerie;
    });
	// Réinitialise la largeur total 
	largeurTotal = 0;
	// 'Float' les promos du SLIDER à l'intérieur du conteneur	
	jQuery.each(childrensSlider, function() {
     	$(this).css("position","absolute");
		$(this).css("left",largeurTotal);
		largeurTotal += largeurSlider;
    });
	
	// Setting par défault
	$(".arrowLeft, .arrowSlider_left").css("display","none");
	$(".arrowSlider_right").css("display","block");;
	$(".slider_gallerie ul li:first-child .inside_promoGallerie").addClass("slider_selected");
	if(childrensGallerie.length <= nbSlider){
		$(".arrowSlider_left, .arrowSlider_right").css("display","none");
		if(childrensGallerie.length <= 1){
			$(".arrowLeft, .arrowRight").css("display","none");
		}	
	}
	
	/*
	  ------- GALLERIE --------
	*/
	// Flèche gauche
	$(".arrowLeft").click(function () {
		// Si la gallerie n'est pas à sa première promo
		if(posGallerie <0){
			posGallerie += largeurGallerie; // Nouvelle position de la gallerie
			$("#gallerie ul").animate( { left:posGallerie }); // Anim la gallerie
			
			// Ajoute l'état rollover à l'item du slider qui est syncro avec la gallerie		
			gallerieToSlider = (posGallerie * -1)/largeurGallerie; // Détermine le numéro de la promo
			$(".slider_gallerie ul li .inside_promoGallerie").removeClass("slider_selected");
			$(".slider_gallerie ul li .inside_promoGallerie").eq(gallerieToSlider).addClass("slider_selected");
			
			// Détermine l'endroit dans le slider où va être la promo après le slide
			oldPositionGalToSlid = parseInt($(".slider_gallerie ul").css("left"));
			numSlider = ((oldPositionGalToSlid / largeurSlider) *-1); // La position actuel du slider
			numPromo = gallerieToSlider + 1; // Le numéro de la promo qui sera affichée
			posPromo = numPromo - numSlider; // Le numéro de la place de la nouvelle promo dans le slider
			
			// Si le slider n'est pas au début, il slide vers la gauche
			if(posPromo <= 0){
				nbSlide = (posPromo+2) - nbSlider;
				newPositionGalToSlid = oldPositionGalToSlid - (largeurSlider*nbSlide);
				posSlider = newPositionGalToSlid;
				$(".slider_gallerie ul").animate( { left:newPositionGalToSlid });
			}else{
				if(posPromo > nbSlider){
					nbSlide = posPromo - (nbSlider);
					newPositionGalToSlid = oldPositionGalToSlid - (largeurSlider*nbSlide);
					posSlider = newPositionGalToSlid;
					$(".slider_gallerie ul").animate( { left:newPositionGalToSlid });
				}
			}
			
			// Enlève la flèche gauche du carrousel si il est à sa première page
			if(numPromo <= nbSlider && posSlider == 0){
				$(".arrowSlider_left").css("display","none");
				if(numSlider == 0 && childrensGallerie.length <= nbSlider){
					$(".arrowSlider_right").css("display","none");
				}else{
					$(".arrowSlider_right").css("display","block");
				}
			}else{
				if(posSlider <= ((childrensGallerie.length-nbSlider)*largeurSlider)*-1){
					$(".arrowSlider_right").css("display","none");
				}else{
					$(".arrowSlider_right").css("display","block");
				}
				$(".arrowSlider_left").css("display","block");
			}
			
			// Enlève la flèche gauche de la gallerie si il est à sa première page
			if(posGallerie == 0){
				$(".arrowLeft").css("display","none");
				$(".arrowRight").css("display","block");
			}else{
				$(".arrowLeft, .arrowRight").css("display","block");
			}
		}else{
			$(".arrowLeft").css("display","none");
		}
	});
	// Flèche droite
	$(".arrowRight").click(function () {
		// Si la gallerie n'est pas à sa dernière promo
		if(posGallerie > ((childrensGallerie.length-1) * largeurGallerie)*-1){
			posGallerie -= largeurGallerie; // Nouvelle position de la gallerie
			$("#gallerie ul").animate( { left:posGallerie }); // Anim la gallerie
			
			// Ajoute l'état rollover à l'item du slider qui est syncro avec la gallerie
			gallerieToSlider = (posGallerie * -1)/largeurGallerie; // Détermine le numéro de la promo
			$(".slider_gallerie ul li .inside_promoGallerie").removeClass("slider_selected");
			$(".slider_gallerie ul li .inside_promoGallerie").eq(gallerieToSlider).addClass("slider_selected");
			
			// Détermine l'endroit dans le slider où va être la promo après le slide
			oldPositionGalToSlid = parseInt($(".slider_gallerie ul").css("left"));
			numSlider = ((oldPositionGalToSlid / largeurSlider) *-1); // La position actuel du slider
			numPromo = gallerieToSlider + 1; // Le numéro de la promo qui sera affichée
			posPromo = numPromo - numSlider; // Le numéro de la place de la nouvelle promo dans le slider
			
			// Si le slider n'est pas à la fin, il slide vers la droite
			if(posPromo > nbSlider){
				nbSlide = posPromo - nbSlider;
				newPositionGalToSlid = oldPositionGalToSlid - (largeurSlider*nbSlide);
				posSlider = newPositionGalToSlid;
				$(".slider_gallerie ul").animate( { left:newPositionGalToSlid });
			}else{
				if(posPromo <= 0){
					nbSlide = posPromo - (nbSlider-2);
					newPositionGalToSlid = oldPositionGalToSlid - (largeurSlider*nbSlide);
					posSlider = newPositionGalToSlid;
					$(".slider_gallerie ul").animate( { left:newPositionGalToSlid });
				}
			}
				
			// Enlève la flèche droite du carrousel si il est à sa dernière page
			if(numPromo == childrensGallerie.length && posSlider >= ((childrensGallerie.length-nbSlider)*largeurSlider)*-1){
				$(".arrowSlider_right").css("display","none");
				$(".arrowSlider_rightOver").css("display","block");
				if(numSlider == 0 && childrensGallerie.length <= nbSlider){
					$(".arrowSlider_left").css("display","none");
				}else{
					$(".arrowSlider_left").css("display","block");
				}
			}else{
				if(posSlider >= 0){
					$(".arrowSlider_left").css("display","none");
				}else{
					$(".arrowSlider_left").css("display","block");
				}
				if(numSlider == 0 && childrensGallerie.length <= nbSlider){
					$(".arrowSlider_right").css("display","none");
				}else{
					$(".arrowSlider_right").css("display","block");
				}
			}
			
			// Enlève la flèche droite de la gallerie si il est à sa dernière page
			if(posGallerie == ((childrensGallerie.length-1) * largeurGallerie)*-1){
				$(".arrowLeft").css("display","block");
				$(".arrowRight").css("display","none");
			}else{
				$(".arrowLeft, .arrowRight").css("display","block");
			}
		}else{
			$(".arrowRight").css("display","none");
		}
	});
	
	/*
	  ------- SLIDER --------
	*/
	// Flèche gauche
	$(".arrowSlider_left").click(function () {
		if(posSlider <0){
			posSlider += largeurSlider;
			$(".slider_gallerie ul").animate( { left:posSlider });
			if(posSlider == 0){
				$(".arrowSlider_left").css("display","none");
				$(".arrowSlider_right").css("display","block");
			}else{
				$(".arrowSlider_left, .arrowSlider_right").css("display","block");
			}
		}else{
			$(".arrowSlider_left").css("display","none");
		}
	});
	// Flèche droite
	$(".arrowSlider_right").click(function () {
		if(posSlider > ((childrensSlider.length-nbSlider) * largeurSlider)*-1){
			posSlider -= largeurSlider;
			$(".slider_gallerie ul").animate( { left:posSlider });
			if(posSlider == ((childrensSlider.length-nbSlider) * largeurSlider)*-1){
				$(".arrowSlider_left").css("display","block");
				$(".arrowSlider_right").css("display","none");
			}else{
				$(".arrowSlider_left, .arrowSlider_right").css("display","block");
			}
		}else{
			$(".arrowSlider_right").css("display","none");
		}
	});
	// Clique promos slider
	$(".slider_gallerie ul").children().click(function () {
		promoSelected = $(".slider_gallerie ul").children().index(this);
		newPosition = (promoSelected * largeurGallerie)*-1;
		posGallerie = newPosition;
		oldPositionGalToSlid = parseInt($(".slider_gallerie ul").css("left"));
		numSlider = ((oldPositionGalToSlid / largeurSlider) *-1); // La position actuel du slider
		$("#gallerie ul").animate( { left:newPosition });
		$(".slider_gallerie ul li .inside_promoGallerie").removeClass("slider_selected");
		$(".slider_gallerie ul li").children().eq(promoSelected).addClass("slider_selected");
		if(promoSelected == 0){
			$(".arrowSlider_left, .arrowLeft").css("display","none");			
			$(".arrowRight").css("display","block");
			
			if(numSlider == 0 && childrensGallerie.length <= nbSlider){
				$(".arrowSlider_right").css("display","none");
			}else{			
				$(".arrowSlider_right").css("display","block");
			}
		}else{
			if( promoSelected == (childrensGallerie.length-1)){
				$(".arrowLeft").css("display","block");
				$(".arrowRight, .arrowSlider_right").css("display","none");

				if(numSlider == 0 && childrensGallerie.length <= nbSlider){
					$(".arrowSlider_left").css("display","none");
				}else{
					$(".arrowSlider_left").css("display","block");
				}
			}else{			
				$(".arrowLeft, .arrowRight").css("display","block");
			}
		}
	});
	
	// Regarde si il y a un numéro de promo passé en paramêtre et achemine la gallerie et son slider à la bonne promo
	i=0
	while(params[i] != null)
	{
		paramName = params[i].substring(0, params[i].indexOf('='))
		paramValue = params[i].substring(params[i].indexOf('=')+1, params[i].length)
		
		if(paramName == "news")
		{
			if(paramValue > 0 && paramValue <= nbChildrens){
				paramValue -= 1;
				posGallerie =( paramValue*largeurGallerie)*-1;
				//alert(posGallerie);
				$("#gallerie ul").animate( { left:posGallerie }); // Anim la gallerie
				// Ajoute l'état rollover à l'item du slider qui est syncro avec la gallerie		
				gallerieToSlider = (posGallerie * -1)/largeurGallerie; // Détermine le numéro de la promo
				$(".slider_gallerie ul li .inside_promoGallerie").removeClass("slider_selected");
				$(".slider_gallerie ul li .inside_promoGallerie").eq(paramValue).addClass("slider_selected");
				
				// Détermine l'endroit dans le slider où va être la promo après le slide
				oldPositionGalToSlid = parseInt($(".slider_gallerie ul").css("left"));
				numSlider = ((oldPositionGalToSlid / largeurSlider) *-1); // La position actuel du slider
				numPromo = paramValue + 1; // Le numéro de la promo qui sera affichée
				posPromo = numPromo - numSlider; // Le numéro de la place de la nouvelle promo dans le slider
				
				// Si le slider n'est pas au début, il slide vers la gauche
				if(posPromo <= 0){
					nbSlide = (posPromo+2) - nbSlider;
					newPositionGalToSlid = oldPositionGalToSlid - (largeurSlider*nbSlide);
					posSlider = newPositionGalToSlid;
					$(".slider_gallerie ul").animate( { left:newPositionGalToSlid });
				}else{
					if(posPromo > nbSlider){
						nbSlide = posPromo - (nbSlider);
						newPositionGalToSlid = oldPositionGalToSlid - (largeurSlider*nbSlide);
						posSlider = newPositionGalToSlid;
						$(".slider_gallerie ul").animate( { left:newPositionGalToSlid });
					}
				}
				// Enlève la flèche gauche du carrousel si il est à sa première page
				if(numPromo <= nbSlider && posSlider == 0){
					$(".arrowSlider_left").css("display","none");
					if(numSlider == 0 && childrensGallerie.length <= nbSlider){
						$(".arrowSlider_right").css("display","none");
					}else{
						$(".arrowSlider_right").css("display","block");
					}
				}else{
					if(posSlider <= ((childrensGallerie.length-nbSlider)*largeurSlider)*-1){
						$(".arrowSlider_right").css("display","none");
					}else{
						$(".arrowSlider_right").css("display","block");
					}
					$(".arrowSlider_left").css("display","block");
				}
				
				// Enlève la flèche gauche de la gallerie si il est à sa première page
				if(posGallerie == 0){
					$(".arrowLeft").css("display","none");
					$(".arrowRight").css("display","block");
				}else{
					$(".arrowLeft, .arrowRight").css("display","block");
				}
				
				if(paramValue == childrensGallerie.length-1){
					$(".arrowRight").css("display","none");
				}
			}
		}
		i++
	}
});