﻿var MenuState = {
    blockActive: 'none',
    activeSubmenu: 'none',
    timeoutID: 'none',
    mainSelected: 'none'
};

function checkBlockMenu() {
    if (MenuState.blockActive == 'none') {
        if ((MenuState.mainSelected != 'none') && (MenuState.mainSelected != MenuState.mainDefSelected))
            MenuState.mainSelected.removeClass('seltemp');
        MenuState.mainDefSelected.addClass('sel');
        if (MenuState.activeSubmenu != 'none') {
            MenuState.activeSubmenu.hide();
        }
    }
}

$(function initMainMenu() {
    MenuState.mainDefSelected = $("#menu > ul > li.sel"); //main menu
    $("#menu > ul > li").hover(
    function () {
        if (MenuState.mainSelected != 'none') {
            MenuState.mainSelected.removeClass("seltemp");
        }
        MenuState.mainSelected = $(this);
        if ($(this).hasClass("sel")) {
            MenuState.mainDefSelected = $(this);
        } else {
            MenuState.mainSelected.addClass("seltemp");
        }
        MenuState.mainDefSelected.addClass("sel");
        var module = $(this).find('a').attr('id');
        MenuState.hoverMenu = module.substring(module.length - 4, module.length);
        if (MenuState.activeSubmenu != 'none') {
            MenuState.activeSubmenu.hide();
        }
        MenuState.activeSubmenu = 'none';
        if (MenuState.timeoutID != 'none') {
            window.clearTimeout(MenuState.timeoutID);
        }
        $(".dropdown").each(function () {
            if ($(this).attr('id').match("SubMenu_" + MenuState.hoverMenu)) {
                MenuState.activeSubmenu = $(this);
                $(this).show();
            }
        });
        if (MenuState.activeSubmenu != 'none') {
            MenuState.activeSubmenu.show();
            MenuState.activeSubmenu.hover(function () {
                MenuState.blockActive = $(this).attr('id');
            }, function () {
                MenuState.blockActive = 'none';
                $(this).hide();
                if (MenuState.mainSelected.context.id != MenuState.mainDefSelected.context.id)
                    MenuState.mainSelected.removeClass('seltemp');
            });
        }
    }, function () {
        MenuState.timeoutID = window.setTimeout(checkBlockMenu, 150);
    });
});

