// -= Variables globales =-
//==========================
var Interval = 50;
var SumInt = 0;
var imgOButton = "/images/nd2.gif";
var imgFButton = "/images/nd1.gif";

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( show_index ){
	for( var i = 0; i < arrListMenu.length; i++ )  {
		fctWrite(i);
	}
	fctAnim( show_index )		
}

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.
	//alert("FCTAnim "+Index);
	
	if ( Index == null ){
		return;
	}
	
	var Menu = arrListMenu[Index];
	
	var To = 0;
	var intCpt = 0;
	
	if( !Menu.isShowed ){
		document.getElementById(Menu.Caption).src = '/images/nd1.gif';
		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 += 0;
		}
		for( intCpt = Menu.Index + 1; intCpt < arrListMenu.length; intCpt++ ){
			fctMove(arrListMenu[intCpt].Name, To + arrListMenu[intCpt].PosY, Menu.Option.length + 1 );
		}
		Menu.isShowed = true;
	}
	else {
		document.getElementById(Menu.Caption).src = "/images/nd2.gif";
		if( bFader ) fctSetOpacity(Index, "-");
		for( intCpt = 0; intCpt < Menu.Option.length; intCpt++){
			fctMove(Menu.Option[intCpt].Name,-30*(intCpt), intCpt + 1);
			To += 0;
			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;
		if( !bFader ) setTimeout("document.getElementById('" + Menu.OptionName + "').style.display = 'none'", SumInt);
		SumInt = 0;
	}
}

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];
	
	var display = "none";

	
strReturn += "<table cellSpacing=0 cellPadding=0 width=100% align=center border=0 style='Position:relative;top:0;left:0;' id = '" + Menu.Name + "'>"
strReturn += "<tr><td colspan=6 height=4></td></tr><tr style='z-index:1;'><td><table border='0' summary='' cellpadding = '0' cellspacing = '0' ><tr class=cHand   height='25' >";
strReturn += "<td style='padding:2px 2px 2px 2px;' width=25 background=/images/gw_bn_016.gif><IMG height=20 src='"+ Menu.Image +"' width=24></td>";
//strReturn += "<td><img src='" + Menu.Image + "' border='0' width='52' height='52' align='right'></td>";
strReturn += "<td height = '25' width='120' background='/images/gw_bn_016.gif' class='mWhite' onClick=Go('"+ Menu.Link +"','no')>" + Menu.Caption + "</td>";
strReturn += "<td height = '25' background='/images/gw_bn_016.gif' onClick = \"fctAnim(" + Index + ")\"><img id='" + Menu.Caption + "' src='/images/nd2.gif' width='20' height='15' border='0' alt=''></td>";
strReturn += "<td height = '25' background='/images/gw_bn_016.gif' width = '5'></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";
	}

	var option_image;
	if (Menu.Option[intCpt].Image != ''){
	 option_image = "<img src='" + Menu.Option[intCpt].Image + "' border=0>";
	} else {
		option_image = "- &nbsp;";
	}
	
	var option_title;
	if (Menu.Option[intCpt].Color != ''){
		option_title =  option_image + "<span style=\"color:"+Menu.Option[intCpt].Color+";\">" + Menu.Option[intCpt].Caption + "</span>";
	} else {
	  option_title =  option_image + Menu.Option[intCpt].Caption ;
  }
	
	strReturn += "<tr class=cHand id='" + Menu.Option[intCpt].Name + "' style='position: relative; top:" + Menu.Option[intCpt].PosY + "; left:" + Menu.Option[intCpt].PosX + ";z-index: 0;" + ((bFader)? strFader : "")  + "'>";
	strReturn += "<TD width='10' bgcolor='#6B6969'></TD>";
	strReturn += "<TD  class='mWhite' bgcolor='#6B6969' colspan='2' onClick=Go('"+Menu.Option[intCpt].Links+"','no') height='25'> " + option_title +"</a></td>";

}
strReturn += "</tr></Table></td></tr></table>";




document.write( strReturn );

}

function fctCreateOption( strName, strTitre, strHref, strParam, strTarget, strImage, strColor){
	this.Option[this.Option.length] = new OptionObject(strName, strTitre, strHref, strParam, strTarget, strImage, strColor, 0, -30*(this.Option.length));
}


// -= Objet "Menu" =-
//====================
function MenuObject( strMenuName, strImage, strImageName, strTitre, strLink, strColor, intPosX, intPosY ){
	this.Name = strMenuName;
	this.Image = strImage;
	this.ImageName = strImageName;
	this.Caption = strTitre;
	this.Link=strLink;
	this.PosX = PosXStart;
	this.PosY = PosYStart + arrListMenu.length * (35 + 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, strColor, intPosX, intPosY){
	this.PosX = intPosX;
	this.PosY = intPosY;
	this.Name = strName;
	this.Image = strImage;
	this.Color = strColor;
	this.Caption = strTitre;
	this.Param = strParam;
	this.Target = strTarget;
	this.Links = strHref;
}
