//Définition des variables var Liste=new Menu(); //Menu contenant les menus princpaux var Largeur=145,Hauteur=20; //Largeur des menus et sous menus var DivTop=200;DivLeft=5; //Position du menu par rapport au bord de la feuille (en pixels) var Open; //Variable contenant la liste des sous menus affichés var MOut="#000000"; //Couleur des menus non survolés var MOver="#555555"; //Couleur des menus survolés var SMOut="#FF0425"; //Couleur des sous menus non survolés var SMOver="#79000F"; //Couleur des sous menus survolés var Mimg=""; var SMimg=""; var Timer=200,Time; //Timer : Temps à attendre pour que le menu s'efface (nul => désactivé) var LgID; var Affichage,Com; //Définition des menus et sous menus Liste.State=1; Liste.nb=0; Liste.ID=Open="Liste"; LgID=Open.length; /////////////////////////////////////////////////////////////////////////////////////////////// //Définition des fonctions //Définition de l'objet Menu function Menu(){ this.Titre; //Titre du menu this.State; //Positif : Menu affiché ; Négatif : Menu masqué this.nb; //Nombre de sous menus this.ID; //Identifiant du menu ou sous menu this.SMenu=new Array(); this.Lvl=Level; this.AddM=AddMenu; this.Aff=AffMenu; this.AffB=AffBetween; } //Fonction chargée de créer les sous menus //Nom : Texte qui sera affiché sur la page HTML //Lien (optionel) : Lien hypertexte associé à l'entrée du menu //Dest (optionel) : Frame cible du lien function AddMenu(Nom,Lien,Dest){ this.SMenu[this.nb]=new Menu(); if(Lien) if(Dest)this.SMenu[this.nb].Titre=""+Nom+""; else this.SMenu[this.nb].Titre=""+Nom+""; else this.SMenu[this.nb].Titre=Nom; this.SMenu[this.nb].State=-1; this.SMenu[this.nb].nb=0; this.SMenu[this.nb].ID=this.ID+".SMenu["+this.nb+"]"; this.nb++; } //Fonction chargée de donner le nombre de sous niveaux maximum //Level de l'objet function Level(Lvl){ var i; LvlMax=Lvl?LvlMax:0; LvlMax=LvlMax0){ Affichage=''; for(i=0;i0?ColorOver:ColorOut; Affichage+='\' '; Affichage+='onMouseOut=\''+this.SMenu[i].ID+'.State>0?this.setAttribute("bgColor","'+ColorOver+'"):this.setAttribute("bgColor","'+ColorOut+'");'; Affichage+=Timer?'Time=setTimeout("'+Open.substring(0,LgID)+'.AffB(0,0)",'+Timer+')\' ':'\' '; Affichage+='onMouseOver=\'this.setAttribute("bgColor","'+ColorOver+'");'; Affichage+=Timer?'clearTimeout(Time);':''; Affichage+=this.SMenu[i].Lvl(0)?this.SMenu[i].ID+'.AffB('+(Level+1)+','+(Num+i)+')\' ':'\' '; Affichage+='>'; } Affichage+='
'; Affichage+=this.SMenu[i].Titre; Affichage+=''; Affichage+=this.SMenu[i].nb?img:''; Affichage+='
'; } document.getElementById("ListeLvl"+Level).innerHTML=Affichage; document.getElementById("ListeLvl"+Level).style.visibility="visible"; } //Fonction chargée d'afficher le sous menu sélectionné //Level : Niveau du sous menu à afficher //Num : Numéro du sous menu à afficher function AffBetween(Level,Num){ for(i=(LgID+Level*9),j=0;i<=Open.length;i+=9,j++)eval(Open.substring(0,i)+".State=-1"); this.State=-this.State; if(LgID+Level*9<=Open.length){ if(Level>1){ Com=Open.substring(0,LgID+(Level-1)*9)+".State=1;"+Open.substring(0,LgID+(Level-1)*9)+".Aff("+(Level-1)+",("; for(i=12;i"); } Liste.Aff(0,0); }