(function () { var LTA = {}; var LTASearchURL = ''; LTA.JsonHeader = function () { var storedNav = localStorage.getItem('ltaNavigation'), API_URL = "/json/navigationfeed.json",// = '//www4.lta.org.uk/api/controllers/navigation/global', globalNav, primaryNav; //if (location.hostname == "dev6.lta.org.uk") { // API_URL = '//lta.local/navigation-feed/'; //} //if (location.hostname == "test8.lta.org.uk" || location.hostname == "lta-test6.lta.org.uk") { // API_URL = '//lta-test75.lta.org.uk/api/controllers/navigation/global'; //} if (storedNav) { globalNav = JSON.parse(storedNav).responseContainerContents.global; primaryNav = JSON.parse(storedNav).responseContainerContents.primary; LTA.GeneratePrimaryNavigation(primaryNav); LTA.GenerateSecondaryNavigation(globalNav); LTA.NavFlyout(); } $j.get(API_URL, function callback(res) { var response = JSON.stringify(res); if (response !== storedNav) { globalNav = res.responseContainerContents.global; primaryNav = res.responseContainerContents.primary; LTA.GeneratePrimaryNavigation(primaryNav); LTA.GenerateSecondaryNavigation(globalNav); LTA.NavFlyout(); console.log('RESET NAVIGATION'); localStorage.setItem('ltaNavigation', response); } }); }; LTA.GeneratePrimaryNavigation = function (jsonNav) { var html = '', navItem, subItem, itemName, itemUrl, itemClass, itemHightlightColor, itemNavHomeTitle, navCounter = 0; for (var p in jsonNav) { navCounter++; if (navCounter > 7) break; itemName = jsonNav[p].name; itemUrl = jsonNav[p].url; itemHightlightColor = jsonNav[p].navigationHighlightColor ? jsonNav[p].navigationHighlightColor : ''; itemNavHomeTitle = jsonNav[p].navHomeTitle ? jsonNav[p].navHomeTitle : 'View all ' + itemName; itemClass = jsonNav[p].hideFromPrimaryNavigation || jsonNav[p].requiresAuthentication ? 'hidden ' : ''; itemClass += jsonNav[p].navItemClass || ''; navItem = ''; html += navItem; } $j('ul.primary-nav__main').html(html); LTA.StickyHeader(); }; LTA.GenerateSecondaryNavigation = function (jsonNav) { for (var p in jsonNav) { switch (jsonNav[p].name) { case "Login": $j('ul.primary-nav__secondary li a.primary-nav-secondary__login').attr("href", jsonNav[p].url); break; case "Join": $j('ul.primary-nav__secondary li a.primary-nav-secondary__join').attr("href", jsonNav[p].url); break; case "Search": LTASearchURL = jsonNav[p].url; break; default: break; } } }; LTA.JsonFooter = function () { var tempAPI_URL = "/json/footer.json"; //var tempAPI_URL = '//www4.lta.org.uk/api/controllers/navigation/footer'; ////if (location.hostname.includes("dev")) { //if (window.location.hash.indexOf("dev") >= 0) { // var tempAPI_URL = '//dev75.lta.org.uk/api/controllers/navigation/footer'; //} ////if (location.hostname.includes("test")) { // if (window.location.hash.indexOf("test") >= 0) { // var tempAPI_URL = '//lta-test75.lta.org.uk/api/controllers/navigation/footer'; //} var storedFooter = localStorage.getItem('ltaFooter'), API_URL = tempAPI_URL, footerLinks, partnerLogos; if (storedFooter) { footerLinks = JSON.parse(storedFooter).responseContainerContents.primary; partnerLogos = JSON.parse(storedFooter).responseContainerContents.global; LTA.GenerateFooterLinks(footerLinks); LTA.GeneratePartnerLogos(partnerLogos); LTA.NavFlyout(); } $j.get(API_URL, function callback(res) { var response = JSON.stringify(res); if (response !== storedFooter) { footerLinks = res.responseContainerContents.primary; partnerLogos = res.responseContainerContents.global; LTA.GenerateFooterLinks(footerLinks); LTA.GeneratePartnerLogos(partnerLogos); LTA.NavFlyout(); console.log('RESET FOOTER'); localStorage.setItem('ltaFooter', response); } }); }; LTA.GenerateFooterLinks = function (footerLinks) { var html = ''; $j('.footerlinksrowblock .box2').remove(); for (var c in footerLinks) { html += '
' + '
'; } $j('.footerlinksrowblock .box1').after(html); }; LTA.GeneratePartnerLogos = function (partnerLogos) { var html = ''; for (var p in partnerLogos) { //if the date is less than the trigger date or this the third layer of sponsors if (partnerLogos[p].name == 'Official Suppliers' || 'Official Partners' || 'With thanks to') { html += '
' + '
' + partnerLogos[p].name + '
'; } } $j('#globalFooterNew .sponsors').html(html); }; LTA.StickyHeader = function () { var element = $j('.primaryNav'), offset, pos; if (element[0] === undefined) { return; } offset = element.offset().top; $j.event.add(window, "scroll", function () { pos = $j(window).scrollTop() > offset ? 'fixed' : ''; element.css({ 'position': pos }); }); $j('.loginminictablock').clone().appendTo('.primaryNav nav.main > ul'); }; LTA.NavFlyout = function () { var flyoutTriggerSelectors = '.primaryNav .main > ul > li, li.loginminictablock', mainNavLink = $j(flyoutTriggerSelectors), $this, timeout; mainNavLink .hover(function (e) { if ($j(e.target).is("a.join")) return; var $elSearchActivationTrigger = $j("#ctaList .searchminictablock .trigger"); if ($elSearchActivationTrigger.hasClass("searchOpen")) { $elSearchActivationTrigger.trigger("click"); } $this = $j(this); clearTimeout(timeout); timeout = setTimeout(function () { mainNavLink.removeClass('hovered'); $this.addClass('hovered'); }, 100); }, function (e) { clearTimeout(timeout); timeout = setTimeout(function () { mainNavLink.removeClass('hovered'); }, 100); }); }; $j(document).ready(function () { $j("#ctaList li.loginminictablock a.login").live("touchend", function () { $j("#ctaList li.loginminictablock").trigger("mouseover"); }); LTA.JsonHeader(); LTA.JsonFooter(); $j("body").toggleClass("js"); $j("body").toggleClass("no-js"); var menu = $j(".menu"); var dropdowns = $j(".droppable"); var backBtn = $j(".mega-menu__btn-back"); var searchBox = $j(".primary-nav-secondary__search"); var loginFlyout = $j(".loggedIn .cf"); var loginFlyoutParent = loginFlyout.parent var overlay = $j(".overlay"); var closeButton = $j(".close-button"); //check if the screen is tablet or bigger var tabletPlus = window.matchMedia("(min-width: 700px)"); $j(window).resize(function () { update_marker(marker, ".active"); position_flyout(tabletPlus); }); //Hamburger menu click on mobile devices menu.delegate(null,"click", function (event) { $primaryNavMain = $j(".primary-nav__main"); $primaryNavMain.toggleClass("primary-nav__main--visible"); //reset the sub menus to hidden $j(".droppable").filter(".droppable-clicked").removeClass("droppable-clicked") event.stopPropagation(); }); dropdowns.delegate(null, "click", function (event) { $this = $j(this); $this.addClass("droppable-clicked"); event.stopPropagation(); }); backBtn.delegate(null,"click", function (event) { $this = $j(this); if ($this.hasClass("mega-menu__level-3")) { $this.closest(".mega-menu__list-container").prev().removeClass("droppable-clicked"); } else { $this.closest(".droppable-clicked").removeClass("droppable-clicked"); } event.stopPropagation(); }); searchBox.delegate(null,"click", function () { var overlaySearchBox = $j("#overlay-search-box"); var searchSubmitButton = $j(".search-submit-button"); overlay.addClass("js-overlay"); overlaySearchBox.focus(); closeButton.delegate(null,"click", function () { overlay.removeClass("js-overlay"); }); searchSubmitButton.delegate(null,"click", function () { performSearch(overlaySearchBox.val()); return false; }); overlaySearchBox.keydown(function (event) { // enter has keyCode = 13 if (event.keyCode == 13) { performSearch(overlaySearchBox.val()); return false; } }); }); init_marker("#marker", ".primary-nav__main"); activate_marker("#marker", ".primary-nav"); //set the right value of the logge in state flyout position_flyout(tabletPlus); }); function performSearch(query) { var url = LTASearchURL + "?q=" + encodeURI(query); window.location.replace(url); } function init_marker(marker, nav) { update_marker(marker, nav + " > .active:not(.droppable-authorized)"); } function activate_marker(marker, nav) { $j(nav + " .primary-nav__main > li").hover(function () { update_marker(marker, this); }, function () { update_marker(marker, ".primary-nav__main > .active:not(.droppable-authorized)"); }); } function update_marker(marker, based_on) { var elm = $j(based_on); if (elm) { var mark = $j(marker); var left = elm.offset(); var height = '6px'; var width = elm.width(); mark.css("visibility", "visible"); left ? mark.css("left", left.left) : ""; left ? "" : mark.css("visibility", "hidden"); mark.css("height", height); mark.css("width", width); mark.css("background-color", elm.data('border')) } else { console.log("No active element in the nav"); } } function position_flyout(screenSize) { if (screenSize.matches) { var cf = $j(".loginminictablock .cf"); var cfParent = cf.parent(); if (cfParent.offset()) { var cfRight = ($j(window).width() - (cfParent.offset().left + cfParent.outerWidth())); cf.css({ right: cfRight }); } } } //function ENV() { // var subDomain, // host = window.location.host; // if (host.indexOf('dev6') !== -1) { // subDomain = 'dev75'; // } // else if (host.indexOf('test') !== -1) { // subDomain = 'lta-test75'; // } // else { // subDomain = 'www'; // } // return window.location.protocol + '//' + subDomain + '.lta.org.uk'; // } }());