/* addRemoveEvent
********************/
function addRemoveEvent(add, el, evt, func){
	if(add){
		if(el.addEventListener) el.addEventListener(evt, func, false);
		else if (el.attachEvent) el.attachEvent("on" + evt, func);
	}else{
		if(el.removeEventListener) el.removeEventListener(evt, func, false);
		else if (el.detachEvent) el.detachEvent("on" + evt, func);
	}
}

/* subMenu
********************/
var shiftMenus = 40;/*HAUTEUR EN PIXEL DES BOUTONS*/
var openedMenus = new Array();

function showHideSubMenu(e){
    var evt = e || window.event;
    var evtTarget = evt.target || evt.srcElement;
    while (evtTarget.nodeName != "LI"){
        if (evtTarget.nodeName == "HTML") break;
        evtTarget = evtTarget.parentNode;
    }
	if (evtTarget.nodeName == "HTML") return;
    var parentLink = evtTarget.getElementsByTagName("a")[0];
    var submenu = evtTarget.getElementsByTagName("ul")[0];
    if(evt.type == "mouseover" && submenu){
        parentLink.className = "trigered";
        submenu.style.top = shiftMenus + "px";
        openedMenus.push([submenu, parentLink]);
    }else if(evt.type == "mouseout"){
        var relatedNode = evt.relatedTarget || evt.toElement;
        try{
            while (relatedNode.nodeName != "UL"){
                if (relatedNode.nodeName == "HTML") break;
                relatedNode = relatedNode.parentNode;
            }
        } catch(err) {    relatedNode =  document.getElementsByTagName("body")[0]; }
        for(var i=openedMenus.length-1; i>=0; --i){
            if(relatedNode.nodeName == "UL" && openedMenus[i][0] == relatedNode) break;
            openedMenus[i][0].style.top = "-6000px";
            openedMenus[i][1].className = "";
            openedMenus.pop();
        }
    }
}

function initSubMenu(){
	var menu = document.getElementById("submenu");
	if(!menu) return;
	var menuItems = menu.getElementsByTagName("li");
	for(var i=0; i<menuItems.length; ++i){
		var submenu = menuItems[i].getElementsByTagName("ul")[0];
		if(submenu){
			submenu.style.top = "-6000px";
		}
	}
	addRemoveEvent(true, menu, "mouseover", showHideSubMenu);
	addRemoveEvent(true, menu, "mouseout", showHideSubMenu);
}

/* init
********************/
addRemoveEvent(true, window, "load", initSubMenu);
