var delai; //Timer pour l'effacement des menus
var class_menu; // Classe du menu à afficher
var menu=[]; // Table des menus
var pause=800; // Durée de la pause avant effacement des menus

function initMenu(id_menu,class_menu){
	menu[id_menu]=document.getElementById(id_menu);
	menu[id_menu].className=class_menu; // On affecte le style en fonction de la position
	liste_liens=menu[id_menu].getElementsByTagName('a');
	sousMenu=menu[id_menu].getElementsByTagName('ul');

	//construction du menu :
	for(boucle=0; boucle<liste_liens.length; boucle++){
		var lien=liste_liens[boucle];
		var sous_menu=lien.parentNode.getElementsByTagName('ul')[0]?1:0;
		if(lien.parentNode.parentNode.id==id_menu){
			// Menu de premier niveau
			if(class_menu=="menu_horizontal" || class_menu=="menu_special" || class_menu=="menu_bas"){
				if(sous_menu){
					// fleche vers le bas
					lien.className ="fleche_menu_bas";
				}
			} else { // vertical
				if(sous_menu){
					// ajoute la classe pour les flêches
					if (class_menu == "menu_droite") {
						// fleche à gauche
						lien.className = lien.className+" fleche_menu_gauche";
					} else {
						// fleche à droite
						lien.className = lien.className+" fleche_menu_droite";
					}
				}
			}
		} else {
			// Les autres menus
			if(sous_menu){
				// ajoute la classe pour les flêches
				if (class_menu == "menu_droite") {
					// fleche à gauche
					lien.className = lien.className+" fleche_menu_gauche";
				} else {
					// fleche à droite
					lien.className = lien.className+" fleche_menu_droite";
				}
			}
		}
		//ajoute les évènements.
		addListener(lien,"mouseover",function(event){
			var target = event.target || event.srcElement;
			var ul_parent = target.parentNode.parentNode;
			var ul = target.parentNode.getElementsByTagName('ul')[0];
			efface(ul_parent); // cache tout après l'ul parent
			if(ul){
				ul.style.visibility="visible";// montre l'ul enfant
				if (class_menu=="menu_droite") {
					if (ul_parent.id == id_menu) {
						ul.style.left= (ul_parent.offsetLeft-ul.offsetWidth)+"px";
					} else {
						ul.style.left= "-"+ul.offsetWidth+"px";
					}
				} else if (class_menu=="menu_horizontal" && ul_parent.id!=id_menu) {
					ul.style.left = ul_parent.offsetWidth+"px";
				} else if (class_menu=="menu_special" && ul_parent.id!=id_menu) {
					ul.style.left = ul_parent.offsetWidth+"px";
				} else if (class_menu=="menu_bas" && ul_parent.id!=id_menu) {
					ul.style.left = ul_parent.offsetWidth+"px";
				} else if (class_menu=="menu_gauche") {
					if (ul_parent.id == id_menu) {
						ul.style.left = ul_parent.offsetWidth+ul_parent.offsetLeft+"px";
					} else {
						ul.style.left = ul_parent.offsetWidth+"px";
					}
				}
			}
		});
		addListener(lien,"mouseout",function(){
			delai=setTimeout('eftout()',pause);
		});
	}
}

function efface(ul) {
	//cache les uls qui suivent celui donné
	clearTimeout(delai);
	var liste_li = ul.getElementsByTagName('li');
	for(boucle=0; boucle<liste_li.length; boucle++){
		var ul=liste_li[boucle].getElementsByTagName('ul')[0];
		if(ul){
			ul.style.visibility="hidden";
		}
	}
}

function eftout(){
	// On efface tous les sous-menus de tous les menus
	for (lmenu in menu) {
		efface(menu[lmenu]);
		menu[lmenu].style.visibility="hidden";
		menu[lmenu].style.visibility="visible";
	}
}

function showPartie(id_partie,e){
	xhr_call("parties_aj001",id_partie);
	cancelBubble(e);
}

function demarrage_parties () {
	var liste_liens = document.getElementsByTagName('A');
	for (var index = 0; index < liste_liens.length; ++index) {
		var lien = liste_liens[index];
		var nom_lien = lien.id.substr(0,12);
		if (nom_lien=="partie_menuh") {
			addListener(lien,'click',function(e){
				if (!e) e = window.event;
				var LaCible = getTarget(e);
				if (LaCible.tagName != "A") LaCible = LaCible.parentElement;
				var id_partie = LaCible.id.substr(12,LaCible.id.length-12);
				showPartie(id_partie,e);
			});
		} else if (nom_lien=="partie_menuv") {
			addListener(lien,'click',function(e){cancelBubble(e)});
		}
	}
	if (document.getElementById("menu_haut")) initMenu('menu_haut','menu_horizontal');
	if (document.getElementById("menu_droite")) initMenu('menu_droite','menu_gauche');
	if (document.getElementById("menu_bas")) initMenu('menu_bas','menu_bas');
	if (document.getElementById("menu_gauche")) initMenu('menu_gauche','menu_gauche');
	if (document.getElementById("menu_special")) initMenu('menu_special','menu_special');
}

addListener(window,"load",demarrage_parties);
