﻿
// ## menu ##

var ukrywanieWidocznychElementowMenuInterwalWMilisekundach = 500;
var lastLevel = null;
var previousChildId = null;
var idMouseOver = false;

// inicjalizacja menu;
function inicjalizujMenu() {
    window.setInterval("hideAllDynamicSubMenus();", ukrywanieWidocznychElementowMenuInterwalWMilisekundach);
}

// pokazanie elementu [kontenera] menu;
// level: numer poziomu,
// currentId: identyfikator elementu który dostarczy informacji do ustalenia pozycji elementu do pokazania,
// childId: identyfikator elementu do pokazania,
function showSubMenu(level, currentId, childId) {
    var parentOffset = $('#' + currentId).offset();
    var parentPosition = $('#' + currentId).position();

    var parentParentOffset = $('.tblMenuH').parent().offset();
    var parentParentPosition = $('.tblMenuH').parent().position();

    var top = 0;
    var left = 0;

    if (level == 0) {
        top = $('#' + currentId).height() + 1;
        left = parentPosition.left + 10;
    }
    else {
        top = parentOffset.top - parentParentOffset.top;
        left = parentOffset.left - parentParentOffset.left + $('#' + currentId).width() + 1;
    }

    $('#' + childId).css('visibility', 'visible').css('top', top).css('left', left);
}

// ukrycie elementu menu o danym identyfikatorze;
// elementId: identyfikator elementu,
function hideSubMenu(elementId) {
    $('#' + elementId).css('visibility', 'hidden');
}

// ukrycie wszystkich widocznych [dynamicznych] elementów menu;
function hideAllDynamicSubMenus() {
    if (!idMouseOver) {
        var $kids = $('.mDK');
        $kids.css('visibility', 'hidden');

        lastLevel = null;
        previousChildId = null;
    }
}

// przekierowanie na adres [target];
function goTo(href, target) {
    if (target == '') {
        window.location = href;
    }
    else {
        // ...
    }

    idMouseOver = false;
    hideAllDynamicSubMenus();
}

// element menu: wskaźnik myszy wchodzi nad obszar;
// element: bieżący element,
// removeClass: klasa CSS do usunięcia z właściwości elementu,
// addClass: klasa CSS do dodania do właściwości elementu,
// poziom: numer poziomu,
// elementId: identyfikator elementu nad którym znajduje się mysz,
// childId: identyfikator elementu do pokazania,
function mMOver(removeClass, addClass, level, elementId, childId) {
    var $element = $('#' + elementId);

    $element.removeClass(removeClass);
    $element.addClass(addClass);

    if (lastLevel != null) {
        if (level == 0 && lastLevel > 0) { hideAllDynamicSubMenus(); }
        else if (level <= lastLevel) { hideSubMenu(previousChildId); }
    }

    if (childId != null) { showSubMenu(level, elementId, childId); }

    lastLevel = level;
    previousChildId = childId;

    idMouseOver = true;
}

// element menu: wskaźnik opuszcza obszar;
// element: bieżący element,
// removeClass: klasa CSS do usunięcia z właściwości elementu,
// addClass: klasa CSS do dodania do właściwości elementu,
// elementId: identyfikator elementu, który opuścił wskażnik myszy,
function mMOut(removeClass, addClass, elementId) {
    var $element = $('#' + elementId);

    $element.removeClass(removeClass);
    $element.addClass(addClass);

    idMouseOver = false;
}

