

/**
 * Compteur pour savoir où on en est dans les div
 */
global_compteur = new Array();


/**
 * Fonction pour le slider du prix
 */
function ajouterSliderPrix(mini , maxi){
	$(function() {
		$("#slider_prix").slider({
			range: true,
			min: mini,
			max: maxi,
			values: [mini, maxi],
			slide: function(event, ui) {
				$("#filtre-prix").val(ui.values[0] + ' - ' + ui.values[1]);
			}
		});
		$("#filtre-prix").val($("#slider_prix").slider("values", 0) + ' - ' + $("#slider_prix").slider("values", 1));
	});
}

/**
 * Affiche le filtre ajouté et créé le champ caché correspondant permettant de transmettre la valeur lors de la validation du formulaire
 * @param nom_gestion		Le nom de gestion de la caractéristique à laquelle correspond le filtre qu'on essaye d'ajouter
 * @param libelle			Le libellé à afficher en tête du div
 * @param multiselection	Indique s'il est possible de sélectionner plusieurs valeurs pour cette caractéristique
 * @param compteur_groupe	Si > 0 , on a une carac groupée et il faut donc nommer les div & span différemment
 */
function ajouterFiltre(nom_gestion , libelle , multiselection , compteur_groupe){
	
	//récupération de la valeur
//	var valeur = $("#"+ nom_gestion).val();
//	var affichage = $("#"+ nom_gestion + " :selected").text();
	
	var valeur = document.getElementById(nom_gestion + "_" + compteur_groupe).options[document.getElementById(nom_gestion + "_" + compteur_groupe).selectedIndex].value;
	var affichage = document.getElementById(nom_gestion + "_" + compteur_groupe).options[document.getElementById(nom_gestion + "_" + compteur_groupe).selectedIndex].text;
	var operateur = document.getElementById("operateur_" + nom_gestion + "_" + compteur_groupe);
	
	
	if(operateur){
		if(operateur.value == "gt"){
			affichage = "plus de " + affichage;
		}
		else if(operateur.value == "lt"){
			affichage = "moins de " + affichage;
		}
		else{
			affichage = "exactement " + affichage;
		}
	}
	
	if(typeof global_compteur[nom_gestion + "_" + compteur_groupe] == "undefined"){
		global_compteur[nom_gestion + "_" + compteur_groupe] = 1;
	}
	if(!multiselection){
		var compteur = 1;
	}
	else{
		var compteur = global_compteur[nom_gestion + "_" + compteur_groupe].toString();
	}
	
	//la suite n'a lieu que si on a bien choisi une valeur et non la ligne vide
	if(valeur.length > 0){
		//si on est en multiselection, on désactive le champ sélectionné
		if(multiselection){
//			$("#"+ nom_gestion + " :selected").attr("disabled" , "disabled");
			document.getElementById(nom_gestion + "_" + compteur_groupe).options[document.getElementById(nom_gestion + "_" + compteur_groupe).selectedIndex].disabled = true;
		}
		//on replace le curseur sur la ligne vide
//		$("#"+ nom_gestion).val("");
		document.getElementById(nom_gestion + "_" + compteur_groupe).selectedIndex = 0;
		//si le div de la caractéristique sélectionnée existe, on ajoute la valeur qui va bien à la suite, sinon on le créé ET on ajoute la valeur
		if(document.getElementById("div_filtres_" + nom_gestion + "_" + compteur_groupe)){
			//si on est en multiselection, on ajoute les valeurs les unes après les autres
			if(multiselection){
//				$("#div_filtres_" + nom_gestion).append(" " + codeFiltre(affichage , valeur , nom_gestion , compteur) );
				document.getElementById("div_filtres_" + nom_gestion + "_" + compteur_groupe).innerHTML += " " + codeFiltre(affichage , valeur , nom_gestion , compteur , operateur , compteur_groupe) ;
			}
			//sinon, on supprime le div et on le recréé, ce qui donne l'impression à l'utilisateur que la valeur est modifiée
			else{
//				$("#div_filtres_" + nom_gestion).empty();
//				$("#div_filtres_" + nom_gestion).append("<div id='div_filtres_" + nom_gestion + "'><strong>" + libelle + "</strong>: " + codeFiltre(affichage , valeur , nom_gestion , compteur) + "</div>");
				document.getElementById("div_filtres_" + nom_gestion + "_" + compteur_groupe).innerHTML = "<div id='div_filtres_" + nom_gestion + "_" + compteur_groupe + "'><strong>" + libelle + "</strong>: " + codeFiltre(affichage , valeur , nom_gestion , compteur , operateur , compteur_groupe) + "</div>";
			}
		}
		else{
//			$("#div_filtres").append("<div id='div_filtres_" + nom_gestion + "'><strong>" + libelle + "</strong>: " + codeFiltre(affichage , valeur , nom_gestion , compteur) + "</div>");
			document.getElementById("div_filtres").innerHTML += "<div id='div_filtres_" + nom_gestion + "_" + compteur_groupe + "'><strong>" + libelle + "</strong>: " + codeFiltre(affichage , valeur , nom_gestion , compteur , operateur , compteur_groupe) + "</div>";
		}
		
		if(multiselection){
			global_compteur[nom_gestion + "_" + compteur_groupe]++;
		}
	}
	
}


/**
 * Retourne le code à ajouter pour afficher un filtre
 * @param affichage			affichage de la caractéristique courante
 * @param nom_gestion		nom de gestion de la caractéristique courante
 * @param compteur			indice à donner au span d'affichage du texte en vue d'une hypothétique future suppression ainsi qu'au lien de suppression
 * @param operateur			selecteur de l'opérateur
 * @param compteur_groupe	permet de différentier les différentes occurences des valeurs pour un même groupe
 */
function codeFiltre(affichage , valeur , nom_gestion , compteur , operateur , compteur_groupe){
	var html = "<span id=\"span_" + nom_gestion + "_" + compteur_groupe + "_" + compteur + "\"><a href=\"javascript:supprimerFiltre('" + nom_gestion + "' , '" + compteur + "' , '" + valeur + "' , '" + compteur_groupe + "')\"><span style=\"color:red\">X</span> " + affichage + "</a>";
	
		html += "<input type='hidden' value='" + valeur + "' name='filtre-" + nom_gestion + "-" + compteur + "-" + compteur_groupe + "' />";
		if(operateur){
			html += "<input type='hidden' value='" + operateur.value + "' name='operateur-" + nom_gestion + "-" + compteur_groupe + "' />";
		}
	
	html += "</span>";
	return html;
}


/**
 * Supprime un filtre et le champ caché associé
 * @param affichage		affichage de la caractéristique courante
 * @param nom_gestion	nom de gestion de la caractéristique courante
 * @param compteur		indice à supprimer
 */
function supprimerFiltre(nom_gestion , compteur , valeur , compteur_groupe){
	
	//on supprime l'élement de la liste d'affichage
//	var enfant = document.getElementById("span_" + nom_gestion + "_" + compteur);
//	var parent = document.getElementById("div_filtres_" + nom_gestion);
//	parent.removeChild(enfant);
	$("#span_" + nom_gestion + "_" + compteur_groupe + "_" + compteur).remove();
	//dans le menu déroulant correspondant , on réactive l'option qu'on vient de supprimer
//	$("#"+ nom_gestion + " :contains(" + affichage + ")").removeAttr("disabled");
	for(i in document.getElementById(nom_gestion + "_" + compteur_groupe).options){
		if(document.getElementById(nom_gestion + "_" + compteur_groupe).options[i].value == valeur){
			document.getElementById(nom_gestion + "_" + compteur_groupe).options[i].disabled = false;
//			$("#"+ nom_gestion + " :option[@value='" + i + "']").removeAttr("disabled");
		}
	}
	
	//et on décrémente le compteur pour qu'on sache toujours combien il y a d'option activées pour cette carac

	global_compteur[nom_gestion + "_" + compteur_groupe]--;
	
	
	if(global_compteur[nom_gestion + "_" + compteur_groupe] < 2){
		enfant = document.getElementById("div_filtres_" + nom_gestion + "_" + compteur_groupe);
		parent = document.getElementById("div_filtres");
		parent.removeChild(enfant);
//		$("#div_filtres_" + nom_gestion).remove();
	}
}
