/*
 * Gestion des menus deroulants
 */

var timeout = 1000;
for( var i = 0; i < 200; i++ ) {
	eval("var timeoutli" + i + " = false;");
}
var index = 0;

// Fonction d'intialisation d'un menu deroulant
function initMenu(strDivMenuId) {
	if ( browser.isDOM1  && !( browser.isMac && browser.isIE )  && !( browser.isOpera && browser.versionMajor < 7 ) && !( browser.isIE && browser.versionMajor < 5 ) ) {
		var divMenu = document.getElementById(strDivMenuId);
		var menus = divMenu.getElementsByTagName('ul');
		var lis = menus.item(0).getElementsByTagName('li');
		menus.item(0).className='menu';
		menus.item(0).style.display = "block";
		for (var i=0; i < lis.length; i++)  {
			if (lis.item(i).getElementsByTagName('ul').length > 0) {
				if (browser.isIE ) addAnEvent(lis.item(i),'keyup',show);
				addAnEvent(lis.item(i),'mouseover',show);
				addAnEvent(lis.item(i),'mouseout',timeoutHide);
				addAnEvent(lis.item(i),'blur',timeoutHide);
				addAnEvent(lis.item(i),'focus',show);
				lis.item(i).setAttribute('id',"li"+index);
				hideUlUnderLi(lis.item(i));
				index++;
			}
		}
	}
}

// Ajout d'un evenement
function addAnEvent(target, eventName, functionName) {
	if (browser.isIE) eval('target.on'+eventName+'=functionName');
	else target.addEventListener(eventName, functionName, true);
}

// Fonction de timeout
function timeoutHide() {
	eval("timeout" + this.id + " = window.setTimeout('hideUlUnder( \"" + this.id + "\" )', " + timeout + " );");
}

// Fonction de Masquage le Ul subordonné
function hideUlUnder(id) {
	document.getElementById(id).getElementsByTagName('ul')[0].style['visibility'] = 'hidden';
}

// Fonction d'affichage du ul subordonné
function show() {
	this.getElementsByTagName('ul')[0].style['visibility'] = 'visible';
	var currentNode=this;
	while(currentNode) {
		if ( currentNode.nodeName=='LI') currentNode.getElementsByTagName('a')[0].className = 'linkOver';
		currentNode=currentNode.parentNode;
	}
	eval ("clearTimeout(timeout"+ this.id +");");
	hideAllOthersUls(this);
}

// Fonction de Masquage tous les autres uls
function hideAllOthersUls(currentLi) {
	var lis = currentLi.parentNode;
	for (var i=0; i<lis.childNodes.length; i++) {
		if (lis.childNodes[i].nodeName=='LI' && lis.childNodes[i].id != currentLi.id) hideUlUnderLi( lis.childNodes[i] );
	}
}

// Fonction de Masquage le ul subordonné
function hideUlUnderLi(li) {
	var as = li.getElementsByTagName('a');
	for ( var i=0; i<as.length; i++ ) {
		if (as.item(i).getAttribute("href") == "") as.item(i).className="link";
		else as.item(i).className="";
	}
	var uls = li.getElementsByTagName('ul');
	for ( var i=0; i<uls.length; i++ ) uls.item(i).style['visibility'] = 'hidden';
}
