"use strict"; var jmMainMenu = null; var jmMenuContainer = jQuery("#menu-container"); var jmMenuInnerContainer = jQuery("#menu-inner-container"); var jmVoidHref = 'javascript:void(0)'; var jmBaseParentId = 'lm-parent-'; var jmDebugOutput = false; var jmMobileWidth = null; var jmRewriteVars = null; var jmSectionMenu = jQuery("#section-menu"); var jmSectionMenuContainer = jQuery("#section-menu-contianer"); var jmListMenuButton = null; var jmMenuDelay = jQuery("#menu-container").attr('delayhover'); var jmWindowWidth = jQuery(window).width(); var jmOpts = jmOpts || { twtr:'Twitter', fb:'Facebook', social3: 'Instagram'}; function jmRewriteHref(link,userData) { if(userData && (link!==jmVoidHref) ) { if(link.indexOf('?')>=0) { //console.log("link has ?"); link += '&'+jmRewriteVars; } else { //console.log("not ?"); link += '?'+jmRewriteVars; } } return link; } function jmDebugConsole(msg) { if(jmDebugOutput) console.log(msg); } function jmGetMenuData() { jmDebugConsole("jmGetMenuData()"); jmDebugOutput = (jmMenuContainer.attr('data-menu-debug')==='true') ? true : false; jmRewriteVars = jmMenuContainer.attr('data-rewrite'); jmDebugConsole("jmRewriteVars:"+jmRewriteVars); var attr_twtr = jmMenuContainer.attr('data-twtr'); var attr_fb = jmMenuContainer.attr('data-fb'); var attr_social3 = jmMenuContainer.attr('data-social3'); if (attr_twtr) { jmOpts.twtr = attr_twtr; } if (attr_fb) { jmOpts.fb = attr_fb; } if (attr_social3) { jmOpts.social3 = attr_social3; } jmMobileWidth = parseInt(jmMenuContainer.attr('data-menu-mobile-width')); if(window.page_IN_USER_DONOR == "YES"){ jQuery.getScript(getBaseUrl()+'/fls/'+window.page_DB_OEM_ID+'/menu_data/donor_menu.js'); }else if(window.page__in_ticketing_ == "YES"){ jQuery.getScript(getBaseUrl()+'/fls/'+window.page_DB_OEM_ID+'/menu_data/ticketing_menu.js'); }else{ jQuery.getScript(getBaseUrl()+'/fls/'+window.page_DB_OEM_ID+'/menu_data/main_menu.js'); } } //Called from getScript jmGetMenuData() function jmBuildMainMenu(data) { jmDebugConsole("jmBuildMainMenu()"); jmMenuInnerContainer.html('
'); jmMainMenu = jQuery("#list-menu"); jmListMenuButton = jQuery("#list-menu-button"); jmBuildParentsHtml(data); jmSetupStyles(data); jmSetupMenuEvents(data); jmCheckMenuSize(); jmShowMenu(); } function jmShowMenu() { jmDebugConsole("jmShowMenu()"); jQuery('#'+jmBaseParentId+jmMenuContainer.attr("data-menu")).trigger("mouseenter"); jmMainMenu.css("visibility","visible"); } function jmBuildParentsHtml(data) { jmDebugConsole("jmBuildParentsHtml()"); var m = 1; var length = data.menu_items.length; for(var x=0;x'+data.menu_items[x].title+''); } else { jmMainMenu.append('
  • '+data.menu_items[x].title+'
  • '); } if(data.dividers===true && x!=(length-1)) { jmMainMenu.append('
  • '); } if(data.menu_items[x].sub_nav.length>0) { jmBuildSubMenuHtml(data.menu_items[x],m); } m++; } //console.log('done'); //jQuery(document).on("click", "ul#list-menu.show-mobile li.parent.template.menu-active", function() { // alert('click'); //jQuery(this).removeClass('menu-active'); //}); } function jmBuildSubMenuHtml(data,m) { jmDebugConsole('jmBuildSubMenuHtml() parent:'+m); var length = data.sub_nav.length; var lengthSplitNav = data.sub_nav.nav; var parentMenu = jQuery('#'+jmBaseParentId+m); parentMenu.append(''); var subUl = jQuery("ul:first",parentMenu); var link = null; if(data.type==='simple') { if(data.sub_nav[0].nav!==undefined) { //Split menu (Men/Women) jmDebugConsole("Split menu non-template (Men/Women)"); subUl.append('
  • '); jmBuildSplitMenuHtml(data,jQuery('li:first',subUl)); } else { //Combined Sports jmDebugConsole("Combined Sports non-template"); //subLi.append('
    '); //jmBuildTemplateStandardLinkHtml(data,subLi); for(var x=0;x'+data.sub_nav[x].title+''); else subUl.append('
  • '+data.sub_nav[x].title+'
  • '); } } } else if(data.type==='template-1') { jmBuildTemplate1Html(data,subUl); } else if(data.type==='template-2') { jmBuildTemplate2Html(data,subUl); } else if(data.type==='template-3') { jmBuildTemplate3Html(data,subUl); } else if(data.type==='template-4') { jmBuildTemplate4Html(data,subUl); } else if(data.type==='template-5') { jmBuildTemplate5Html(data,subUl); } else if(data.type==='template-6') { jmBuildTemplate6Html(data,subUl); } } function jmBuildImageTextAdHtml(data,subLi) { jmDebugConsole("jmBuildImageTextAdHtml()"); var template_target = (data.template_target===null) ? '' : data.template_target; var template_headline = (data.template_headline===null) ? '' : data.template_headline; var template_teaser = (data.template_teaser===null) ? '' : data.template_teaser; var template_image = (data.template_image_path===null) ? '' : ''; /*Ad stuff WM-40146*/ var template_ad_image = (data.template_ad_path===null) ? '' : ''; var template_ad_target = (data.template_ad_user_data===false) ? '' : '_blank'; var template_ad_html_setup = (data.template_ad_url===null)? template_ad_image :''+template_ad_image+''; var template_ad_html = (template_ad_html_setup>'') ? '
    '+template_ad_html_setup+'
    ':''; /*Backwards Compatible old menu_menu.js has this varible set to null so if is there then just do not put the ad code*/ if(data.template_ad_html===null){ template_ad_html=""; } if(data.template_link!==null) { template_headline = (template_headline>'') ? ''+template_headline+'' : template_headline; template_teaser = (template_teaser>'') ? ''+template_teaser+'' : template_teaser; template_image = (template_image>'') ? ''+template_image+'' : template_image; } subLi.append('
    '+template_image+'
    '+template_headline+'
    '+template_teaser+'
    '+template_ad_html); } function jmBuildFeatureLabelHtml(data,subLi) { jmDebugConsole("jmBuildFeatureLabelHtml()"); if(data.feature_1_label!==null) { subLi.append('
    '+data.feature_1_label+'
    '); } //jmDebugConsole("data.feature_1_nav.length:"+data.feature_1_nav.length); if(data.feature_1_nav.length>0) { subLi.append('
    '); var feature1Nav = jQuery("div.feature-1 ul.subnav",subLi); for(var x = 0;x'+data.feature_1_nav[x].title+''); } else { feature1Nav.append('
  • '+data.feature_1_nav[x].title+'
  • '); } } else { if(data.feature_1_nav[x].classes===null) { feature1Nav.append('
  • '+data.feature_1_nav[x].title+'
  • '); } else { feature1Nav.append('
  • '+data.feature_1_nav[x].title+'
  • '); } } } } if(data.feature_2_label!==null) { subLi.append('
    '+data.feature_2_label+'
    '); } if(data.feature_2_nav.length>0) { subLi.append('
    '); var feature2Nav = jQuery("div.feature-2 ul.subnav",subLi); for(var x = 0;x'+data.feature_2_nav[x].title+''); } else { feature2Nav.append('
  • '+data.feature_2_nav[x].title+'
  • '); } } else { if(data.feature_2_nav[x].classes===null) { feature2Nav.append('
  • '+data.feature_2_nav[x].title+'
  • '); } else { feature2Nav.append('
  • '+data.feature_2_nav[x].title+'
  • '); } } } } } function jmBuildTemplateStandardLinkHtml(data,subLi) { jmDebugConsole("jmBuildTemplateStandardLinkHtml()"); var standardSubNav = jQuery("div.standard ul.subnav",subLi); var target = ''; var link = null; if(data.sub_nav.length>0) { for(var x = 0;x'+data.sub_nav[x].title+''); } else { standardSubNav.append('
  • '+data.sub_nav[x].title+'
  • '); } } } } function jmBuildTemplate1Html(data,subUl) { jmDebugConsole("jmBuildTemplate1Html()"); subUl.append('
  • '); var subLi = jQuery("li.template",subUl); subLi.append('
    '); jmBuildTemplateStandardLinkHtml(data,subLi); jmBuildFeatureLabelHtml(data,subLi); jmBuildImageTextAdHtml(data,subLi); } function jmBuildTemplate2Html(data,subUl) { jmDebugConsole("jmBuildTemplate2Html()"); subUl.append('
  • '); var subLi = jQuery("li.template",subUl); subLi.append('
    '); jmBuildTemplateStandardLinkHtml(data,subLi); jmBuildFeatureLabelHtml(data,subLi); jmBuildImageTextAdHtml(data,subLi); } function jmBuildSplitMenuHtml(data,subLi) { jmDebugConsole("jmBuildSplitMenuHtml()"); jmDebugConsole("data.sub_nav.length:"+data.sub_nav.length); var link = null; for(var x=0;x'); } else { jQuery("div.standard",subLi).append('
    '); } var subSubUl = jQuery("ul.subnav",subLi).last(); for(var i=0;i'+data.sub_nav[x].nav[i].title+''); } else { subSubUl.append('
  • '+data.sub_nav[x].nav[i].title+'
  • '); } } } } function jmBuildSplitSportWithSectionsHtml(data,subLi) { jmDebugConsole("jmBuildSplitSportWithSectionsHtml()"); subLi.append('
    '); var target='',schedule_target='',roster_target='',news_link_html='',schedule_link_html='',roster_link_html='',custom_link_html='',facebook_html='',twitter_html=''; var user_data=true,schedule_user_data=true,roster_user_data=true,custom_user_data=true; var link = null,scheduleLink,rosterLink,social3_html,custom_target,customLink; for(var x=0;x'); } else { jQuery("div.standard",subLi).append('
    '); } var subSubUl = jQuery("ul.subnav",subLi).last(); for(var i=0;i'+data.sub_nav[x].nav[i].custom_title+''; } news_link_html = ''+data.sub_nav[x].nav[i].title+''; schedule_link_html = ''+data.sub_nav[x].nav[i].schedule_title+''; roster_link_html = ''+data.sub_nav[x].nav[i].roster_title+''; facebook_html = jmMenu.formatSocialLink(data.sub_nav[x].nav[i].facebook_link,jmOpts.fb); twitter_html = jmMenu.formatSocialLink(data.sub_nav[x].nav[i].twitter_link,jmOpts.twtr); social3_html = jmMenu.formatSocialLink(data.sub_nav[x].nav[i].social3_link,jmOpts.social3); subSubUl.append('
  • '+news_link_html+facebook_html+twitter_html+social3_html+custom_link_html+roster_link_html+schedule_link_html+'
  • '); } } } function jmBuildSportWithSectionsHtml(data,subLi) { jmDebugConsole("jmBuildSportWithSectionsHtml()"); var groupCount = 1; subLi.append('
    '); var standardSubNav = jQuery("div.standard ul.subnav:last",subLi); var target='',schedule_target='',roster_target='',news_link_html='',schedule_link_html='',roster_link_html='',custom_link_html='',facebook_html='',twitter_html=''; var user_data=true,schedule_user_data=true,roster_user_data=true,custom_user_data=true; var link,scheduleLink,rosterLink,custom_target,customLink,social3_html; if(data.sub_nav.length>0) { var total = data.sub_nav.length; var groupSize = total; //if the group size is odd, we need to subtract one to get it to split properly if (groupSize % 2 == 1) groupSize--; groupSize = groupSize/2; groupSize = ( (total%2)>0 ) ? (groupSize+1) : groupSize; for(var x = 0;x'); standardSubNav = jQuery("div.standard ul.subnav:last",subLi); } target = (data.sub_nav[x].target===null) ? '' : data.sub_nav[x].target; schedule_target = (data.sub_nav[x].schedule_target===null) ? '' : data.schedule_target; roster_target = (data.sub_nav[x].roster_target===null) ? '' : data.roster_target; user_data = data.sub_nav[x].user_data; schedule_user_data = data.sub_nav[x].schedule_user_data; roster_user_data = data.sub_nav[x].roster_user_data; link = jmRewriteHref(data.sub_nav[x].link,data.sub_nav[x].user_data); scheduleLink = jmRewriteHref(data.sub_nav[x].schedule_link,data.sub_nav[x].schedule_user_data); rosterLink = jmRewriteHref(data.sub_nav[x].roster_link,data.sub_nav[x].roster_user_data); if(data.sub_nav[x].custom_title!==undefined) { custom_target = (data.sub_nav[x].custom_target===null) ? '' : data.custom_target; custom_user_data = data.sub_nav[x].custom_user_data; customLink = jmRewriteHref(data.sub_nav[x].custom_link,data.sub_nav[x].custom_user_data); custom_link_html = ''+data.sub_nav[x].custom_title+''; } news_link_html = ''+data.sub_nav[x].title+''; schedule_link_html = ''+data.sub_nav[x].schedule_title+''; roster_link_html = ''+data.sub_nav[x].roster_title+''; facebook_html = jmMenu.formatSocialLink(data.sub_nav[x].facebook_link,jmOpts.fb); twitter_html = jmMenu.formatSocialLink(data.sub_nav[x].twitter_link,jmOpts.twtr); social3_html = jmMenu.formatSocialLink(data.sub_nav[x].social3_link,jmOpts.social3); standardSubNav.append('
  • '+news_link_html+facebook_html+twitter_html+social3_html+custom_link_html+roster_link_html+schedule_link_html+'
  • '); } } } function jmBuildTemplate3Html(data,subUl) { jmDebugConsole("jmBuildTemplate3Html()"); subUl.append('
  • '); var subLi = jQuery("li.template",subUl); if(data.sub_nav[0].schedule_title!==undefined) { //Combined Sports with sections jmDebugConsole("Combined Sports with sections"); jmBuildSportWithSectionsHtml(data,subLi); } else if(data.sub_nav[0].nav!==undefined && data.sub_nav[0].nav[0].schedule_title!==undefined) { jmDebugConsole("Split menu (Men/Women) with sections"); //Split menu (Men/Women) with sections jmBuildSplitSportWithSectionsHtml(data,subLi); //subLi.append('
    '); //jmBuildSplitMenuHtml(data,subLi); } else { if(data.sub_nav[0].nav!==undefined) { //Split menu (Men/Women) jmDebugConsole("Split menu (Men/Women)"); subLi.append('
    '); jmBuildSplitMenuHtml(data,subLi); } else { //Combined Sports jmDebugConsole("Combined Sports"); subLi.append('
    '); jmBuildTemplateStandardLinkHtml(data,subLi); } } jmBuildFeatureLabelHtml(data,subLi); jmBuildImageTextAdHtml(data,subLi); } function jmBuildTemplate4Html(data,subUl) { jmDebugConsole("jmBuildTemplate4Html()"); subUl.append('
  • '); var subLi = jQuery("li.template",subUl); if(data.sub_nav[0].nav!==undefined) { //Split menu (Men/Women) jmDebugConsole("Split menu (Men/Women)"); subLi.append('
    '); jmBuildSplitMenuHtml(data,subLi); } else { //Combined Sports jmDebugConsole("Combined Sports"); subLi.append('
    '); jmBuildTemplateStandardLinkHtml(data,subLi); } jmBuildFeatureLabelHtml(data,subLi); jmBuildImageTextAdHtml(data,subLi); } function jmBuildTemplate5Html(data,subUl) { jmDebugConsole("jmBuildTemplate5Html()"); subUl.append('
  • '); var subLi = jQuery("li.template",subUl); if(data.sub_nav[0].nav!==undefined) { //Split menu jmDebugConsole("Split menu standard"); subLi.append('
    '); jmBuildSplitMenuHtml(data,subLi); } jmBuildFeatureLabelHtml(data,subLi); jmBuildImageTextAdHtml(data,subLi); } function jmBuildTemplate6Html(data,subUl) { jmDebugConsole("jmBuildTemplate6Html()"); subUl.append('
  • '); var subLi = jQuery("li.template",subUl); jmBuildFeatureLabelHtml(data,subLi); jmBuildImageTextAdHtml(data,subLi); } function jmCheckMenuSize() { jmDebugConsole('jmCheckMenuSize - width:'+jQuery(window).width()); if(jQuery(window).width()>jmMobileWidth) { jmDebugConsole('disable mobile menu'); jmMainMenu.removeClass("mobile-menu"); jQuery(".parent.sub",jmMainMenu).removeClass("menu-active"); jmMainMenu.removeClass('show-mobile'); } else { jmDebugConsole('enable mobile menu'); jmMainMenu.addClass("mobile-menu"); } } function jmSetupStyles(data) { jmDebugConsole("jmSetupStyles()"); var menuParents = jQuery("li.parent",jmMainMenu); //Style Parents menuParents.first().addClass("first"); menuParents.last().addClass("last"); menuParents.each(function(index,ele) { if( (index%2) == 0) { jQuery(this).addClass("odd"); } else { jQuery(this).addClass("even"); } jQuery(this).attr({'aria-haspopup':'true','aria-expanded':'false'}); }); //Style subnav jQuery("ul.subnav").not('.template-ul').each(function(index,ele) { jQuery('li:first',jQuery(this)).addClass("first"); jQuery('li:last',jQuery(this)).addClass("last"); jQuery('li',jQuery(this)).not('template').each(function(index2,ele2) { if( (index2%2) == 0) { jQuery(this).addClass("odd"); } else { jQuery(this).addClass("even"); } }); }); //auto center if(data.auto_center_ul===true) { jmMainMenu.addClass("auto-center-ul").css({ "margin-left":"auto", "margin-right":"auto" }); jmDebugConsole("center menu"); var ulWidth = 0; jQuery(".parent,.divider",jmMainMenu).each(function(index,ele) { ulWidth += jQuery(this).width(); }); jmDebugConsole("ulWidth:"+ulWidth); jmMainMenu.css("width",ulWidth+"px"); } } function jmSetupMenuEvents(data) { var menuTimer; jQuery("button",jmListMenuButton).click(function() { //console.log("click here"); jmMainMenu.toggleClass('show-mobile'); jmListMenuButton.toggleClass('show-mobile'); }); jQuery(".parent,.divider",jmMainMenu).mouseenter(function() { if(jQuery(this).hasClass("sub")) { if(!jmMainMenu.hasClass("show-mobile")) { var offsetLeft = 0; var index = jQuery(this).index(); for(var x = 0;x0) { jQuery("li.more",jmSectionMenu).mouseover(function () { jQuery(this).addClass("menu-active"); jQuery(this).children("ul").css("visibility","visible"); jQuery(this).bind("mouseleave", function(){ jQuery(this).removeClass("menu-active"); jQuery(this).children("ul").css("visibility","hidden"); }); }); } } function jmMenuStart() { jmGetMenuData(); jmSectionMenuSetup(); } /* support functions */ var jmMenu = (function(){ var formatSocialLink = function(link_url,link_name){ var link_html; if (link_url !==null ) { link_html = ''; } else { link_html = ''; } return link_html; }; return { formatSocialLink:formatSocialLink }; }()); jQuery(function() { jmMenuStart(); //Start });