var nodeTypeHTMLElement=  1;
var submenuTimeout ;
var subsubmenuTimeout ;
var currentMenu = null;
var currentSubmenu = null;
var lastMenu=null;
function loadMenu()
{	
	// On recupere la premiere liste du menu au niveau 0
	var ul = document.getElementById("nav");
	var liNodes = ul.childNodes;
	var li = new Array();
	for(var i=0; i < liNodes.length; i++) 
	{
		if(liNodes[i].nodeType == nodeTypeHTMLElement)
		{
			li.push(liNodes[i]);
		}
	}
	var minPos = findPos(ul);
	for(var i=0; i < li.length; i++)
	{
		var id = li[i].className;
		var nid = id.substring(id.lastIndexOf("-")+1,id.lastIndexOf("-")+2) ;
		var subTable = document.getElementById("submenu-item-"+nid);
		if(subTable)
		{
			hide(subTable);
			li[i].onmouseover = function(){
				var id = this.className;
				var nid = id.substring(id.lastIndexOf("-")+1,id.lastIndexOf("-")+2) ;
				var submenuTable = document.getElementById("submenu-item-"+nid);
				var classes = this.className.split(" ");
				this.className += " " + classes[0] + "Hover";
				hide(currentMenu);
				currentMenu = submenuTable;
				clearTimeout(submenuTimeout);
				var pos = findPos(this);
				var posx = pos[0] ;
				var posy = pos[1] ; 
				submenuTable.style.left = posx-3 +"px";
				submenuTable.style.top = posy +"px";
				display(submenuTable);
				submenuTable.onmouseover = function(){
					var id = this.id;
					var nid = id.substring(id.lastIndexOf("-")+1,id.lastIndexOf("-")+2) ;
					var nav = document.getElementById("nav");
					if(nav)
					{
						var lis = getElementsByClassName(nav,"li","menu-item-"+nid);
						var li = lis[0];
						var classes = li.className.split(" ");
						var classRegExp = new RegExp(" " + classes[0] + "Hover", "g") ;
						li.className = li.className.replace(classRegExp,"");
						li.className += " " + classes[0] + "Hover";
					}
					clearTimeout(submenuTimeout);
				};
				submenuTable.onmouseout = function(){
					var id = this.id;
					var nid = id.substring(id.lastIndexOf("-")+1,id.lastIndexOf("-")+2) ;
					var nav = document.getElementById("nav");
					if(nav)
					{
						var lis = getElementsByClassName(nav,"li","menu-item-"+nid);
						var li = lis[0];
						var classes = li.className.split(" ");
						var classRegExp = new RegExp(" " + classes[0] + "Hover", "g") ;
						li.className = li.className.replace(classRegExp,"");
					}
					submenuTimeout = setTimeout('hide(currentMenu)',0);
				};
			};
			li[i].onmouseout = function(){
				submenuTimeout = setTimeout('hide(currentMenu)',0);
				var classes = this.className.split(" ");
				var classRegExp = new RegExp(" " + classes[0] + "Hover", "g") ;
				this.className = this.className.replace(classRegExp,"");
			};
		}
	}
}

function display(o)
{
	if(o) o.style.display = "block";
}

function hide(o)
{
	if(o) o.style.display = "none";
}

AddFunctionOnLoad(loadMenu);
//AddFunctionOnLoad(BackToTheHtml);

function getElementsByClassName(oElm, strTagName, oClassNames){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var arrRegExpClassNames = new Array();
    if(typeof oClassNames == "object"){
        for(var i=0; i<oClassNames.length; i++){
            arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
        }
    }
    else{
        arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
    }
    var oElement;
    var bMatchesAll;
    for(var j=0; j<arrElements.length; j++){
        oElement = arrElements[j];
        bMatchesAll = true;
        for(var k=0; k<arrRegExpClassNames.length; k++){
            if(!arrRegExpClassNames[k].test(oElement.className)){
                bMatchesAll = false;
                break;                      
            }
        }
        if(bMatchesAll){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

