<!--//Michel DEBOOM 10 2006
/* Menu multi niveaux à commutation de classes CSS :
 - sub : marque le lien donnant accès à un sous-menu
 - montre : rends visible les sous-menus sélectionnés ou survolés
 - trace : matérialise la trace du curseur(souris ou clavier)
*/
function addEvent(obj,evType,fn,capt){ // ajoute un événement sans écraser l'éxistant. 
if(obj.addEventListener)obj.addEventListener(evType,fn,false) // NS6+ 
else if(obj.attachEvent)obj.attachEvent("on"+evType,fn) // IE 5+ 
else {return false;} 
} 

s_init=delai=0;
dynMenu = function(idMenu) {
if(!s_init){ // éxécuté une seule fois
	var Menu=document.getElementById(idMenu)
	if(Menu.getElementsByTagName("A"))var itm = Menu.getElementsByTagName("A");
	for (var i=0; i<itm.length; i++) {
	  if(itm[i].parentNode.getElementsByTagName("ul")[0]){
	    with(itm[i])className+=!className?"sub":className!="sub"?" sub":""; // lien vers sous-menu
	    }
		itm[i].onmouseover=itm[i].onfocus=function(){
			voirSelect('hidden');
			ef(this.parentNode.parentNode)
		  var ul0=this.parentNode.getElementsByTagName("UL")[0];
			if(ul0){
				with(ul0)className+=!className?"montre":" montre";// montre le sous-menu.
				with(this)className+=!className?"trace":" trace";// trace le chemin du curseur
			  }
			}
		itm[i].onmouseout=itm[i].onblur=function(){delai=setTimeout('eftout()',1000)};
	  if(!window.Event &! itm[i].parentNode.getElementsByTagName("ul")[0]){// bug haslayout IE 
	    li=document.createElement("li");itm[i].parentNode.appendChild(li);
	    with(li.style){position="absolute";left=-999+"em";}
	    }
		}
	s_init=1
	eftout=function(){ef(Menu);voirSelect('visible');}
	addEvent(document,'click',eftout)
	}
}

function ef(ul) { //cache les uls qui suivent cet ul.
  clearTimeout(delai);
  var li=ul.getElementsByTagName('li');
  for(i=0;i<li.length;i++){
    var ul0=li[i].getElementsByTagName('ul')[0];
    if(ul0)with(ul0)className=className.replace(/ montre|montre/,"");// cache le sous-menu
    var a0=li[i].getElementsByTagName('A')[0];
    if(a0)with(a0)className=className.replace(/ trace|trace/,""); // efface la trace 
		}
}


// bug ie corrigé : cache les <select> quand le menu est visible
function voirSelect(v){
var elem=document.getElementsByTagName('select');
if(!window.Event){for(i=0;i<elem.length;i++)elem[i].style.visibility=v;}
}
// active le menu dynamique pour la souris
addEvent(document,'mousemove',function(){dynMenu("menu")})
// idem pour le clavier
addEvent(document,'keydown',function(){dynMenu("menu")})
//-->
