jQuery(document).ready(function(jQuery){
	jQuery.localScroll({duration: 800});
	
	/**** GESTION DU HEADER MENU *****/
	
	jQuery('#HeaderMiddle div').hover(function(){
		jQuery(this).parent('li').toggleClass('hover');
	});
	
	/**** GESTION DU MENU DE GAUCHE HOMME/FEMME *****/
	
	jQuery("#MiddleLeftMenu").tabs({ event: 'mouseover', fx: { height: 'toggle', opacity: 'toggle', duration: 'fast'} });
	jQuery("#MiddleLeftMenuItems div").tabs({ fx: { height: 'toggle', duration: 'fast'} });
	
	/****** GESTION DU HOVER PANIER ****/
	
	jQuery('#HeaderRight').hover(function(){
		jQuery('#Panier').queue(function() {
		  jQuery('#Panier').slideDown();
		  jQuery('#HeaderRight').addClass('active');
		  jQuery(this).dequeue();
		});
	},function(){
		jQuery('#Panier').queue(function() {
		  jQuery('#Panier').hide();
		  jQuery('#HeaderRight').removeClass('active');
		  jQuery(this).dequeue();
		});
	});
	
	/****** GESTION DES VISUS PRODUITS PAR ONGLET *******/
	jQuery('#ProduitsVisus > ul > li:first').ready(function(){
		jQuery(this).addClass('active');
	});
	jQuery('#ProduitsVisus > ul > li').click(function(){
		jQuery('#ProduitsVisus > ul > li').removeClass('active');
		jQuery(this).addClass('active');
		var selectItem = jQuery(this).prevAll().length + 1;
		
		jQuery('#ProduitsVisusItems ul.active').removeClass('active');
		jQuery('#ProduitsVisusItems ul:nth-child(' + selectItem + ')').fadeIn('slow').addClass('active').removeAttr('style');
		
	});
	
	/****** GESTION DE LA VISUALISATION D'UN PRODUIT GALLERY **********/
	jQuery('.gallery').ready(function(){
		if(jQuery('.gallery').length > 0){
			jQuery("#ImageBox .loading-first").remove();
			loadGallery();
			jQuery("#ImageBox .loading-gallery").remove();
		}
	}); // Execution au chargement de la page
	function loadGallery(){
		jQuery('.gallery').ready(function(){
			jQuery('.gallery .imgThumbnail img').click(function(){
				var selectItem = jQuery(this).prevAll().length + 1;
				jQuery('.gallery .imgNormal img.active').fadeOut('2000', function(){
					jQuery(this).removeClass('active');
					jQuery('.gallery .imgNormal img:nth-child(' + selectItem + ')').fadeIn('2000').addClass('active').removeAttr('style');
				});
				
			});
			jQuery("a[rel='lightbox']").colorbox({transition:"fade", current:"{current} image sur {total}"});
		});
			
		jQuery('.gallery').galleryView({
			panel_width: 328,
			panel_height: 430,
			frame_width: 42,
			frame_height: 122,
			transition_interval: 999999,
			filmstrip_size: 4,
			border: '0px',
			background_color: 'transparent',
			nav_theme: 'monbottier'
		});
		jQuery('.gallery .panel img').each(function(){
			var imageZoom = jQuery(this).next('.panel-overlay').text();
			var imgWidth = jQuery(this).width();
			var imgHeight = jQuery(this).height();
			jQuery(this).addimagezoom({
				loadinggif: 'loading.gif',
				zoomrange: [1, 1],
				magnifiersize: [324, 430],
				magnifierpos: 'right',
				largeimage: imageZoom //<-- No comma after last option!
			});
		});
	}
		
	/****** GESTION DES FIELDSET COLLAPSE **********/
	jQuery('.collapsible legend').click(function(){
		jQuery(this).next('.collapse-wrapper').slideToggle();
	});
	
	/****** GESTION DE RADIO IMAGES ****/
	jQuery('#radioImages img').click(function(){
		if(! jQuery(this).hasClass('selected')){ // Seulement si le bouton n'est pas d√©j√† activ√©
			// Suppression du bouton pr√©c√©demment coch√©
			var previous = jQuery('#radioImages .selected');
			previous.prev('input').attr('checked', '');
			previous.removeClass('selected');
			// S√©lection du bouton radio correspondant
			jQuery(this).addClass('selected');
			jQuery(this).prev('input').attr('checked', 'checked');
		}
	});
	
	/****** GESTION DE RADIO IMAGES ****/
	jQuery('.radiosCustom li').click(function(){
		if(! jQuery(this).hasClass('active')
				&& !jQuery(this).hasClass('outofstock')){ // Seulement si le bouton n'est pas d√©j√† activ√© et est disponible
			
			var parent = jQuery(this).parent();
			
			/** HACK pour gestion du cas du chargement de la page 
			C'est moche, mais c'est le plus propre trouv√© et √ßa marche **/
			if(parent.hasClass('size')){
				
				var $selectBoxId = "attribute80";
				if(jQuery('#' + $selectBoxId + ' option:selected').val() == ""){
				
					
					var $fieldColor = document.getElementById($selectBoxId); // Objet listbox
					var $input = jQuery(".radiosCustom.color li.active input");
					jQuery('#' + $selectBoxId + " option[value='" + $input.val() + "']").attr("selected","selected");
					fireEvent($fieldColor,'change'); // Simulation signal de mofication du champ
				}

			}/** **/
			
			// Suppression du bouton pr√©c√©demment coch√©
			parent.children('.active input').attr('checked', '');
			parent.children('.active').removeClass('active');
			// S√©lection du bouton radio correspondant
			jQuery(this).addClass('active');
			var $checkbox = jQuery(this).children('input');
			$checkbox.attr('checked', 'checked');
			// Mise √† jour du champ de couleur magento
			var $inputId = $checkbox.attr('id');
			var reg=new  RegExp("^.+-.+-", ""); // R√©cup√©ration de l'identifiant de l'attribut (string-productId-attributeId)
			var $inputNum = $inputId.replace(reg, ""); // R√©cup√©ration de l'identifiant de l'attribut
			var $selectBoxId = 'attribute' + $inputNum; // attribut id de la listbox
			var $fieldColor = document.getElementById($selectBoxId); // Objet listbox
			jQuery("#" + $selectBoxId + " option:selected").removeAttr("selected"); // Suppression des pr√©c√©dentes selections
			jQuery("#" + $selectBoxId + " option[value='" + $checkbox.val() + "']").attr("selected","selected"); // S√©lection du nouvel √©l√©ment
			
			if($fieldColor){
				fireEvent($fieldColor,'change'); // Simulation signal de mofication du champ
			}
			
			if(parent.hasClass('color')){ // Cas de modification de couleur
				// Affichage du loader
				jQuery("#ImageBox .loading-gallery").show();
				// V√©rification de la dispo des tailles
				// S√©lection de la r√©gion des tailles
				var $sizeUl = jQuery(".radiosCustom.size");
				// Marquer toutes les tailles comme indisponibles
				var $sizeLi = $sizeUl.children('li');
				$sizeLi.addClass('outofstock'); // ajout de la class outofstock aux li
				
				// D√©sactivation des inputs
				$sizeLi.removeClass('active');
				var $inputs = $sizeLi.children('input');
				$inputs.attr('checked', '');
				$inputs.attr('disabled', 'disabled');
				
				// R√©cup√©ration de la listbox correspondante √† la taille
				var $firstInputSize = $inputs.get(0);
				var $firstInputSizeId = $firstInputSize.id;
				var $firstInputSizeNum = $firstInputSizeId.replace(reg, ""); // R√©cup√©ration de l'identifiant de l'attribut
				var $listBoxTailleId = 'attribute' + $firstInputSizeNum; // attribut id de la listbox
				
				// V√©rification que des tailles existent encore pour la couleur
				if(jQuery("#" + $selectBoxId + " option[value='" + $checkbox.val() + "']").length > 0){
					
					// R√©cup√©ration de la liste des tailles disponibles dans la listbox mise √† jour
					jQuery("#" + $listBoxTailleId + " option").each(function(){
						var $value = jQuery(this).val();
						if($value != ""){
							// Activation des inputs pr√©sents dans la liste des tailles dispos
							var $inputSizeToSelect = jQuery("#size-" + $value + "-" + $firstInputSizeNum);
							
							$inputSizeToSelect.attr('disabled', "");
							$inputSizeToSelect.attr('selected', 'selected');
							$inputSizeToSelect.parent().removeClass('outofstock');
							
							jQuery('.btn-cart.AddPanier').removeClass('outofstock').attr('disabled', '');
							jQuery('.btn-cart.AddPanier .middle').html('Ajouter au panier');
						}
					});
				}else{
					jQuery("#" + $listBoxTailleId + " option").removeAttr("selected");
					jQuery("#" + $listBoxTailleId).val('');
					jQuery("#" + $listBoxTailleId).attr('disabled', 'disabled');
					var $fieldSize = document.getElementById($listBoxTailleId); // Objet listbox
					fireEvent($fieldSize,'change');
					
					jQuery('.btn-cart.AddPanier').addClass('outofstock').attr('disabled', 'disabled');
					jQuery('.btn-cart.AddPanier .middle').html('Couleur épuisée');

				}
								
				// Chargement des images du slideshow
				reg=new  RegExp("^.+-(.+)-.+$", ""); // R√©cup√©ration de l'identifiant du produit (string-productId-attributeId)
				var product_id=$inputId.replace(reg, "$1");
    		var color_id=0;
   
   			// Appel du controller pour la mise √† jour du slider
    		jQuery.get(
    			$BASE_URL+'sliderswitch/index/index/prod_id/'+product_id,
    			{},
					function(data){
						jQuery("#ImageBox").html(data);
						updateProduct();
						// Masque du loader
						jQuery("#ImageBox .loading-gallery").hide();
					},
					"html"
				); 
			}else{ // Choix de la taille
			
				jQuery("input[name='cpid']").val(jQuery("input[name='product']").val()); // MIse a jour du produit s√©lectionn√©
			}
		}
	});
	
	
	jQuery('.radiosCustom :checked').each(function(){
		var liParent = jQuery(this).parent('li');
		if(! liParent.hasClass('active')){
			jQuery(this).parent('li').parent('ul').children('li.active').removeClass('active');
			liParent.addClass('active');
		}
	});
	
	/***** PANNEAU DE RECHERCHE AFFINEE ***/
	/** Affichage du panneau de recherche **/
	jQuery('#LinkAffinerRecherche').click(function(){
		jQuery('#AfficherRecherche').slideToggle();
	});
	jQuery('.AffinerRechercheClose').click(function(){
		jQuery('#AfficherRecherche').slideToggle(); 
	});
	
	function updateProduct(){
		loadGallery();
	}
	
	jQuery('#AffinerRecherche').submit(function(){
		// Prise en compte des cases de style
		var $delimiter = "";
		var $field_cat = jQuery('.field_cat');
		jQuery('.field_cats:checked').each(function(){
			$field_cat.val($field_cat.val() + $delimiter + jQuery(this).val());
			jQuery(this).val('');
			$delimiter = ";";
		});
		
		// Prise en compte des tailles
		$delimiter = "";
		var $field_size = jQuery('.field_size');
		jQuery('.field_sizes:checked').each(function(){
			$field_size.val($field_size.val() + $delimiter + jQuery(this).val());
			jQuery(this).val('');
			$delimiter = ";";
		});
	});
	
	/****** Gestion menu FAQ *****/
	jQuery('.block dt a').click(function(){
		jQuery(this).parent().next('dd').slideToggle();
	});
	
	/****** Gestion du slide en page d'accueil ********/
	if(jQuery("#flowpanes").length){
		jQuery("#flowpanes").scrollable({ circular: true, mousewheel: false }).autoscroll({ 
	
		autoplay: true,
		interval: 5000
	
		});
	}
	
	// S√©lection de la premiere couleur
	if(document.getElementById('firstColor') != null){
		var $firstColor = document.getElementById('firstColor');
		fireEvent($firstColor,'click');
	}
	
	/* Simulation d'evenements */
	function fireEvent(element,event){
	    if (jQuery.browser.version < 9 && document.createEventObject){
	        // dispatch for IE
	        var evt = document.createEventObject();
	        return element.fireEvent('on'+event,evt)
	    }
	    else{
	        // dispatch for firefox + others
	        var evt = document.createEvent("HTMLEvents");
	        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
	        return !element.dispatchEvent(evt);
	    }
	}
});

