var DefifootMenuJeu = {
	idMenuSurvole: null,
	effetDesaffiche: null,
	idSousMenuAffiche: null,
	survol: function(id_menu) {
		if (this.idMenuSurvole != null && id_menu != this.idMenuSurvole) {
			this.cacherMenu(this.idMenuSurvole);
		}
		this.idMenuSurvole = id_menu;
		this.afficherMenu(id_menu);
		//On stoppe le desaffichage
		if (DefifootMenuJeu.executerControl != null) {
			DefifootMenuJeu.executerControl.stop();
			DefifootMenuJeu.executerControl = null;
		}
	},
	finSurvol: function(id_menu) {
		//On lance le controle qui est censé désaffiché et on le relance (système pour gérer compatibilité IE)
		if (DefifootMenuJeu.executerControl != null) {
			DefifootMenuJeu.executerControl.stop();
		}
		DefifootMenuJeu.executerControl = new PeriodicalExecuter(DefifootMenuJeu.doDesaffichage, 1);
	},
	afficherMenu: function(id_menu) {
		cadre_texte = this.getElementMenuTitre(id_menu);
		cadre_texte.style.backgroundColor = '#669900';
		menu = this.getElementMenu(id_menu);
		//Il est possible qu'il soit en cours de désaffichage. On l'annule et remet à 1 sa transparence
		/*if (this.effetDesaffiche != null && this.effetDesaffiche.idMenu == id_menu) {
			this.effetDesaffiche.cancel();			
		}*/
		//On cache un sous menu d'un autre menu qui est peut être affiché
		if (this.idSousMenuAffiche != null && menu.style.display != 'block') {
			$(this.idSousMenuAffiche + '_content').style.display = 'none';
			this.supprimerMaintienLienSurvol(this.idSousMenuAffiche);
		}
		//On affiche
		menu.style.display = 'block';
		new Effect.Opacity( menu.id, { duration: 0.01, transition: Effect.Transitions.linear, from: 1.0, to: 1.0 } );
	},
	cacherMenu: function(id_menu) {
		cadre_lien = this.getElementMenu(id_menu);
		cadre_lien.style.display = 'none';
		cadre_texte = this.getElementMenuTitre(id_menu);
		cadre_texte.style.backgroundColor = 'transparent';
	},
	afficherSousMenu: function(id_sous_menu) {		
		id_sous_menu = ((id_sous_menu == null || id_sous_menu.length <= 0)?null:id_sous_menu);
		if (id_sous_menu != null) {
			this.maintenirEffetLienSurvol(null, $(id_sous_menu));
		}
		if (id_sous_menu == null && this.idSousMenuAffiche != null) {
			$(this.idSousMenuAffiche + '_content').style.display = 'none';
			this.supprimerMaintienLienSurvol(this.idSousMenuAffiche);
		} else if (id_sous_menu != null) {
			if (this.idSousMenuAffiche != id_sous_menu) {
				if (this.idSousMenuAffiche != null) {
					$(this.idSousMenuAffiche + '_content').style.display = 'none';
					this.supprimerMaintienLienSurvol(this.idSousMenuAffiche);
				}
			}
			this.idSousMenuAffiche = id_sous_menu;
			$(id_sous_menu + '_content').style.left = (this.getElementMenu(DefifootMenuJeu.idMenuSurvole).getWidth()-5) + 'px';
			$(id_sous_menu + '_content').style.top = ($(id_sous_menu).positionedOffset()['top']+31) + 'px';
			$(id_sous_menu + '_content').style.display = 'block';	
		}
	},
	maintenirEffetLienSurvol: function(id_content, div) {
		if (div == null && id_content != null) {
			div = $(id_content.sub('_content', ''));
		}
		if (div != null) {
			div.style.backgroundColor = '#990000';
			div.style.right = '-3px';
			div.style.backgroundImage = 'none';
		}
	},
	supprimerMaintienLienSurvol: function(id) {
		$(id).style.backgroundColor = '#669900';
		$(id).style.right = '0px';
		$(id).style.backgroundImage = 'url(/images/page/header/menu/fleche-sous-menu.png)';
	},
	doInit: function() {		
		if ($('menu_jeu_gestion') != null) {
			DefifootMenuJeu.executerControl.stop();
			liste_elements = $('menu_jeu_gestion').getElementsBySelector('[class="menu"]');
			for(i=0; i<liste_elements.length; i++) {
				liste_elements[i].observe('mouseover', function(event) { DefifootMenuJeu.survol(this.id); });
				liste_elements[i].observe('mouseout', function(event) { DefifootMenuJeu.finSurvol(this.id); });
			}
			content_liste_liens = $('menu_jeu_gestion').getElementsBySelector('[class="contenu_menu"]');
			liste_liens = new Array();
			for(i=0; i<content_liste_liens.length; i++) {
				liste_liens_temp = content_liste_liens[i].getElementsBySelector('a');
				for(j=0;j<liste_liens_temp.length;j++) {
					liste_liens.push(liste_liens_temp[j]);
				}
			}			
			for(i=0; i<liste_liens.length; i++) {
				//Pour chaque lien d'une section, on déclenche l'affichage du sous menu
				liste_liens[i].observe('mouseover', function(event) {
					DefifootMenuJeu.afficherSousMenu(this.id); 
				});
				if (liste_liens[i].id != null && liste_liens[i].id.length > 0) {
					//Ce lien ouvre un sous menu donc on ajoute l'évènement de maintient de la couleur du lien
					$(liste_liens[i].id + '_content').observe('mouseover', function(event) { DefifootMenuJeu.maintenirEffetLienSurvol(this.id); });
				}				
			}
		}
	},
	getElementMenu: function(id_menu) {
		cadre_lien = $(id_menu).getElementsBySelector('[class="contenu_menu"]');
		return cadre_lien[0];
	},
	getElementMenuTitre: function(id_menu) {
		cadre_texte = $(id_menu).getElementsBySelector('[class="texte_menu"]');
		return cadre_texte[0];
	},
	doDesaffichage: function() {
		DefifootMenuJeu.executerControl.stop();
		/*if (DefifootMenuJeu.effetDesaffiche != null) {
			DefifootMenuJeu.effetDesaffiche.cancel();
		}*/
		if (DefifootMenuJeu.idSousMenuAffiche != null) {
			$(DefifootMenuJeu.idSousMenuAffiche + '_content').style.display = 'none';
			DefifootMenuJeu.supprimerMaintienLienSurvol(DefifootMenuJeu.idSousMenuAffiche);
		}
		menu = DefifootMenuJeu.getElementMenu(DefifootMenuJeu.idMenuSurvole);
		DefifootMenuJeu.cacherMenu(DefifootMenuJeu.idMenuSurvole);
	}
};
DefifootMenuJeu.executerControl = new PeriodicalExecuter(DefifootMenuJeu.doInit, 0.2);