/**
 * Objet de gestion des sous menus par onglets
 */

if(typeof benchmark == "undefined") var benchmark = new Object();

/**
 * Constructeur de l'objet ObjGestionCaractere
 */
benchmark.ObjTetiereMenu = function() {
	
	/*
	 * Stockage de l'item courant
	 */
	this.itemcourant = 'accueil';
	this.timer;
	this.dureetimer = 2000;
	
	
	/**
	 * Initialisation des actions à effectuer sur le survol des onglets
	 */
	 // L'ensemble des sousmenu est masqué
	this.masquesousmenu();
	this.initialiseonglets();
	this.initialisetimer();

}

/**
 * Méthodes publiques de l'objet ObjGestionCaractere
 */
benchmark.ObjTetiereMenu.prototype = {

	/**
	 * Initialisation des actions à effectuer sur le survol des onglets
	 */
	initialiseonglets: function() {
		
		var refObjet = this;
		
		// Action sur chaque item du menu
		jQueryTetiereMenu("#menu li").each(
			function(){
				
				// Le sous menu courant est affiché
				if(jQueryTetiereMenu(this).hasClass('actif')) {
					var identifiant = jQueryTetiereMenu(this).attr('id');
					refObjet.activesousmenu(jQueryTetiereMenu('#sous-menu_'+identifiant));
					refObjet.itemcourant = identifiant;
				}

				// Lorsque l'on survole l'item
				jQueryTetiereMenu(this).bind("mouseover",
					function(evt) {
						
						// On bloque le timer
						refObjet.cleartimer();
						
						// L'ensemble des sousmenu est masqué
						refObjet.masquesousmenu();
						
						var identifiant = jQueryTetiereMenu(this).attr('id');
						
						// Si on survol un onglet autre que celui qui est actif, on desactive l'onglet actif
						if(identifiant != this.itemcourant) {
							jQueryTetiereMenu('#menu li.actif').addClass('inactif');
						}
						
						// On désactive tous les items
						refObjet.desactivemenu();
						
						// On active l'item
						jQueryTetiereMenu(this).addClass('survol');
						
						// On affiche le bon idem
						refObjet.activesousmenu(jQueryTetiereMenu('#sous-menu_'+identifiant));
						
					}
				);
				
				// Lorsque l'on quitte l'item
				jQueryTetiereMenu(this).bind("mouseout",
					function(evt) {
						refObjet.initialisetimer();
					}
				);	
				
			}
		);
		
		// Action sur le sous menu
		jQueryTetiereMenu("#sous-menu").bind("mouseover",
			function(evt) {
				refObjet.cleartimer();
			}
		);
		
		// Action sur le sous menu
		jQueryTetiereMenu("#sous-menu").bind("mouseout",
			function(evt) {
				refObjet.initialisetimer();
			}
		);

	},
	
	initialisetimer: function() {
		this.timer = setTimeout('ObjTetiereMenu.reinitialiseonglets()',this.dureetimer);
	},

	/**
	 * Masquage de l'ensemble des sous-menus
	 */
	masquesousmenu: function() {
		jQueryTetiereMenu("#sous-menu ul").each(
			function(){
				jQueryTetiereMenu(this).hide();
			}
		);
	},
	
	/**
	 * Suppression de la classe actif sur l'ensemble des items du menu
	 */
	desactivemenu: function() {
		jQueryTetiereMenu("#menu li").each(
			function(){
				jQueryTetiereMenu(this).removeClass('survol');
			}
		);
	},
	
	/**
	 * Active un élément du sous-menu
	 */
	activesousmenu: function(elt) {
		elt.show();
	},
	
	
	cleartimer: function() {
		clearTimeout(this.timer);
	},
	
	reinitialiseonglets:function() {
		
		// L'ensemble des sousmenu est masqué
		this.masquesousmenu();
		
		// On désactive tous les items
		this.desactivemenu();
	
		// On active l'item
		jQueryTetiereMenu('#'+this.itemcourant).addClass('survol');
		this.activesousmenu(jQueryTetiereMenu('#sous-menu_'+this.itemcourant));
		
		jQueryTetiereMenu('#menu li.actif').removeClass('inactif');
	}

}

// Initialisation de l'objet

var ObjTetiereMenu = new benchmark.ObjTetiereMenu();	