var _subMenuTimeout;
var _visibleMenu;
function LoadMenu()
{
	/*Les spans qui ont un id dans la page sont des zones pour les menus*/
	var spans = document.getElementById("divMainMenu").getElementsByTagName("div");
	for( var nIdx=0; nIdx < spans.length; nIdx++ )
	{
		if( spans[nIdx].id != "" )
		{
			spans[nIdx].onmouseover = OnMainMenuItemMouseOver;
			spans[nIdx].onmouseout = OnMainMenuItemMouseOut;

            var submenu = document.getElementById(spans[nIdx].id + "Menu");
            if( submenu )
            {
                submenu.parentmenu = null;
                spans[nIdx].menu = submenu;
            }
		}
	}

    /*Assignation des vnements des items des menu principaux*/
    var menu = document.getElementById("divSubMenus").childNodes;
    for( nIdx=0; nIdx<menu.length; nIdx++ )
    {
        if( menu[nIdx].tagName == "DIV" )
        {
            for( var nIdx2=0; nIdx2<menu[nIdx].childNodes.length; nIdx2++ )
            {
                var menuItem = menu[nIdx].childNodes[nIdx2];
    
                var submenu = document.getElementById(menuItem.id + "Menu");
                if( submenu != null )
                {
                    submenu.parentmenu = menu[nIdx];
                    menuItem.menu = submenu;
                }
                else
                {
                    menuItem.menu = null;
                }
    
                menuItem.onmouseover = OnSubMenuItemMouseOver;
                menuItem.onmouseout = OnSubMenuItemMouseOut;
                menuItem.onclick = OnSubMenuItemClick;
            }
        }
    }
}

function OnMainMenuItemMouseOver( evt )
{
	var div = GetEventObject( evt );
    while( div != null && div.tagName != "DIV" )
        div = div.parentNode;

    if( div != null )
    {
        div.className = "MainMenuItemSelected"

    	//Afficher le sous-menu correspondant s'il y a lieu
    	HideSubMenu();
		
        if( div.menu )
    	{
            div.menu.style.position = "absolute";
            if(navigator.platform == "MacPPC")
            {
                //Workaround pour Mac.
                //Il y a un bug en Mac, parce que le menu est dans un tableau, celui-ci
                //est traite comme relatif au lieu d'absolu, on doit donc faire la calcul
                //comme si le menu etait positionne de facon relative au tableau.            
                var tblMain = document.getElementById("tblMain");
                div.menu.style.left = ((getRealLeft( div )) - getRealLeft( tblMain ) - 7) + 'px';
                div.menu.style.top = (getRealTop( div ) - getRealTop( tblMain ) + 28) + 'px';
            }
            else
            {
                div.menu.style.left = (getRealLeft( div ) - 2) + 'px';
    		    div.menu.style.top = Number(getRealTop( div ) + div.offsetHeight ) + 'px';
            }
            
            div.menu.style.display = "block";
            _visibleMenu = div.menu;
    	}
    }
}

function OnMainMenuItemMouseOut( evt )
{
	var div = GetEventObject( evt );
    while( div != null && div.tagName != "DIV" )
        div = div.parentNode;
	
    if( div != null )
    {        
        div.className = "MainMenuItem";
    }
    
    _subMenuTimeout = setTimeout( "HideSubMenu()", 2000 );
}

function HideSubMenu()
{
    clearTimeout(_subMenuTimeout );
    while( _visibleMenu != null )
    {
        _visibleMenu.style.display = "none";
        _visibleMenu = _visibleMenu.parentmenu;
    }
}

function OnSubMenuItemMouseOver( evt )
{
	var div = GetEventObject( evt );
	while( div != null && div.tagName != "DIV" )
		div = div.parentNode;

	if( div != null )
	{
        //si le menu de l'item est différent du menu affiché
        //on cache le menu affiché.
        if( _visibleMenu != null && div.parentNode != _visibleMenu )
        {
            _visibleMenu.style.display = "none";
            _visibleMenu = div.parentNode;
        }
        
        clearTimeout(_subMenuTimeout );
        div.className = "subMenuSelectedItem";

        //Si l'item a un sous menu, on l'affiche
        if( div.menu != null )
        {
            div.menu.style.position = "absolute";
            if(navigator.platform == "MacPPC")
            {
                //Workaround pour Mac.
                //Il y a un bug en Mac, parce que le menu est dans un tableau, celui-ci
                //est traite comme relatif au lieu d'absolu, on doit donc faire la calcul
                //comme si le menu etait positionne de facon relative au tableau.            
                var tblMain = document.getElementById("tblMain");
                div.menu.style.left = ((getRealLeft( div ) + div.offsetWidth) - getRealLeft( tblMain ) - 1) + 'px';
                div.menu.style.top = (getRealTop( div ) - 43) + 'px';
            }
            else
            {
                div.menu.style.left = (getRealLeft( div ) + div.offsetWidth) + 'px'
                div.menu.style.top = getRealTop( div ) + 'px' 		
            }
            
            div.menu.style.display = "block";
            _visibleMenu = div.menu;
        }
	}
}

function OnSubMenuItemMouseOut( evt )
{
    clearTimeout(_subMenuTimeout );
	var div = GetEventObject( evt );
	if( div != null && div.tagName == "A" )
		div = div.parentNode;

	if( div != null )
	{
		div.className = "subMenuItem";
		_subMenuTimeout = setTimeout( "HideSubMenu()", 2000 );
	}
}

function OnSubMenuItemClick ( evt )
{
    var objClicked = GetEventObject( evt );
	while( objClicked != null && objClicked.tagName != "DIV" && objClicked.tagName != "A" )
		objClicked = objClicked.parentNode;
            
    if( objClicked != null && objClicked.tagName != "A" )
    {
        var lnk = objClicked.getElementsByTagName("A");
        if( lnk != null && lnk.length > 0 );
            window.location.href = lnk[0].href;
    }
}
