/********************************************/
/* Variables global pour les menus                                        */
/********************************************/


/********************************************/
/* Fonction expandTree                                                     */
/* Eclate et déséclate les menus plans de site                       */
/* intSubtreeId = id du noeud a deployer/cacher                 */
/* blnReveal = deploiement ou cacher?                                 */
/* intId = Id du plan de site                                               */
/********************************************/
function expandTree( intSubtreeId, blnReveal, intId , styleActif, forced) {
	if ((styleActif != "") && (forced == '1')) {
		var obj = "";
		if (document.getElementById('ps' + intSubtreeId)) {
			for (i = 0; i < document.getElementById('ps' + intSubtreeId).childNodes.length; ++i) {
				if (document.getElementById('ps' + intSubtreeId).childNodes[i].tagName) {
					if ((document.getElementById('ps' + intSubtreeId).childNodes[i].tagName.toLowerCase() == "a") || (document.getElementById('ps' + intSubtreeId).childNodes[i].tagName.toLowerCase() == "span")) {
						obj = document.getElementById('ps' + intSubtreeId).childNodes[i];
						i = document.getElementById('ps' + intSubtreeId).childNodes.length;
					}
				}
			}
	
			if (obj != "") {
				if (document.all) {
					if (obj.getAttribute("className").indexOf(" " + styleActif) == -1) {
						obj.setAttribute("className",obj.getAttribute("className") + " " + styleActif);
					}
				} else {
					if (obj.getAttribute("class").indexOf(" " + styleActif) == -1) {
						obj.setAttribute("class",obj.getAttribute("class") + " " + styleActif);
					}
				}
			}
		}
	}

    for ( var i in arrSiteMapTree[intId] ) {
		if ( (arrSiteMapTree[intId][i][1] + "_" + intId) == intSubtreeId  ) {
			var objId = arrSiteMapTree[intId][i][0] + "_" + intId;
            if ( document.getElementById('ps' + objId) ) { 
				if (blnReveal == 'toggle') {
					blnReveal = ( document.getElementById('ps' + objId).style.visibility != "hidden" )
				} else if (blnReveal == 'show') {
				    blnReveal = false;
				}
                if ( blnReveal ) { 
					window.setTimeout("planSiteReloadImage('" + 'smLeft' + objId + "', " + blnReveal + ")", 0);
                    window.setTimeout("planSiteReloadImage('" + 'smRight' + objId + "', " + blnReveal + ")", 0);
                    window.setTimeout("planSiteReloadImage('" + 'smNews' + objId + "', " + blnReveal + ")", 0);
					window.setTimeout("document.getElementById('ps" + objId + "').style.visibility = 'hidden'", 0);
					window.setTimeout("document.getElementById('ps" + objId + "').style.position = 'absolute'", 0);
                } else {
					document.getElementById('ps' + objId).style.position = "relative";
					window.setTimeout("planSiteReloadImage('" + 'smLeft' + objId + "', " + blnReveal + ")", 0);
					window.setTimeout("planSiteReloadImage('" + 'smRight' + objId + "', " + blnReveal + ")", 0);
					window.setTimeout("planSiteReloadImage('" + 'smNews' + objId + "', " + blnReveal + ")", 0);
					window.setTimeout("document.getElementById('ps" + objId + "').style.visibility = 'visible'", 0);
                }
                if ( blnReveal ) { expandTree( objId, blnReveal, intId, styleActif,forced); }
			}
			if ( document.getElementById('Sepps' + objId) ) { 
				if (blnReveal == '0') {
					blnReveal = ( document.getElementById('Sepps' + objId).style.visibility != "hidden" )
				} else if (blnReveal == 'false') {
				    blnReveal = false;
				}
                if ( blnReveal ) { 
					window.setTimeout("document.getElementById('Sepps" + objId + "').style.visibility = 'hidden'", 0);
					window.setTimeout("document.getElementById('Sepps" + objId + "').style.position = 'absolute'", 0);
                } else {
                    document.getElementById('Sepps' + objId).style.position = "relative";
                    window.setTimeout("document.getElementById('Sepps" + objId + "').style.visibility = 'visible'", 0);				  
                }
				if ( blnReveal ) { expandTree( objId, blnReveal, intId, styleActif,forced); }
			}			
		}
	}
}

/********************************************/
/* Fonction planSiteReloadImage */
/* Affiche/Cache les images sur les noeuds */
/* szId = id du noeud a deployer/cacher */
/* blnHide = deploiement ou cacher? */
/********************************************/
function planSiteReloadImage( szId, blnHide ) {
	if ( document.getElementById(szId) ) {
		if ( !blnHide ) {
            document.getElementById(szId).style.visibility = "visible";
            document.getElementById(szId).style.position = "relative";
        } else {
            document.getElementById(szId).style.visibility = "hidden";
            document.getElementById(szId).style.position = "absolute";
        }  
    }  
}

/********************************************/
/* Fonction verifPermettreOuverture */
/* Permet de savoir si on doit permettre ou non l'ouverture du dossier   */
/* arrSiteMapConfigId = liste des id de plans de site  */
/* arrSiteMapConfigValue = liste des valeurs pour chaque plan de site */
/* intId = id du noeud a valider */
/********************************************/
function verifPermettreOuverture(arrSiteMapConfigId, arrSiteMapConfigValue, intId) {
	var blnOpen = false;
	var z;

	for (z = arrSiteMapConfigId.length; z >= 0; --z) {
		if (arrSiteMapConfigId[z] == intId) {
			if (arrSiteMapConfigValue[z] == "1") {
				blnOpen = true;
			}
		}
	}
	return blnOpen; 
}

/********************************************/
/* Fonction getFullParentNode  */
/* Permet de chercher tous les sous-niveaux de notre element en cours, et de les ouvrir au besoin   */
/* nodeActif = id du noeud a ouvrir  */
/* arrSiteMapTree = tableau complet des items de tous les plans de site  */
/* intId = le numero du plan de site qu'on est en train de gerer */
/* styleActif = la classe a mettre sur les items actifs (parents) */
/* arrSiteMapConfigId = tous les plans de sites détecter sur la page, fonctionne avec arrSiteMapConfigValue */
/* arrSiteMapConfigValue = 1 ou 0, si on veut le deploiement de l'item */
/********************************************/
function getFullParentNode(nodeActif, arrSiteMapTree, intId, styleActif, arrSiteMapConfigId, arrSiteMapConfigValue) {
	if (verifPermettreOuverture(arrSiteMapConfigId, arrSiteMapConfigValue, intId)) {
		window.setTimeout("expandTree('" + nodeActif + "_" + intId + "','show','" + intId + "','" + styleActif + "','1')", 0);
	}

	var node = 1;
	var returnNode;
	var loopToFind = 0;
	while (node != 0) {
		for (var intId in arrSiteMapTree) {
			for (var i in arrSiteMapTree[intId]) {
				if (arrSiteMapTree[intId][i][0] == nodeActif) {
					if (arrSiteMapTree[intId][i][1] == 0) {
						node = 0;
					} else {
						returnNode = arrSiteMapTree[intId][i][1];
						nodeActif = returnNode;
						if (verifPermettreOuverture(arrSiteMapConfigId, arrSiteMapConfigValue, intId)) {
							window.setTimeout("expandTree('" + nodeActif + "_" + intId + "','show','" + intId + "','" + styleActif + "','1')", 0);
						}
					}
				}
			}
		}
		++loopToFind;
		if (loopToFind > 20) { node = 0; }
	}
	return returnNode;
}
