// Auteur : bieler batiste, modifié par Michel Deboom

//exclut les navigateurs incompatibles
if(document.documentElement){

// délai
	var timeout = 600;
// Détection IE / GECKO
  ie=window.Event?0:1;        
//id= id du menu, c = la classe de la partie dynamique
function initMenu(id,c)
{
	//sélection d'éléments
	var menu = document.getElementById(id);
	var lis = menu.getElementsByTagName('li');

	//change le style
	menu.className=c;
	document.body.className="body";
	//menu à droite ?
	ul1=menu.getElementsByTagName('ul')[2].offsetLeft; 

	// cherche li contenant ul
	for ( var i=0; i<lis.length; i++ )
	{            
		if ( lis.item(i).getElementsByTagName('ul')[0] )
		{        
			//lien vers un sous-menu
			with(lis.item(i).getElementsByTagName('a')[0]) {
				var x = firstChild.nodeValue
				//marquage des items ouvrants un sous-menu
				ul1<0?firstChild.nodeValue= "< "+x:firstChild.nodeValue= x+"..."
			}

			//pour navigation clavier IE(impropre)
			if (ie ) { addAnEvent(lis.item(i),'keyup',show); }

			// ajoute les évènements 
			addAnEvent(lis.item(i),'mouseover',show);
			addAnEvent(lis.item(i),'mouseout',timeoutHide);
			addAnEvent(lis.item(i),'blur',timeoutHide);
			addAnEvent(lis.item(i),'focus',show);

			// ajoute un id 
			lis.item(i).id = "li"+i;
			// crée un timeout variable
			eval("timeoutli" + i + " = false;")
		}
	}
}

function addAnEvent( target, eventName, functionName )
{
	// méthode pour IE
	if ( ie ) { eval('target.on'+eventName+'=functionName'); }
	// méthode DOM
	else { target.addEventListener( eventName , functionName , true ); }
}

// hide the first ul element of the current element
function timeoutHide()
{
	this.className = ""
	this.firstChild.className=""
	// start the timeout
	eval( "timeout" + this.id + " = window.setTimeout('hideUlUnder( \"" + this.id + "\" )', " + timeout + " );");
}

// hide the ul elements under the element identified by id
function hideUlUnder( id )
{   
	document.getElementById(id).getElementsByTagName('ul')[0].style.visibility = "hidden"; 
}

// montre le 1er élément trouvé dans cet élément.
function show()
{
    this.getElementsByTagName('ul')[0].style.visibility = "visible";
    //marquage du suivi du lien.
	this.className = "over"
    this.firstChild.className="over"
   // arrête le compteur
    eval ( "clearTimeout( timeout"+ this.id +");" );
    ef_Uls( this );
}

// cache les autres ul
function ef_Uls( currentLi )
{
    var ul = currentLi.parentNode;
    for ( var i=0; i<ul.childNodes.length; i++ )
    {
        if ( ul.childNodes[i].id && ul.childNodes[i].id != currentLi.id )
        {
            hideUlUnderLi( ul.childNodes[i] );
        }
    }
}

// cache les ul contenus dans ce li
function hideUlUnderLi( li )
{
    var uls = li.getElementsByTagName('ul');
    for ( var i=0; i<uls.length; i++ )
    {
        uls.item(i).style.visibility = "hidden";
    }
} 
    
}
