{"version":3,"sources":["js/js-globalnav.js"],"names":["jsIdGlobalNavButton","jsIdMegaMenu","jsIdMegaMenuSection","jsIdMegaMenuLi","jsIdMegaMenuMobilePlus","genericActivationCssClass","cssSubmenuActivationClass","cssActiveMobileButtonClass","_isMobile","getIsMobile","window","innerWidth","initActivationItem","item","classList","contains","setAttribute","addDataJsForCMega","datajs","doesStartsWith","cssActivationClass","dataset","js","substring","length","slice","concat","setAriaExpanded","val","hasAttribute","element","activate","add","buttonMobileMainMenu","scrollIntoView","deactivate","remove","initToggleActivationItems","controller","parentController","forceDeactivate","i","activateItems","activateItem","isActive","isSubMenuActive","activateButton","mainMenuControllers","gNavModalBg","document","querySelector","gnav","buttonMobileHamburg","buttonMobileAccount","allMobileButtons","querySelectorAll","sectionMobileAccount","buttonGroupMegaMenuClose","hasEmptySelectAccount","hasEmptyNavigation","aigNav","primaryNavController","toggle","addEventListener","handlerMobileAccountMenu","handlerToggleHamburgMenu","nodesGlobalNavLis","arrGlobalNavLis","Array","prototype","call","initPrimaryNavFix","handlerWindowResize","handlerDocumentClose","initMobileNavigationListeners","gli","initMenuController","deactiveAllMobileBtns","closeAllMenus","deactivateChildren","toggleMobileModalBackground","mobileToggleMenu","curTarget","activationContainer","parentActivationClass","e","target","ifClickAndNotMenu","type","ifKeyAndEsc","keyCode","handlerBackToMobileMainMenu","isClicked","elementsGroup","handler","specialLoopFunction","utilAddClickListenerGroup","initSubmenuClickHandler","mobileSectionController","initMobileSectionDeactivate","elGlobalNavPrimaryNav","getElementById","elPrimaryNavOverlay","elPrimaryNavToggle","parent","elNavItemIconToClone","elNavItemIcon","_secondaryNavController","elSubnavToggle","elSubnav","closeSecondaryNav","globalSecondaryNavFixController","toggleLegacyMenus","appendChild","cloneNode","event","preventDefault","_toggleActive","_icon","swapAddRemoveIcon","gNavLi","gNavButton","gNavMegaMenu","aigNavLi","aigNavButton","aigNavMegaMenu","mainMenuController","sections","initGlobalNavHandler","arrMegaMenuSection","msi","menuSection","aiMenuSection","arrMegaMenuLi","mmli","mobileSubMenuLi","buttonMobilePlus","push"],"mappings":"AAAA,cAAa,WACX,IAGIA,EAAsB,gCACtBC,EAAe,UAEfC,EAAsB,iCACtBC,EAAiB,4BACjBC,EAAyB,oCAKzBC,EAA4B,YAC5BC,EAA4B,oBAC5BC,EAA6B,4BAcjC,IAXMC,EAWFC,GAXED,GAAY,EACT,WAML,OALKA,GAAaE,OAAOC,YAAc,KACrCH,GAAY,EACHA,GAAiC,KAApBE,OAAOC,aAC7BH,GAAY,GAEPA,IAkBX,SAASI,EAAmBC,GAC1B,IAAKA,EAAM,MAAO,IANpB,SAA2BA,GACpBA,EAAKC,UAAUC,SAAS,WAC7BF,EAAKG,aAAa,UAAW,aAM7BC,CAAkBJ,GAUlB,IAPMK,EAEAC,EAKFC,GAPEF,EAASL,EAAKQ,QAAQC,GAEtBH,EADmB,QACFD,EAAOK,UAAU,EADf,MACmCC,QACvBN,GAAUC,GAAkBD,EAAOO,MAAM,GAAGC,OAAO,gBAC/CrB,GAKzC,SAASsB,EAAgBC,GACnBf,EAAKgB,aAAa,kBAAkBhB,EAAKG,aAAa,gBAAiBY,GAoB7E,MAAO,CACLE,QAASjB,EACTkB,SAbF,WACElB,EAAKC,UAAUkB,IAAIZ,GANfa,GAAwBxB,KAC1BwB,EAAqBC,iBAOvBP,GAAgB,IAWhBQ,WARF,WACEtB,EAAKC,UAAUsB,OAAOhB,GACtBO,GAAgB,KAUpB,SAASU,EAA0BC,EAAYC,GAC7C,OAAO,SAA+BC,GACpC,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAWI,cAAclB,OAAQiB,IAAK,CACxD,IAAIE,EAAeL,EAAWI,cAAcD,GACxCH,EAAWM,UAAYJ,EACzBG,EAAaR,aAEbQ,EAAaZ,WAIbS,EACFF,EAAWM,UAAW,GAIxBN,EAAWM,UAAYN,EAAWM,SAC9BL,IACFA,EAAiBM,gBAAkBP,EAAWM,SAC1CN,EAAWM,SACbL,EAAiBO,eAAehC,UAAUkB,IAAI1B,GAE9CiC,EAAiBO,eAAehC,UAAUsB,OAAO9B,MAOzD,IAAIyC,EAAsB,GACtBC,EAAcC,SAASC,cApHH,2BAqHpBC,EAAOF,SAASC,cApHA,wBAqHpB,GAAKC,EAAL,CACA,IAAIlB,EAAuBkB,EAAKD,cA9GP,kCA+GrBE,EAAsBD,EAAKD,cA9GP,oCA+GpBG,EAAsBF,EAAKD,cA9GP,oCA+GpBI,EAAmBH,EAAKI,iBAAiB,sBACzCC,EAAuBL,EAAKD,cA/GD,kCAgH3BO,EAA2BN,EAAKI,iBAvHZ,gCAyHpBG,GAAyBF,GAAmF,IAA3DA,EAAqBD,iBAAiB,UAAU/B,OACjGmC,GAAsBR,EAAKD,cAAc,eACzCU,EAAShD,EAAmBuC,GAC5BU,EAAuB,CAAEC,OAAQ,cAwD/BJ,EACFL,EAAoBvC,UAAUkB,IAAI,mBAElCqB,EAAoBU,iBAAiB,QAASC,GAG5CL,EACFP,EAAoBtC,UAAUkB,IAAI,mBAElCoB,EAAoBW,iBAAiB,QAASE,GAuDlD,IAAIC,EAAoBf,EAAKI,iBAvPP,gCAwPlBY,EAAkBC,MAAMC,UAAU5C,MAAM6C,KAAKJ,GAiH/CK,IACIZ,IApJJjD,OAAOqD,iBAAiB,SAAUS,GAClCvB,SAASc,iBAAiB,QAASU,GACnCxB,SAASc,iBAAiB,UAAWU,GAoJrCC,IACAjE,KA0DF,IAAK,IAAIkE,EAAM,EAAGA,EAAMR,EAAgB3C,OAAQmD,IAAO,CAErDC,EADaT,EAAgBQ,KAtS/B,SAASE,IACP,IAAK,IAAIpC,EAAI,EAAGA,EAAIa,EAAiB9B,OAAQiB,IAAK,CAC5Ba,EAAiBb,GACvB3B,UAAUsB,OAAO7B,IAInC,SAASuE,IACP,IAAK,IAAIrC,EAAI,EAAGA,EAAIM,EAAoBvB,OAAQiB,IAAK,CACnD,IAAIH,EAAaS,EAAoBN,GACrCH,EAAWyC,qBACXzC,EAAWwB,QAAO,GAEpBN,GAAwBA,EAAqB1C,UAAUsB,OAAO,WAC9De,EAAKrC,UAAUsB,OAAO,WACtBe,EAAKrC,UAAUsB,OAAO,oBAKxB,SAAS4C,IACQvE,MAET0C,EAAKrC,UAAUC,SAAS,YAAcoC,EAAKrC,UAAUC,SAAS,qBAChEiC,EAAYlC,UAAUkB,IAAI3B,GAI9B2C,EAAYlC,UAAUsB,OAAO/B,GAG/B,SAAS4E,EAAiBC,EAAWC,EAAqBC,GACxDN,IACAjB,EAAqBC,QAAO,GACxBoB,EAAUpE,UAAUC,SAASR,GAC/B2E,EAAUpE,UAAUsB,OAAO7B,IAE3BsE,IACAM,EAAoBrE,UAAUkB,IAAIoD,GAClCF,EAAUpE,UAAUkB,IAAIzB,IAE1ByE,IAGF,SAASf,EAAyBoB,GAChCJ,EAAiBI,EAAEC,OAAQnC,EAAM,WAGnC,SAASa,EAAyBqB,GAChCJ,EAAiBI,EAAEC,OAAQnC,EAAM,oBAoBnC,SAASqB,IACPQ,IAGF,SAASP,EAAqBY,GAC5B,IAAIE,EAA+B,UAAXF,EAAEG,OAAqBrC,EAAKpC,SAASsE,EAAEC,QAC3DG,EAAyB,YAAXJ,EAAEG,MAAoC,KAAdH,EAAEK,SACxCH,GAAqBE,KACvBX,IACAD,IACAG,KAaJ,SAASW,EAA4BN,GACnC,IAAK,IAAI5C,EAAI,EAAGA,EAAIM,EAAoBvB,OAAQiB,IAAK,CACnD,IAAIH,EAAaS,EAAoBN,GAEjCH,EAAWM,WAAaN,EAAWsD,YACrCtD,EAAWyC,qBACXzC,EAAWwB,UAEbxB,EAAWsD,WAAY,GAI3B,SAASlB,IACPzC,EAAqB8B,iBAAiB,QAAS4B,GA9MjD,SAAmCE,EAAeC,EAASC,GACzD,IAAK,IAAItD,EAAI,EAAGA,EAAIoD,EAAcrE,OAAQiB,IACxCoD,EAAcpD,GAAGsB,iBAAiB,QAAS+B,GAC3CC,GAAuBA,EAAoBF,EAAcpD,IA4M3DuD,CAA0BvC,EAA0BkC,GA8BtD,SAASM,EAAwBC,GAC/B,OAAO,WACLA,EAAwBpC,UAI5B,SAASqC,EAA4BD,GACnC,OAAO,WACLA,EAAwBtD,UAAYsD,EAAwBpC,UAIhE,SAASS,IACP,IAAI6B,EAAwBnD,SAASoD,eAAe,eACpD,GAAKD,EAAL,CACA,IAAIE,EAAsBrD,SAASoD,eAAe,WA2ElDpD,SAASc,iBAAiB,mBAnD1B,WACE,IAAIwC,EAAqBtD,SAASC,cAAc,oDAChD,GAAKqD,EAAL,CACA,IAGwCC,EAClCC,EAJFC,EAAgBH,EAAmBrD,cAAc,mBACjDyD,EA1BN,WACE,IAAIC,EAAiB3D,SAASoD,eAAe,iBACzCQ,EAAW5D,SAASC,cAAc,mBAetC,OAbI0D,IACFA,EAAe9F,UAAUkB,IAAI,mBAC7B4E,EAAe9F,UAAUsB,OAAO,WAW3B,CACL0E,kBATF,WACMF,GAAkBA,EAAe9F,UAAUC,SAAS,YACtD6F,EAAe1D,cAAc,OAAOlC,aAAa,aAAc,oBAC/D4F,EAAe9F,UAAUsB,OAAO,UAChCyE,GAAYA,EAAS/F,UAAUsB,OAAO,aAaZ2E,GA0C9BlD,EAAqBC,OAASkD,EAxCUR,EAyCTD,GAxCzBE,EAAuBL,EAAsBlD,cAAc,oBAE7DsD,EAAOS,YAAYR,EAAqBS,WAAU,IAElDV,EAAO1F,UAAUkB,IAAI,gBAqCzBuE,EAAmBxC,iBAAiB,QARpC,SAAiCoD,GAC/BA,EAAMC,iBAENJ,EADeZ,EAAsBtF,UAAUC,SAAS,aAlB1D,SAASiG,EAAkBpE,GACzB,SAASyE,EAAcvF,GAChBA,IACDc,EACFd,EAAQhB,UAAUsB,OAAO,UAEzBN,EAAQhB,UAAUkB,IAAI,WAI1BqF,EAAcjB,GACdiB,EAAcf,GApBhB,SAA2B1D,GAIzB,GAFE8D,EADGA,GACaH,EAAmBrD,cAAc,mBAEnD,CACA,IAAIoE,EAAQ1E,EAAW,mBAAqB,sBAC5C8D,EAAcxD,cAAc,OAAOlC,aAAa,aAAcsG,IAe9DC,CAAkB3E,GAClB+D,EAAwBG,wBA4B9B,SAASlC,EAAmB4C,GAC1B,IAAIC,EAAaD,EAAOtE,cAAclD,GAClC0H,EAAeF,EAAOtE,cAAcjD,GAExC,GAAKwH,GAAeC,EAApB,CAEA,IAAIC,EAAW/G,EAAmB4G,GAC9BI,EAAehH,EAAmB6G,GAClCI,EAAiBjH,EAAmB8G,GAEpCI,EAAqB,CACvBhF,eAAgB2E,EAChB/E,cAAe,CAACkB,EAAQ+D,EAAUC,GAClChF,UAAU,EACVC,iBAAiB,EACjB+C,WAAW,EACXmC,SAAU,IAGZD,EAAmBhE,OAASzB,EAA0ByF,GACtDA,EAAmB/C,mBAvJrB,SAA4BzC,GAC1B,OAAO,WACL,IAAK,IAAIG,EAAI,EAAGA,EAAIH,EAAWyF,SAASvG,OAAQiB,IAC9CH,EAAWyF,SAAStF,GAAGN,cAoJa4C,CAAmB+C,GAE3DL,EAAW1D,iBAAiB,QA9I9B,SAA8B+D,GAC5B,OAAO,YACDA,EAAmBlF,UAAakF,EAAmBjF,gBAKnDiF,EAAmBjF,gBACrBiF,EAAmB/C,sBAEnBY,IACAmC,EAAmBhE,UARnBgE,EAAmBhE,UA2IckE,CAAqBF,IAG1D,IADA,IAAIG,EAAqB7D,MAAMC,UAAU5C,MAAM6C,KAAKoD,EAAanE,iBAAiBrD,IACzEgI,EAAM,EAAGA,EAAMD,EAAmBzG,OAAQ0G,IAKjD,IAJA,IAAIC,EAAcF,EAAmBC,GACjCE,EAAgBxH,EAAmBuH,GAEnCE,EAAgBjE,MAAMC,UAAU5C,MAAM6C,KAAK6D,EAAY5E,iBAAiBpD,IACnEmI,EAAO,EAAGA,EAAOD,EAAc7G,OAAQ8G,IAAQ,CACtD,IAAIC,EAAkBF,EAAcC,GAChCE,EAAmBD,EAAgBrF,cAAc9C,GAIjD8F,EAA0B,CAC5BpD,eAAgB0F,EAChB9F,cAAe,CAACmF,EALOjH,EAAmB4H,GAKUJ,EAJ9BxH,EAAmB2H,IAKzC3F,UAAU,GAGZsD,EAAwBpC,OAASzB,EAA0B6D,EAAyB4B,GACpF5B,EAAwB/D,WAAagE,EAA4BD,GACjEA,EAAwBpD,eAAeiB,iBAAiB,QAASkC,EAAwBC,IAEzF4B,EAAmBC,SAASU,KAAKvC,GAIrCnD,EAAoB0F,KAAKX,KAvahB","file":"js-globalnav.js","sourcesContent":["'use strict';(function globalNavJs() {\n var jdIdGlobalModalBg = '[data-js=\"js-modal-bg\"]';\n var jsIdGlobalNav = '[data-js=\"js-g-nav\"]';\n var jsIdGlobalNavLi = '[data-js=\"js-g-nav__bar-li\"]';\n var jsIdGlobalNavButton = '[data-js=\"js-g-nav__bar-btn\"]';\n var jsIdMegaMenu = '.c-mega';\n var jsIdMegaMenuClose = '[data-js=\"js-c-mega__close\"]';\n var jsIdMegaMenuSection = '[data-js=\"js-c-mega__section\"]';\n var jsIdMegaMenuLi = '[data-js=\"js-c-mega__li\"]';\n var jsIdMegaMenuMobilePlus = '[data-js=\"js-c-mega__mobile-btn\"]';\n var jsIdMobileMainMenu = '[data-js=\"js-btn-menu--close\"]';\n var jsIdMobileHamburg = '[data-js=\"js-btn-menu--hamburg\"]';\n var jsIdMobileAccount = '[data-js=\"js-btn-menu--account\"]';\n var jsIdMobileAccountSection = '[data-js=\"js-account-section\"]';\n var genericActivationCssClass = 'is-active';\n var cssSubmenuActivationClass = 'submenu-is-active';\n var cssActiveMobileButtonClass = 'g-nav__mobile-btn--active';\n\n function initCheckMobile() {\n var _isMobile = false;\n return function checkForMobile() {\n if (!_isMobile && window.innerWidth <= 1024) {\n _isMobile = true;\n } else if (_isMobile && window.innerWidth > 1024) {\n _isMobile = false;\n }\n return _isMobile;\n };\n }\n\n var getIsMobile = initCheckMobile();\n\n function utilAddClickListenerGroup(elementsGroup, handler, specialLoopFunction) {\n for (var i = 0; i < elementsGroup.length; i++) {\n elementsGroup[i].addEventListener('click', handler);\n specialLoopFunction && specialLoopFunction(elementsGroup[i]);\n }\n }\n\n function addDataJsForCMega(item) {\n if (!item.classList.contains('c-mega')) return;\n item.setAttribute('data-js', 'js-c-mega');\n }\n\n function initActivationItem(item) {\n if (!item) return {};\n\n addDataJsForCMega(item);\n\n function parseItemForSpecificActivationClass() {\n var datajs = item.dataset.js;\n var lookingForString = 'js-';\n var doesStartsWith = datajs.substring(0, lookingForString.length) === lookingForString;\n var selectorBasedActivationClass = datajs && doesStartsWith && datajs.slice(3).concat('--is-active');\n return selectorBasedActivationClass || genericActivationCssClass;\n }\n\n var cssActivationClass = parseItemForSpecificActivationClass();\n\n function setAriaExpanded(val) {\n if (item.hasAttribute('aria-expanded')) item.setAttribute('aria-expanded', val);\n }\n\n function scrollIntoViewOnMobile() {\n if (buttonMobileMainMenu && getIsMobile()) {\n buttonMobileMainMenu.scrollIntoView();\n }\n }\n\n function _activate() {\n item.classList.add(cssActivationClass);\n scrollIntoViewOnMobile();\n setAriaExpanded(true);\n }\n\n function _deactivate() {\n item.classList.remove(cssActivationClass);\n setAriaExpanded(false);\n }\n\n return {\n element: item,\n activate: _activate,\n deactivate: _deactivate };\n\n }\n\n function initToggleActivationItems(controller, parentController) {\n return function toggleActivationItems(forceDeactivate) {\n for (var i = 0; i < controller.activateItems.length; i++) {\n var activateItem = controller.activateItems[i];\n if (controller.isActive || forceDeactivate) {\n activateItem.deactivate();\n } else {\n activateItem.activate();\n }\n }\n\n if (forceDeactivate) {\n controller.isActive = false;\n return;\n }\n\n controller.isActive = !controller.isActive;\n if (parentController) {\n parentController.isSubMenuActive = controller.isActive;\n if (controller.isActive) {\n parentController.activateButton.classList.add(cssSubmenuActivationClass);\n } else {\n parentController.activateButton.classList.remove(cssSubmenuActivationClass);\n }\n }\n };\n }\n\n //-----------------------------------------------------------------------------------\n var mainMenuControllers = [];\n var gNavModalBg = document.querySelector(jdIdGlobalModalBg);\n var gnav = document.querySelector(jsIdGlobalNav);\n if (!gnav) return;\n var buttonMobileMainMenu = gnav.querySelector(jsIdMobileMainMenu);\n var buttonMobileHamburg = gnav.querySelector(jsIdMobileHamburg);\n var buttonMobileAccount = gnav.querySelector(jsIdMobileAccount);\n var allMobileButtons = gnav.querySelectorAll('.g-nav__mobile-btn');\n var sectionMobileAccount = gnav.querySelector(jsIdMobileAccountSection);\n var buttonGroupMegaMenuClose = gnav.querySelectorAll(jsIdMegaMenuClose);\n\n var hasEmptySelectAccount = !sectionMobileAccount || sectionMobileAccount.querySelectorAll('.r-btn').length === 0;\n var hasEmptyNavigation = !gnav.querySelector('.g-nav__bar');\n var aigNav = initActivationItem(gnav);\n var primaryNavController = { toggle: function toggle() {} };\n\n\n function deactiveAllMobileBtns() {\n for (var i = 0; i < allMobileButtons.length; i++) {\n var mobileMenuBtn = allMobileButtons[i];\n mobileMenuBtn.classList.remove(cssActiveMobileButtonClass);\n }\n }\n\n function closeAllMenus() {\n for (var i = 0; i < mainMenuControllers.length; i++) {\n var controller = mainMenuControllers[i];\n controller.deactivateChildren();\n controller.toggle(true);\n }\n sectionMobileAccount && sectionMobileAccount.classList.remove('is-open');\n gnav.classList.remove('is-open');\n gnav.classList.remove('is-open--account');\n }\n\n //-----------------------------------------------------------------------------------\n //-----------------------------------------------------------------------------------\n function toggleMobileModalBackground() {\n var isMobile = getIsMobile();\n if (isMobile) {\n if (gnav.classList.contains('is-open') || gnav.classList.contains('is-open--account')) {\n gNavModalBg.classList.add(genericActivationCssClass);\n return;\n }\n }\n gNavModalBg.classList.remove(genericActivationCssClass);\n }\n\n function mobileToggleMenu(curTarget, activationContainer, parentActivationClass) {\n closeAllMenus();\n primaryNavController.toggle(true);\n if (curTarget.classList.contains(cssActiveMobileButtonClass)) {\n curTarget.classList.remove(cssActiveMobileButtonClass);\n } else {\n deactiveAllMobileBtns();\n activationContainer.classList.add(parentActivationClass);\n curTarget.classList.add(cssActiveMobileButtonClass);\n }\n toggleMobileModalBackground();\n }\n\n function handlerToggleHamburgMenu(e) {\n mobileToggleMenu(e.target, gnav, 'is-open');\n }\n\n function handlerMobileAccountMenu(e) {\n mobileToggleMenu(e.target, gnav, 'is-open--account');\n }\n\n function initButtonListeners() {\n if (hasEmptySelectAccount) {\n buttonMobileAccount.classList.add('u-display--none');\n } else {\n buttonMobileAccount.addEventListener('click', handlerMobileAccountMenu);\n }\n\n if (hasEmptyNavigation) {\n buttonMobileHamburg.classList.add('u-display--none');\n } else {\n buttonMobileHamburg.addEventListener('click', handlerToggleHamburgMenu);\n }\n }\n\n initButtonListeners();\n //-----------------------------------------------------------------------------------\n //-----------------------------------------------------------------------------------\n function handlerWindowResize() {\n toggleMobileModalBackground();\n }\n\n function handlerDocumentClose(e) {\n var ifClickAndNotMenu = e.type === 'click' && !gnav.contains(e.target);\n var ifKeyAndEsc = e.type === 'keydown' && e.keyCode === 27;\n if (ifClickAndNotMenu || ifKeyAndEsc) {\n closeAllMenus();\n deactiveAllMobileBtns();\n toggleMobileModalBackground();\n }\n }\n\n function initDocumentListeners() {\n window.addEventListener('resize', handlerWindowResize);\n document.addEventListener('click', handlerDocumentClose);\n document.addEventListener('keydown', handlerDocumentClose);\n }\n\n //-----------------------------------------------------------------------------------\n //-----------------------------------------------------------------------------------\n\n function handlerBackToMobileMainMenu(e) {\n for (var i = 0; i < mainMenuControllers.length; i++) {\n var controller = mainMenuControllers[i];\n //turn off everything this is active and wasn't clicked\n if (controller.isActive && !controller.isClicked) {\n controller.deactivateChildren();\n controller.toggle();\n }\n controller.isClicked = false;\n }\n }\n\n function initMobileNavigationListeners() {\n buttonMobileMainMenu.addEventListener('click', handlerBackToMobileMainMenu);\n utilAddClickListenerGroup(buttonGroupMegaMenuClose, handlerBackToMobileMainMenu);\n }\n\n function deactivateChildren(controller) {\n return function deactivateSubMenu() {\n for (var i = 0; i < controller.sections.length; i++) {\n controller.sections[i].deactivate();\n }\n };\n }\n\n var nodesGlobalNavLis = gnav.querySelectorAll(jsIdGlobalNavLi);\n var arrGlobalNavLis = Array.prototype.slice.call(nodesGlobalNavLis);\n\n function initGlobalNavHandler(mainMenuController) {\n return function handlerGlobalNavButton(e) {\n if (mainMenuController.isActive && !mainMenuController.isSubMenuActive) {\n mainMenuController.toggle();\n return;\n }\n\n if (mainMenuController.isSubMenuActive) {\n mainMenuController.deactivateChildren();\n } else {\n handlerBackToMobileMainMenu(e);\n mainMenuController.toggle();\n }\n };\n }\n\n function initSubmenuClickHandler(mobileSectionController) {\n return function handlerSubMenuClick(e) {\n mobileSectionController.toggle();\n };\n }\n\n function initMobileSectionDeactivate(mobileSectionController) {\n return function mobileSectionDeactivate() {\n mobileSectionController.isActive && mobileSectionController.toggle();\n };\n }\n\n function initPrimaryNavFix() {\n var elGlobalNavPrimaryNav = document.getElementById('primary-nav');\n if (!elGlobalNavPrimaryNav) return;\n var elPrimaryNavOverlay = document.getElementById('overlay');\n\n function globalSecondaryNavFixController() {\n var elSubnavToggle = document.getElementById('subnav-toggle');\n var elSubnav = document.querySelector('.sub-navigation');\n\n if (elSubnavToggle) {\n elSubnavToggle.classList.add('g-secondary-nav');\n elSubnavToggle.classList.remove('active');\n }\n\n function _closeSecondaryNav() {\n if (elSubnavToggle && elSubnavToggle.classList.contains('active')) {\n elSubnavToggle.querySelector('use').setAttribute('xlink:href', '#gmd-ic-add-24px');\n elSubnavToggle.classList.remove('active');\n elSubnav && elSubnav.classList.remove('active');\n }\n }\n\n return {\n closeSecondaryNav: _closeSecondaryNav };\n\n }\n\n function globalPrimaryNavFixController() {\n var elPrimaryNavToggle = document.querySelector('.g-primary-nav .nav-menu .nav-item:first-child a');\n if (!elPrimaryNavToggle) return;\n var elNavItemIcon = elPrimaryNavToggle.querySelector('.nav-item__icon');\n var _secondaryNavController = globalSecondaryNavFixController();\n\n function _cloneNavItemIconForMenuToggle(parent) {\n var elNavItemIconToClone = elGlobalNavPrimaryNav.querySelector('.nav-item__icon');\n if (elNavItemIconToClone) {\n parent.appendChild(elNavItemIconToClone.cloneNode(true));\n } else {\n parent.classList.add('missing-icon');\n }\n }\n\n function swapAddRemoveIcon(isActive) {\n if (!elNavItemIcon) {\n elNavItemIcon = elPrimaryNavToggle.querySelector('.nav-item__icon');\n }\n if (!elNavItemIcon) return;\n var _icon = isActive ? '#gmd-ic-add-24px' : '#gmd-ic-remove-24px';\n elNavItemIcon.querySelector('use').setAttribute('xlink:href', _icon);\n }\n\n function toggleLegacyMenus(isActive) {\n function _toggleActive(element) {\n if (!element) return;\n if (isActive) {\n element.classList.remove('active');\n } else {\n element.classList.add('active');\n }\n }\n\n _toggleActive(elGlobalNavPrimaryNav);\n _toggleActive(elPrimaryNavOverlay);\n swapAddRemoveIcon(isActive);\n _secondaryNavController.closeSecondaryNav();\n }\n\n function primaryNavToggleHandler(event) {\n event.preventDefault();\n var isActive = elGlobalNavPrimaryNav.classList.contains('active');\n toggleLegacyMenus(isActive);\n }\n\n primaryNavController.toggle = toggleLegacyMenus;\n _cloneNavItemIconForMenuToggle(elPrimaryNavToggle);\n elPrimaryNavToggle.addEventListener('click', primaryNavToggleHandler);\n }\n\n document.addEventListener('DOMContentLoaded', globalPrimaryNavFixController);\n }\n\n\n function initNavigation() {\n initPrimaryNavFix();\n if (hasEmptyNavigation) return;\n initDocumentListeners();\n initMobileNavigationListeners();\n getIsMobile();\n }\n\n initNavigation();\n\n function initMenuController(gNavLi) {\n var gNavButton = gNavLi.querySelector(jsIdGlobalNavButton);\n var gNavMegaMenu = gNavLi.querySelector(jsIdMegaMenu);\n //short circuit\n if (!gNavButton || !gNavMegaMenu) return;\n\n var aigNavLi = initActivationItem(gNavLi);\n var aigNavButton = initActivationItem(gNavButton);\n var aigNavMegaMenu = initActivationItem(gNavMegaMenu);\n\n var mainMenuController = {\n activateButton: gNavButton,\n activateItems: [aigNav, aigNavLi, aigNavButton],\n isActive: false,\n isSubMenuActive: false,\n isClicked: false,\n sections: [] };\n\n\n mainMenuController.toggle = initToggleActivationItems(mainMenuController);\n mainMenuController.deactivateChildren = deactivateChildren(mainMenuController);\n\n gNavButton.addEventListener('click', initGlobalNavHandler(mainMenuController));\n\n var arrMegaMenuSection = Array.prototype.slice.call(gNavMegaMenu.querySelectorAll(jsIdMegaMenuSection));\n for (var msi = 0; msi < arrMegaMenuSection.length; msi++) {\n var menuSection = arrMegaMenuSection[msi];\n var aiMenuSection = initActivationItem(menuSection);\n\n var arrMegaMenuLi = Array.prototype.slice.call(menuSection.querySelectorAll(jsIdMegaMenuLi));\n for (var mmli = 0; mmli < arrMegaMenuLi.length; mmli++) {\n var mobileSubMenuLi = arrMegaMenuLi[mmli];\n var buttonMobilePlus = mobileSubMenuLi.querySelector(jsIdMegaMenuMobilePlus);\n var aiButtonMobilePlus = initActivationItem(buttonMobilePlus);\n var aiMobileSubMenuLi = initActivationItem(mobileSubMenuLi);\n\n var mobileSectionController = {\n activateButton: buttonMobilePlus,\n activateItems: [aigNavMegaMenu, aiButtonMobilePlus, aiMenuSection, aiMobileSubMenuLi],\n isActive: false };\n\n\n mobileSectionController.toggle = initToggleActivationItems(mobileSectionController, mainMenuController);\n mobileSectionController.deactivate = initMobileSectionDeactivate(mobileSectionController);\n mobileSectionController.activateButton.addEventListener('click', initSubmenuClickHandler(mobileSectionController));\n\n mainMenuController.sections.push(mobileSectionController);\n }\n }\n\n mainMenuControllers.push(mainMenuController);\n }\n\n for (var gli = 0; gli < arrGlobalNavLis.length; gli++) {\n var gNavLi = arrGlobalNavLis[gli];\n initMenuController(gNavLi);\n }\n})();"]}