var t_menu = new Array();
var liste_menu = new Array();

function changeCouleurTexte(koi, couleur)
{
	koi.style.color = couleur ;
	alert(couleur) ;
}

function rollOver(koi, image)
{
	koi.src = image ;
}

function mouseOut(fond, couleurTexte, texte, couleurFond){
	fond.style.backgroundColor = couleurFond;
	texte.style.color = couleurTexte ;
}

function reduire(cell){
//réduit le menu déroulant si on quitte sur le menu
	var id_menu = cell.id;
	t_menu[id_menu].ouvrir = -1;
}

function developper(cell){
//dévellope le menu déroulant si on passe sur le menu
	var id_menu = cell.id;
	t_menu[id_menu].ouvrir = 1;
}

function reduire2(cell){
//réduit le menu déroulant si on quitte sur le menu déroulant
	var id_menu = cell.id.substring(6, cell.id.length);
	t_menu[id_menu].ouvrir = -1;
}

function developper2(cell){
//devellope le menu déroulant si on passe sur le menu déroulant
	var id_menu = cell.id.substring(6, cell.id.length);
	t_menu[id_menu].ouvrir = 1;
}
		
function affmenu()
{
	for (a=0 ; a<liste_menu.length ; a++)
	{
		var idmenu = liste_menu[a];
		//si on ouvre le menu et qu'il n'est pas complètement déroulé
		//ou si on l'enroule et qu'il n'est pas complètement enroulé alors on fait bouger le menu déroulant
		if ((t_menu[idmenu].ouvrir == 1)&&(t_menu[idmenu].y_m<t_menu[idmenu].posYSousMenuOuvert))
		{
            t_menu[idmenu].y_m += t_menu[idmenu].vitesse;
			document.getElementById(idmenu).style.top =  t_menu[idmenu].y_m + "px";
			if(t_menu[idmenu].couleurFondOver) document.getElementById("cell_"+idmenu).style.backgroundColor = t_menu[idmenu].couleurFondOver ;
			if(t_menu[idmenu].imageOver.src) rollOver(document.getElementById("img_"+idmenu), t_menu[idmenu].imageOver.src) ;
		}
		if ((t_menu[idmenu].ouvrir == -1)&&(t_menu[idmenu].y_m>t_menu[idmenu].posYSousMenuFerme))
		{
            t_menu[idmenu].y_m -= t_menu[idmenu].vitesse;
			document.getElementById(idmenu).style.top = t_menu[idmenu].y_m + "px";
			if(t_menu[idmenu].couleurFondOver) document.getElementById("cell_"+idmenu).style.backgroundColor = t_menu[idmenu].couleurFond ;
			if(t_menu[idmenu].imageOver.src) rollOver(document.getElementById("img_"+idmenu), t_menu[idmenu].image.src) ;
		}
		if ((t_menu[idmenu].y_m>=t_menu[idmenu].posYSousMenuOuvert)&&(t_menu[idmenu].ouvrir == 1))
		{//completement développé
			t_menu[idmenu].ouvrir = 0;
			document.getElementById(idmenu).style.top = t_menu[idmenu].posYSousMenuOuvert + "px";
		}
		if ((t_menu[idmenu].ouvrir == -1)&&(t_menu[idmenu].y_m<=t_menu[idmenu].posYSousMenuFerme))
		{//complètement réduit
			t_menu[idmenu].ouvrir = 0;
			document.getElementById(idmenu).style.top = t_menu[idmenu].posYSousMenuFerme + "px";
		}
	}
}

function menu(nom, haut, larg, vitesse, url)
{
	this.nom = nom;
	this.larg = larg;
	this.haut = haut;
	this.larg_m = 0;
	this.x_m = -1000;
	this.y_m = -1000;
	this.vitesse = vitesse;
	this.ouvrir = 0;
	this.hauteurSousMenu = 0 ;
	this.posYSousMenuOuvert = 0 ;
	this.posYSousMenuFerme = 0 ;
	this.url = url ;
	this.background = null ;
	this.couleurTexte = "#000000" ;
	this.couleurFond = null ;
	this.couleurFondOver = null ;
	this.gras = true ;
	this.tailleTexte = "12px" ;
	this.curseur = "default" ;
	this.tailleFixe = false ;
	this.image = new Image() ;
	this.imageOver = new Image() ;
	this.target = "_self" ;
	
	this.add = menu_add ;
	this.toString = menu_toString ;
	this.setBackground = menu_setBackground ;
	this.setCouleurTexte = menu_setCouleurTexte ;
	this.setCouleurFond = menu_setCouleurFond ;
	this.setCouleurFondOver = menu_setCouleurFondOver ;
	this.setTailleTexte = menu_setTailleTexte ;
	this.setLargeurSousMenu = menu_setLargeurSousMenu ;
	this.setGras = menu_setGras ;
	this.setImage = menu_setImage ;
	this.setImageOver = menu_setImageOver ;
	this.setTarget = menu_setTarget ;
	this.sousMenu = new Array() ;
	
	liste_menu.push(nom);
}

function menu_setTailleTexte(taille) { this.tailleTexte = taille ; }
function menu_setBackground(img) { this.background = img ; }
function menu_setGras(etat) { this.gras = etat ; }
function menu_setCouleurTexte(couleur) { this.couleurTexte = couleur ; }
function menu_setCouleurFond(couleur) { this.couleurFond = couleur ; }
function menu_setCouleurFondOver(couleur) { this.couleurFondOver = couleur ; }
function menu_setImage(img) { this.image = new Image(this.larg,this.haut) ; this.image.src = img ;}
function menu_setImageOver(img) { this.imageOver.src = img ; }
function menu_setTarget(target) { this.target = target ; }
function menu_setLargeurSousMenu(taille) { this.larg_m = taille ; this.tailleFixe = true ; }

getOffsetPosition = function(inID, inTYPE)
{
	var iVal = 0;
	var oObj = document.getElementById(inID);
	var sType = 'oObj.offset' + inTYPE;
	while (oObj && oObj.tagName != 'BODY')
	{
		iVal += eval(sType);
		oObj = oObj.offsetParent;
	}
	return iVal;
}

function menu_toString(hauteur, imageFond)
{
	if(!this.background && !this.couleurFond) this.couleurFond = "#ffffff" ;

	var strtemp = "" ;
	this.haut = hauteur ;
  	//crée le menu
  	strtemp = '<DIV id="princ_' + this.nom + '"' ;
  	strtemp += ' STYLE="position:relative; top:0px; left:0px;' ;
  	strtemp += ' width:100%;' ;
  	strtemp += ' height:' + this.haut + ';' ;
  	if(this.couleurFond) strtemp += ' background-color:'+this.couleurFond+';';
  	strtemp += ' z-index:4; text-align:center; vertical-align:middle; cursor:'+this.curseur+'"' ;
	strtemp += ' onmouseover="developper2(this);" onmouseout="reduire2(this);"' ;
  	strtemp += '>' ;
  	if(imageFond != "") strtemp += '<table border="0" cellpadding="0" cellspacing="0" style="background-image: url('+imageFond+'); background-repeat:repeat-x; border-collapse: collapse" id="tab_princ' + this.nom + '" width="100%" height="100%">';
	else strtemp += '<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" id="tab_princ' + this.nom + '" width="100%" height="100%">';
	strtemp += '<tr>' ;
	strtemp += '<td id="cell_'+this.nom+'" align="center" style="font-size:'+this.tailleTexte+'; color:'+this.couleurTexte+'">' ;

	if(this.image.src)
	{
		if(this.url)
			strtemp += '<a href="' + this.url + '" target="'+this.target+'"><img border="0" id="img_'+this.nom+'" src="'+this.image.src+'" width="'+this.image.width+'" height="'+this.image.height+'"></a>';
		else
			strtemp += '<img id="img_'+this.nom+'" border="0" src="'+this.image.src+'" width="'+this.image.width+'" height="'+this.image.height+'">' ;
	}
	else
	{
		if(this.gras) strtemp += '<b>' ;
		strtemp += '<font face="Arial" >';
		if (!this.url)
			strtemp += this.nom;
		else
			strtemp += '<a href="' + this.url + '" target="'+this.target+'" style="font-size:'+this.tailleTexte+';text-decoration: none; color: '+this.couleurTexte+'">' + this.nom + '</a>';
		strtemp += '</font>' ;
		if(this.gras) strtemp += '</b>' ;
	}
	strtemp += '</td>' ;
	strtemp += '</tr>' ;
	strtemp += '</table>' ;
	strtemp += '</DIV>' ;

	//crée le menu déroulant
//	alert(this.x_m) ;
	strtemp += '<DIV id="' + this.nom + '" STYLE="position: absolute; left:' + this.x_m + 'px; top:' + this.y_m + 'px; width:' + this.larg_m + 'px; z-index:3' ;
	if(this.sousMenu.length==0) strtemp += '; visibility:hidden' ;
	strtemp += '" onmouseover="developper(this);" onmouseout="reduire(this);">';
	if(this.sousMenu.length!=0) strtemp += '<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" id="tab_' + this.nom + '" width="100%" height="100%">';
	for (j=0 ; j<this.sousMenu.length ; j++)
	{
		strtemp += '<tr>';
		strtemp += '<td bgcolor="#8BBF2A" align="center" ' ;
		strtemp += 'style="color:'+this.sousMenu[j].couleurTexte+'; cursor:pointer;"><b>';
		
		if(this.sousMenu[j].img.src)
		{
			if(this.sousMenu[j].fonction != null)
			{
				chaineFonction = "" ;
				for(k=0; k<this.sousMenu[j].fonction.length; k++)
				{
					if(k == 0) chaineFonction += this.sousMenu[j].fonction[k] +"(" ;
					else if(k==1) chaineFonction += "'"+this.sousMenu[j].fonction[k] + "'" ;
					else chaineFonction += ",'"+this.sousMenu[j].fonction[k] + "'" ;
				}
				chaineFonction += ")" ;
				strtemp += '<a href="#" style="text-decoration: none" onClick="'+chaineFonction+'"><img src="' +this.sousMenu[j].img.src + '" ';
			 	if(this.sousMenu[j].imgOver.src) strtemp += 'onMouseOver="rollOver(this, \''+this.sousMenu[j].imgOver.src+'\')" onMouseOut="rollOver(this, \''+this.sousMenu[j].img.src+'\')"';
			 	strtemp += 'border="0"></a></font></b>';
			}
			else
			{
				strtemp += '<a href="' + this.sousMenu[j].url + '" target="'+this.sousMenu[j].target+'" style="text-decoration: none"><img src="' +this.sousMenu[j].img.src + '" ';
			 	if(this.sousMenu[j].imgOver.src) strtemp += 'onMouseOver="rollOver(this, \''+this.sousMenu[j].imgOver.src+'\')" onMouseOut="rollOver(this, \''+this.sousMenu[j].img.src+'\')"';
			 	strtemp += 'border="0"></a></font></b>';
		 	}
		}
		else strtemp += '<a href="' + this.sousMenu[j].url + '" target="'+this.sousMenu[j].target+'" style="text-decoration: none; color:'+this.sousMenu[j].couleurTexte+'">' +this.sousMenu[j].nom + '</a></b>';
		strtemp += '</td>';
		strtemp += '</tr>';
	}
	if(this.sousMenu.length!=0) strtemp += '</table>';
	else strtemp += '&nbsp;' ;
  	strtemp += '</DIV>' ;
  	
	return strtemp ;
}

function menu_add(obj)
{
	this.sousMenu.push(obj) ;
	//alert(this.tailleFixe) ;
	if(!this.tailleFixe)
		if(obj.img.width>this.larg_m)
			this.larg_m = obj.img.width ;
}

function sousMenu(nom, url)
{
	this.nom = nom ;
	this.url = url ;
	this.img = new Image() ;
	this.imgOver = new Image() ;
	this.couleurTexte = "#000000" ;
	this.couleurTexteOver = null ;
	this.target = "_self" ;
	this.fonction = null ;

	this.setImage = sousMenu_setImage ;
	this.setImageOver = sousMenu_setImageOver ;
	this.setCouleurTexte = sousMenu_setCouleurTexte ;
	this.setCouleurTexteOver = sousMenu_setCouleurTexteOver ;
	this.setTarget = sousMenu_setTarget ;
	this.setFonction = sousMenu_setFonction ;
}

function sousMenu_setImageOver(img) { this.imgOver.src = img ; }
function sousMenu_setImage(img) { this.img.src = img ; }
function sousMenu_setCouleurTexte(couleur) { this.couleurTexte = couleur ; }
function sousMenu_setCouleurTexteOver(couleur) { this.couleurTexteOver = couleur ; }
function sousMenu_setTarget(target) { this.target = target ; }
function sousMenu_setFonction() { this.fonction = sousMenu_setFonction.arguments ; }

function barreMenu()
{
	this.menu = new Array() ;
	this.alignement = "center" ;
	this.border = 0 ;
	this.hauteur = 30 ;
	this.largeur = "100%" ;
	this.couleurFond = null ;
	this.imageFond = new Image() ;
	
	this.add = barreMenu_add ;
	this.affiche = barreMenu_affiche ;
	this.repositionneSousMenu = barreMenu_repositionneSousMenu ;
	this.setAlignement = barreMenu_setAlignement ;
	this.setBorder = barreMenu_setBorder ;
	this.setHauteur = barreMenu_setHauteur ;
	this.setLargeur = barreMenu_setLargeur ;
	this.setCouleurFond = barreMenu_setCouleurFond ;
	this.setImageFond = barreMenu_setImageFond ;
}

function barreMenu_setBorder(taille) { this.border = taille ; }
function barreMenu_setCouleurFond(couleur) { this.couleurFond = couleur ; }
function barreMenu_setImageFond(img) { this.imageFond.src = img ; }
function barreMenu_setHauteur(taille)
{
	for(i=0; i<this.menu.length; i++)
		this.menu[i].haut = taille ;
	this.hauteur = taille ;
}
function barreMenu_setLargeur(taille)
{
	this.largeur = taille ;
}

function barreMenu_setAlignement(align)
{
	if(align!="center" && align!="left" && align!="right") alert("BARREMENU : alignement incorrect !!!") ;
	else this.alignement = align ;
}

function barreMenu_add(obj)
{
	t_menu[obj.nom] = obj;
	this.menu.push(obj) ;
}

function barreMenu_repositionneSousMenu()
{
	for(i=0; i<this.menu.length; i++)
	{
		posX = getOffsetPosition('princ_'+this.menu[i].nom, 'Left') + getOffsetPosition('princ_'+this.menu[i].nom, 'Width')/2 - getOffsetPosition(this.menu[i].nom, 'Width')/2 ;
		posY = getOffsetPosition(this.menu[i].nom, 'Height') ;
		this.menu[i].posYSousMenuFerme = parseInt("-"+posY)+this.menu[i].haut+getOffsetPosition('princ_'+this.menu[i].nom, 'Top') ;
		this.menu[i].hauteurSousMenu = posY ;
		this.menu[i].posYSousMenuOuvert = this.menu[i].haut+getOffsetPosition('princ_'+this.menu[i].nom, 'Top') ;
		this.menu[i].x_m = posX;
		this.menu[i].y_m = this.menu[i].posYSousMenuFerme ;
		document.getElementById(this.menu[i].nom).style.left = posX ;
		document.getElementById(this.menu[i].nom).style.top = this.menu[i].posYSousMenuFerme + "px" ;
	}
}

function barreMenu_affiche()
{
	chaine = "" ;
	options = "" ;
	if(this.couleurFond) options += "; background-color:"+this.couleurFond ;
	chaine += "<div width='100%' align='"+this.alignement+"' style='height:"+this.hauteur+"px; z-index:5"+options+"'>" ;
	chaine += "<table cellpadding=0 cellspacing=0 style='border-collapse:collapse;' border='"+this.border+"' width='"+this.largeur+"'>" ;

	chaine += "<tr>" ;
	if(this.largeur=="100%") this.largeur = (100/this.menu.length)+"%" ;
	for(i=0; i<this.menu.length; i++)
	{
		chaine += "<td align='center' width='"+this.largeur+"'>" ;
		chaine += this.menu[i].toString(this.hauteur, this.imageFond.src) ;
		chaine += "</td>" ;
	}
	chaine += "</tr>" ;
	chaine += "</table></div>" ;
	document.write(chaine) ;
	var clkmenu1= setInterval('affmenu();', 10);
}
