
// --------------------------------------------------
// Global Variables
// --------------------------------------------------
var menu_temp = null; // Variable pour garder en mémoire le menu à enlever le hover
var menu_timeout = null; // Variable pour garder en mémoire le timeout
var menu_timeoutDelay = 300; // Délai du timeout
var menu_id = "menu2"; // Id de la div qui contient le menu
var menu_hoverClass = "hover"; // Classe css pour définir le hover

// --------------------------------------------------
// Image à pré-loader
// --------------------------------------------------

var menu_incre = 0;
var menu_preloadImages = new Array();
menu_preloadImages[menu_incre++] = "/medias/communs/menuBG-o.png";
menu_preloadImages[menu_incre++] = "/medias/communs/menuLeftCorner-o.png";
menu_preloadImages[menu_incre++] = "/medias/communs/menuRightCorner-o.png";

// --------------------------------------------------
// Page Load
// --------------------------------------------------

$(document).ready(function() {
    // Attacher des eventhandler sur l'entrée et la sortie de la souris sur les menus
    $("#" + menu_id + " > ul > li").hover(function() {
        Menu_MouseOver($(this));
    }, function() {
        Menu_MouseOut($(this));
    });

    // Télécharger d'avance les images servant de over au menu.
    // Évite le clignotement lors du premier hover.
    preloadImageArray(menu_preloadImages);
});

// --------------------------------------------------
// Event Handler
// --------------------------------------------------

// Fonction appellé lorsque la souris entre sur un menu
function Menu_MouseOver(sender) {
    if (sender.hasClass(menu_hoverClass)) {
        menu_temp = null;
        if (menu_timeout) clearTimeout(menu_timeout);
    } else {
        if (menu_temp) {
            menu_temp.removeClass(menu_hoverClass);
            menu_temp = null;
            if (menu_timeout) clearTimeout(menu_timeout);
        }

        sender.addClass(menu_hoverClass);
    }
}

// Fonction appellé lorsque la souris sort d'un menu
function Menu_MouseOut(sender) {
    menu_temp = sender;
    menu_timeout = setTimeout("Menu_Timeout_Finished();", menu_timeoutDelay);
}

// Fonction appellé lorsque le timeout expire
function Menu_Timeout_Finished() {
    // S'il y a encore un menu à enlever le hover on le fait
    if (menu_temp) {
        menu_temp.removeClass(menu_hoverClass);
        menu_temp = null;
    }
}