/**
 * Objet de gestion des sous menus par onglets
 */

if(typeof benchmark == "undefined") var benchmark = new Object();

/**
 * Constructeur de l'objet
 */
benchmark.ObjTetiereMenu = function() {
	
	/*
	 * Débuggage
	 */
	this.debug = false;
	if(this.debug) debug("constructeur de l'objet")
	
	/*
	 * Stockage de l'item courant
	 */
	this.itemcourant;
	this.timer;
	this.dureetimer = 1000;
	
	
	/**
	 * Initialisation des actions à effectuer sur le survol des onglets
	 */
	this.initialiseonglets();

}

/**
 * Méthodes publiques de l'objet
 */
benchmark.ObjTetiereMenu.prototype = {
	
	/**
	 * Initialisation des actions à effectuer sur le survol des onglets
	 */
	initialiseonglets: function() {
		
		if(this.debug) debug('méthode initialiseonglets');
		var refObjet = this;
	
		// Action sur chaque item du menu
		jQuery("#tetiere ul.items_menu").each(
			function(){
				
				// Action sur chaque item du menu
				jQuery(jQuery(this).children("li")).each(
					function(){
						
						// Lorsque l'on survole l'item
						jQuery(this).bind("mouseover",
							function(evt) {
							
								//if(refObjet.debug) debug("mouseover");
								
								// On bloque le timer
								refObjet.cleartimer();
								
								// L'ensemble des sousmenu est masqué
								refObjet.masquesousmenu();
								
								// On affiche le bon item
								refObjet.activesousmenu(jQuery(this).children("ul.items_sous_menu"));
								
							}
						);
					}
				);
				
				// Lorsque l'on quitte l'item
				jQuery(this).bind("mouseover",
					function(evt) {
						//if(refObjet.debug) debug("mouseover");
						refObjet.cleartimer();
					}
				);
				
				// Lorsque l'on quitte l'item
				jQuery(this).bind("mouseout",
					function(evt) {
						//if(refObjet.debug) debug("mouseout");
						refObjet.initialisetimer();
					}
				);	
				
			}
		);

	},
	
	initialisetimer: function() {
		if(this.debug) debug("initialisetimer");
		this.timer = setTimeout("ObjTetiereMenu.reinitialiseonglets()",this.dureetimer);
	},

	/**
	 * Masquage de l'ensemble des sous-menus
	 */
	masquesousmenu: function() {
		jQuery("#tetiere ul.items_sous_menu").each(
			function(){
				jQuery(this).hide();
			}
		);
	},
	
	
	/**
	 * 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();

	}

}

// Initialisation de l'objet
var ObjTetiereMenu = new benchmark.ObjTetiereMenu();	

function debug(message) {
	console.log(message);
}