﻿/// <reference path="../jquery.common.js" />
/// <reference path="../jquery.js" />
/// <reference path="../zw_Runtime.js" />

var zw_menu = {
    menutimeout: null,
    currentitem: null,

    init: function() {
        var literal = Constants.zw_Menu;

        $('a[' + literal.itemid + ']').live('mouseover', function(event) {
            zw_menu.itemOver(this);
            return false;
        });
        $('a[' + literal.itemid + ']').live('mouseout', function(event) {
            zw_menu.itemOut(this);
            return false;
        });
        $('img[' + literal.itemid + ']').live('mouseover', function(event) {
            zw_menu.itemOver(this);
            return false;
        });
        $('img[' + literal.itemid + ']').live('mouseout', function(event) {
            zw_menu.itemOut(this);
            return false;
        });
    },

    itemOver: function(element) {

        clearTimeout(zw_menu.menutimeout);
        element = $(element);
        var literal = Constants.zw_Menu;

        var parentItemId = null;
        if (element.attr(literal.itemdepth) > 1) {
            parentItemId = $('a[' + literal.itemid + '=' + element.attr(literal.parentitemid) + ']').attr(literal.itemid);
        }

        if (zw_menu.currentitem != parentItemId &&
            $('a[' + literal.itemid + '=' + zw_menu.currentitem + ']').attr(literal.itemdepth) >= element.attr(literal.itemdepth)) {
            zw_menu.hideMenu(element.attr(literal.itemdepth));
        }

        $('div[' + literal.parentitemid + '=' + element.attr(literal.itemid) + ']').css({ visibility: 'visible' });

    },

    itemOut: function(element) {
        element = $(element);
        var literal = Constants.zw_Menu;

        zw_menu.currentitem = element.attr(literal.itemid);

        zw_menu.menutimeout = setTimeout(function() {
            zw_menu.hideMenu(element.attr(literal.itemdepth) - 1);
        }, 500);
    },

    hideMenu: function(depth) {
        var literal = Constants.zw_Menu;

        $('div[' + literal.itemdepth + ']').each(function() {
            var nestedMenu = $(this);
            if (nestedMenu.attr(literal.itemdepth) > depth) {
                nestedMenu.css({ visibility: 'hidden' });
            }
        });

        zw_menu.currentitem = null;
    }
};
