$(document).ready(function(){
	var timeout = false;
	var smenus = $("#menu_container > .smenu");
	$("a.item").mouseover(function() {
		// on récupère le nom de l'onglet demandé
		var nom = this.id.match(/^m_(\w+)$/)[1];
		// on vérifie si un sous-menu est déjà ouvert, et on le stocke dans la variable sm_open le cas échéant
		for(var i=0; i < smenus.length; i++){
			if($(smenus[i]).css("display") == "block") var sm_open = smenus[i];
		}

		// si le timeout est déjà déclenché, on l'annule
		if(timeout) clearTimeout(timeout);
		// on retire la classe current sur tous les éléments A et on l'ajoute sur celui qui est demandé
		$("#menu a").removeClass("current");
		$(this).addClass("current");

		if(document.getElementById("sm_"+nom)) { // si le sous-menu du menu demandé existe
			if(sm_open && $("#menu_container").css("height") == "48px") { // s'il y a déjà un sous-menu ouvert et que le sous-menu est déroulé entièrement
				if($(sm_open).attr("id") != "sm_"+nom) { // si le sous-menu ouvert ne correspond pas au menu demandé
					$(sm_open).fadeOut(250);
					$("#sm_"+nom).fadeIn(250);
				}
			} else if(sm_open) { // s'il y a déjà un sous-menu ouvert mais que le sous-menu est en train de se refermer
				$("#menu_container").animate({height:"48px"}, 280);
				$(sm_open).fadeOut(250);
				$("#sm_"+nom).fadeIn(250);
			} else { // si rien n'est ouvert ou que le timeout est déclenché
				timeout = setTimeout(function() {
					$("#sm_"+nom).css("display", "block");
					$("#menu_container").animate({height:"48px"}, 280);
				}, 100);
			}
		} else if(sm_open) { // si un sous-menu est ouvert, mais qu'il n'y a pas de sous-menu associé au menu demandé
			$("#menu_container").animate({height:"24px"}, 280);
			$(sm_open).fadeOut(250);
		}
		return false;
	});
	// maintenant on gère le hover sur l'ensemble de la div qui contient le menu
	$("#menu_container").mouseover(function() {
		// si le timeout est en cours, on l'annule
		if(timeout) clearTimeout(timeout);
	}).bind("mouseleave", function() {
		timeout = setTimeout(function() {
			$("#menu a").removeClass("current");
			$("#menu_container").animate({height:"24px"}, 280);
			$(".smenu").fadeOut(250);
		}, 1300);
		return false;
	});
});