// CurrentElement = Id du div actuellement ouvert
// CurrentLevel = 1menu, 2 sous-menu, 3 sous-sous-menu...

var currentElement = null;
var currentLevel = null;
function ouvre(elementId,niveau) {
  if(currentElement==elementId) {
  	/* ici on referme l'element si on clique une seconde fois dessus */
  	onOff(elementId,false);
	  
	currentElement = null;
	currentLevel = null;
  } else {
	  if(currentElement!=null){
	     oldElement = currentElement;
	     oldLevel = currentLevel;
	      while(oldLevel >= niveau) {
	       onOff(oldElement,false);
		   indice = oldElement.lastIndexOf("_");
	       oldElement = oldElement.substr(0,indice);
	       oldLevel--;
	     }
	  }
	  onOff(elementId,true);
	  
	  currentElement = elementId;
	  currentLevel = niveau;
  }
}

/* fonction qui ouvre ou ferme (selon bool) un menu,
c'est a dire affiche ses enfants */
function onOff(elementId,bool){
    for(i=1;document.getElementById(elementId+"_"+i);i++)
      document.getElementById(elementId+"_"+i).style.display = bool?"block":"none";
  }

/* Ici-bas, tout ce qui sert à la création du menu */
var currentMenu = new Array("div");
var currentId = new Array();
currentId[0] = 0;
var currentNiveau = 0;
function makeMenu(libelle, niveau, url, target) {
	var conteneur = document.getElementById("conteneurMenus");
	var menu = document.createElement('DIV');
	conteneur.appendChild(menu);
	var identifiant = (currentId[niveau]==null)?1:currentId[niveau]+1;
	for(j=niveau+1;currentId[j]!=null;j++)currentId[j]=0;
	menu.style.paddingLeft = (10*niveau)+"px";
	menu.className = "niveau"+niveau;
	menu.style.display = (niveau==0)?"block":"block";
	if (target==null)target = "_blank";
	if (url != null) {
		menu.innerHTML = '<a href="'+url+'" class="lien" target="'+target+'">'+libelle+'</a>';
	} else {
		menu.innerHTML = '<a href="#">'+libelle+'</a>';
	}
	menu.id = currentMenu[niveau]+"_"+identifiant;
	currentId[niveau] = identifiant;
	currentMenu[niveau+1] = menu.id;
	currentNiveau = niveau;
	if(document.all) {
		menu.attachEvent('onclick',function(){ouvre(menu.id,niveau);}); 
	} else {
		menu.addEventListener('click', function() {ouvre('"+menu.id+"',"+niveau+")}, false);
	}
}
