var 		menuTop 							= 			45																						,
		 		menuLeft							=				400																						,
		 		domSMenu							=				null																					,
				oldDomSMenu					 	= 			null																					,
				t 										= 			0																							,
				lDelay 								=				5																							,
				lCount								=				0																							,
				pause									=				100																						,
				decalagetop						=				0																							,
				decalageleft					=				0																							;

//	------------------------------------------------------------------------------------------------
function popMenu(idMenu,menuNum,msindex){
	if(isDHTML){
		// Place la visibilité du menu précédent sur hidden
		t=2;
		if(oldDomSMenu){hideMenu();}

		// Définit les DOM des objets menu
		var 		domMenu 					= 			findDOM( idMenu, 0 )													;
		var 		idMenuOpt					=				'menuHead_' + msindex + "_" + menuNum					;
		var 		domMenuOpt				=				findDOM(idMenuOpt,0)													;		
		var 		idSMenu						=				'menu_' + msindex + "_" + menuNum							;
		var			domSMenu					=				findDOM(idSMenu,1)														;

		// Définit les positions des sous-menus
		if (isID || isAll) { 	
			var 	menuLeft 					=				( domMenu.offsetLeft )	+ ( domMenuOpt.offsetLeft ) 	+ 	decalageleft ;
			var 	menuTop 					=				( domMenu.offsetTop  ) 	+ ( domMenu.offsetHeight  )		+		decalagetop	 ;
//alert("popMenu p2 menuLeft: " + menuLeft + " | menuTop : " + menuTop ) ;
			
		} else if (isLayers) {
			var 	menuLeft 					= 			document.layers[idMenu].layers[idMenuOpt].pageX - decalageleft				;
			var 	menuTop						=				domMenu.pageY + domMenu.clip.height - decalagetop											;
		}

		// Positionne et affiche le menu
		if ( oldDomSMenu != domSMenu ) {
			domSMenu.left=menuLeft+"px"; 
			domSMenu.top=menuTop+"px";
			domSMenu.visibility='visible';
			domSMenu.zIndex='100';
			oldDomSMenu=domSMenu;
		}
		// Réinitialise oldDom s'il est identique au DOM en cours
		else{oldDomSMenu=null;}
	}

	// Retourne une valeur 'null' pour les navigateurs non-DHTML
	else{return null;}
}

//	------------------------------------------------------------------------------------------------
function delayHide() {

	// Interrompt la fonction si un autre menu est ouvert
	if (t == 2) { 
		lCount = 0; 
		return false; 
	}

	// Vérifie si un menu est affiché et si la variable global 't'
	// a pris la valeur 0 (demande de fermeture d'un menu)
	if ( ( oldDomSMenu ) && ( t == 0 ) ) {
		hideMenu();
		return false;
	}

	// Répète la fonction en ajoutant chaque fois 1 à lCount, jusqu'à ce que
	// lCount soit égal à lDelay puis définit 't' sur 0 pour que le menu
	// soit masqué lorsqu'elle s'exécute à nouveau
	if(t==1){ 
		lCount=lCount+1;

		// Est ce que le compteur est supérieur ou égal au délai à attendre pour masquer le sous menu ?
		if(lDelay<=lCount){
			// On place la variable t (indiquant le statut du menu) sur 0 pour masquer le menu
			t = 0; 
			// On appele de nouveau le délai, pour faire réélement disparaitre le menu
			setTimeout('delayHide('+t+')',pause);
		}
		if (lDelay>=lCount){setTimeout('delayHide('+t+')',pause);}
	}
}

//	------------------------------------------------------------------------------------------------
function hideMenu() {
	oldDomSMenu.visibility='hidden';oldDomSMenu.zIndex='0';oldDomSMenu=null;lCount=0;t=2;
}
