﻿$(document).ready(function () {
    globalNavMenu.build("topLevelMenu");
});

var globalNavMenu = {
    build: function (menuId) {
        var $tln = $("#" + menuId);
        var $subMenus = $tln.find("ul").parent();

        $subMenus.each(function (i) {
            var $subMenu = $(this);
            var $subMenuContainer = $subMenu.find("ul:eq(0)");

            this._dimensions = {
                w: this.offsetWidth,
                h: this.offsetHeight,
                subMenuContainerW: $subMenuContainer.outerWidth(),
                subMenuContainerH: $subMenuContainer.outerHeight()
            };

            this.isTopSubmenu = ($subMenu.parent("tr").length == 1 ? true : false);

            $subMenuContainer.css({ top: this._dimensions.h + "px" });

            $subMenu.hover(
                function (e) {
                    var $targetSubMenuContainer = $(this).children("ul:eq(0)");
                    var offsetLeft = (this.isTopSubmenu ? this.offsetLeft : $(this).offset().left);
                    this._offsets = { left: offsetLeft, top: $(this).offset().top };
                    var menuLeft = this.isTopSubmenu ? this._offsets.left : this._dimensions.w;
/*
                    if (this.isTopSubmenu) {
                        menuLeft = (menuLeft + this._dimensions.subMenuContainerW > $(window).width() ?
                            menuLeft - this._dimensions.subMenuContainerW + this._dimensions.w :
                            menuLeft);
                    }
                    else {
                        menuLeft = (menuLeft + this._offsets.left + this._dimensions.subMenuContainerW > $(window).width() ?
                            menuLeft - this._dimensions.w :
                            menuLeft);
                    }
*/
                    if ($targetSubMenuContainer.queue().length <= 1) //if 1 or less queued animations
                        $targetSubMenuContainer.css({
                            left: menuLeft + "px",
                            width: this._dimensions.subMenuContainerW + 'px'
                        }).slideDown(200);
                },
                function (e) {
                    var $targetSubMenuContainer = $(this).children("ul:eq(0)");
                    $targetSubMenuContainer.slideUp(100)

                }
            );

            $subMenu.click(function () {
                $(this).children("ul:eq(0)").hide();
            })

        });

        $tln.find("ul").css({ display: "none", visibility: "visible" });
    }
};

