ROQ.getNextSibling = function(elt) {
	if(elt.nextSibling.nodeType==3) {
		return elt.nextSibling.nextSibling; // Moz. Opera
	} else {
		return elt.nextSibling; // IE
	}
}

var globalFamily;
var globalLang;
ROQ.initFilters = function (noclose){
           
	//noclose est passé à true pour empêcher fermeture des subs
	ROQ.noclose = noclose;
	//var Array mise à jour dans chaque "include" filters pour gestion on/off des boutons
	var filters_arr = new Array();
	//init var rajoutées à l'appel AJAX
	//var initAjaxVar = "industry-"+globalIndustry+"/family-"+globalFamily+"/page-1/filters-";
	//var ajaxvars = initAjaxVar;
	
	var defaultAjaxVar = "lang-"+globalLang+"/industry-"+globalIndustry+"/family-"+globalFamily+"/page-1/"; //ajout spécial
	var initAjaxVar = "lang-"+globalLang+"/industry-"+globalIndustry+"/family-"+globalFamily+"/page-1/filters-";
	/*var initAjaxVar = "industry-"+globalIndustry+"/family-"+globalFamily+"/page-1/filters-";*/
	var ajaxvars = initAjaxVar;
	
	var separ = "_"; //separateur entre les id envoyés par AJAX au PHP
	//on initialise d'abord les scrolls pour que la hauteur complète avec items "plus" déployés soit prise en compte
	ROQ.initScrolls();
	//init des vars de chaque item
	//boxid (pour retrouver la box ainsi que l'objet scroll correspondant), 
	//isSub pour identifier les subs, 
	//clicked qui indique si item est cliqué et
	//off pour gestion itérative de l'état off
	if (document.getElementById("filters")) {
	
		var filtul = document.getElementById("filters").getElementsByTagName("ul");
		for(var i=0; i<filtul.length; i++){
			var ul = filtul[i];
			var boxid = ul.parentNode.parentNode.id;
			if(boxid != undefined && boxid != ""){
				var ula = ul.getElementsByTagName("a");
				for(var u=0; u<ula.length; u++){
					var itema = ula[u];
					itema.off = 0;
					itema.clicked = false;
					itema.boxid = boxid;
					//on cache les subs
					if(itema.className.indexOf("plus") >= 0){
						if(ROQ.noclose != true) {
							ROQ.getNextSibling(itema).style.display = "none";
						}
					}
				}
			}
			else{
			
				//c'est un ul de subs
				var ula = ul.getElementsByTagName("a");
				for(var u=0; u<ula.length; u++){
					ula[u].isSub = true;
				}
			}
		}
		//init des onclick des items
		var filta = document.getElementById("filters").getElementsByTagName("a");
		for(var i=0; i<filta.length; i++){
			var item = filta[i];
			//indice de chaque lien (pour retrouver le bon élément du Array Argonautes filters_arr
			item.indice = i;	
			item.onclick = function(fromparent){//fromparent sert à indiquer si le onclick est déclenché par un autre item (pour empêcher l'appel AJAX en particulier)
				//on n'execute les actions QUE si ROQ.gOFF est false pour éviter les plantages machine
				// ROQ.gOFF est passé à true au lancement de l'appel AJAX et repassé à false au retour du serveur
				if(ROQ.gOFF == false){
				document.getElementById("chooseSub").style.display = "none";
					//alert(" " + this.boxid + " this.id = " + this.id + "\n fromparent = " + fromparent);
					if(this.clicked){
						//l'item était clicked
						this.clicked = false;
						this.className = this.className.replace(new RegExp("clicked\\b"), "");
						//cas item "plus" avec subs
						if(this.className.indexOf("plus") >= 0){
							//on cache les subs
							document.getElementById("chooseSub").style.display = "none";
							if(ROQ.noclose != true) ROQ.getNextSibling(this).style.display = "none";
							//Maj maxtop scrollbox
							document.getElementById(this.boxid).scrollObj.setMaxtop();
							//dé-selection des ss-menus cliqués
							var ssmenus = ROQ.getNextSibling(this).getElementsByTagName("a");
							for(var u=0; u<ssmenus.length; u++){
								ssmenu = ssmenus[u];
								if(ssmenu.clicked){
									//maj var AJAX
									ajaxvars = ajaxvars.replace(ssmenu.id + separ, separ);
									//appel onclick pour "décliquer" (fromparent est true)
									ssmenu.onclick(true);
									
								}
							}
						}
							
						//maj var AJAX
						ajaxvars = ajaxvars.replace(this.id + separ, separ);
						if(ajaxvars.indexOf(separ + separ) >= 0) ajaxvars = ajaxvars.replace(new RegExp(separ + separ, "g"), separ);
						if(ajaxvars.indexOf(initAjaxVar + separ) >= 0) ajaxvars = ajaxvars.replace(initAjaxVar + separ, initAjaxVar);
						if(fromparent != true && !this.isSub) {
						
						document.getElementById(this.boxid).clickedItem = null;
						}
						//gestion des etats des boutons stockés dans Array Argonautes filters_arr
						ROQ.gestionBoxesOff(this.id);
					}
					else{
						//l'item n'était pas clicked
						if(this.off > 0) {
							//l'item était OFF, on le passe ON
							this.className = this.className.replace(new RegExp("off", "g"), "");
							
							//on ré-initialise tous les filtres cliqués
							var boutonsOn = ajaxvars.replace(initAjaxVar, "").split(separ);
							for(var i=0; i<boutonsOn.length; i++){
								zeid = boutonsOn[i];
								if(zeid != ""){
									elt = document.getElementById(zeid);
									// on annule les clickedItem des box
									document.getElementById(elt.boxid).clickedItem = null;
									

									// on déclique l'item
									if(elt.clicked) elt.onclick(true);
								}
							}
							//maj var AJAX
							//on supprime tous les critères sélectionnés et on rajoute juste celui du bouton cliqué
							ajaxvars = initAjaxVar + this.id + separ;
						}
						else{
							ajaxvars += this.id + separ;
						}
						//déclic de l'éventuel item clicked de la même boite
						//uniquement si le clic n'est pas déclenché par un autre item et si l'item n'est pas un sub
						if(fromparent != true && !this.isSub){
							var zeBox = document.getElementById(this.boxid);
							if(zeBox.clickedItem){
								document.getElementById(zeBox.clickedItem).onclick(true);
							}
							zeBox.clickedItem = this.id;
						}
						this.clicked = true;
						this.className += " clicked";
						if(this.className.indexOf("plus") >= 0){
							////on force les subs en ON ?
							/* non !
							var subs_arr = this.nextSibling.nextSibling.getElementsByTagName("a");
							for(var i=0; i<subs_arr.length; i++){
								subelt = subs_arr[i];
								subelt.off = 0;
								subelt.className = subelt.className.replace(new RegExp("off", "g"), "");
							}
							*/
							
							// Suite à brief_product_finder.ppt
							/*if(globalLang == 'FR')
							{
								document.getElementById("chooseSub").innerHTML = "Sélectionner une sous-catégorie :";
							}
							else
							{
								document.getElementById("chooseSub").innerHTML = "Please select a sub-category.";
							}
							document.getElementById("chooseSub").style.display = "block";*/
							
							//affichage subs
							ROQ.getNextSibling(this).style.display = "block";
							//Maj maxtop scrollbox
							document.getElementById(this.boxid).scrollObj.setMaxtop();
						}
						
						//gestion des etats des boutons stockés dans Array Argonautes filters_arr
						ROQ.gestionBoxesOn(this.id);
					}
					
					// FIX
					re = /.*\/filters-/;
					str = re.exec(ajaxvars);
					
					if (ajaxvars == str) {
					
						ajaxvars = defaultAjaxVar;
					}
					
					re = /.*\/([a-z]{2}[0-9]+)/;
					str = re.exec(ajaxvars);
					
					if (str != null) {
					
						ajaxvars = initAjaxVar+str[1]+"_";
						//alert(ajaxvars+" | "+str[1]);
					}
					
					//// appel ajax 
					if(fromparent != true){
						//blocage autres tombs pour éviter plantage machine
						ROQ.gOFF = true;
						//alert("ajaxvars = " + ajaxvars.substring(0, ajaxvars.length - separ.length));

						if(ajaxvars.length > 36)
						ROQ.makeRequest('/product_finder/delia-CMS/resultats/' + ajaxvars.substring(0, ajaxvars.length - separ.length) + '/', 'resultsCib', 'HTML', true, true, ROQ.deblocage);	
						else{ // -XX/
							ROQ.makeRequest('/product_finder/delia-CMS/resultats/' + ajaxvars.substring(0, ajaxvars.length - separ.length) + '/', 'resultsCib', 'HTML', true, true, ROQ.deblocage);
							//ROQ.makeRequest('/product_finder/delia-CMS/resultats/' + ajaxvars.substring(0, ajaxvars.length - separ.length) + '-XX/', 'resultsCib', 'HTML', true, true, ROQ.deblocage);
						}
						/*
						ROQ.makeRequest('/product_finder/delia-CMS/resultats/' + ajaxvars.substring(0, ajaxvars.length - separ.length) + '/', 'resultsCib', 'HTML', true, true, ROQ.deblocage);	
						else{
						ROQ.makeRequest('/product_finder/delia-CMS/resultats/' + ajaxvars.substring(0, ajaxvars.length - separ.length) + '-XX/', 'resultsCib', 'HTML', true, true, ROQ.deblocage);	
						
						}*/
						return false;
					}
				}
			}
		}
	}
	//on mêt à jour les maxtops des scrolls
	ROQ.initMaxtopScrolls();
}
ROQ.deblocage = function (){
	ROQ.gOFF = false;
}

ROQ.gestionBoxesOn = function (id){
	//alert("gestionBoxesOn(id), id = " + id);
	
	var zeOne = document.getElementById(id);
	zeOne.off = 0;
	zeOne.className = zeOne.className.replace(new RegExp("off", "g"), "");
	
	
	//alert("zeOne = " + zeOne + " && zeOne.indice = " + zeOne.indice);
	//recup bonne ligne array filters_arr
	which = filters_arr[zeOne.indice];
	//off
	var declic = new Array();
	for(var u=0; u<which[2].length; u++){
		//alert("passage OFF, which[1][n] = " + which[2][u]);
		elt = document.getElementById(which[2][u]);
		elt.off ++;
		elt.className = elt.className.replace(new RegExp("off", "g"), "");
		elt.className += " off";
			
		/* état off est restrictif donc le cas d'un bouton cliqué qui passe OFF est (normalement) impossible... mais je laisse le code ! */
		if(elt.className.indexOf("clicked")>=0){
			elt.className = elt.className.replace(new RegExp("clicked", "g"), "");
			declic.push(elt);	
		}
		
	}
	var totalShowedItem = 0;
			var childListElements = zeOne.parentNode.getElementsByTagName("li");
			for(v = 0; v < childListElements.length; v++ ){
					childLinkElements = childListElements[v].getElementsByTagName("a");
					for(w = 0; w < childLinkElements.length; w++ ){
							if(childLinkElements[w].className != "off"){
								totalShowedItem++;
							}
					}
			}
			if(totalShowedItem == 0){
				document.getElementById("chooseSub").style.display = "none";
			}
			
	/* état off est restrictif donc le cas d'un bouton cliqué qui passe OFF est (normalement) impossible... mais je laisse le code ! */
	for(var x=0; x<declic.length; x++){
		if(declic[x].clicked) declic[x].onclick(true);
	}
	declic = new Array();
	
}
ROQ.gestionBoxesOff = function (id){

	var zeOne = document.getElementById(id);
	//recup bonne ligne array filters_arr
	which = filters_arr[zeOne.indice];
	//off
	
	for(var u=0; u<which[2].length; u++){
		elt = document.getElementById(which[2][u]);
		if(elt.off > 0)
		{		
				
			elt.off --;
			
		}
		if(elt.off == 0){
			elt.className = elt.className.replace(new RegExp("off", "g"), "");
		}
	}
}