//pas d'ouverture des menus
var step = 40;
//Vitesse d'ouverture des menu
var vitesse = 50;
//Bloc les autres ouvertures lors d'une ouverture
var semaphore = true;
//Neccessaire pour fermer le menu
var flagOuverture = 0;

/********************* Variables du Menu ********************************/
//Hauteur total du menu
var hauteur_menu = 449;
//Hauteur des titre principaux
var hauteur_titre = 25;
//Nombre de catégorie principal
var nbItems_menu = 3;
//Indique la categorie actuellement ouverte
var itemActif_menu = nbItems_menu;
//Hauteur util du menu
var h_menu = hauteur_menu - (nbItems_menu*hauteur_titre);

/********************* Variables des Sous Menus ***************************/
//Hauteur total de chaques sous menus
var hauteur_SousMenu = h_menu;
//Hauteur des titre des sous menus
var hauteur_SousTitre = 20;
//Nombre de sous titres dans chaque catégorie principale (la cardinalité du tableau doit être égale à 'nbItems_menu')
var nbItems_SousMenu = new Array(2,3,1);
//Indique le sous menu actuellement ouvert pour chaque catégorie principale
var itemActif_SousMenu = new Array();
for(var i=0;i<nbItems_menu;i++){
	itemActif_SousMenu[i] = nbItems_SousMenu[i];
}
//Hauteur util de chaque sous menu
var h_SousMenu = new Array();
for(var i=0;i<nbItems_menu;i++){
	h_SousMenu[i] = hauteur_SousMenu - ((nbItems_SousMenu[i]+1)*hauteur_SousTitre);
}


function element_out(){
	flagOuverture = 0;
}
function ouverture_menu(item){
	flagOuverture = item;
	if(semaphore){
		//On d'abord refermer les sous menu actif ouvert sauf si on est sur le menu courant
		for(var i=1;i<=nbItems_menu;i++){
			if(i != item){
				if(itemActif_SousMenu[(i-1)] != nbItems_SousMenu[(i-1)]){
					document.getElementById('menu'+i+'_contenu'+itemActif_SousMenu[(i-1)]).style.height = "0px";
					document.getElementById('menu'+i+'_contenu'+nbItems_SousMenu[(i-1)]).style.height = h_SousMenu[i]+"px";
					itemActif_SousMenu[(i-1)] = nbItems_SousMenu[(i-1)]
				}
			}
		}
		document.getElementById('menu').style.height = hauteur_menu+"px";	
		var obj = 'menu_contenu';
		//soit l'item demandé est au dessus de l'item actif
		if(item<itemActif_menu){
			semaphore = false;
			//On va agrandir l'item en question
			//setTimeout("callback_ouverture("+item+","+h_menu+","+0+","+h_menu+",\""+obj+"\","+itemActif_menu+",0)",vitesse);
			callback_ouverture(item,h_menu,0,h_menu,obj,itemActif_menu,0);
		}
		//soit l'item demandé est en dessous de l'item actif
		if(item>itemActif_menu){
			semaphore = false;
			//On va fermer l'item actif et ouvrir l'item demandé
			callback_fermeture(item,h_menu,h_menu,0,obj,itemActif_menu,0);
		}
	} else {
		setTimeout("callback_retard("+item+")",10);
	}
}
function callback_retard(item){
	if(item == flagOuverture){
		ouverture_menu(item);
	}
}
function ouverture_SousMenu(menu,item){
	if(semaphore){
		var obj = 'menu'+menu+'_contenu';
		//soit l'item demandé est au dessus de l'item actif
		if(item<itemActif_SousMenu[(menu-1)]){
			semaphore = false;
			//On va agrandir l'item en question
			callback_ouverture(item,h_SousMenu[(menu-1)],0,h_SousMenu[(menu-1)],obj,itemActif_SousMenu[(menu-1)],menu);
		}
		//soit l'item demandé est en dessous de l'item actif
		if(item>itemActif_SousMenu[(menu-1)]){
			semaphore = false;
			//On va fermer l'item actif et ouvrir l'item demandé
			callback_fermeture(item,h_SousMenu[(menu-1)],h_SousMenu[(menu-1)],0,obj,itemActif_SousMenu[(menu-1)],menu);
		}
	}
}
function callback_ouverture(item,hFinale,hCourante1,hCourante2,objet,actif,menu){
	var hTmp1 = hCourante1+step;
	var hTmp2 = hCourante2-step;
	if(hTmp1<hFinale){
		document.getElementById(objet+item).style.height = hTmp1+"px";
		document.getElementById(objet+actif).style.height = hTmp2+"px";
		setTimeout("callback_ouverture("+item+","+hFinale+","+hTmp1+","+hTmp2+",\""+objet+"\","+actif+","+menu+")",vitesse);
	} else {
		document.getElementById(objet+actif).style.height = 0+"px";
		document.getElementById(objet+item).style.height = hFinale+"px";
		menu == 0 ? itemActif_menu = item : itemActif_SousMenu[(menu-1)] = item;
		semaphore = true;
	}
}
function callback_fermeture(item,hFinale,hCourante1,hCourante2,objet,actif,menu){
	var hTmp1 = hCourante1-step;
	var hTmp2 = hCourante2+step;
	if(hTmp1>0){
		document.getElementById(objet+actif).style.height = hTmp1+"px";
		document.getElementById(objet+item).style.height = hTmp2+"px";
		setTimeout("callback_fermeture("+item+","+hFinale+","+hTmp1+","+hTmp2+",\""+objet+"\","+actif+","+menu+")",vitesse);
	} else {
		document.getElementById(objet+actif).style.height = 0+"px";
		document.getElementById(objet+item).style.height = hFinale+"px";
		menu == 0 ? itemActif_menu = item : itemActif_SousMenu[(menu-1)] = item;
		semaphore = true;
	}
}




//Fonction de debuggage
function trace(txt){
	document.getElementById('menu_footer').innerHTML = document.getElementById('menu_footer').innerHTML+"<br />"+txt;
}