var Header =
{
    SubMenuGotFocusTimeout: null,
    SubMenuCloseTimeout: 0 /*milliseconds*/,

    Init: function () {
        Header.SetNavEvents();
        Header.AddSocialMediaTracking();
    },

    SetNavEvents: function () {
        Header.MouseEnteredMainNavItem();
        Header.MouseLeftMainNavItem();
        Header.MouseEnteredSubNavItem();
        Header.MouseLeftSubNavItem();
    },

    MouseEnteredMainNavItem: function () {
        // mouseover for main nav item
        $("div#navigation > ul > li").mouseenter(function () {
            // remove hover class from all main nav items
            $("div#navigation > ul > li").each(function () {
                if ($(this).hasClass("hover")) {
                    $(this).removeClass("hover");
                }
            });

            // add hover effect
            $(this).addClass("hover");

            elementClasses = $(this).attr("class").split(" ");

            if (Header.SubMenuGotFocusTimeout != null) {
                clearTimeout(Header.SubMenuGotFocusTimeout);
            }

            // hide all the sub-menus
            $("div#navigation ul li ul").each(function () {
                $(this).hide();
            });

            // show the sub-menu which has the same class as the main nav item
            if (elementClasses[0] != "") {
                $("div#navigation ul li ul." + elementClasses[0]).show().bgiframe();
            }
        });
    },

    MouseLeftMainNavItem: function () {
        // mouseleave for main nav item
        $("div#navigation > ul > li").mouseleave(function () {
            elementClasses = $(this).attr("class").split(" ");

            if (elementClasses.length > 1) {
                // after 1/2 second, check if the user has focus on the sub-menu before closing it
                Header.SubMenuGotFocusTimeout = setTimeout("Header.CheckUserFocus()", Header.SubMenuCloseTimeout);
            }
            else {
                $(this).removeClass("hover");
            }
        });
    },

    MouseEnteredSubNavItem: function () {
        // mouseentered for submenu 
        $("div#navigation ul li ul").mouseenter(function () {
            $(this).addClass("user-focus");
        });
    },

    MouseLeftSubNavItem: function () {
        // mouseout for submenu
        $("div#navigation ul li ul").mouseleave(function () {
            $(this).removeClass("user-focus");
        });
    },

    CheckUserFocus: function () {
        userFocus = false;

        $("div#navigation ul li ul").each(function () {
            if ($(this).hasClass("user-focus")) {
                userFocus = true;
            }
        });

        if (!userFocus) {
            $("div#navigation ul li ul").each(function () {
                $(this).hide();
            });

            // remove hover class from all main nav items
            $("div#navigation > ul > li").each(function () {
                if ($(this).hasClass("hover")) {
                    $(this).removeClass("hover");
                }
            });
        }
    },

    AddSocialMediaTracking: function () {
        $("li.facebook-nav-icon").click(function () {
            _gaq.push(['_trackEvent', 'Social Media Links', 'Top Nav', 'Facebook']);
        });

        $("li.twitter-nav-icon").click(function () {
            _gaq.push(['_trackEvent', 'Social Media Links', 'Top Nav', 'Twitter']);
        });
    }
};

if (typeof $ == 'function') {
    $(document).ready(function () {
        Header.Init();
    });
}

