var _subMenuTimeout;
var _visibleMenu;
function LoadMenu()
{           
	/*Les img qui ont un id dans la page sont des zones pour les menus*/
	var imgs = document.getElementById("divMainMenu").getElementsByTagName("img");
	for( var nIdx=0; nIdx < imgs.length; nIdx++ )
	{
		if( imgs[nIdx].id != "" )
		{
		    MM_preloadImages( imgs[nIdx].src );
			imgs[nIdx].onmouseover = OnMainMenuItemMouseOver;
			imgs[nIdx].onmouseout = OnMainMenuItemMouseOut;

            var submenu = document.getElementById( RecursiveReplace(imgs[nIdx].id,"_","") + "Menu");
            if( submenu )
            {
                submenu.parentmenu = null;
                imgs[nIdx].menu = submenu;
            }
		}
	}

    /*Assignation des vnements des items des menu principaux*/
    if( document.getElementById("divSubMenus") )
    {
        var menu = document.getElementById("divSubMenus").childNodes;
        for( nIdx=0; nIdx<menu.length; nIdx++ )
        {
            for( var nIdx2=0; nIdx2<menu[nIdx].childNodes.length; nIdx2++ )
            {
                var menuItem = menu[nIdx].childNodes[nIdx2];
    
                var submenu = document.getElementById( RecursiveReplace(menuItem.id,"_","") + "Menu" );
                if( submenu != null )
                {
                    submenu.parentmenu = menu[nIdx];
                    menuItem.menu = submenu;
                }
    
                menuItem.onmouseover = OnSubMenuItemMouseOver;
                menuItem.onmouseout = OnSubMenuItemMouseOut;
                menuItem.onclick = OnSubMenuItemClick;                
            }
        }
     }
}

function OnMainMenuItemMouseOver( evt )
{
	var img = GetEventObject( evt );
	MM_swapImage(img.id,'', img.src.replace("off", "on") ,1);

	//Afficher le sous-menu correspondant s'il y a lieu
	HideSubMenu();
    if( img.menu )
	{
        img.menu.style.position = "absolute";
   		img.menu.style.left = getRealLeft( img ) + 'px';
    	img.menu.style.top = Number(getRealTop( img ) + img.offsetHeight) + 'px';
		img.menu.style.display = "block";
        _visibleMenu = img.menu;
	}
}

function OnMainMenuItemMouseOut( evt )
{
	var img = GetEventObject( evt );
	MM_swapImgRestore();
    _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 );
	if( div != null && div.tagName == "A" )
		div = div.parentNode;

	if( div != null )
	{
        clearTimeout(_subMenuTimeout );
        div.className = "subMenuSelectedItem";

        //Si l'item a un sous menu, on l'affiche
        if( div.menu != null )
        {
            //alert( div.menu.parentmenu.id );
            if( div.menu.parentmenu != _visibleMenu )
                _visibleMenu.style.display = "none";
                
            div.menu.style.position = "absolute";
            if(navigator.platform == "MacPPC" && navigator.userAgent.indexOf("MSIE") != -1)
            {
                div.menu.style.left = (getRealLeft( div ) + div.offsetWidth - 5) + 'px'
                div.menu.style.top = (getRealTop( div ) - 5) + '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;

            //_subMenuTimeout = setTimeout( HideSubMenu, 2000 );
        }
	}
}

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;
    }
}

/*************************************/
/** FONCTION POUR MOUSE OVER IMAGES **/
/*************************************/
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function OnMouseOverSwapImage( evt )
{
	var img = GetEventObject( evt );
	if( img )
	{
		MM_swapImage( img.id,'',img.src.replace( "_off", "_on" ),1);
	}
}

function OnMouseOutSwapImage( evt )
{
	MM_swapImgRestore();
}

function OnMouseOverSwapImage( evt )
{
    var img = GetEventObject( evt )
    if( img )
    {
        MM_swapImage( img.id,'',img.src.replace( "off", "on" ),1);
    }
}


/***************************************************************/
/** FONCTIONS QUI CHERCHE LA POSITION DES OBJETS DANS LA PAGE **/
/***************************************************************/
function getRealLeft(imgElem)
{
	xPos = eval(imgElem).offsetLeft;
	tempEl = eval(imgElem).offsetParent;
  	while (tempEl != null)
	{
  		xPos += tempEl.offsetLeft;
  		tempEl = tempEl.offsetParent;
  	}
	return xPos;
}

function getRealTop(imgElem)
 {
	yPos = eval(imgElem).offsetTop;
	tempEl = eval(imgElem).offsetParent;
	while (tempEl != null)
	{
  		yPos += tempEl.offsetTop;
  		tempEl = tempEl.offsetParent;
  	}
	return yPos;
}