//var gOFF pour bloquer click tant aue pas de retour serveur...
ROQ.gOFF = false;

ROQ.selectApplication = function(){
	ROQ.initFilters();

	re = /application-([0-9]*)/;
	str = re.exec(document.location.href);
	finalString = "ta"+str[1];
	if(document.getElementById(finalString)){
	var element = document.getElementById(finalString);
	}else{
	var element = document.getElementById("tas"+str[1]);
	}
	
	if(element)
	{
		if(document.all) {
			element.click();
		}
		else{
		clickevent = document.createEvent("MouseEvents");
		clickevent.initEvent("click", true, true);
		element.dispatchEvent(clickevent);
		}
	}
}

ROQ.selectFunctionality = function(){
	ROQ.initFilters();

	re = /functionality-([0-9]*)/;
	str = re.exec(document.location.href);
	finalString = "fu"+str[1];
	if(document.getElementById(finalString)){
	var element = document.getElementById(finalString);
	}else{
	var element = document.getElementById("fus"+str[1]);
	}
	
	if(element)
	{
		if(document.all) {
			element.click();
		}
		else{
		clickevent = document.createEvent("MouseEvents");
		clickevent.initEvent("click", true, true);
		element.dispatchEvent(clickevent);
		}
	}
}

ROQ.getNextSibling = function(elt) {
	if(elt.nextSibling.nodeType==3) {
		return elt.nextSibling.nextSibling; // Moz. Opera
	} else {
		return elt.nextSibling; // IE
	}
}

var globalIndustry;
var globalLang;
var globalMode = 'normal'; //permet de gerer l'afficahge des resulats en php en fonction du mode de recherche 
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 defaultAjaxVar = "mode-"+globalMode+"/lang-"+globalLang+"/industry-"+globalIndustry+"/page-1/"; //ajout sp�cial
	var initAjaxVar = "mode-"+globalMode+"/lang-"+globalLang+"/industry-"+globalIndustry+"/page-1/filters-";
	/*var initAjaxVar = "industry-"+globalIndustry+"/page-1/filters-";*/
	var ajaxvars = initAjaxVar;
	var separ = "_"; //separateur entre les id envoyés par AJAX au PHP
	
	//liste de tous les bouttons (element) qui ont ete clickes
	var lastButtonsEltOn = new Array();
	
	//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){
						document.getElementById("chooseSub").style.display = "none";
						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){
				
					if (document.getElementById("chooseSub")) 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 if(this.getAttribute('option') == 'newselect')
						{
							//on ne conserve pas la selection precedente et on demarre une nouvelle recherche
							while(lastButtonsEltOn.length>0) {
								var elt = lastButtonsEltOn.pop();
								elt.className = elt.className.replace(new RegExp("clicked\\b"), "");
							}

							lastButtonsEltOn.push(this);
							
							//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]);
					}
					
					//alert(str);
					
					//// 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 > 26)
						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);
						}
						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 childElements = zeOne.parentNode.parentNode.getElementsByTagName("ul");
	
	if(childElements.length >0){
	*/
	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"), "");
		}
	}
}
//pour filtres sans appel ajax et liens sur titres boites
ROQ.initFiltersLearnMore = function (){
	//on initialise d'abord les scrolls pour que la hauteur compl�te avec items "plus" d�ploy�s soit prise en compte
	ROQ.initScrolls();
	//rollovers
	if (document.getElementById("filters")) {
	
		var filtitres = document.getElementById("filters").getElementsByTagName("span");
		for(var i=0; i<filtitres.length; i++){
			if(filtitres[i].className.indexOf("learnMore") >= 0){
				filtitres[i].firstChild.onmouseover = function(){
					this.parentNode.style.backgroundColor = "#FFCEFF";
				}
				filtitres[i].firstChild.onmouseout = function(){
					this.parentNode.style.backgroundColor = "#FFFFFF";
				}
			}
		}
		
	//on m�t � jour les maxtops des scrolls
	ROQ.initMaxtopScrolls();
	
	}
}
//pour filtres alphab�tiques
ROQ.initFiltersAlpha = function(){
	//alert("initFiltersAlpha");
	//hauteur des blocs
	var lesLines = new Array();
	var lines = document.getElementById("filters").getElementsByTagName("div");
	for(var i=0; i<lines.length; i++){
		if(lines[i].className == "line"){
			lesLines.push(lines[i]);
		}
	}
	for(var i=0; i<lesLines.length; i++){
		var boxes = lesLines[i].getElementsByTagName("div");
		lesLines[i].maxH = 0;
		for(var u=0; u<boxes.length; u++){
			if(boxes[u].className == "somebox"){
				if(boxes[u].offsetHeight > lesLines[i].maxH){
					lesLines[i].maxH = boxes[u].offsetHeight;
				}
			}
		}
	}
	for(var i=0; i<lesLines.length; i++){
		var boxes = lesLines[i].getElementsByTagName("div");
		for(var u=0; u<boxes.length; u++){
			if(boxes[u].className == "somebox"){
				if(boxes[u].offsetHeight < lesLines[i].maxH){
					boxes[u].style.height = lesLines[i].maxH + "px";
				}
			}
		}
	}
	/*
	//onclick items par javascript
	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(){
			top.location.href = "/argosSites/roquette_corp_en/html/products-and-applications/search-by-functional-properties2.html?id=" + this.id;
		}
	}
	*/
}
// �cran search by keywords
ROQ.initFiltersKeywords = function (){
	//idem initfilters standard sauf qu'on ne ferme pas les sub par d�faut
	//et que le clic sur un "plus" ouvert ne ferme pas les subs
	ROQ.initFilters(true);
}

ROQ.lang = function(l) {

	if (l != undefined) {
	
		globalLang = l;
	}
}

// ouverture seconds
var vopen = 0;

ROQ.updateNav = function(what, secondLyr){
	if(what != undefined){
	globalIndustry = what.id;
	globalIndustry = globalIndustry.replace(/in/,"");
	}
	//update boutons
	var tomb_arr = document.getElementById("topfilters1").getElementsByTagName("a");
	for(var i=0; i<tomb_arr.length; i++){
		tomb = tomb_arr[i];
		if(tomb != what){
			tomb.className = "";
		}
		else{
			tomb.className = "clicked";
		}
	}
	//update seconds
	var sec_arr = document.getElementById("topfilters2").getElementsByTagName("div");
	for(var i=0; i<sec_arr.length; i++){
		sec = sec_arr[i];
		if(sec.id != secondLyr){
			//sec.style.display = "none";
		}
		else{
			
			if (sec.style.display == "block") {
			
				sec.style.display = "none";
				vopen = 0;
				
				var plus_arr = document.getElementById("topfilters1").getElementsByTagName("li");
				for(var i=0; i<plus_arr.length; i++){
					plus = plus_arr[i];
					
					if (plus.className == "moins") {
					
						plus.className = "plus";
					}
				}
			}
			else {
				
				sec.style.display = "block";
				vopen = 1;
				
				var plus_arr = document.getElementById("topfilters1").getElementsByTagName("li");
				for(var i=0; i<plus_arr.length; i++){
					plus = plus_arr[i];
					
					if (plus.className == "plus") {
					
						plus.className = "moins";
					}
				}
			}
		}
	}
	//alert("open="+open);
	ROQ.updateNav2();
}
ROQ.updateNav1 = function(what, secondLyr){
	if(what != undefined){
	globalIndustry = what.id;
	globalIndustry = globalIndustry.replace(/in/,"");
	}
	//update boutons
	var tomb_arr = document.getElementById("topfilters1").getElementsByTagName("a");
	for(var i=0; i<tomb_arr.length; i++){
		tomb = tomb_arr[i];
		if(tomb != what){
			tomb.className = "";
		}
		else{
			tomb.className = "clicked";
		}
	}
	//update seconds
	var sec_arr = document.getElementById("topfilters2").getElementsByTagName("div");
	for(var i=0; i<sec_arr.length; i++){
		sec = sec_arr[i];
		if(sec.id != secondLyr){
			sec.style.display = "none";
			//alert("sec.id="+sec.id+", secondLyr="+secondLyr);
		}
		else{
			
			sec.style.display = "block";
			//alert("sec.id="+sec.id+", secondLyr="+secondLyr);
		}
	}
	
	ROQ.updateNav2();
}
ROQ.updateNav2 = function(what){
	//update boutons
	if(what != undefined){
	globalIndustry = what.id;
	globalIndustry = globalIndustry.replace(/in/,"");
	}
	var tomb_arr = document.getElementById("topfilters2").getElementsByTagName("a");
	for(var i=0; i<tomb_arr.length; i++){
		tomb = tomb_arr[i];
		if(tomb != what){
			tomb.className = "";
		}
		else{
			tomb.className = "clicked";
		}
	}
}

ROQ.updateNav3 = function(what){
	if(what != undefined){
	globalIndustry = what.id;
	globalIndustry = globalIndustry.replace(/in/,"");
	}
	
	var a = document.getElementById('resultsCib').style.display = "none";
	
	//update boutons
	var tomb_arr = document.getElementById("family").getElementsByTagName("a");
	for(var i=0; i<tomb_arr.length; i++){
		tomb = tomb_arr[i];
		if(tomb != what){
			tomb.className = "";
		}
		else{
			tomb.className = "selectedFamily";
		}
	}
}