/*-----------------------------------------------------------------|
|		Menu déroulant											   |
|	   ================											   |
|	Menu déroulant genre Explorateur Windows XP.                   |
|	Gestion du fader et du mouvement des menus.					   |
|----------------------------------------------------------------*/

// -= Variables globales =-
//==========================
var Interval = 50;
var SumInt = 0;
var imgOButton = "Img/OButton.jpg";
var imgFButton = "Img/FButton.jpg";

var PosXStart = 0;
var PosYStart = 0;
var intSepar = 20;
var bFader = false;

var strFader = "filter: alpha(opacity=0);";

var arrListMenu = new Array();



// -= Fonctions =-
//=================
function DoNothing() {}


function StartMenu(){


          var strReturnDebut = "";
          
          strReturnDebut += "<table width='162' border='0' cellspacing='0' cellpadding='0'>";
          strReturnDebut += "        <tr> ";
          //strReturnDebut += "         <td height='12'><img name='titrubrique' src='images/tit-rubrique.gif' width='163' height='12' border='0'></td>";
					strReturnDebut += "         <td height='12'></td>";
          strReturnDebut += "      </tr>";
          strReturnDebut += "       <tr>";
          //strReturnDebut += "        <td background='images/fond-cell1.gif'>";
					strReturnDebut += "        <td >";
          strReturnDebut += "           <table width='120' border='0' cellspacing='0' cellpadding='0' align='center'>";
          strReturnDebut += "        <tr> ";
          strReturnDebut += "       <td> <p class ='LeftText'>";
          strReturnDebut += " </p>";
          strReturnDebut += "                </td>";
          strReturnDebut += "                </tr>";
          strReturnDebut += "             </table>";
          strReturnDebut += "           </td>";
          strReturnDebut += "        </tr>";        
          strReturnDebut += "       </table>";
          document.write( strReturnDebut );
							
 var strBR = "<br>";			
 			
// Lancement des Menus du 1er jusqu'à l'avant dernier  					
for( var i = 0; i < arrListMenu.length-1; i++ )  fctWrite(i);		
// Lancement du dernier Menu sans sous-menus  

//  AN ----------------------------------------------------MAJMENU--------------------------------------------------------
//nombre de menus à mettre à jour
fctWriteFin(3);	

//alert (arrListMenu[2].Name + arrListMenu[2].Caption +arrListMenu[2].isShowed );

		
}





function InitMenu( StartX, StartY, Separ, Fader ){
	PosXStart = StartX;
	PosYStart = StartY;
	intSepar = Separ;
	bFader = Fader;
}

function getObject( id ){
	for( var Cpt = 0; Cpt < arrListMenu.length; Cpt++ ){
	 	if( id == arrListMenu[Cpt].Name ) return arrListMenu[Cpt];
		for( var Cpt2 = 0; Cpt2 < arrListMenu[Cpt].Option.length; Cpt2++ ){
	 		if( id == arrListMenu[Cpt].Option[Cpt2].Name ) return arrListMenu[Cpt].Option[Cpt2];
			
		}
	}
}

            function fctMove( strObj, intTo, intVitesse ){
            	// But:		Bouger le menu de sa position 'Y' actuelle vers la position 'Y' "intTo".
            	// Event:	/
            	// Param.:	- Index = Numéro du menu. 
            	//			- intTo = Position 'Y' finale du menu ou de l'option.
            	//			- intVitesse = Vitesse de mouvement.
            	
            	var Obj = getObject( strObj );
            	
            	if( parseInt(intTo) != Obj.PosY ){
            		if( parseInt(intTo) < Obj.PosY ){
            			Obj.PosY -= 5 * intVitesse;
            			if( Obj.PosY <= parseInt(intTo) ) Obj.PosY = parseInt(intTo);
            		}
            		else {
            			Obj.PosY += 5 * intVitesse;
            			if( Obj.PosY >= parseInt(intTo) ) Obj.PosY = parseInt(intTo);
            		}
            		document.getElementById( Obj.Name ).style.top = Obj.PosY;
            		setTimeout("fctMove('" + Obj.Name + "', " + intTo + ", " + intVitesse + ")", Interval);
            	}
            }

function fctAnim( Index ){
	// But:		Animation du menu
	// Event:	Qd on clique sur l'en-tête du menu.
	// Param.:	- Index = Numéro du menu.
	
	var Menu = arrListMenu[Index];
	
	var To = 0;
	var intCpt = 0;
	
	if( !Menu.isShowed ){
	
		document.getElementById( Menu.ImageName ).src = "Img/FButton.jpg";
		if( bFader ) fctSetOpacity(Index, "+");
		else document.getElementById( Menu.OptionName ).style.display = "";
		
		for( intCpt = 0; intCpt < Menu.Option.length; intCpt++){
			fctMove(Menu.Option[intCpt].Name, 0, intCpt);
			To +=19;		
		
		}
		
		for( intCpt = Menu.Index + 1; intCpt < arrListMenu.length; intCpt++ ){
			fctMove(arrListMenu[intCpt].Name, To + arrListMenu[intCpt].PosY, Menu.Option.length + 1 );
		}
//  AN ----------------------------------------------------MAJMENU--------------------------------------------------------
		Menu.isShowed = true;
		 if (Menu.Name =="mnuSOC"){document.myForm1.M1.value ="1"; document.myForm1.M2.value ="0"; document.myForm1.M3.value ="0"; document.myForm1.M4.value ="0";		}
		// if (Menu.Name =="mnuSQ"){document.myForm1.M2.value ="1";	document.myForm1.M1.value ="0"; document.myForm1.M3.value ="0"; document.myForm1.M4.value ="0";	}
     if (Menu.Name =="mnuARG"){document.myForm1.M2.value ="1";	document.myForm1.M4.value ="0"; document.myForm1.M1.value ="0"; document.myForm1.M3.value ="0";	}
		 if (Menu.Name =="mnuTEL"){document.myForm1.M3.value ="1";	document.myForm1.M1.value ="0"; document.myForm1.M4.value ="0"; document.myForm1.M2.value ="0";	} 
		
	}
	else {
		document.getElementById( Menu.ImageName ).src = "Img/OButton.jpg";
		if( bFader ) fctSetOpacity(Index, "-");
		
		for( intCpt = 0; intCpt < Menu.Option.length; intCpt++){
			fctMove(Menu.Option[intCpt].Name,-19*(intCpt), intCpt + 1);
			To += 19;
			SumInt += Interval/2;
		}
		
		for( intCpt = Index + 1; intCpt < arrListMenu.length; intCpt++ ){
			fctMove(arrListMenu[intCpt].Name, arrListMenu[intCpt].PosY - To, Menu.Option.length + 1 );
			SumInt += Interval/2;
		}
		
		Menu.isShowed = false;
		//  AN ----------------------------------------------------MAJMENU--------------------------------------------------------
		 if (Menu.Name =="mnuSOC"){document.myForm1.M1.value ="0";	}
		 if (Menu.Name =="mnuSQ"){document.myForm1.M2.value ="0";	}
		 if (Menu.Name =="mnuTEL"){document.myForm1.M3.value ="0";	}
		 if (Menu.Name =="mnuARG"){document.myForm1.M4.value ="0";	} 
		
		if( !bFader ) setTimeout("document.getElementById('" + Menu.OptionName + "').style.display = 'none'", SumInt);
		SumInt = 0;
	}
	//alert(Menu.Name+ Menu.Caption + Menu.isShowed );
	
	}

function fctAnimB( Index ){
	// But:		Animation du menu
	// Event:	Qd on clique sur l'en-tête du menu.
	// Param.:	- Index = Numéro du menu.
	
	var MenuB = arrListMenu[Index];
	
	var ToB = 0;
	var intCptB = 0;
	
	if( !MenuB.isShowed ){
	
		document.getElementById( MenuB.ImageName ).src = "Img/FButToBn.jpg";
		if( bFader ) fctSeTopacity(Index, "+");
		else document.getElementById( MenuB.OptionName ).style.display = "";
		
		//for( intCptB = 0; intCptB < MenuB.Option.length; intCptB++){
		for( intCptB = 0; intCptB < MenuB.Option.length; intCptB++){
			fctMove(MenuB.Option[intCptB].Name, 0,intCptB);
			ToB +=19;		
			
			
		}
		
		for( intCptB = MenuB.Index + 1; intCptB < arrListMenu.length; intCptB++ ){
			fctMove(arrListMenu[intCptB].Name, ToB + arrListMenu[intCptB].PosY, MenuB.Option.length + 1 );
		}
		
		MenuB.isShowed = true;
		
		 /*if (MenuB.Name =="mnuSOC"){document.myForm1.M1.value ="1";	}
		 if (MenuB.Name =="mnuSQ"){document.myForm1.M2.value ="1";	}
		 if (MenuB.Name =="mnuARG"){document.myForm1.M3.value ="1";	}
		 if (MenuB.Name =="mnuTEL"){document.myForm1.M4.value ="1";	} 
		  if (MenuB.Name =="mnuCONTACT"){document.myForm1.M5.value ="1";	} */
	}
	else {
		/* document.getElementById( MenuB.ImageName ).src = "Img/OButToBn.jpg";
		if( bFader ) fctSeTopacity(Index, "-");
		
		for( intCptB = 0; intCptB < MenuB.Option.length; intCptB++){
			fctMove(MenuB.Option[intCptB].Name,-19*(intCptB), intCptB + 1);
			ToB += 19;
			SumInt += Interval/2;
		}
		
		for( intCptB = Index + 1; intCptB < arrListMenu.length; intCptB++ ){
			fctMove(arrListMenu[intCptB].Name, arrListMenu[intCptB].PosY - ToB, MenuB.Option.length + 1 );
			SumInt += Interval/2;
		}
		
		MenuB.isShowed = false;
		if (MenuB.Name =="mnuSOC"){document.myForm1.M1.value ="0";	}
		 if (MenuB.Name =="mnuSQ"){document.myForm1.M2.value ="0";	}
		 if (MenuB.Name =="mnuARG"){document.myForm1.M3.value ="0";	}
		 if (MenuB.Name =="mnuTEL"){document.myForm1.M4.value ="0";	} 
		  if (MenuB.Name =="mnuCONTACT"){document.myForm1.M5.value ="0";	} */
		
		if( !bFader ) setTimeout("document.getElementById('" + MenuB.OptionName + "').style.display = 'none'", SumInt);
		SumInt = 0;
	}
	//alert(MenuB.Name+ MenuB.Caption + MenuB.isShowed );
	
	}




              function fctSetOpacity( Index, strOp ){
              	// But:		Initialisé l'opacité du menu.
              	// Event:	/
              	// Param.:	- Index = Numéro du menu.
              	//			- strOp = Opération à effectuer sur l'opcaté du menu
              	
              	var Menu = arrListMenu[Index];
              	
              	if( Menu.Opac <= 101 && Menu.Opac >= -1 ){
              		if( strOp == "+" ){
              			Menu.Opac = Menu.Opac + 20;	
              		}
              		else {
              			Menu.Opac = Menu.Opac - 20;
              		}
              		for( var i = 0; i < Menu.Option.length; i++ ) document.getElementById( Menu.Option[i].Name).filters.alpha.opacity = Menu.Opac;
              		document.getElementById( Menu.OptionName).style.display = "";
              		setTimeout("fctSetOpacity(" + Index + ", '" + strOp + "')", Interval);
              	}
              	else {
              		if( strOp == "+" ){
              			Menu.Opac = 100;	
              		}
              		else {
              			Menu.Opac = 0;
              			document.getElementById( Menu.OptionName).style.display = "none";
              		}
              		for( var i = 0; i < Menu.Option.length; i++ ) document.getElementById( Menu.Option[i].Name ).filters.alpha.opacity = Menu.Opac;
              	}
              }



function fctWrite( Index){
	// But:		Ecriture du menu dans le browser.
	// Event:	/
	var strRBorder = "solid";
	var strLBorder = "solid";
	var strBBorder = "none";
	var strReturn = "";
	
	var Menu = arrListMenu[Index];

	
	strReturn += "<table border='0' width = '163' summary='' cellpadding = '0' cellspacing = '0' style='Position:absolute;top:" + Menu.PosY + ";left:" + Menu.PosX + ";' id = '" + Menu.Name + "'>"
	///strReturn += "<tr><td bgcolor=''  background='images/fond-cell1.gif'><table  width = '120' border='0' summary='' cellpadding = '0' cellspacing = '0' style=''><tr onClick = \"fctAnim(" + Index + ")\" style='cursor:hand;'>";
	strReturn += "<tr><td  ><table  width = '120' border='0' summary='' cellpadding = '0' cellspacing = '0' style=''><tr onClick = \"fctAnim(" + Index + ")\" style='cursor:hand;'>";

	strReturn += "<td height = '16' width = '25' ></td>";
	//strReturn += "<td height = '16' width = '5' background='Images/bgHeader.jpg'><img src='" + Menu.Image + "' border='0' width='5' height='16' align='right'></td>";
	strReturn += "<td height = '16' width='100' class ='LeftText' style='color:#333333;'><B>" + Menu.Caption + "</B></td>";
	strReturn += "<td height = '16' width = '5' ><img id='" + Menu.ImageName + "' border='0' width='0' height='16' alt=''></td>";
	//strReturn += "<td height = '16' width = '5'><img src='Images/bgHeader.jpg' border='0' width='5' height='16' alt=''></td>";
	

	strReturn += "</tr></table></td></tr><tr><td>";
	

	strReturn += "<table border='0' width='100%' cellpadding='0' cellspacing='0'  id='" + Menu.OptionName + "' style=';z-index:0;display: none'>";
		
	
	for( var intCpt = 0; intCpt < Menu.Option.length; intCpt++ ){
		if( Menu.Option.length-1 == intCpt ){
		strBBorder = "solid";
				
		}
	
		strReturn += "<tr id='" + Menu.Option[intCpt].Name + "' style='position: relative; top:" + Menu.Option[intCpt].PosY + "; left:" + Menu.Option[intCpt].PosX + ";z-index: 0;" + ((bFader)? strFader : "")  + " ' >";
		
		// string de fond 
	  strReturn += "<td><table width='162' border=0' cellspacing='0' cellpadding='0'>";
   	strReturn += "       <tr>";
    strReturn += "        <td >";
   	strReturn += "           <table width='150' border='0' cellspacing='0' cellpadding='0' align='left'>";
    strReturn += "        <tr> ";
    strReturn += "       <td>";

		//strReturn += "<td height = '16' width = '1px' style = 'border-style: none none " + strBBorder + " " + strLBorder + "; border-color: #E6F6F2; border-width: 1; color: #ffffff; background: ''>&nbsp;</td>";
		strReturn += "<td height = '16' width='25' style = 'border-style: none none "/*+ strBBorder */+ " none; border-color: ''; border-width:''; color: ''; ></td>";
		strReturn += "<td height = '16' width='125' style = 'border-style: none none " /*+ strBBorder */+ " none; border-color: ''; border-width: ''; color: '';  align='left';	><a NAME ='" + Menu.Option[intCpt].Name + "M' href = '" + Menu.Option[intCpt].Links + Menu.Option[intCpt].Param + "' Target = '" + Menu.Option[intCpt].Target + "' style='color:#000000' class ='LeftText'>&nbsp;" + Menu.Option[intCpt].Caption + "&nbsp;</a></td>";
		//strReturn += "<td height = '16' width = '1px' style = 'border-style: none " + strRBorder + " " + strBBorder + " none; border-color: #E6F6F2; border-width: 1; color: #E6F6F2; background: ''>&nbsp;</td>";
	
		//string de fond 
    strReturn += "                </td>";
	  strReturn += "                </tr>";
 	   strReturn += "             </table>";
 	   strReturn += "           </td>";
 	   strReturn += "        </tr>";
			 
	
 		 strReturn += "       </table></td>";
	}
	
	strReturn += "</tr></Table></td></tr></table>";

	document.write( strReturn );

}


function fctWriteFin( Index){
	// But:		Ecriture du menu dans le browser.
	// Event:	/
	var strRBorder = "solid";
	var strLBorder = "solid";
	var strBBorder = "none";
	var strReturn = "";
	
	var Menu = arrListMenu[Index];

	strReturn += "<table border='0' width = '163' summary='' cellpadding = '0' cellspacing = '0' style='Position:absolute;top:" + Menu.PosY + ";left:" + Menu.PosX + ";' id = '" + Menu.Name + "'>"
	strReturn += "<tr><td><table  width = '120' border='0' summary='' cellpadding = '0' cellspacing = '0' style=''><tr onClick = \"fctAnim(" + Index + ")\" style='cursor:hand;'>";
	strReturn += "<td height = '16' width = '25' ></td>";
	//strReturn += "<td height = '16' width = '5' background='Images/bgHeader.jpg'><img src='" + Menu.Image + "' border='0' width='5' height='16' align='right'></td>";
//  AN ----------------------------------------------------MAJMENU--------------------------------------------------------
	strReturn += "<td height = '16' width='100'  class ='LeftText' style='color:#333333'><A  HREF='mailto:contact@erebus-interactive.com'><B>" + Menu.Caption + "</B></A></td>";
	strReturn += "<td height = '16' width = '5' ><img id='" + Menu.ImageName + "'  border='0' width='0' height='16' alt=''></td>";
	//strReturn += "<td height = '16' width = '5'><img src='Images/bgHeader.jpg' border='0' width='5' height='16' alt=''></td>";
	

	strReturn += "</tr></table></td></tr><tr><td>";
	
	strReturn += "<table border='0' width = '163' cellpadding = '0' cellspacing = '0'>";
	strReturn += "        <tr>";
 // strReturn += "           <td height='14' ><img src='images/fond-cell.gif' width='163' height='14'></td>";
  strReturn += "        </tr>";
	strReturn += "        </table>";

	
	strReturn += "<table border='0' width='100%' cellpadding='0' cellspacing='0'  id='" + Menu.OptionName + "' style=';z-index:0;display: none'>";
	
	
	for( var intCpt = 0; intCpt < Menu.Option.length; intCpt++ ){
		if( Menu.Option.length-1 == intCpt ){
			strBBorder = "solid";
				
		}
	
		strReturn += "<tr id='" + Menu.Option[intCpt].Name + "' style='position: relative; top:" + Menu.Option[intCpt].PosY + "; left:" + Menu.Option[intCpt].PosX + ";z-index: 0;" + ((bFader)? strFader : "")  + " ' >";
		
		// string de fond 
	  strReturn += "<td><table width='162' border='0' cellspacing='0' cellpadding='0'>";
   	strReturn += "       <tr>";
    strReturn += "        <td background='images/fond-cell1.gif'>";
   	strReturn += "           <table width='120' border='0' cellspacing='0' cellpadding='0' align='center'>";
    strReturn += "        <tr> ";
    strReturn += "       <td>";
		
		//strReturn += "<td height = '16' width = '1px' style = 'border-style: none none " + strBBorder + " " + strLBorder + "; border-color: #E6F6F2; border-width: 1; color: #ffffff; background: ''>&nbsp;</td>";
		strReturn += "<td height = '16' style = 'border-style: none none "/*+ strBBorder */+ " none; border-color: ''; border-width:''; color: ''; ><img src='" + Menu.Option[intCpt].Image + "' border='0' width='1' height='16' align='right'></td>";
		strReturn += "<td height = '16' style = 'border-style: none none " /*+ strBBorder */+ " none; border-color: ''; border-width: ''; color: '';  	><a href = '" + Menu.Option[intCpt].Links + Menu.Option[intCpt].Param + "' Target = '" + Menu.Option[intCpt].Target + "' style='color:#000000' class ='LeftText'>&nbsp;" + Menu.Option[intCpt].Caption + "&nbsp;</a></td>";
		//strReturn += "<td height = '16' width = '1px' style = 'border-style: none " + strRBorder + " " + strBBorder + " none; border-color: #E6F6F2; border-width: 1; color: #E6F6F2; background: ''>&nbsp;</td>";
	
		//string de fond 
    strReturn += "                </td>";
	  strReturn += "                </tr>";
	
 	   strReturn += "             </table>";
 	   strReturn += "           </td>";
 	   strReturn += "        </tr>";
		 
 		 strReturn += "       </table></td>";
	}
	
	strReturn += "</tr></Table></td></tr></table>";

	document.write( strReturn );
	
}



function fctCreateOption( strName, strTitre, strHref, strParam, strTarget, strImage){
	this.Option[this.Option.length] = new OptionObject(strName, strTitre, strHref, strParam, strTarget, strImage, 0, -16*(this.Option.length));
}


// -= Objet "Menu" =-
//====================
function MenuObject( strMenuName, strImage, strImageName, strTitre, intPosX, intPosY ){
	this.Name = strMenuName;
	this.Image = strImage;
	this.ImageName = strImageName;
	this.Caption = strTitre;
	this.PosX = PosXStart;
	this.PosY = PosYStart + arrListMenu.length * (16 + intSepar);
	this.OptionName = strMenuName + "Option";
	this.isShowed = false;
	
	this.Opac = 0;
	this.Index = arrListMenu.length;
	arrListMenu[arrListMenu.length] = this;
	this.Option = new Array();
	
	this.CreateOption = fctCreateOption;
}


// -= Objet "Option " =-
//======================
function OptionObject( strName, strTitre, strHref, strParam, strTarget, strImage, intPosX, intPosY){
	this.PosX = intPosX;
	this.PosY = intPosY;
	this.Name = strName;
	this.Image = strImage;
	this.Caption = strTitre;
	this.Param = strParam;
	this.Target = strTarget;
	this.Links = strHref;
}