var SiteMenuClient = {
    MouseEnterMenusEnabled: true,
    CloseMenus: function () {
        SiteMenuClient.ToggleMenu(null, false, SiteMenuClient.MouseEnterMenusEnabled);
    },
    HighLightCurrentTab: function(){
                var links = getSiteMenuLinks();
                var currentLink = getCurrentLink(links);
                var currentTab = getCurrentTab(currentLink);
                currentTab.css("background-color", "#FF9100");
                currentTab.children(".m_TabRightSpacer").removeClass('m_TabRightSpacer');
                currentTab.parent().next().find(".m_TabRightSpacer").removeClass('m_TabRightSpacer');
                
                function getSiteMenuLinks() {
                    return $("#siteMenu1 a");
                }
                function getCurrentTab(element) {
                    var ret;
                    ret = $(element).parents(".m_ContainedTabOff");
                    if (ret.length == 0) {

                        var aux = $(element).parents('div[id*="TabContentParent"]').parent();
                        ret = aux.children(".m_ContainedTabOff");
                    }
                    return ret;
                }
                function getCurrentLink(links) {
                    var currentUrl = document.URL;
                    var currentLink;
                    if (document.location.pathname == "/")
                    {
                        currentLink = $('#siteMenu1 a[href="/Home"]');
                    }
                    else
                    {
                    $.each(links, function (index, value) {
                        if (value.href == currentUrl) {
                            currentLink = value;
                            return false;
                        }
                    });
                    }
                    return currentLink;
                }
            },
    EscapeTabHandler: function (event) {
        if (event.keyCode == '27' /*escape key*/ ||
            (event.keyCode == '9' /*tab key*/ && SiteMenuClient.IsInMegaMenuContainer(event) == false)) {

            SiteMenuClient.CloseMenus();

            if ((event.keyCode == '27' || event.keyCode == '9') && SiteMenuClient.IsInMegaMenuTab(event) == true) {
                $('#topMenu .m_ContainedTabOn').attr('class', 'm_ContainedTabOff');
                $(event.srcElement.parentElement.parentElement).attr('class', 'm_ContainedTabOn')
            }
        }
        else {
            if (event.keyCode == '13' && SiteMenuClient.IsInMegaMenuTab(event) == true) {
                SiteMenuClient.ToggleMenu(event.srcElement.parentElement.parentElement, true, true, true);
                $(event.srcElement.parentElement.parentElement).attr('class', 'm_ContainedTabOn')
            }
        }
    },
    IsInMegaMenuTab: function (event) {
        var parent = event.srcElement;

        if (parent == null) {
            return false;
        }
        if (parent.className == "m_Tab") {
            return true;
        }
        for (i = 0; i <= 6; i++) {
            parent = parent.parentElement;
            if (parent == null) {
                return false;
            }
            else {
                if (parent.className == "m_Tab") {
                    return true;
                }
            }
        }

        //return false it didn't find it
        return false;
    },
    IsInMegaMenuContainer: function (event) {
        var parent = event.target.offsetParent;
        for (i = 0; i <= 6; i++) {
            if (parent.className != 'm_TabContentContainer') {
                parent = parent.offsetParent;
                if (parent == null) {
                    return false;
                }
            }
            else {
                return true;
            }
        }

        //exceeded search limit return false
        return false;
    },
    ToggleMenu: function (tabItem, on, toggle, tabEntered) {
		try{
			if (!toggle) return;
			$('.m_TabContentContainer').css('visibility', "hidden");
			$('#topMenu .m_ContainedTabOn').attr('class', 'm_ContainedTabOff');
			SiteMenuClient.MouseEnterMenusEnabled = true;
			//$(document).unbind('keyup', SiteMenuClient.EscapeTabHandler);

        
				var name;
            
            
					if (!tabEntered) 
					{
						name = tabItem.parent('div').attr('id');
						tabItem.attr('class', 'm_ContainedTabOn');
					}
					else 
					{
						name = tabItem.parentElement.id;
					}
            

		   if (on) {
				$('#TabContent_' + name).css('visibility', 'visible');
				$('#TabContentParent_' + name).attr('class', 'tab' + name);
				SiteMenuClient.MouseEnterMenusEnabled = true;
				$(document).keyup(SiteMenuClient.EscapeTabHandler);
			}
			else{
				 $('#TabContentParent_' + name).attr('class', '');
				 $(document).keyup(SiteMenuClient.EscapeTabHandler);
			}
		}catch(Error){}
    },
    Initialize: function () {
        
        $(document).keyup(SiteMenuClient.EscapeTabHandler);

        $('#topMenu .m_ContainedTabOff').click(function (event) {
            var turnTabOn = $(this).attr('class') == 'm_ContainedTabOff';
            SiteMenuClient.ToggleMenu($(this), turnTabOn, true);
            $(event).focus();
        });

        $('#topMenu .m_ContainedTabOff').mouseenter(function () {
            SiteMenuClient.ToggleMenu($(this), true, SiteMenuClient.MouseEnterMenusEnabled);
            if (!SiteMenuClient.MouseEnterMenusEnabled) {
                $(this).attr('class', 'm_ContainedTabOn')
                $('#topMenu .m_ContainedTabOn').click(function (event) {
                    var turnTabOn = true;
                    SiteMenuClient.ToggleMenu($(this), turnTabOn, true);
                    $(event).focus();
                });
            }
        });

        $('#topMenu .m_ContainedTabOff').mouseleave(function () {
            SiteMenuClient.ToggleMenu($(this), true, SiteMenuClient.MouseEnterMenusEnabled);
            if (!SiteMenuClient.MouseEnterMenusEnabled) {
                //$('#topMenu .m_ContainedTabOn').unbind('click');
                $(this).attr('class', 'm_ContainedTabOff');
            }
        });

        $('[id$=siteMenu1]').mouseleave(SiteMenuClient.CloseMenus);
    }
};
$(function () {
    SiteMenuClient.Initialize();
});
