$(document).ready(function(){
	/*= GESTION DES PNG POUR IE*/
	$('img[@src$=.png]').ifixpng(); 	
		
	/*= GESTION DU MENU */
	var menuDeroulant = $("#menu").find("li");
	menuDeroulant.hover(function(){
		var monImage = $(this).find("img");
		var attrSelect = monImage.attr("class");
		var attrSrc = monImage.attr("src");
		if (attrSelect!="select")
			if(attrSrc)
				if(attrSrc.indexOf("_on.gif")==-1)
					monImage.attr("src",attrSrc.replace(".gif","_on.gif"));
		monImage.next().show();		
		},function(){
		var monImage = $(this).find("img");
		var attrSelect = monImage.attr("class");
		var attrSrc = monImage.attr("src");
		if (attrSelect!="select")			
			if(attrSrc)
				if(attrSrc.indexOf("_on.gif")!=-1)
					monImage.attr("src",attrSrc.replace("_on.gif",".gif"));
		monImage.next().hide();
		});	
		
	/*= GESTION DE L'ABCDAIRE */
	var abcdaire = $("#abcdaire");
	var lexique = $(".lexique");
	if(abcdaire)
		$("#mots_lettre_A").show();
	abcdaire.find(".cliquable").click(function(){
		var lexiqueId = "mots_"+$(this).attr("id");
		lexique.each(function(i, val) {
			if($(this).attr("id") === lexiqueId)
				$(this).show();
			else
				$(this).hide();
			});
		});

	/*= GESTION DE LA FAQ */
	var faq = $("#faq");
	faq.find("dt").click(function(){
		$(this).next().slideToggle();
		});		
		
	/*= GESTION IMPRIMER + ENVOYER A UN AMI*/
	var ulProduitHead = $("#produitHead").find("ul");
	var lienPopup = ulProduitHead.find("#popup");
	lienPopup.click( function() {
        window.open($(this).attr('href'),'','heigth=600,width=800,menubar=yes,scrollbars=yes,resizable=yes' );
        return false;
    	});
		
	/*= FILTRE AJAX DE L'ENCART QUOI COLLER (encart.cfm)*/
	var encart = $("#encart");
	encart.find("div.paveEncart:not('.paveEncartFoncer') img:first-child").bind("click",function(){
		$(this).next().slideToggle();
		});
	encart.find("#ficheProduitSearch").keyup(function(){
	    var critere = this.value; 
	    if(critere.length <= 0) {
	        // cache la boite de suggestion
	        $("#suggestions").hide();
	    }else{
	        $.post("/ajaxVoirFicheProduit.cfm", {critere: ""+critere+""}, function(data){
	            if(data.length >0) {
	                $("#suggestions").html(data).show().bind("click",function(){
						$(this).focus();
						var newText = $(this).find("option[value='"+this.value+"']").text();
						$(this).prev().prev().val(newText);
						$(this).hide();
						});
	            }else{
	            	$("#suggestions").hide();
	            	}
	        	});
	    	}
		});
	encart.find("#ouTrouverVilleSearch").keyup(function(){
	    var critere = this.value; 
	    var produitSaisi = encart.find("#ouTrouverProduitSearch").val();
	    if(critere.length <= 0) {
	        // cache la boite de suggestion
	        $("#suggestionsVille").hide();
	    }else{
	        $.post("/ajaxOuTrouver.cfm", {critere: ""+critere+"", type: "ville", produitSaisi: ""+produitSaisi+""}, function(data){
	            if(data.length >0) {
	                $("#suggestionsVille").html(data).show().bind("click",function(){
						$(this).focus();
						var newText = $(this).find("option[value='"+this.value+"']").text();
						$(this).prev().prev().val(newText);
						$(this).hide();
						});
	            }else{
	            	$("#suggestionsVille").hide();
	            	}
	        	});
	    	}
		});		
	encart.find("#ouTrouverProduitSearch").keyup(function(){
	    var critere = this.value;
	    var villeSaisie = encart.find("#ouTrouverVilleSearch").val(); 
	    if(critere.length <= 0) {
	        // cache la boite de suggestion
	        $("#suggestionsProduit").hide();
	    }else{
	        $.post("/ajaxOuTrouver.cfm", {critere: ""+critere+"", type: "produit", villeSaisie: ""+villeSaisie+""}, function(data){
	            if(data.length >0) {
	                $("#suggestionsProduit").html(data).show().bind("click",function(){
						$(this).focus();
						var newText = $(this).find("option[value='"+this.value+"']").text();
						$(this).prev().val(newText);
						$(this).hide();
						});
	            }else{
	            	$("#suggestionsProduit").hide();
	            	}
	        	});
	    	}
		});		
	encart.find("#resultatPdt").bind("click",function(){
		$(this).parent().submit();
		return false;
		});
	var selectQuoiColler = $(encart).find("#quoiColler > select");
	selectQuoiColler.change(function(){
		var caller = $(this).attr("id");
		var val = this.value;
		if(caller == "listeDomaine"){
			// supprime les valeurs des cases à cocher des listes qui seront reconstruites
			$(selectQuoiColler).each(function(){
				idTemp = $(this).attr("id");
				if((idTemp == "listeMateriau") || (idTemp == "listeSupport")){
					$(this).val("");
					}
				});	
			/* construction des listes déroulantes dépendantes */ 
			buildSelect("listeMateriau", val);
			buildSelect("listeSupport", val);
			}
		var parent = $(this).parent();
		var clauseWhere = "";
		var cpt =0;
		$.each(parent.find("select"), function(i, n){
			var currentId = $(n).attr("id");
			var currentValue = $(n).val();
			if(currentValue){
				if(clauseWhere!="")
					clauseWhere += "AND";			
				if(currentId == "listeDomaine"){
					clauseWhere += "ref_domaineEQ" + currentValue;
					cpt++;
					}
				else if(currentId == "listeMateriau"){
					clauseWhere += "ref_materiauxEQ" + currentValue;
					cpt++;
					}
				else if(currentId == "listeSupport"){		
					clauseWhere += "ref_supportEQ" + currentValue;
					cpt++;
					}	
				else if(currentId == "listeMarque"){
					clauseWhere += "ref_marqueEQ" + currentValue;
					cpt++;
					}
				}
		 });
		if (cpt >= 3){
			getNbProduit("resultatPdt",clauseWhere);
			$("#resultatPdt").show();
			}
		else
			$("#resultatPdt").hide();
		return false;		
		});
		
	/*= AJAX DE LA FICHE PRODUIT (quoiCollerResultats.cfm)*/
	var menuDetail = $("#menuDetail");
	var idProd = menuDetail.attr("rel");
	menuDetail.find("li").bind("click",function(){
		var currentId = $(this).attr("id");
		var divShowDetailVisible = $("div.showDetail:visible");
		if(divShowDetailVisible.attr("id")){
			divShowDetailVisible.hide();
			if (divShowDetailVisible.attr("id").split("_")[1] != currentId.split("_")[1]){
				switch(currentId){
					case 'menuDetail_emploi':
						$("#showDetail_emploi").slideDown("slow");
						break;
					case 'menuDetail_conservation':
						$("#showDetail_conservation").slideDown("slow");
						break;
					case 'menuDetail_conditionnement':	
						$("#showDetail_conditionnement").slideDown("slow");
						break;
					}
				}
			}else{
				switch(currentId){
					case 'menuDetail_emploi':
						$("#showDetail_emploi").slideDown("slow");
						break;
					case 'menuDetail_conservation':
						$("#showDetail_conservation").slideDown("slow");
						break;
					case 'menuDetail_conditionnement':	
						$("#showDetail_conditionnement").slideDown("slow");
						break;
					}			
			}
		});
		
	/*= FILTRE AJAX DU CONTENU QUOI COLLER (quoiColler.cfm)*/
	var formQuoiColler = $("#quoiCollerContenu");
	$(formQuoiColler).find("#resultatPdtRadio").bind("click",function(){
		formQuoiColler.submit();
		return false;
		});
	var radioQuoiColler = $(formQuoiColler).find("input[@type=radio]");
	radioQuoiColler.click(function(){
		//$(formQuoiColler).find("#resultatPdtRadio").show();
		var caller = $(this).parent().parent().attr("id");
		var val = this.value;
		if((caller == "listeDomaineRadio1") || (caller == "listeDomaineRadio2")){ 
			// supprime les valeurs des cases à cocher des listes qui seront reconstruites
			$(formQuoiColler).find(".listeRadio").find("input[@type=radio][@checked]").each(function(){
				$(this).removeAttr("checked");
				});
			$(formQuoiColler).find(".listeRadio:hidden").show();
			buildRadio("listeMateriauRadio", val);
			buildRadio("listeSupportRadio", val);
			}
		getNbProduitRadio("resultatPdtRadio",getClauseWhere());
		return true;				
		});	
	radioDomaineChecked = $("#conteneurListeDomaineRadio").find("input[@type=radio][@checked]");
	var val = radioDomaineChecked.val();
	if(val!=null){
		$(formQuoiColler).find(".listeRadio:hidden").show();
		buildRadio("listeMateriauRadio", val);
		buildRadio("listeSupportRadio", val);		
		}
		
	/*= traitement des résultats de recherche*/
	var liSearchCateg = $("#categRecherche").find("li");
	liSearchCateg.bind("click",function(){
		var divSearchCategRes = $("div.divSearch:visible");
		var currentId = $(this).attr("id");
		var actionId = currentId + "Result";
		if(divSearchCategRes){
			if (actionId!=divSearchCategRes.attr("id")){
				divSearchCategRes.hide();
				}			
			}
		$("#"+actionId).slideToggle("slow");
		});
});
 
/*= FONCTIONS AJAX */
function getXhr()
{
	var xhr = null; 
 	if(window.XMLHttpRequest) // Firefox et autres
    	xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject)
	{ // Internet Explorer 
    	try 
		{
	    	xhr = new ActiveXObject("Msxml2.XMLHTTP");
   		} 
		catch (e) 
		{
    		xhr = new ActiveXObject("Microsoft.XMLHTTP");
   		}
 	}
 	else 
	{ // XMLHttpRequest non support par le navigateur 
    	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	xhr = false; 
 	} 
 	return xhr;
}	
function getClauseWhere(){
	var clauseWhere = "";
	var cpt = 0;
	$("#quoiCollerContenu").find("input[@type=radio][@checked]").each(function(){
		var parentUl = $(this).parent().parent().attr("id");
		var currentValue = $(this).val();
		
		if(parentUl){
			if(clauseWhere!="")
				clauseWhere += "AND";			
			if((parentUl == "listeDomaineRadio1") || (parentUl == "listeDomaineRadio2")){
				clauseWhere += "ref_domaineEQ" + currentValue;
				cpt ++;
				}
			else if(parentUl == "listeMateriauRadio"){
				clauseWhere += "ref_materiauxEQ" + currentValue;
				cpt ++;
				}
			else if(parentUl == "listeSupportRadio"){		
				clauseWhere += "ref_supportEQ" + currentValue;
				cpt ++;
				}					
			if (cpt == 3)
				$("#resultatPdtRadio").show();
			else
				$("#resultatPdtRadio").hide();
			}
		}); 
	return clauseWhere;
	}

function buildSelect(target, val)
{
	var xhr = getXhr();
  		  
  	// On défini ce qu'on va faire quand on aura la réponse
  	xhr.onreadystatechange = function()
	{
	   	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
	   	if(xhr.readyState == 4 && xhr.status == 200)
		{
	    	$("#"+target).html(xhr.responseText);
	   	}
  	}
  	xhr.open("GET","/ajaxQuoiColler.cfm?action=buildSelect&target=" + target + "&domaine=" + val,true);
  	xhr.send(null);
}
function buildRadio(target, val)
{
	var xhr = getXhr();
  		  
  	// On défini ce qu'on va faire quand on aura la réponse
  	xhr.onreadystatechange = function()
	{
	   	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
	   	if(xhr.readyState == 4 && xhr.status == 200)
		{		
	    	$("#"+target).html(xhr.responseText);
	    	$("#"+target).find("input[@type=radio]").click(function(){
				getNbProduitRadio("resultatPdtRadio",getClauseWhere());
				});	
	   	}
  	}
  	xhr.open("GET","/ajaxQuoiColler.cfm?action=buildRadio&target=" + target + "&domaine=" + val,true);
  	xhr.send(null);
}

function getNbProduit(target, clauseWhere){
	var xhr = getXhr();
  		  
  	// On défini ce qu'on va faire quand on aura la réponse
  	xhr.onreadystatechange = function(){
	   	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
	   	if(xhr.readyState == 4 && xhr.status == 200)
		{
    		$("#"+target).html(xhr.responseText);
	   	}
  	}
	xhr.open("GET","/ajaxQuoiColler.cfm?action=getNbProduit&clauseWhere=" + clauseWhere,true);
	xhr.send(null);
}
function getNbProduitRadio(target, clauseWhere){
	var xhr = getXhr();
  		  
  	// On défini ce qu'on va faire quand on aura la réponse
  	xhr.onreadystatechange = function(){
	   	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
	   	if(xhr.readyState == 4 && xhr.status == 200)
		{
			$("#"+target).html(xhr.responseText);
	   	}
  	}
	xhr.open("GET","/ajaxQuoiColler.cfm?action=getNbProduitRadio&clauseWhere=" + clauseWhere,true);
	xhr.send(null);
}
function showDetail(action, id_produit){
	var xhr = getXhr();
  		  
  	// On défini ce qu'on va faire quand on aura la réponse
  	xhr.onreadystatechange = function(){
	   	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
	   	if(xhr.readyState == 4 && xhr.status == 200)
		{
			/*var description = $("#produitDescription");
			description.find("#showDetail").remove();
			$("#menuDetail").next().after(xhr.responseText);*/
			$("#showDetail").html(xhr.responseText);
	   	}
  	}
	xhr.open("GET","/ajaxShowDetail.cfm?action="+ action +"&id=" + id_produit,true);
	xhr.send(null);
}
