/***************************************
*                Menu.js.              *
*   Copyright 2004 Maido Production    *
*       http://www.maido-prod.com      *
*     Compatible : Ie5,Ns4,Ns6,Opera   *
***************************************/

/*---------------les layer s'appelle toujour "menu"+numero de menu----------------*/
/*------------------------les numero de menu commence a 1-------------------------*/
/*---------------les td des ss menu s'appelle toujour "ssmenu"+numero de ssmenu----------------*/
/*---------------------les numero de ssmenu commence a 1 et se suivent------------------------*/
//var tab=new Array();
/*tableau du nombre de souscategorie par menu , l'index du tableau = numero du menu*/
//tab[1]=3;
//tab[2]=1;

//var largeur_menu="200";
//var hauteur_menu="77";
//var decalageMenuTop=0; //Inutile
//var decalageMenuLeft=0; //Inutile
//var taille_ligne_tableau=25;
//var couleur_de_fond="#FF00FF";
//var couleur_de_rollover="#FFFFFF"

//Variable globale
var X=0;
var Y=0;
//le flag permet de savoir quand la souris est encore sur le menu flottant (pour ne pas le fermer) : 0=faux, 1=vrai
var flag_menu="0";
var nav=cherchenav();


var mnuAtionOpen=new Array()

function ActivemnuAtionOpen(num_menu){
for (i=1; i < tab.length; ++i){
if (i==num_menu){mnuAtionOpen[i]=true}else{mnuAtionOpen[i]=false}
}
}



//gestion des fondus de menu
var timer = 0;
var iOpacity = 0;
function FadeInOn(id) {
iOpacity = 0
if (timer == 0 && timer_menu_fade>0) {
timer = setInterval("FadeIn('"+id+"')", timer_menu_fade);
}
}
function CancelFade() {
if (timer == 0) return;
clearInterval(timer);
timer = 0;
}
function FadeIn(id) {
var elem = document.getElementById(id);
if (elem){
	iOpacity += 1;
	elem.style.opacity = iOpacity/10;
	elem.style.MozOpacity = iOpacity/10;
	elem.style.KhtmlOpacity = iOpacity/10;
	elem.style.filter = "alpha(opacity=" + iOpacity * 10 + ")";
	if (iOpacity>=10){CancelFade()}
}
}
function FadeOff(id) {
if (timer_menu_fade>0) {
var elem = document.getElementById(id);
if (elem){
	CancelFade()
	elem.style.opacity = 0;
	elem.style.MozOpacity = 0;
	elem.style.KhtmlOpacity = 0;
	elem.style.filter = "alpha(opacity=0)";
}
}
}
//gestion des fondus de menu




//Initailisation des evenements  pour nescape 4 et 6 :
//   - mouvement de la souris
//   - mouvement de la mouseover et mouse out sur le menu flottant
function init_menu()
{
	var i=0;
	if (nav=="ns4")
	{ 
		document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = souris_ns;
		for (i=1; i < tab.length; ++i)
		{
			document.layers["menu"+i].captureEvents(Event.MOUSEOVER);
			document.layers["menu"+i].onmouseover = flagActif;
			
			document.layers["menu"+i].captureEvents(Event.MOUSEOUT);
			document.layers["menu"+i].onmouseout = flagInactif_ns4;
		}
	}
	else
	{
		if (nav=="ns6")
		{
		window.addEventListener('mousemove',souris_ns,false);
		}
		
	}
	if (nav=="ie4")
	{
	var Elem=document.getElementsByTagName('body')//
	Elem.onmousemove=sourie_ie();
	}
}	


//fonction de recherche du navigateur	
function cherchenav()
{
	var nav;
	var ns4=document.layers;
	var ie4=document.all;
	var ns6=document.getElementById&&!document.all;
	var op = window.opera;
	if (ns6) 
	{ 
	  // Navigateur Netscape 5 et plus et DOM-1.
	 nav="ns6";
	} 
	else if (ns4) 
	{ 
	  // Navigateur Netscape 4.7 et moins. 
	 nav="ns4";
	} 
	else if (op) 
	{
	nav="opera";
	}
	else if (ie4) 
	{ 
	  // Internet Explorer et Opera
	 nav="ie4";
	}	
	return nav;
}




//fonction de recuperation des coordonne de la souris pour ie et opera
function sourie_ie()
{ 
	try
	{
		if (nav=="ie4" || nav=="opera")
		{
			X=window.event.clientX;
			Y=window.event.clientY;
		}
	}
	catch (ex){}
}




//fonction de recuperation des coordonne de la souris pour ns4 et ns6
function souris_ns(e) //pour Netscape
{
	try
	{
		if (nav=="ns6")
		{
			X=e.clientX;
			Y=e.clientY;
		}
		else
		{
			X=e.x;
			Y=e.y;
		}
	}
	catch (ex){}
}


function flagActif(e)
{
	flag_menu="1";
}

//fonction de gestion du flag_menu sous ns4
function flagInactif_ns4()
{
	var menu_actif;
	flag_menu="0";
	menu_actif=this.id;
	menu_actif=menu_actif.replace("menu", "");
	PauseEffaceMenu(menu_actif);
}	

//fonction de gestion du flag_menu sous ie, opera,ns6
function flagInactif(num_menu)
{
	if (nav=="ie4" || nav=="opera"|| nav=="ns6")
	{
		flag_menu="0";
		//document.formul.flag.value=flag_menu;
		PauseEffaceMenu(num_menu);
	}
}


//fonction de positionnement du menu flottant suivant la largeur de la fenetre et la position de la souris
function positionneLayer(num_menu)
{ 
	var menu;
	var largeur_page=window.innerWidth;
	var decalage=5;
	if (nav=="ie4" || nav=="opera")
	{
		if (nav=="ie4")
		{
			largeur_page=document.body.clientWidth;
		}
		menu=eval("document.all.menu"+num_menu);
		menu.style.pixelTop=window.document.body.scrollTop+Y+decalage;
		if (X<(largeur_page-largeur_menu))
		{
			menu.style.pixelLeft=X+decalage;
		}
		else
		{
			menu.style.pixelLeft=(X-largeur_menu)-decalage;
		}

	}
	else
	{ 
		if (nav=="ns4")
		{
			menu=document.layers["menu"+num_menu];
			menu.y=window.scrollY+Y+decalage;
			if (X<(largeur_page-largeur_menu))
			{
				menu.x=X+decalage;
			}
			else
			{
				menu.x=(X-largeur_menu)-decalage;
			}

		}
		else
		{
			menu=document.getElementById("menu"+num_menu);
			menu.style.top=window.scrollY+Y+decalage;
			if (X<(largeur_page-largeur_menu))
			{
				menu.style.left=X+decalage;
			}
			else
			{
				menu.style.left=(X-largeur_menu)-decalage;
			}

		}
	}
}

//fonction de redimentionnement du menu suivant le nombre de sous categorie du menu
function redimentionne(num_menu)
{

hauteur_menu="100";
var menu;
if (nav=="ie4" || nav=="opera")
	{
	menu=eval("document.all.menu"+num_menu);
	menu.style.width =largeur_menu;
	menu.style.height =tab[num_menu]*taille_ligne_tableau;
	}
	else
	{
		if (nav=="ns4")
		{
			menu=document.layers["menu"+num_menu];
			menu.clip.width=largeur_menu;
			menu.clip.height=tab[num_menu]*taille_ligne_tableau+2;
		}
		else
		{
			menu=document.getElementById("menu"+num_menu);
			menu.width=largeur_menu;
			menu.height=tab[num_menu]*taille_ligne_tableau+2;
		}
	}

}





//fonction qui permet d'ajouter un delai d'attente avnt la fermeture du menu flottant
function PauseEffaceMenu(num_menu)
{
ActivemnuAtionOpen(-1);
setTimeout('EffaceMenu('+num_menu+')', 100) 
}

function EffaceMenu(num_menu)
{
	var menu;
	if (flag_menu=="0")
	{
		if (nav=="ie4" || nav=="opera")
		{
			
			menu=eval("document.all.menu"+num_menu);
			if (menu)
			{
				menu.style.visibility='hidden';
			}
		}
		else
		{
			if (nav=="ns4")
			{
				menu=document.layers["menu"+num_menu];
				menu.visibility = "hide";
			}
			else
			{
				menu=document.getElementById("menu"+num_menu);
				menu.style.visibility = "hidden";
			}
		}
	}
}


//fonction qui permet d'ajouter un delai d'attente avant l'ouverture du menu flottant
function PauseAfficheMenu(num_menu)
{
if (mnuAtionOpen[num_menu]!=true){
	ActivemnuAtionOpen(num_menu);
	setTimeout('AfficheMenu('+num_menu+')', 200) 
}
}


//fonction d'affichage du menu
function AfficheMenu(num_menu)
{	
var menu;
if (mnuAtionOpen[num_menu]==true && X>0 && Y>0){
if (nav=="ie4" || nav=="opera")
	{
	FadeOff("menu"+num_menu)
	redimentionne(num_menu);
	positionneLayer(num_menu);
	menu=eval("document.all.menu"+num_menu);
	menu.style.visibility='visible';
	menu.style.backgroundColor=couleur_de_fond;
	FadeInOn("menu"+num_menu)
	}
	else
	{
		if (nav=="ns4")
		{
			redimentionne(num_menu);
			positionneLayer(num_menu);
			menu=document.layers["menu"+num_menu];
			menu.visibility = "show";
			menu.bgColor=couleur_de_fond;
		}
		else
		{
			FadeOff("menu"+num_menu)
			redimentionne(num_menu);
			positionneLayer(num_menu);
			menu=document.getElementById("menu"+num_menu);
			menu.style.visibility='visible';
			menu.style.backgroundColor=couleur_de_fond;
			FadeInOn("menu"+num_menu)
		}
	}
}
}

//fonction de gestion des rollover sur les sous categorie (ne fonctionne pas pour ns4
function roll_ssmenu_over(num_ssmenu,test)
{	
	if (nav=="ie4" || nav=="opera")
	{
		ssmenu=eval("document.all.ssmenu"+num_ssmenu);
		ssmenu.style.backgroundColor=couleur_de_rollover;
	}
	if (nav=="ns6")
	{
		ssmenu=document.getElementById("ssmenu"+num_ssmenu);
		ssmenu.style.backgroundColor=couleur_de_rollover;
	}
}

//fonction de gestion des rollover sur les sous categorie (ne fonctionne pas pour ns4
function roll_ssmenu_out(num_ssmenu)
{	
	if (nav=="ie4" || nav=="opera")
	{
		ssmenu=eval("document.all.ssmenu"+num_ssmenu);
		ssmenu.style.backgroundColor=couleur_de_fond;
	}
	if (nav=="ns6")
	{
		ssmenu=document.getElementById("ssmenu"+num_ssmenu);
		ssmenu.style.backgroundColor=couleur_de_fond;
	}	
}


