var HTHnd=new Array;
var OpenMenus=new Array;
var nOM=0;
var posPointeurX;
var posPointeurY;
var tempsAttente=300;
var menuEstOuvert=false;
var coulFond;
var coulBord;
var nomFont;
var tailleFont;
var coulFont;
var hauteurMenu;
var largeurMenu;
var hauteurTexte;
var largeurTexte;
var ancHauteur;
var nbMenu = 0;
var nbSousMenu = 0;
var tabHauteur = new Array;
var tabLargeur = new Array;

// variables spécifiques à NS4.7
var NSLargeurFen;
var NSHauteurFen;
var NStabSM = new Array;
var NStabURL = new Array;
var NStabLarg = new Array;

var BV=parseFloat(navigator.appVersion.indexOf("MSIE")>0?navigator.appVersion.split(";")[1].substr(6):navigator.appVersion);
var BN=navigator.appName;
var IsWin=(navigator.userAgent.indexOf('Win')!=-1);
var IsMac=(navigator.userAgent.indexOf('Mac')!=-1);
var OP=(navigator.userAgent.indexOf('Opera')!=-1&&BV>=4)?true:false;
var NS=(BN.indexOf('Netscape')!=-1&&(BV>=4&&BV<5)&&!OP)?true:false;
var SM=(BN.indexOf('Netscape')!=-1&&(BV>=5)||OP)?true:false;
var IE=(BN.indexOf('Explorer')!=-1&&(BV>=4)||SM)?true:false;

function ParametresMenu (couleurFond,couleurBord,nFont,tFont,couleurFont)
{
	coulFond = couleurFond
	coulBord = couleurBord
	nomFont = nFont
	tailleFont = tFont
	coulFont = couleurFont
	hauteurMenu = tFont + 8
}


function AjoutMenu(nomMenu,hMenu,lMenu)
{
	largeurMenu = lMenu
	
	if (IE)
	{
		largeurTexte = lMenu - 5
		if (OP) lMenu = lMenu + 2
		else if (SM) lMenu = lMenu + 4
		else lMenu = lMenu + 6
		with(document)
		{
			write('<div id="'+nomMenu+'" style="position:absolute;left:0px;top:0px;width:'+lMenu+'px;height:'+hMenu+'px;z-index:1000;visibility:hidden">')
			write('<div id="'+nomMenu+'frmt" style="position:absolute;left:2px;top:0px;width:'+lMenu+'px;height:'+hMenu+'px;background-color:'+coulFond+';border-left:'+coulBord+' 1px solid;border-right:'+coulBord+' 1px solid;border-bottom:'+coulBord+' 1px solid;border-top:'+coulBord+' 1px solid;">')
		}
		ancHauteur = 2
		nbSousMenu = 0
	}
	else
	{
		largeurTexte = lMenu - 6;
		hauteurTexte = tailleFont + 3;
		lMenu = lMenu + 6;
		lMenu1 = lMenu - 2;
		hMenu ++;
		hMenu1 = hMenu - 2;
		with(document)
		{
			write('<layer name="'+nomMenu+'" left=0 top=0 width='+lMenu+' height='+hMenu+' z-index=1000 bgcolor='+coulBord+' visibility=hidden>')
			write('<layer left=1 top=1 width='+lMenu1+' height='+hMenu1+' z-index=1000 bgcolor='+coulFond+'>')
		}		
		ancHauteur = 2
	}
	if (SM) tabHauteur[nomMenu] = hMenu - 5
	else tabHauteur[nomMenu] = hMenu
	tabLargeur[nomMenu] = lMenu	
}

function FinMenu()
{
 	if(IE)
 	{
 		document.onmousemove=Deplacement;
		document.onmousemove=document.onmousemove;
		if(SM)
		{
			var i=0;
			var m;
			while(document.getElementById(i))
			{
				m=document.getElementById(i++);
				m.style.width=parseInt(m.style.width)-2*parseInt(m.style.paddingLeft)+"px";
				m.style.height=parseInt(m.style.height)-2*parseInt(m.style.paddingTop)+"px";
			}
		}
	}
 	else
 	{
 		window.captureEvents(Event.MOUSEMOVE);
 		window.onmousemove=Deplacement;
		NSLargeurFen=window.innerWidth;
 		NSHauteurFen=window.innerHeight;
 		window.onresize=NSredim;
  	for(var l=0;l<document.layers.length;l++)
  	{
  		var lo=document.layers[l];
  		if(lo.layers.length)
  		{
  			lo.w=lo.clip.width;
  			lo.h=lo.clip.height;
  			for(var sx=0;sx<lo.layers.length;sx++)
  				for(var sl=0;sl<lo.layers[sx].layers.length;sl++)
  				{
  				 	var slo=document.layers[l].layers[sx].layers[sl];
  					if(slo.name.indexOf("EH")>0)
  					{
  						slo.document.onmouseup=NSClick;
  						slo.document.TCode="NSexecURL('"+NStabURL[slo.name.split("EH")[1]]+"')"
  					}
  				}
  		}
  	}
 	}
}


function AjoutSousMenu(nomMenu,titreMenu,nomUrl)
{
	if (IE)
	{
		with(document)
		{
			write('<div style="white-space=nowrap;position:absolute;left:2px;top:'+ancHauteur+'px;width:'+largeurMenu+'px;height:'+hauteurMenu+'px;font-family:'+nomFont+';font-size:'+tailleFont+'px;text-decoration:none;color:'+coulFont+';cursor:hand;background-color:'+coulFond+'" id="SM'+nbSousMenu+'" onMouseover="SelectionMenu(0,this);status=\''+titreMenu+'\'" onClick="document.location.href=\''+nomUrl+'\'">')
			write('<span style="position:absolute;left:3px;top:4px;width:'+largeurTexte+'px;height:'+tailleFont+'px">')
			write('<div style="position:absolute;left:0px;top:-1px;width:'+largeurTexte+'px" align=left>')
			write(nomMenu)
			write('</div></span></div>')
		}
		ancHauteur += tailleFont + 8
		nbSousMenu =nbSousMenu + 1
	}
	else
	{
		nbSousMenu ++
		with(document)
		{
			hLayer = hauteurTexte + 8
			write('<layer name="MC'+nbSousMenu+'EH'+nbSousMenu+'" left=2 top='+ancHauteur+' width='+largeurMenu+' height='+hLayer+' z-index=1003 onMouseOver="NSSelectionMenu(0,this,\''+coulFont+'\');status=\''+titreMenu+'\'">')
			write('</layer>')
			write('<layer name="MC'+nbSousMenu+'" left=2 top='+ancHauteur+' width='+largeurMenu+' height='+hLayer+' z-index=1002 bgcolor='+coulFond+'>')
			write('<ilayer left=2 top=3><font face='+nomFont+' point-size='+tailleFont+' color='+coulFont+'>')
			write('<layer left=1 top=1 width='+largeurTexte+' height='+hauteurTexte+'>')
			write('<layer left=0 top=-1 width='+largeurTexte+'><div align=left>')
			write(nomMenu)
			write('</layer></layer></font></ilayer></layer>')
		}
		ancHauteur += tailleFont + 11;
		NStabSM[nbSousMenu] = nomMenu;
		NStabURL[nbSousMenu] = nomUrl;
		NStabLarg[nbSousMenu] = largeurTexte;
	}	
}


function FinSousMenu()
{
	if (IE) document.write('</div></div>')
	else document.write('</layer></layer>')
}


/*------------------------------------------------*/
/* fonctions spécifiques à IE et NS6              */
/*------------------------------------------------*/
function DonneCommandeCourante(e)
{
	if (SM) var cc=e;
	else
	{
		var cc=window.event;
		if(!cc) 
			cc=window.event;
		cc=cc.srcElement;
	}
	while(cc.id=="")
	{
		cc=cc.parentElement;
		if(cc==null) break;
	}
	return cc;
}


// fonction appelée sur déplacement dans le menu
function SelectionMenu(mode,e)
{
	var mc;
	if(mode==0&&OpenMenus[nOM].SelCommand!=null)
	{
		SelectionMenu(1);
	}
	if(mode==0)
	{
		mc=DonneCommandeCourante(e);
		OpenMenus[nOM].SelCommand=mc;
		OpenMenus[nOM].SelCommandPar=[SM?mc.getAttribute("style"):mc.style.cssText];
		mc.style.color = coulFond;
		mc.style.background = coulFont;
		if (SM) mc.style.cursor = "pointer";
	}
	else
	{
		mc=OpenMenus[nOM].SelCommand;
		//if(IsMac) mc.style.border="0px none";
		mc.style.color = coulFont;
		mc.style.background = coulFond;
		OpenMenus[nOM].SelCommand=null;
	}
	return true;
}


/*------------------------------------------------*/
/* fonctions spécifiques à NS4.7                  */
/*------------------------------------------------*/
function NSChangeCouleur(layerSM,couleur,nbSousMenu)
{
	layerSM.document.open()
	layerSM.document.write('<ilayer left=2 top=3><font face='+nomFont+' point-size='+tailleFont+' color='+couleur+'>')
	layerSM.document.write('<layer left=1 top=1 width='+NStabLarg[nbSousMenu]+' height='+hauteurTexte+'>')
	layerSM.document.write('<layer left=0 top=-1 width='+NStabLarg[nbSousMenu]+'><div align=left>')
	layerSM.document.write(NStabSM[nbSousMenu])
	layerSM.document.write('</layer></layer></font></ilayer>')
	layerSM.document.close()
}


// fonction appelée sur déplacement dans le menu
function NSSelectionMenu(mode,mc,bcolor)
{
	var n;

	if (HTHnd !=0)
	{
		window.clearTimeout(HTHnd[nOM]);
		HTHnd[nOM]=0;
	}
	if(!nOM) return false;
	if(mode==0&&OpenMenus[nOM].SelCommand!=null) NSSelectionMenu(1);
	if(mode==0)
	{
		mc=mc.parentLayer.layers[mc.name.substr(0,mc.name.indexOf("EH"))];
		n=parseInt(mc.name.substr(2));
		OpenMenus[nOM].SelCommand=mc;
		OpenMenus[nOM].SelCommandPar=mc.bgColor;
		mc.bgColor=coulFont;
		NSChangeCouleur(mc,coulFond,n)
	}
	else
	{
		mc=(mode==1)?OpenMenus[nOM].SelCommand:OpenMenus[nOM].Opener;
		bcolor=(mode==1)?OpenMenus[nOM].SelCommandPar:OpenMenus[nOM].OpenerPar;
		n=parseInt(mc.name.substr(2));
		mc.bgColor=coulFond;
		NSChangeCouleur(mc,coulFont,n)
		OpenMenus[nOM].SelCommand=null;
	}
	return true;
}
	

// fonction appelée sur click dans un menu
function NSClick(e)
{
	eval(this.TCode);
}


function NSexecURL(url)
{
	document.location.href=url;
}


// lancer sur redimensionnement de la fenêtre
function NSredim(e)
{
	if((window.innerWidth!=NSLargeurFen)||(window.innerHeight!=NSHauteurFen)) 
	{
		window.location.reload();
	}
}


/*------------------------------------------------*/
/* fonctions communes tous navigateurs            */
/*------------------------------------------------*/
function EffacerMenu()
{
	if (HTHnd[nOM] != 0)
	{
		window.clearTimeout(HTHnd[nOM]);
		HTHnd[nOM]=0;
	}
	if(nOM)
	{
		if(OpenMenus[nOM].SelCommand!=null)
		{
			if(IE) SelectionMenu(1);
			if(NS) NSSelectionMenu(1);
		}
		OpenMenus[nOM].visibility="hidden";
		nOM--;
	}
	if(!DansMenu() && (nOM != 0)) HTHnd[nOM]=window.setTimeout("EffacerMenu()",tempsAttente/4);
}

 
function AfficheMenu(VNom,nomImage)
{
	nomMenu = VNom
	if (HTHnd[nOM] !=0)
	{
		window.clearTimeout(HTHnd[nOM]);
		HTHnd[nOM]=0;
	}
	if(document.getElementById) var Menu=document.getElementById(VNom);
 	else if (document.all) var Menu=document.all[VNom];
 	else var Menu=document.layers[VNom];
	
 	if(!Menu) return false;
 	
	if(document.getElementById)
 	{
 		Menu=Menu.style;
 		Menu.frmt=document.getElementById(VNom+"frmt").style;
 	}
	else if (document.all)
	{
 		Menu=Menu.style;
 		Menu.frmt=document.all[VNom+"frmt"].style;
	}
	
 	if(nOM>0) 
 		if(OpenMenus[1].mName==VNom)
 		{
 			menuEstOuvert=true;
 			return false;
 		}
	if(Menu==OpenMenus[nOM]) return false;
	
	EffaceTous();
	
	Menu.mName=VNom;
	Menu.Opener=nOM>0?OpenMenus[nOM].SelCommand:null;
	Menu.OpenerPar=nOM>0?OpenMenus[nOM].SelCommandPar:null;
	Menu.SelCommand=null;
 	if(nomImage)
 	{
		if (IE) var imgObj=document.images[nomImage];
		else var imgObj=document.layers[nomImage]
 		if(imgObj)
 		{
			x=PositionMenu(Menu,imgObj)[0];
  		y=PositionMenu(Menu,imgObj)[1];
	}
	}
	
	if(IE)
	{
	  if (IsMac)
		{
		  Menu.left=x + 10 + "px";
		  Menu.top= y + 13 +"px";
		}
		else
		{
		  Menu.left=x +"px";
		  Menu.top= y - 2 +"px";
		}
  }
	if (IE) OpenMenus[++nOM]=Menu;
	else
	{
		Menu.clip.width=0;
		Menu.clip.height=0;
		Menu.moveToAbsolute(x,y);

		OpenMenus[++nOM]=Menu;

  	if(!OpenMenus[nOM].Filled)
  	{
  		var m=OpenMenus[nOM];
  		for(var sl=0;sl<m.layers.length;sl++) 
  			if(m.layers[sl].layers.length>0)
  			{
  				m=m.layers[sl];
  				break;
  			}
  		for(var sl=0;sl<m.layers.length-1;sl++)
  		{
  			var slo=m.layers[sl];
  			if(slo.name.indexOf("EH")==-1&&slo.name.indexOf("MC")==0) slo.clip.height=tailleFont + 11
  		}
  		OpenMenus[nOM].Filled=true;
  	}
	}
	if(SM) Menu.display="inline";
	Menu.visibility="visible";
	HTHnd[nOM]=0;
	if(NS)
	{
		OpenMenus[nOM].clip.width=tabLargeur[nomMenu]
		OpenMenus[nOM].clip.height=tabHauteur[nomMenu]
	}
	return true;
}


// rend vrai si le curseur est dans un menu
function DansMenu()
{
	var m=OpenMenus[nOM];
	if(!m) 
		return false;
	var gauche=parseInt(m.left);
	var droit=gauche+tabLargeur[nomMenu];
	var haut=parseInt(m.top);
	var bas=haut+tabHauteur[nomMenu];
	return ((posPointeurX>=gauche&&posPointeurX<=droit)&&(posPointeurY>=haut&&posPointeurY<=bas))||menuEstOuvert;
}


function PositionPointeur(e)
{
	if ((document.all) || OP)
	{
		if(event==null) 
			if(window.event==null) 
				return;
			else 
				e=window.event;
		else e=event;
		posPointeurX=e.clientX+document.body.scrollLeft;
		posPointeurY=e.clientY+document.body.scrollTop;
	}
	else if(document.getElementById)
	{
		posPointeurX=e.clientX+window.scrollX;
		posPointeurY=e.clientY+window.scrollY;
	}
	else
	{
		posPointeurX=e.pageX;
		posPointeurY=e.pageY;
	}
}


function Deplacement(e)
{
	if(nOM>0)
	{
		PositionPointeur(e);
		if(OpenMenus[nOM].SelCommand!=null) 
			if(!DansMenu()&&!HTHnd[nOM]) 
				HTHnd[nOM]=window.setTimeout("if(nOM>0)if(!DansMenu())EffacerMenu()",tempsAttente);
	}
}


function EffaceTous()
{
	if(nOM)
		while(nOM>0) EffacerMenu();
	else 
		EffacerMenu();
}


function BoutonOut()
{
	menuEstOuvert=false;
	HTHnd[nOM]=window.setTimeout("if(!DansMenu())EffaceTous();else HTHnd[nOM]=0;",tempsAttente);
}


function PositionMenu(Menu,imgObj)
{
	if(IE)
	{
		x=DonnePosImage(imgObj)[0];
		y=DonnePosImage(imgObj)[1] + imgObj.height + 2;
	}
	else
	{
		x=imgObj.x;
		y=imgObj.y + imgObj.clip.height;
	}
	return [x,y];
}


function DonnePosImage(imgObj)
{
	x=imgObj.offsetLeft;
	y=imgObj.offsetTop;
	ce =imgObj.offsetParent;
	while (ce!=null)
	{
		y+=ce.offsetTop;
		x+=ce.offsetLeft;
		ce=ce.offsetParent;
	}
	return [x,y];
}