// délai du menu
var delai=500;

for(var i=0; i < 100; i++)
{
    eval("var delaili"+i+"=false;");
};

function findPosX(obj)
{
	var curleft=0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft+= obj.offsetLeft;
			obj=obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft+= obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop=0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop+= obj.offsetTop;
			obj=obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop+= obj.y;
	return curtop;
}

function CentrerMenu(alignement)
{
	//Le menu se positionne à gauche par défaut : rien à faire
	//Par défaut centrage
	if(alignement==''||alignement=='Centre')
	{
		//Si le debut du menu et la fin du menu ne sont pas sur la même ligne on ne fait rien
		if(findPosY(document.getElementById('id_menu_debut'))==findPosY(document.getElementById('id_menu_fin')))
		{
			document.getElementById('menu').style.marginLeft=(Math.round(((document.getElementById('id_table_menu').offsetWidth)+findPosX(document.getElementById('id_menu_debut'))-findPosX(document.getElementById('id_menu_fin')))/2))+'px';
		}
		else
		{
			document.getElementById('menu').style.marginLeft='0px';
		};
	}
	else if(alignement=='Droite')
	{
		//Si le debut du menu et la fin du menu ne sont pas sur la même ligne on ne fait rien
		if(findPosY(document.getElementById('id_menu_debut'))==findPosY(document.getElementById('id_menu_fin')))
		{
			document.getElementById('menu').style.marginLeft=(Math.floor(document.getElementById('id_table_menu').offsetWidth-(findPosX(document.getElementById('id_menu_fin'))-findPosX(document.getElementById('id_menu_debut')))))+'px';
		}
		else
		{
			document.getElementById('menu').style.marginLeft='0px';
		};
	};
	
}

function InitMenu()
{
    if (browser.isDOM1 
    && !(browser.isMac && browser.isIE) 
    && !(browser.isOpera && browser.versionMajor < 7)
    && !(browser.isIE && browser.versionMajor < 5))
    {
        // get some element
        var menu=document.getElementById('menu'); // racine
        var Liste_lis=menu.getElementsByTagName('li'); // les li
        var Liste_uls=menu.getElementsByTagName('ul'); // les ul
        
        menu.className='menu';
        
        var ref_ombre
 			/*
 			//Ombrage Gecko
			if(!document.all)
			{
       			for (var i=0; i<Liste_uls.length; i++)
       			{
				if(i!=0)
				{
					ref_ombre=document.createElement('img');
					ref_ombre.setAttribute('id','id_menu_ombre_'+i);
					ref_ombre.setAttribute('src','images/global/OmbreMenu.png');
					ref_ombre.setAttribute('style','position:absolute;top:'+(findPosY(Liste_uls.item(i))+4)+'px;left:'+(findPosX(Liste_uls.item(i))+4)+'px;width:'+(Liste_uls.item(i).offsetWidth)+'px;height:'+(Liste_uls.item(i).offsetHeight)+'px;visibility:visible;z-index:19');
 	 				document.Liste_uls.item(i).appendChild(ref_ombre);
					document.getElementById('id_menu_ombre_'+i).style.left=parseInt(findPosX(Liste_uls.item(i))+4)+'px';
					document.getElementById('id_menu_ombre_'+i).style.top=parseInt(findPosY(Liste_uls.item(i))+4)+'px';
 					document.getElementById('id_menu_ombre_'+i).style.width=parseInt(Liste_uls.item(i).offsetWidth)+'px';
					document.getElementById('id_menu_ombre_'+i).style.height=parseInt(Liste_uls.item(i).offsetHeight)+'px';
 					document.getElementById('id_menu_ombre_'+i).style.zIndex='19';
 				};
 				}
			};*/

       for (var i=0; i<Liste_lis.length; i++)
        {
            if (Liste_lis.item(i).getElementsByTagName('ul').length > 0)
            {        
                if (browser.isIE)
                {
                    AjouterEvenement(Liste_lis.item(i),'keyup',AfficherSousLi);
                }
                // link events to list item
                AjouterEvenement(Liste_lis.item(i),'mouseover',AfficherSousLi);
                AjouterEvenement(Liste_lis.item(i),'mouseout',MasquerApresDelaiLi);
                AjouterEvenement(Liste_lis.item(i),'blur',MasquerApresDelaiLi);
                AjouterEvenement(Liste_lis.item(i),'focus',AfficherSousLi);
                // add an id to list item
                Liste_lis.item(i).setAttribute('id', "li"+i);
                Liste_lis.item(i).getElementsByTagName('a')[0].className='menuIndicateur';
         };
        };
    };
};

function AjouterEvenement(target, nom_evenement, nom_fonction)
{
    if (browser.isIE)
    {
    	// IE
        eval('target.on'+nom_evenement+'=nom_fonction');
    }
    else
    {
	    // DOM
        target.addEventListener(nom_evenement , nom_fonction , true); // true is important for Opera7
    };
};
    
// hide the first ul element of the current element
function MasquerApresDelaiLi()
{
    eval("delai"+this.id+"=window.setTimeout('MasquerLi(\""+this.id+"\")', "+delai+");");
};

// masque le premier élement ul sous l'élement identifier par l'id
function MasquerLi(id)
{   
    document.getElementById(id).getElementsByTagName('ul')[0].style['visibility']='hidden';
};

// AfficherSousLi le premier ul sous l'element est mis à visible
function AfficherSousLi()
{
	this.className='menu_a_hover';
    // AfficherSousLi the sub menu
	this.getElementsByTagName('ul')[0].style['visibility']='visible';
    // clear the delai
    eval ("clearTimeout(delai"+this.id+");");
    MasquerVoisinsLi(this);
};

// Masquer tous les éléments ul du même niveau que le li courant
function MasquerVoisinsLi(currentLi)
{
    var ul=currentLi.parentNode;
    //alert(Liste_lis.childNodes.length);
    for (var i=0; i<ul.childNodes.length; i++)
    {
        if (ul.childNodes[i].id && ul.childNodes[i].id != currentLi.id)
        {
            MasquerSousLi(ul.childNodes[i]);
        };
    };
};

// Masquer tous les ul du li
function MasquerSousLi(li)
{
    var Liste_uls=li.getElementsByTagName('ul');
    for (var i=0; i<Liste_uls.length; i++)
    {
        Liste_uls.item(i).style['visibility']='hidden';
    };
} ;

// Les ombres pour IE ne peuvent être crée dynamiquement qu'après le chargement de la page
// donc dans le onload


