/****************************************************************************************************************
* Script de gestion des menus
*
* Auteur : Sébastien Roux
* Date   : 4 avril 2007
*
****************************************************************************************************************/


//***************************************************************************************************************
// Variables générales et inclusions

var IsIE, IsGecko;

var MenuLst, NbMenu;

var MovTop=-6;
var MovLeft=0;


//***************************************************************************************************************
// Initialisations

HTMLAgent=navigator.userAgent.toLowerCase();
IsIE     =((HTMLAgent.indexOf("msie")!=-1) && (HTMLAgent.indexOf("opera")==-1));
IsGecko  =(navigator.product=="Gecko");


//---------------------------------------------------------------------------------------------------------------
// Initialisation

if (IsIE)
	attachEvent ("onload", InitMenu);
else
	addEventListener ("load", InitMenu, true);

MenuLst=null;
NbMenu=0;

//---------------------------------------------------------------------------------------------------------------
// Fonction d'initialisation

function InitMenu () {
	var IdMenu=1;
	
	MenuLst=new Array();
	NbMenu=1;

	while (TopMenu=document.getElementById("MenuTop"+IdMenu))	{
		Menu=document.getElementById("Menu"+IdMenu);
		
		MenuLst[IdMenu]=new Array();
		MenuLst[IdMenu]["Top"]=TopMenu;
		MenuLst[IdMenu]["Menu"]=Menu;
		MenuLst[IdMenu]["Hiding"]=false;
		MenuLst[IdMenu]["THide"]=null;
		NbMenu++;
		
		IdMenu++;
	}

	PositionMenu ();

	if (IsIE)
		attachEvent ("onresize", PositionMenu);
	else
		addEventListener ("resize", PositionMenu, true);
}


//***************************************************************************************************************
// Fonctions Publiques

//---------------------------------------------------------------------------------------------------------------
// Positionnement des menus

function PositionMenu () {
	var m, mPos;
	
	for (m=1; m<NbMenu; m++) {
		TopMenu=MenuLst[m]["Top"];
		Menu=MenuLst[m]["Menu"];
		
		mPos=GetPosition ("MenuTop"+m);

		Menu.style.left=mPos["x"]+MovLeft;
		Menu.style.width=TopMenu.offsetWidth;
		Menu.style.top=mPos["y"]+TopMenu.offsetHeight+MovTop;
	}
}

//---------------------------------------------------------------------------------------------------------------
// Affichage d'un sous menu

function UnHideMenu (IdMenu) {
	var m;
	
	if (!MenuLst) return false;
	
	for (m=1; m<NbMenu; m++) if (MenuLst[m]["Hiding"]) {
		if (IdMenu==m)
			MenuLst[IdMenu]["Hiding"]=false;
		else
			Hidding (m);

		clearTimeout (MenuLst[m]["THide"]);
	}
	
	MenuLst[IdMenu]["Menu"].style.visibility="visible";
}

//---------------------------------------------------------------------------------------------------------------
// Masquage d'un sous menu

function HideMenu (IdMenu) {
	if (!MenuLst) return false;

	MenuLst[IdMenu]["Hiding"]=true;
	MenuLst[IdMenu]["THide"]=setTimeout('Hidding('+IdMenu+')', 200);
}


//***************************************************************************************************************
// Fonctions Privées

//---------------------------------------------------------------------------------------------------------------
// Application de la fermeture d'un menu

function Hidding (IdMenu) {
	if (!MenuLst) return false;

	MenuLst[IdMenu]["Menu"].style.visibility="hidden";
	MenuLst[IdMenu]["Hiding"]=false;
	clearTimeout (MenuLst[IdMenu]["THide"]);
}