{"version":3,"sources":["nav-detection.js","navigation-v2.js","navigation-mobile-v2.js"],"names":["navDetection","init","header","document","querySelector","nav","classList","add","addEventListener","window","_navDesktopV2","mainNavEl","navDesktop_isMobile","matchMedia","matches","mainNavBtns","querySelectorAll","mainNavCloseBtns","allButtons","currentMainHoveredBtn","timer","insuranceTabHovered","navOpen","dimmerElement","createElement","setAttribute","body","appendChild","createDimmer","setTimeout","closeNav","event","code","shiftKey","activeElement","closest","contains","id","getElementById","i","length","onEnterPress","onMainNavHover","target","clearTimeout","removeOrAddClass","element","className","forEach","el","remove","parentElement","dataset","product","productClassMap","insurance","utilities","finance","subProductClassMap","home","life","travel","pet","insuranceClassName","subProduct","navClassName","addNavClasses","handleButtonActiveStates","isMainInsuranceBtn","insuranceMidLevelMenu","isOpenMenus","menuToClose","menuToOpen","nextElementSibling","handleInsuranceTabHovered","secondaryMenuToOpen","alreadyOpenSecondaryMenu","toggleSecondaryMenu","button","key","navMobileV2","navMobile_mainNav","navMobile_currentMainClickedBtn","htmlEl","documentElement","navMobile_navIsOpen","navMobile_isMobile","navMobile_mainNavBtns","navMobile_secondLevelBtns","navMobile_backBtns","navMobile_closeBtns","navMobile_mainNavClassName","navMobile_subClassName","navMobile_backToTopLevelBtns","navMobile_insuranceMenu","navMobile_insuranceSecondMenu","navMobile_utilsMenu","navMobile_utilsSecondMenu","navMobile_financeMenu","navMobile_financeSecondMenu","navMobile_carCareMenu","navMobile_carCareSecondMenu","noHeightElArr","prevScrollpos","pageYOffset","tabbableEls","buttonText","productEl","subProductEl","textContent","trim","replace","toLowerCase","buttontext","setAllTabIndexes","elemClassList","test","activeEl","currentScrollPos","preventDefault","tabbable","focus","focusableEl","carCareBtn","closeMobileNav","resetNoHeightClasses","onMainNavClick_mobile","setActiveTabIndexes","onSecondaryLevelClick","backOneMenuLayer","handleTabbingAfterBackPressed","activeMenu","tabIndex","observer","IntersectionObserver","entries","entry","elId","isIntersecting","navUl","addOrRemoveFader","threshold","btnEl","observe","isFromTopMenu","closeButton","activeTabbableEls","elToFocus","innerText","navMobile_openSecondaryMenu","noHeightEl","includes","push","removeNoHeightClasses","activeDiv","midMenu","bottomMenus","toolsMenus","scrollTop","scrollTopAllMenus","pop","menu"],"mappings":"AAAA,IAAAA,aAeA,CACAC,KAdA,WACA,IAAAC,EAAAC,SAAAC,cAAA,UACAC,EAAAH,EAAAE,cAAA,OAEA,MAAA,GAGAF,GACAA,EAAAI,UAAAC,IAAA,6BAGA,GAOAJ,SAAAK,iBAAA,oBAAA,WACAR,aAAAC,MACA,ICtBAQ,OAAAC,cAAA,WAEA,MAAAC,EAAAR,SAAAC,cAAA,iBACA,IAAAO,EAAA,OAEA,IAAAC,GAAAH,OAAAI,WAAA,sBAAAC,QACA,MAAAC,EAAAZ,SAAAa,iBAAA,6FACAC,EAAAd,SAAAa,iBAAA,6CACAE,EAAAf,SAAAa,iBAAA,wBAEA,IAAAG,EAEAC,EADAC,GAAA,EAEAC,GAAA,EAEAnB,SAAAK,iBAAA,oBAAA,YA4LA,WACA,MAAAe,EAAApB,SAAAqB,cAAA,OACAD,EAAAE,aAAA,QAAA,kCACAtB,SAAAuB,KAAAC,YAAAJ,EACA,CA/LAK,EACA,IAEAjB,EAAAH,iBAAA,cAAA,WACAc,GACAO,YAAA,WACAC,GACA,GAAA,IACA,IAGArB,OAAAD,iBAAA,UAAA,WACAC,OAAAI,WAAA,sBAAAC,QACAF,GAAA,GAEAA,GAAA,EACAkB,IAEA,IAEA3B,SAAAuB,KAAAlB,iBAAA,WAAA,SAAAuB,GACA,QAAAA,EAAAC,MAAAD,EAAAE,UACA,OAAA9B,SAAA+B,cAAAC,QAAA,kBAAAb,GAAAQ,GAEA,IAEA3B,SAAAC,cAAA,UAAAI,iBAAA,WAAA,SAAAuB,GACAnB,IACA,QAAAmB,EAAAC,MAAAD,EAAAE,SAMA,QAAAF,EAAAC,MAAAD,EAAAE,UACA9B,SAAA+B,cAAA5B,UAAA8B,SAAA,aACAN,IAPA3B,SAAA+B,cAAAG,KAAAlC,SAAAC,cAAA,iDAAAO,EAAAL,UAAA8B,SAAA,4BAEAjC,SAAA+B,gBAAA/B,SAAAC,cAAA,2GACA0B,IAFAA,IASA,IAEA3B,SAAAmC,eAAA,iBAAA9B,iBAAA,SAAA,WACAsB,GACA,IAGA,IAAA,IAAAS,EAAA,EAAAA,EAAArB,EAAAsB,OAAAD,IACArB,EAAAqB,GAAA/B,iBAAA,YAAA,SAAAuB,GACAU,EAAAV,EACA,IAIA,IAAA,IAAAQ,EAAA,EAAAA,EAAAtB,EAAAuB,OAAAD,IACAtB,EAAAsB,GAAA/B,iBAAA,SAAA,WACAsB,GACA,IAIA,IAAA,IAAAS,EAAA,EAAAA,EAAAxB,EAAAyB,OAAAD,IACAxB,EAAAwB,GAAA/B,iBAAA,cAAA,SAAAuB,GACAnB,IACAQ,EAAAS,YAAA,WACAa,EAAAX,EACA,GAAA,KACA,IAIA,IAAA,IAAAQ,EAAA,EAAAA,EAAAxB,EAAAyB,OAAAD,IACAxB,EAAAwB,GAAA/B,iBAAA,cAAA,SAAAuB,GACAA,EAAAY,OAAArC,UAAA8B,SAAA,oBAAAQ,aAAAxB,EACA,IAIA,SAAAyB,EAAAC,EAAAC,EAAAxC,GACAK,IACAL,EACAuC,EAAAE,SAAA,SAAAC,GACAA,EAAA3C,UAAAC,IAAAwC,EACA,IAEAD,EAAAE,SAAA,SAAAC,GACAA,EAAA3C,UAAA4C,OAAAH,EACA,IAEA,CAGA,SAAAL,EAAAX,GACAnB,IACAT,SAAAC,cAAA,mBAAAE,UAAAC,IAAA,gBACAY,EAAAY,EAAAY,OAKA,WACA,GAAA/B,EAAA,OACA,GAAAU,GAAA,cAAAH,EAAAgC,cAAAC,QAAAC,SAAA1C,EAAAL,UAAA8B,SAAA,qBAAA,OAGA,GAkBA,SAAAjB,GACA,GAAAP,EAAA,OACAD,EAAAoC,UAAA,eAEA,MAAAO,EAAA,CACAC,UAAA,yBACAC,UAAA,6BACAC,QAAA,2BACA,qBAAA,4BAEAC,EAAA,CACA,gBAAA,yBACAC,KAAA,wBACAC,KAAA,wBACAC,OAAA,0BACAC,IAAA,uBACA,mBAAA,6BAEAC,EAAA,qBAEAV,QAAAA,EAAAW,WAAAA,GAAA7C,EAAAgC,cAAAC,QACAM,EAAAM,IAAArD,EAAAL,UAAAC,IAAAwD,GAEA,IAAAE,EAAAX,EAAAD,IAAAK,EAAAM,GACAC,GAAAtD,EAAAL,UAAAC,IAAA0D,EACA,CA7CAC,CAAA/C,GACAG,GAAA,EACAH,EAAAb,UAAA8B,SAAA,mCAAAjB,EAAAb,UAAA8B,SAAA,qCAAA,cAAAjB,EAAAgC,cAAAC,QAAAC,QAKA,OAHAhC,GAAA,EACA8C,EAAAhD,QA+DA,WACA,GAAAP,EAAA,OACA,MAAAwD,EAAA,cAAAjD,EAAAgC,cAAAC,QAAAC,QACAgB,EAAAlE,SAAAC,cAAA,kEACA,GAAAgE,EAAA,CACA,MAAAE,EAAAnE,SAAAa,iBAAA,mCACAsD,EAAA9B,OAAA,GAAAK,EAAAyB,EAAA,oBAAA,GAEAzB,EAAA,CAAAwB,EADAlE,SAAAC,cAAA,8EACA,oBAAA,EACA,KAAA,CACA,MAAAmE,EAAAF,EAAAjE,cAAA,qBACAoE,EAAAH,EAAAjE,cAAA,2BAAAqE,mBACAF,EAAAjE,UAAA4C,OAAA,oBACAsB,EAAAlE,UAAAC,IAAA,mBACA,CACA,CA7EAmE,GAGArD,GAAA,EAGA8C,EAAAhD,GACA,MAAAwD,EAAAxD,EAAAsD,mBAAAA,mBACA,IAAAE,EAAA,OACA,MAAAC,EAAAzE,SAAAa,iBAAA,mCACA4D,EAAApC,OAAA,GAAAK,EAAA+B,EAAA,oBAAA,GACAD,EAAArE,UAAAC,IAAA,mBACA,CAzBAsE,GACA,CAuDA,SAAAV,EAAAW,GACA,GAAAlE,EAAA,OACA,MAAAwD,EAAA,cAAAU,EAAA3B,cAAAC,QAAAC,QACA,GAAAe,GAAAzD,EAAAL,UAAA8B,SAAA,qBAAA,OACA,GAAAjC,SAAAC,cAAA,kFAAAgE,EAAA,OAEAvB,EADA1C,SAAAa,iBAAA,yCACA,0BAAA,GACAK,GAAA+C,EAEAvB,EAAA,CAAA1C,SAAAC,cAAA,+CAAA0E,GAAA,0BAAA,IAEAzD,IAAA+C,GAEAjE,SAAAC,cAAA,qCAAAE,UAAAC,IAAA,0BAEAuE,EAAAxE,UAAAC,IAAA,0BACA,CA2BA,SAAAkC,EAAAV,GACAnB,GACA,UAAAmB,EAAAgD,KAAArC,EAAAX,EACA,CAGA,SAAAD,IACA,GAAAlB,EAAA,OAEAiC,EADA1C,SAAAa,iBAAA,mCACA,oBAAA,GAEA6B,EADA1C,SAAAa,iBAAA,yCACA,0BAAA,GACAb,SAAAC,cAAA,mBAAAE,UAAA4C,OAAA,gBACA5B,GAAA,CACA,CAEA,MAAA,CACAQ,SAAAA,EAEA,CArOA,GCCA,IAAAkD,YAAA,WAEA,IAAAC,EAAA9E,SAAAC,cAAA,iBACA,GAAA6E,GAAA,MAAAA,EAAA,CAIA,IAIAC,EAJAC,EAAAhF,SAAAiF,gBACAC,GAAA,EACAC,GAAA7E,OAAAI,WAAA,sBAAAC,QACAyE,EAAApF,SAAAa,iBAAA,+FAEAwE,EAAArF,SAAAa,iBAAA,iDACAyE,EAAAtF,SAAAa,iBAAA,2BACA0E,EAAAvF,SAAAa,iBAAA,qDACA2E,EAAA,GACAC,EAAA,GACAC,EAAA1F,SAAAa,iBAAA,gDAEA8E,EAAA3F,SAAAC,cAAA,yDACA2F,EAAA5F,SAAAC,cAAA,kEACA4F,EAAA7F,SAAAC,cAAA,yDACA6F,EAAA9F,SAAAC,cAAA,uEACA8F,EAAA/F,SAAAC,cAAA,uDACA+F,EAAAhG,SAAAC,cAAA,qEACAgG,EAAAjG,SAAAC,cAAA,kEACAiG,EAAAlG,SAAAC,cAAA,gFACAkG,EAAA,GACAC,EAAA9F,OAAA+F,YAEAC,EAAAtG,SAAAa,iBAAA,wBACA0F,EAAA,GAGAvG,SAAAa,iBAAA,qBAAAgC,SAAA,SAAA8B,GACA,IACA6B,EACAC,EAFAF,EAAA5B,EAAA+B,YAAAC,OAAAC,QAAA,OAAA,KAAAC,cAKA,iBAAAN,KACAE,EAAA9B,EAAA3C,QAAA,uBAGAuE,EAAA,UADAE,EAAAxD,QAAAY,YAGA2C,EAAA7B,EAAA3C,QAAA,qBAGAuE,EAAA,UADAC,EAAAvD,QAAAC,UAKAyB,EAAA1B,QAAA6D,WAAAP,CACA,IAEAvG,SAAAK,iBAAA,oBAAA,WACA0G,GACA,IAGAzG,OAAAD,iBAAA,UAAA,WAEA,IAAA2G,EADA1G,OAAAI,WAAA,sBAAAC,SAGA,gBAAAsG,KAAAnC,EAAA3E,WACA6G,EAAAlC,EAAA3E,WAEA6G,EAAA,eACA1G,OAAAC,cAAAoB,YAGAwD,GAAA,EACAL,EAAAlC,UAAAoE,EACAhC,EAAA7E,UAAA4C,OAAA,mBACA/C,SAAAa,iBAAA,6BAAAgC,SAAA,SAAAqE,GACAA,EAAA/G,UAAA4C,OAAA,aACA,IACAmC,GAAA,GAEAC,GAAA,EAEA4B,GACA,IAEAzG,OAAAD,iBAAA,UAAA,WACA,GAAA8E,IACAD,EAAA,CACA,IAAAiC,EAAA7G,OAAA+F,YACAD,EAAAe,GAAA7G,OAAA+F,YAAA,GACAvB,EAAA3E,UAAA4C,OAAA,gBAEA+B,EAAA3E,UAAAC,IAAA,gBAEAgG,EAAAe,CAPA,CAQA,IAEAnH,SAAAC,cAAA,UAAAI,iBAAA,WAAA,SAAAuB,GACA,GAAAuD,EACA,GAAA,QAAAvD,EAAAC,MAAAD,EAAAE,UAYA,GAAA,QAAAF,EAAAC,MAAAD,EAAAE,UACA9B,SAAA+B,cAAA5B,UAAA8B,SAAA,aAAAiD,EAAA,CAEAtD,EAAAwF,iBACA,IAAAC,EAAArH,SAAAa,iBAAA,iEACAwG,EAAAA,EAAAhF,OAAA,GAAAiF,OACA,MAlBA,CACA,IAAAC,EAAAzC,EAAAjE,iBAAA,6FACA2G,EAAAxH,SAAAC,cAAA,gDACAD,SAAA+B,gBAAAyF,GAAA,OAAAxH,SAAAC,cAAA,mDAAAiF,GAEAtD,EAAAwF,iBACApH,SAAAC,cAAA,mDAAAqH,SACAtH,SAAA+B,gBAAAwF,EAAAA,EAAAlF,OAAA,KAEAT,EAAAwF,iBACApH,SAAAC,cAAA,uCAAAqH,QAEA,CAQA,IAEAtH,SAAAmC,eAAA,iBAAA9B,iBAAA,SAAA,WACAoH,GACA,IAEA,IAAA,IAAArF,EAAA,EAAAA,EAAAgD,EAAA/C,OAAAD,IACAgD,EAAAhD,GAAA/B,iBAAA,SAAA,SAAAuB,GACAuD,IACAD,GAAA,EACAwC,IACAC,EAAA/F,GACAgG,EAAAhG,GAAA,GACA,IAGA,IAAA,IAAAQ,EAAA,EAAAA,EAAAiD,EAAAhD,OAAAD,IACAiD,EAAAjD,GAAA/B,iBAAA,SAAA,SAAAuB,GACAuD,IACA0C,EAAAjG,GACAgG,EAAAhG,GAAA,GACA,IAGA,IAAA,IAAAQ,EAAA,EAAAA,EAAAmD,EAAAlD,OAAAD,IACAmD,EAAAnD,GAAA/B,iBAAA,SAAA,WACAoH,GACA,IAGA,IAAA,IAAArF,EAAA,EAAAA,EAAAkD,EAAAjD,OAAAD,IACAkD,EAAAlD,GAAA/B,iBAAA,SAAA,SAAAuB,GACAuD,IACA2C,IACAf,IAEAgB,EAAAnG,GACA,IAGA,IAAA,IAAAQ,EAAA,EAAAA,EAAAsD,EAAArD,OAAAD,IACAsD,EAAAtD,GAAA/B,iBAAA,SAAA,WACA8E,IACAnF,SAAAa,iBAAA,6BAAAgC,SAAA,SAAAmF,GACAA,EAAA7H,UAAA8B,SAAA,uCACA+F,EAAA7H,UAAA4C,OAAA,aAEA,IACAgE,IACA/G,SAAAa,iBAAA,yDAAAgC,SAAA,SAAA8B,GACAA,EAAAsD,SAAA,CACA,IACAjI,SAAAC,cAAA,kEAAAgI,SAAA,EACAjI,SAAAC,cAAA,+CAAAqH,QAEA5F,YAAA,WACAyE,EAAAtD,SAAA,SAAAC,GACAA,EAAA3C,UAAAC,IAAA,gBACA,IACA+F,EAAA,EACA,GAAA,KACA,IA8LA,IAAA+B,EAAA,IAAAC,sBAAA,SAAAC,GACAA,EAAAvF,SAAA,SAAAwF,IASA,SAAA1F,GACA,IAAAwC,EAAA,OACA,IAAAmD,EAAA3F,EAAAH,OACA8F,EAAAtG,QAAA,kBAAAiB,QAAAC,QACA,IAAAqF,EAAA5F,EAAA4F,eACAC,EAAAxI,SAAAC,cAAA,4BACA,cAAAqI,EAAAtG,QAAA,kBAAAiB,QAAAC,QACAqF,EACAC,EAAArI,UAAA4C,OAAA,+BAEAyF,EAAArI,UAAAC,IAAA,+BAGAmI,EACAC,EAAArI,UAAA4C,OAAA,8BAEAyF,EAAArI,UAAAC,IAAA,6BAGA,CA3BAqI,CAAAJ,EACA,GACA,GAAA,CAAAK,UAAA,IAEA,CAAA1I,SAAAC,cAAA,uCAAAD,SAAAC,cAAA,iDAAA4C,SAAA,SAAA8F,GACAT,EAAAU,QAAAD,EACA,GArXA,CAkLA,SAAA5B,IACA5B,EACAmB,EAAAzD,SAAA,SAAAF,GACAA,EAAAsF,UAAA,CACA,IAEA3B,EAAAzD,SAAA,SAAAF,GACAA,EAAAsF,SAAA,CACA,GAEA,CAEA,SAAAL,EAAAhG,EAAAiH,GACA,IAAAC,EACAC,EAIA,GAHAzC,EAAAzD,SAAA,SAAAF,GACAA,EAAAsF,UAAA,CACA,IACAY,EACA,QAAA,GACA,IAAA,cAAA9D,EAAA/B,cAAAC,QAAAC,QACA6F,EAAA/I,SAAAa,iBAAA,+NACAiI,EAAA9I,SAAAC,cAAA,gEACA,MACA,IAAA,cAAA8E,EAAA/B,cAAAC,QAAAC,QACA6F,EAAA/I,SAAAa,iBAAA,qGACAiI,EAAA9I,SAAAC,cAAA,gEACA,MACA,IAAA,YAAA8E,EAAA/B,cAAAC,QAAAC,QACA6F,EAAA/I,SAAAa,iBAAA,mGACAiI,EAAA9I,SAAAC,cAAA,8DACA,MACA,IAAA,uBAAA8E,EAAA/B,cAAAC,QAAAC,QACA6F,EAAA/I,SAAAa,iBAAA,8GACAiI,EAAA9I,SAAAC,cAAA,8EAKA8I,EADAnH,EAAAY,OAAArC,UAAA8B,SAAA,mCAAAL,EAAAY,OAAArC,UAAA8B,SAAA,qCAAA,cAAAL,EAAAY,OAAAQ,cAAAC,QAAAC,QACAtB,EAAAY,OAAA8B,mBAAAzD,iBAAA,wJAEAe,EAAAY,OAAA8B,mBAAAzD,iBAAA,wBAGAiI,EADAlH,EAAAY,OAAAR,QAAA,uCACA/B,cAAA,uCAEA8I,EAAAlG,SAAA,SAAAF,GACAA,EAAAsF,SAAA,CACA,IACAa,EAAAb,SAAA,EAEAvG,YAAA,WACAqH,EAAA,GAAAzB,OACA,GAAA,IACA,CAEA,SAAAS,EAAAnG,GACA,IAAAkH,EACAC,EACAC,EACA,QAAA,GACA,IAAA,cAAAjE,EAAA/B,cAAAC,QAAAC,QACA,GAAAtB,EAAAY,OAAArC,UAAA8B,SAAA,yBAAA,CACA8G,EAAA/I,SAAAa,iBAAA,+NACA,IAAAqC,EAAAtB,EAAAY,OAAAyG,UAAApC,cACA,UAAA3D,GAAA,aAAAA,IACAA,GAAA,YAEA8F,EAAAhJ,SAAAC,cAAA,sBAAAiD,EAAA,cACA,MAEA6F,GADAC,EAAAhJ,SAAAC,cAAA,oFAAAsG,EAAA,OACAvE,QAAA,8CAAAnB,iBAAA,wJAEAiI,EAAA9I,SAAAa,iBAAA,qGACA,MACA,IAAA,cAAAkE,EAAA/B,cAAAC,QAAAC,QACA6F,EAAA/I,SAAAa,iBAAA,qGACAiI,EAAA9I,SAAAC,cAAA,mDACA+I,EAAAhJ,SAAAC,cAAA,gDAAAsG,EAAA,MACA,MACA,IAAA,YAAAxB,EAAA/B,cAAAC,QAAAC,QACA6F,EAAA/I,SAAAa,iBAAA,mGACAiI,EAAA9I,SAAAC,cAAA,mDACA+I,EAAAhJ,SAAAC,cAAA,8CAAAsG,EAAA,MACA,MACA,IAAA,uBAAAxB,EAAA/B,cAAAC,QAAAC,QACA6F,EAAA/I,SAAAa,iBAAA,8GACAiI,EAAA9I,SAAAC,cAAA,mDACA+I,EAAAA,EAAAhJ,SAAAC,cAAA,yDAAAsG,EAAA,MAGAuC,EAAAb,SAAA,EACAc,EAAAlG,SAAA,SAAAF,GACAA,EAAAsF,SAAA,CACA,IACAe,EAAA1B,OACA,CAEA,SAAAK,EAAA/F,GACAuD,IACAJ,EAAAnD,EAAAY,OACAwC,EAAA7E,UAAAC,IAAA,mBAqCA,WACA,IAAA+E,EAAA,OAIA,OAHAnF,SAAAa,iBAAA,6BAAAgC,SAAA,SAAAqE,GACAA,EAAA/G,UAAA4C,OAAA,aACA,KACA,GACA,IAAA,cAAAgC,EAAA/B,cAAAC,QAAAC,QACAsC,EAAA,qCACAG,EAAAxF,UAAA4C,OAAA,iBACA6C,EAAAzF,UAAA4C,OAAA,iBACA/C,SAAAC,cAAA,8BAAAE,UAAAC,IAAA,cACA,MACA,IAAA,cAAA2E,EAAA/B,cAAAC,QAAAC,QACAsC,EAAA,qCACAK,EAAA1F,UAAA4C,OAAA,iBACA+C,EAAA3F,UAAA4C,OAAA,iBACA/C,SAAAC,cAAA,8BAAAE,UAAAC,IAAA,cACA,MACA,IAAA,YAAA2E,EAAA/B,cAAAC,QAAAC,QACAsC,EAAA,mCACAO,EAAA5F,UAAA4C,OAAA,iBACAiD,EAAA7F,UAAA4C,OAAA,iBACA/C,SAAAC,cAAA,4BAAAE,UAAAC,IAAA,cACA,MACA,IAAA,uBAAA2E,EAAA/B,cAAAC,QAAAC,QACAsC,EAAA,oCACAS,EAAA9F,UAAA4C,OAAA,iBACAmD,EAAA/F,UAAA4C,OAAA,iBACA/C,SAAAC,cAAA,uCAAAE,UAAAC,IAAA,cACA,MACA,QACA,OAEA0E,EAAAlC,UAAA,wCAAA4C,CACA,CAtEA0D,GACA,CAEA,SAAArB,EAAAjG,GACA,GAAAuD,EAAA,CACA,IAAAR,EAAA/C,EAAAY,OACA+D,EAAA5B,EAAA1B,QAAA6D,WACA,KAAArB,GACAX,EAAA3E,UAAA4C,OAAA0C,GAEAA,EAAAD,EAAA,KAAAe,EA0GA,SAAA3E,GACA,IAAAuD,EAAA,OACA,IAAAR,EAAA/C,EAAAY,OACA2G,EAAAxE,EAAAL,mBACA6E,EAAAhJ,UAAA4C,OAAA,iBACAoD,EAAAiD,SAAAD,IACAhD,EAAAkD,KAAAF,EAEA,CAjHAG,CAAA1H,GACAkD,EAAA3E,UAAAC,IAAAqF,GAEA,IAAA8D,EAAA5E,EAAAL,mBACAiF,GACAA,EAAApJ,UAAAC,IAAA,cAMA,WACA,IAAA+E,EAAA,OACA,IAAAqE,EAAAxJ,SAAAC,cAAA,2CACAwJ,EAAAzJ,SAAAa,iBAAA,8CACA6I,EAAA1J,SAAAa,iBAAA,qCACA2I,EAAAG,UAAA,EACAF,EAAA5G,SAAA,SAAAC,GACAA,EAAA6G,UAAA,CACA,IACAD,EAAA7G,SAAA,SAAAC,GACAA,EAAA6G,UAAA,CACA,GACA,CAfAC,EAfA,CAgBA,CAoDA,SAAA9B,IACA,GAAA3C,GACAgB,EAAA9D,OAAA,EAAA,CACA,IAAA+B,EAAA+B,EAAAA,EAAA9D,OAAA,GACA+B,EAAAjE,UAAA4C,OAAA,cACArB,YAAA,WACA0C,EAAAjE,UAAAC,IAAA,gBACA,GAAA,KACA+F,EAAA0D,KACA,CACA,CA4CA,SAAApC,IACAtC,IACAD,GAAA,EACAlF,SAAAa,iBAAA,6BAAAgC,SAAA,SAAAqE,GACAA,EAAA/G,UAAA4C,OAAA,aACA,IACArB,YAAA,WACAsD,EAAA7E,UAAA4C,OAAA,mBACA2E,IACAX,GACA,GAAA,KACA,CAEA,SAAAW,IACAvC,IACA,CACAQ,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEArD,SAAA,SAAAiH,GACAA,EAAA3J,UAAAC,IAAA,gBACA,IACA+F,EAAAtD,SAAA,SAAAC,GACAA,EAAA3C,UAAAC,IAAA,gBACA,IACA+F,EAAA,GACA,CACA,CA5bA","file":"cms2-nav.min.js","sourcesContent":["var navDetection = (function () {\r\n\r\n\tfunction init() {\r\n\t\tvar header = document.querySelector('header');\r\n\t\tvar nav = header.querySelector('nav');\r\n\r\n\t\tif(typeof(nav) !== 'undefined' && nav !== null){\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tif (header) {\r\n\t\t\t\theader.classList.add('global-header--without-nav');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tinit: init\t\r\n\t };\r\n})();\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\tnavDetection.init();\r\n});\r\n","window._navDesktopV2 = function () {\r\n\r\n const mainNavEl = document.querySelector('.cnf_main-nav');\r\n if (!mainNavEl) return;\r\n\r\n let navDesktop_isMobile = !window.matchMedia('(min-width: 980px)').matches;\r\n const mainNavBtns = document.querySelectorAll('.cnf_main-nav .cnf_main-nav__list-item--top-level button:not(.cnf_main-nav__close-button)');\r\n const mainNavCloseBtns = document.querySelectorAll('.cnf_main-nav .cnf_main-nav__close-button');\r\n const allButtons = document.querySelectorAll('.cnf_main-nav button');\r\n\r\n let currentMainHoveredBtn;\r\n let insuranceTabHovered = false;\r\n let timer;\r\n let navOpen = false;\r\n\r\n document.addEventListener('DOMContentLoaded', function () {\r\n createDimmer();\r\n });\r\n\r\n mainNavEl.addEventListener('mouseleave', function () {\r\n if (!navOpen) return;\r\n setTimeout(function () {\r\n closeNav();\r\n }, 250);\r\n });\r\n\r\n // Set isMobile on browser resize\r\n window.addEventListener('resize', function () {\r\n if (window.matchMedia('(min-width: 980px)').matches) {\r\n navDesktop_isMobile = false;\r\n } else {\r\n navDesktop_isMobile = true;\r\n closeNav(); \r\n }\r\n });\r\n\r\n document.body.addEventListener('keydown', function (event) {\r\n if (event.code === 'Tab' && !event.shiftKey) {\r\n if (document.activeElement.closest('.cnf_main-nav') === null && navOpen) closeNav();\r\n }\r\n });\r\n\r\n document.querySelector('header').addEventListener('keydown', function (event) {\r\n if (navDesktop_isMobile) return;\r\n if (event.code === 'Tab' && !event.shiftKey) {\r\n if (document.activeElement.id === document.querySelector('[data-product=\"car-care-_-selling\"] > button') && !mainNavEl.classList.contains('cnf_nav-product--carcare')) { // jshint ignore:line\r\n closeNav();\r\n } else if (document.activeElement === document.querySelector('[data-product=\"car-care-_-selling\"] .cnf_main-nav__container--bottom-level .cnf_main-nav__close-button')) { // jshint ignore:line\r\n closeNav();\r\n }\r\n } else if (event.code === 'Tab' && event.shiftKey) {\r\n if (document.activeElement.classList.contains('cnf_logo')) {\r\n closeNav();\r\n }\r\n }\r\n });\r\n\r\n document.getElementById('skip-nav-link').addEventListener('click', function () {\r\n closeNav();\r\n });\r\n\r\n // Handles enter press to activate button clicks\r\n for (let i = 0; i < allButtons.length; i++) {\r\n allButtons[i].addEventListener('keypress', function (event) {\r\n onEnterPress(event);\r\n });\r\n }\r\n\r\n // Handles close nav button\r\n for (let i = 0; i < mainNavCloseBtns.length; i++) {\r\n mainNavCloseBtns[i].addEventListener('click', function () {\r\n closeNav();\r\n });\r\n }\r\n\r\n // Handles nav hover\r\n for (let i = 0; i < mainNavBtns.length; i++) {\r\n mainNavBtns[i].addEventListener('mouseenter', function (event) {\r\n if (navDesktop_isMobile) return;\r\n timer = setTimeout(function () {\r\n onMainNavHover(event);\r\n }, 250);\r\n });\r\n }\r\n\r\n // This will clear the hover delay timer when the mouse leaves the insurance sub menu. Stops unwanted animations.\r\n for (let i = 0; i < mainNavBtns.length; i++) {\r\n mainNavBtns[i].addEventListener('mouseleave', function (event) {\r\n if (event.target.classList.contains('cnf_delay-hover')) clearTimeout(timer);\r\n });\r\n }\r\n\r\n // Utility classes\r\n function removeOrAddClass(element, className, add) {\r\n if (navDesktop_isMobile) return;\r\n if (add) {\r\n element.forEach(function (el) {\r\n el.classList.add(className);\r\n });\r\n } else {\r\n element.forEach(function (el) {\r\n el.classList.remove(className);\r\n });\r\n }\r\n }\r\n\r\n // Get the button id and pass open the right secondary menu\r\n function onMainNavHover(event) {\r\n if (navDesktop_isMobile) return;\r\n document.querySelector('.cnf_nav-dimmer').classList.add('cnf_is-shown');\r\n currentMainHoveredBtn = event.target;\r\n toggleSecondaryMenu();\r\n }\r\n\r\n // Handles opening all sub menus, unless it is the insurance tab then this function will pass to handleInsuranceTabHovered();\r\n function toggleSecondaryMenu() {\r\n if (navDesktop_isMobile) return;\r\n if (navOpen && currentMainHoveredBtn.parentElement.dataset.product === 'insurance' && mainNavEl.classList.contains('cnf_nav-insurance')) return;\r\n addNavClasses(currentMainHoveredBtn);\r\n navOpen = true;\r\n if ((currentMainHoveredBtn.classList.contains('cnf_second-level-links--mobile') && currentMainHoveredBtn.classList.contains('cnf_main-nav__options--mid-level')) || currentMainHoveredBtn.parentElement.dataset.product === 'insurance') {\r\n // Insurance tab hovered, handle this separately.\r\n insuranceTabHovered = true;\r\n handleButtonActiveStates(currentMainHoveredBtn);\r\n handleInsuranceTabHovered();\r\n return;\r\n } else {\r\n insuranceTabHovered = false;\r\n }\r\n // Is not insurance tab that has been hovered.\r\n handleButtonActiveStates(currentMainHoveredBtn);\r\n const secondaryMenuToOpen = currentMainHoveredBtn.nextElementSibling.nextElementSibling;\r\n if (!secondaryMenuToOpen) return;\r\n const alreadyOpenSecondaryMenu = document.querySelectorAll('.cnf_main-nav .cnf_nav--is-open');\r\n if (alreadyOpenSecondaryMenu.length > 0) removeOrAddClass(alreadyOpenSecondaryMenu, 'cnf_nav--is-open', false);\r\n secondaryMenuToOpen.classList.add('cnf_nav--is-open');\r\n }\r\n\r\n function addNavClasses(currentMainHoveredBtn) {\r\n if (navDesktop_isMobile) return;\r\n mainNavEl.className = 'cnf_main-nav';\r\n\r\n const productClassMap = {\r\n 'insurance': 'cnf_nav-product--motor',\r\n 'utilities': 'cnf_nav-product--utilities',\r\n 'finance': 'cnf_nav-product--finance',\r\n 'car-care-_-selling': 'cnf_nav-product--carcare',\r\n };\r\n const subProductClassMap = {\r\n 'motor-primary': 'cnf_nav-product--motor',\r\n 'home': 'cnf_nav-product--home',\r\n 'life': 'cnf_nav-product--life',\r\n 'travel': 'cnf_nav-product--travel',\r\n 'pet': 'cnf_nav-product--pet',\r\n 'business-primary': 'cnf_nav-product--business',\r\n };\r\n const insuranceClassName = 'cnf_nav-insurance';\r\n\r\n const { product, subProduct } = currentMainHoveredBtn.parentElement.dataset;\r\n if (subProductClassMap[subProduct]) mainNavEl.classList.add(insuranceClassName);\r\n \r\n let navClassName = productClassMap[product] || subProductClassMap[subProduct];\r\n if (navClassName) mainNavEl.classList.add(navClassName);\r\n }\r\n \r\n\r\n // Handles adding classes to show that a button is active\r\n function handleButtonActiveStates(button) {\r\n if (navDesktop_isMobile) return;\r\n const isMainInsuranceBtn = button.parentElement.dataset.product === 'insurance';\r\n if (isMainInsuranceBtn && mainNavEl.classList.contains('cnf_nav-insurance')) return;\r\n if (document.querySelector('.cnf_main-nav .cnf_main-nav__container--mid-level--ul .cnf_nav--btn-is-active') && isMainInsuranceBtn) return;\r\n const activeButtons = document.querySelectorAll('.cnf_main-nav .cnf_nav--btn-is-active');\r\n removeOrAddClass(activeButtons, 'cnf_nav--btn-is-active', false);\r\n if (insuranceTabHovered && isMainInsuranceBtn) {\r\n // Main insurance button hovered\r\n removeOrAddClass([document.querySelector('[data-sub-product=\"motor-primary\"] > button'), button], 'cnf_nav--btn-is-active', true);\r\n return;\r\n } else if (insuranceTabHovered && !isMainInsuranceBtn) {\r\n // Insurance mid-level option hovered\r\n document.querySelector('[data-product=\"insurance\"] button').classList.add('cnf_nav--btn-is-active');\r\n }\r\n button.classList.add('cnf_nav--btn-is-active');\r\n }\r\n\r\n // Opens the correct menus when the insurance tab is hovered. Insurance has an extra menu so needs to be treated slightly different.\r\n function handleInsuranceTabHovered() {\r\n if (navDesktop_isMobile) return;\r\n const isMainInsuranceBtn = currentMainHoveredBtn.parentElement.dataset.product === 'insurance';\r\n const insuranceMidLevelMenu = document.querySelector('[data-product=\"insurance\"] .cnf_main-nav__container--mid-level');\r\n if (isMainInsuranceBtn) {\r\n const isOpenMenus = document.querySelectorAll('.cnf_main-nav .cnf_nav--is-open');\r\n if (isOpenMenus.length > 0) removeOrAddClass(isOpenMenus, 'cnf_nav--is-open', false);\r\n const motorBottomMenu = document.querySelector('[data-sub-product=\"motor-primary\"] .cnf_main-nav__container--bottom-level');\r\n removeOrAddClass([insuranceMidLevelMenu, motorBottomMenu], 'cnf_nav--is-open', true);\r\n } else {\r\n const menuToClose = insuranceMidLevelMenu.querySelector('.cnf_nav--is-open');\r\n const menuToOpen = insuranceMidLevelMenu.querySelector('.cnf_nav--btn-is-active').nextElementSibling;\r\n menuToClose.classList.remove('cnf_nav--is-open');\r\n menuToOpen.classList.add('cnf_nav--is-open');\r\n }\r\n }\r\n\r\n function createDimmer() {\r\n const dimmerElement = document.createElement('div');\r\n dimmerElement.setAttribute('class', 'cnf_nav-dimmer cnf_is-injected');\r\n document.body.appendChild(dimmerElement);\r\n }\r\n\r\n // Activates hover functions if user is using keyboard and has pressed enter on a menu option.\r\n function onEnterPress(event) {\r\n if (navDesktop_isMobile) return;\r\n if (event.key === 'Enter') onMainNavHover(event);\r\n }\r\n\r\n // Closes nav on close nav button click\r\n function closeNav() {\r\n if (navDesktop_isMobile) return;\r\n const allOpenMenus = document.querySelectorAll('.cnf_main-nav .cnf_nav--is-open');\r\n removeOrAddClass(allOpenMenus, 'cnf_nav--is-open', false);\r\n const allActiveButtons = document.querySelectorAll('.cnf_main-nav .cnf_nav--btn-is-active');\r\n removeOrAddClass(allActiveButtons, 'cnf_nav--btn-is-active', false);\r\n document.querySelector('.cnf_nav-dimmer').classList.remove('cnf_is-shown');\r\n navOpen = false;\r\n }\r\n\r\n return {\r\n closeNav: closeNav\r\n };\r\n}();","// eslint-disable-next-line no-unused-vars\r\nvar navMobileV2 = function () {\r\n\r\n var navMobile_mainNav = document.querySelector('.cnf_main-nav');\r\n if (!navMobile_mainNav || navMobile_mainNav === null || navMobile_mainNav === undefined) {\r\n return;\r\n }\r\n\r\n var htmlEl = document.documentElement;\r\n var navMobile_navIsOpen = false;\r\n var navMobile_isMobile = !window.matchMedia('(min-width: 980px)').matches;\r\n var navMobile_mainNavBtns = document.querySelectorAll('.cnf_main-nav .cnf_main-nav__list-item--top-level > button:not(.cnf_main-nav__close-button)');\r\n var navMobile_currentMainClickedBtn;\r\n var navMobile_secondLevelBtns = document.querySelectorAll('.cnf_main-nav .cnf_second-level-links--mobile');\r\n var navMobile_backBtns = document.querySelectorAll('.cnf_main-nav .cnf_back');\r\n var navMobile_closeBtns = document.querySelectorAll('.cnf_main-nav .cnf_main-nav__close-button--mobile');\r\n var navMobile_mainNavClassName = '';\r\n var navMobile_subClassName = '';\r\n var navMobile_backToTopLevelBtns = document.querySelectorAll('.cnf_main-nav .cnf_back-to-top-level--mobile');\r\n\r\n var navMobile_insuranceMenu = document.querySelector('[data-product=\"insurance\"] .cnf_mobile--nav__mid-menu'); // jshint ignore:line\r\n var navMobile_insuranceSecondMenu = document.querySelector('[data-product=\"insurance\"] .cnf_main-nav__container--mid-level'); // jshint ignore:line\r\n var navMobile_utilsMenu = document.querySelector('[data-product=\"utilities\"] .cnf_mobile--nav__mid-menu'); // jshint ignore:line\r\n var navMobile_utilsSecondMenu = document.querySelector('[data-product=\"utilities\"] > .cnf_main-nav__container--bottom-level'); // jshint ignore:line\r\n var navMobile_financeMenu = document.querySelector('[data-product=\"finance\"] .cnf_mobile--nav__mid-menu'); // jshint ignore:line\r\n var navMobile_financeSecondMenu = document.querySelector('[data-product=\"finance\"] > .cnf_main-nav__container--bottom-level'); // jshint ignore:line\r\n var navMobile_carCareMenu = document.querySelector('[data-product=\"car-care-_-selling\"] .cnf_mobile--nav__mid-menu'); // jshint ignore:line\r\n var navMobile_carCareSecondMenu = document.querySelector('[data-product=\"car-care-_-selling\"] > .cnf_main-nav__container--bottom-level'); // jshint ignore:line\r\n var noHeightElArr = [];\r\n var prevScrollpos = window.pageYOffset;\r\n\r\n var tabbableEls = document.querySelectorAll('[data-no-tab-mobile]');\r\n var buttonText = '';\r\n\r\n // Set all data-buttontext\r\n document.querySelectorAll('[data-buttontext]').forEach(function (button) {\r\n var buttonText = button.textContent.trim().replace(/\\s+/g, '-').toLowerCase();\r\n var productEl;\r\n var subProductEl;\r\n var subProductText = '';\r\n var productText = '';\r\n if (buttonText === 'tools-&-tips') {\r\n subProductEl = button.closest('[data-sub-product]');\r\n if (subProductEl) {\r\n subProductText = subProductEl.dataset.subProduct;\r\n buttonText = 'tools--' + subProductText;\r\n } else {\r\n productEl = button.closest('[data-product]');\r\n if (productEl) {\r\n productText = productEl.dataset.product;\r\n buttonText = 'tools--' + productText;\r\n }\r\n }\r\n }\r\n button.dataset.buttontext = buttonText;\r\n });\r\n\r\n document.addEventListener('DOMContentLoaded', function () {\r\n setAllTabIndexes();\r\n });\r\n\r\n // Set isMobile on browser resize\r\n window.addEventListener('resize', function () {\r\n if (window.matchMedia('(min-width: 980px)').matches) {\r\n var elemClassList;\r\n // TEST IF IT ALREADY HAS NAV-PRODUCT--BLAH THEN USE THE CLASSLIST TO REPOPULATE AFTER RESIZE OTHERWIZE BLITZ ALL BUT MAIN-NAV CLASS\r\n if (/nav-product--/.test(navMobile_mainNav.classList)) {\r\n elemClassList = navMobile_mainNav.classList;\r\n } else {\r\n elemClassList = 'cnf_main-nav';\r\n window._navDesktopV2.closeNav();\r\n }\r\n\r\n navMobile_isMobile = false;\r\n navMobile_mainNav.className = elemClassList;\r\n htmlEl.classList.remove('cnf_nav-is-open');\r\n document.querySelectorAll('.cnf_main-nav .cnf_active').forEach(function (activeEl) {\r\n activeEl.classList.remove('cnf_active');\r\n });\r\n navMobile_navIsOpen = false;\r\n } else {\r\n navMobile_isMobile = true;\r\n }\r\n setAllTabIndexes();\r\n });\r\n\r\n window.addEventListener('scroll', function () {\r\n if (!navMobile_isMobile) { return; }\r\n if (navMobile_navIsOpen) { return; }\r\n var currentScrollPos = window.pageYOffset;\r\n if (prevScrollpos > currentScrollPos || window.pageYOffset < 50) {\r\n navMobile_mainNav.classList.remove('cnf_unpinned');\r\n } else {\r\n navMobile_mainNav.classList.add('cnf_unpinned');\r\n }\r\n prevScrollpos = currentScrollPos;\r\n });\r\n\r\n document.querySelector('header').addEventListener('keydown', function (event) {\r\n if (!navMobile_isMobile) { return; }\r\n if (event.code === 'Tab' && !event.shiftKey) {\r\n var focusableEl = navMobile_mainNav.querySelectorAll('[data-product=\"car-care-_-selling\"] .cnf_main-nav__container--bottom-level [tabindex=\"0\"]'); // jshint ignore:line\r\n var carCareBtn = document.querySelector('[data-product=\"car-care-_-selling\"] > button'); // jshint ignore:line\r\n if (document.activeElement === carCareBtn && document.querySelector('[data-product=\"car-care-_-selling\"].cnf_active') === null && navMobile_navIsOpen) { // jshint ignore:line\r\n // focus is on car care main button and car care menu is not open\r\n event.preventDefault();\r\n document.querySelector('.cnf_active .cnf_main-nav__close-button--mobile').focus();\r\n } else if (document.activeElement === focusableEl[focusableEl.length - 1]) {\r\n // focus is on last link of any option within care care menu\r\n event.preventDefault();\r\n document.querySelector('[data-product=\"insurance\"] > button').focus(); // jshint ignore:line\r\n }\r\n } else if (event.code === 'Tab' && event.shiftKey) {\r\n if (document.activeElement.classList.contains('cnf_logo') && navMobile_navIsOpen) {\r\n // Logo has focus\r\n event.preventDefault();\r\n var tabbable = document.querySelectorAll('.cnf_main-nav [tabindex=\\'0\\']:not(.cnf_main-nav__close-button)');\r\n tabbable[tabbable.length - 1].focus();\r\n }\r\n }\r\n });\r\n\r\n document.getElementById('skip-nav-link').addEventListener('click', function () {\r\n closeMobileNav();\r\n });\r\n\r\n for (let i = 0; i < navMobile_mainNavBtns.length; i++) {\r\n navMobile_mainNavBtns[i].addEventListener('click', function (event) { // jshint ignore:line\r\n if (!navMobile_isMobile) { return; }\r\n navMobile_navIsOpen = true;\r\n resetNoHeightClasses();\r\n onMainNavClick_mobile(event);\r\n setActiveTabIndexes(event, true);\r\n });\r\n }\r\n\r\n for (let i = 0; i < navMobile_secondLevelBtns.length; i++) {\r\n navMobile_secondLevelBtns[i].addEventListener('click', function (event) { // jshint ignore:line\r\n if (!navMobile_isMobile) { return; }\r\n onSecondaryLevelClick(event);\r\n setActiveTabIndexes(event, false);\r\n });\r\n }\r\n\r\n for (let i = 0; i < navMobile_closeBtns.length; i++) {\r\n navMobile_closeBtns[i].addEventListener('click', function () { // jshint ignore:line\r\n closeMobileNav();\r\n });\r\n }\r\n\r\n for (let i = 0; i < navMobile_backBtns.length; i++) {\r\n navMobile_backBtns[i].addEventListener('click', function (event) { // jshint ignore:line\r\n if (!navMobile_isMobile) { return; }\r\n backOneMenuLayer();\r\n setAllTabIndexes();\r\n // set tabIndex = 0 on the menu that is left open\r\n handleTabbingAfterBackPressed(event);\r\n });\r\n }\r\n\r\n for (let i = 0; i < navMobile_backToTopLevelBtns.length; i++) {\r\n navMobile_backToTopLevelBtns[i].addEventListener('click', function () { // jshint ignore:line\r\n if (!navMobile_isMobile) { return; }\r\n document.querySelectorAll('.cnf_main-nav .cnf_active').forEach(function (activeMenu) {\r\n if (!activeMenu.classList.contains('cnf_main-nav__list-item--top-level')) {\r\n activeMenu.classList.remove('cnf_active');\r\n }\r\n });\r\n setAllTabIndexes();\r\n document.querySelectorAll('.cnf_main-nav__container--mid-level--ul > li > button').forEach(function (button) {\r\n button.tabIndex = 0;\r\n });\r\n document.querySelector('[data-product=\"insurance\"] .cnf_main-nav__close-button--mobile').tabIndex = 0; // jshint ignore:line\r\n document.querySelector('[data-sub-product=\"motor-primary\"] > button').focus(); // jshint ignore:line\r\n // add no-height classes back\r\n setTimeout(function () {\r\n noHeightElArr.forEach(function (el) {\r\n el.classList.add('cnf_no-height');\r\n });\r\n noHeightElArr = [];\r\n }, 251);\r\n });\r\n }\r\n\r\n function setAllTabIndexes() {\r\n if (navMobile_isMobile) {\r\n tabbableEls.forEach(function (element) {\r\n element.tabIndex = -1;\r\n });\r\n } else {\r\n tabbableEls.forEach(function (element) {\r\n element.tabIndex = 0;\r\n });\r\n }\r\n }\r\n\r\n function setActiveTabIndexes(event, isFromTopMenu) {\r\n var closeButton;\r\n var activeTabbableEls;\r\n tabbableEls.forEach(function (element) {\r\n element.tabIndex = -1;\r\n });\r\n if (isFromTopMenu) {\r\n switch (true) {\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'insurance':\r\n activeTabbableEls = document.querySelectorAll('[data-product=\"insurance\"] .cnf_main-nav__container--mid-level [data-no-tab-mobile]:not(.cnf_main-nav__container--bottom-level [data-no-tab-mobile]:not(.cnf_main-nav__container--mid-level--li-close [data-no-tab-mobile])'); // jshint ignore:line\r\n closeButton = document.querySelector('[data-product=\"insurance\"] .cnf_mobile--nav__mid-menu button'); // jshint ignore:line\r\n break;\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'utilities':\r\n activeTabbableEls = document.querySelectorAll('[data-product=\"utilities\"] .cnf_main-nav__container--bottom-level .cnf_second-level-links--mobile'); // jshint ignore:line\r\n closeButton = document.querySelector('[data-product=\"utilities\"] .cnf_mobile--nav__mid-menu button'); // jshint ignore:line\r\n break;\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'finance':\r\n activeTabbableEls = document.querySelectorAll('[data-product=\"finance\"] .cnf_main-nav__container--bottom-level .cnf_second-level-links--mobile'); // jshint ignore:line\r\n closeButton = document.querySelector('[data-product=\"finance\"] .cnf_mobile--nav__mid-menu button'); // jshint ignore:line\r\n break;\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'car-care-_-selling':\r\n activeTabbableEls = document.querySelectorAll('[data-product=\"car-care-_-selling\"] .cnf_main-nav__container--bottom-level .cnf_second-level-links--mobile'); // jshint ignore:line\r\n closeButton = document.querySelector('[data-product=\"car-care-_-selling\"] .cnf_mobile--nav__mid-menu button'); // jshint ignore:line\r\n break;\r\n }\r\n } else {\r\n if ((event.target.classList.contains('cnf_second-level-links--mobile') && event.target.classList.contains('cnf_main-nav__options--mid-level')) || event.target.parentElement.dataset.product === 'insurance') {\r\n activeTabbableEls = event.target.nextElementSibling.querySelectorAll('[data-no-tab-mobile]:not(.cnf_main-nav__options--bottom-level > div [data-no-tab-mobile]):not(.cnf_main-nav__articles-container [data-no-tab-mobile]');\r\n } else {\r\n activeTabbableEls = event.target.nextElementSibling.querySelectorAll('[data-no-tab-mobile]');\r\n }\r\n var parentLi = event.target.closest('.cnf_main-nav__list-item--top-level');\r\n closeButton = parentLi.querySelector('.cnf_main-nav__close-button--mobile');\r\n }\r\n activeTabbableEls.forEach(function (element) {\r\n element.tabIndex = 0;\r\n });\r\n closeButton.tabIndex = 0;\r\n // Focus the right button\r\n setTimeout(function () {\r\n activeTabbableEls[0].focus();\r\n }, 251);\r\n }\r\n\r\n function handleTabbingAfterBackPressed(event) {\r\n var closeButton;\r\n var activeTabbableEls;\r\n var elToFocus;\r\n switch (true) {\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'insurance':\r\n if (event.target.classList.contains('cnf_back-to-insurance')) {\r\n activeTabbableEls = document.querySelectorAll('[data-product=\"insurance\"] .cnf_main-nav__container--mid-level [data-no-tab-mobile]:not(.cnf_main-nav__container--bottom-level [data-no-tab-mobile]:not(.cnf_main-nav__container--mid-level--li-close [data-no-tab-mobile])'); // jshint ignore:line\r\n var product = event.target.innerText.toLowerCase();\r\n if (product === 'motor' || product === 'business') {\r\n product = product + '-primary';\r\n }\r\n elToFocus = document.querySelector('[data-sub-product=\"' + product + '\"] > button'); // jshint ignore:line\r\n } else {\r\n elToFocus = document.querySelector('[data-product=\"insurance\"] .cnf_main-nav__container--mid-level [data-buttontext=\"' + buttonText + '\"]'); // jshint ignore:line\r\n activeTabbableEls = elToFocus.closest('.cnf_main-nav__container--bottom-level--ul').querySelectorAll('[data-no-tab-mobile]:not(.cnf_main-nav__options--bottom-level > div [data-no-tab-mobile]):not(.cnf_main-nav__articles-container [data-no-tab-mobile]');\r\n }\r\n closeButton = document.querySelectorAll('[data-product=\"insurance\"] .cnf_main-nav__container--bottom-level .cnf_second-level-links--mobile'); // jshint ignore:line\r\n break;\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'utilities':\r\n activeTabbableEls = document.querySelectorAll('[data-product=\"utilities\"] .cnf_main-nav__container--bottom-level .cnf_second-level-links--mobile'); // jshint ignore:line\r\n closeButton = document.querySelector('.cnf_active .cnf_main-nav__close-button--mobile');\r\n elToFocus = document.querySelector('[data-product=\"utilities\"] [data-buttontext=\"' + buttonText + '\"]'); // jshint ignore:line\r\n break;\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'finance':\r\n activeTabbableEls = document.querySelectorAll('[data-product=\"finance\"] .cnf_main-nav__container--bottom-level .cnf_second-level-links--mobile'); // jshint ignore:line\r\n closeButton = document.querySelector('.cnf_active .cnf_main-nav__close-button--mobile');\r\n elToFocus = document.querySelector('[data-product=\"finance\"] [data-buttontext=\"' + buttonText + '\"]'); // jshint ignore:line\r\n break;\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'car-care-_-selling':\r\n activeTabbableEls = document.querySelectorAll('[data-product=\"car-care-_-selling\"] .cnf_main-nav__container--bottom-level .cnf_second-level-links--mobile'); // jshint ignore:line\r\n closeButton = document.querySelector('.cnf_active .cnf_main-nav__close-button--mobile');\r\n elToFocus = elToFocus = document.querySelector('[data-product=\"car-care-_-selling\"] [data-buttontext=\"' + buttonText + '\"]'); // jshint ignore:line\r\n break;\r\n }\r\n closeButton.tabIndex = 0;\r\n activeTabbableEls.forEach(function (element) {\r\n element.tabIndex = 0;\r\n });\r\n elToFocus.focus();\r\n }\r\n\r\n function onMainNavClick_mobile(event) {\r\n if (!navMobile_isMobile) { return; }\r\n navMobile_currentMainClickedBtn = event.target;\r\n htmlEl.classList.add('cnf_nav-is-open');\r\n navMobile_openSecondaryMenu();\r\n }\r\n\r\n function onSecondaryLevelClick(event) {\r\n if (!navMobile_isMobile) { return; }\r\n var button = event.target;\r\n buttonText = button.dataset.buttontext;\r\n if (navMobile_subClassName !== '') {\r\n navMobile_mainNav.classList.remove(navMobile_subClassName);\r\n }\r\n navMobile_subClassName = navMobile_mainNavClassName + '--' + buttonText;\r\n removeNoHeightClasses(event);\r\n navMobile_mainNav.classList.add(navMobile_subClassName);\r\n\r\n var activeDiv = button.nextElementSibling;\r\n if (activeDiv) {\r\n activeDiv.classList.add('cnf_active');\r\n }\r\n\r\n scrollTopAllMenus();\r\n }\r\n\r\n function scrollTopAllMenus() {\r\n if (!navMobile_isMobile) { return; }\r\n var midMenu = document.querySelector('.cnf_main-nav__container--mid-level--ul');\r\n var bottomMenus = document.querySelectorAll('.cnf_main-nav__container--bottom-level--ul');\r\n var toolsMenus = document.querySelectorAll('.cnf_main-nav__articles-container');\r\n midMenu.scrollTop = 0;\r\n bottomMenus.forEach(function (el) {\r\n el.scrollTop = 0;\r\n });\r\n toolsMenus.forEach(function (el) {\r\n el.scrollTop = 0;\r\n });\r\n }\r\n\r\n function navMobile_openSecondaryMenu() {\r\n if (!navMobile_isMobile) { return; }\r\n document.querySelectorAll('.cnf_main-nav .cnf_active').forEach(function (activeEl) {\r\n activeEl.classList.remove('cnf_active');\r\n });\r\n switch (true) {\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'insurance':\r\n navMobile_mainNavClassName = 'cnf_nav--is-open-mobile--insurance';\r\n navMobile_insuranceMenu.classList.remove('cnf_no-height');\r\n navMobile_insuranceSecondMenu.classList.remove('cnf_no-height');\r\n document.querySelector('[data-product=\"insurance\"]').classList.add('cnf_active'); // jshint ignore:line\r\n break;\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'utilities':\r\n navMobile_mainNavClassName = 'cnf_nav--is-open-mobile--utilities';\r\n navMobile_utilsMenu.classList.remove('cnf_no-height');\r\n navMobile_utilsSecondMenu.classList.remove('cnf_no-height');\r\n document.querySelector('[data-product=\"utilities\"]').classList.add('cnf_active'); // jshint ignore:line\r\n break;\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'finance':\r\n navMobile_mainNavClassName = 'cnf_nav--is-open-mobile--finance';\r\n navMobile_financeMenu.classList.remove('cnf_no-height');\r\n navMobile_financeSecondMenu.classList.remove('cnf_no-height');\r\n document.querySelector('[data-product=\"finance\"]').classList.add('cnf_active'); // jshint ignore:line\r\n break;\r\n case navMobile_currentMainClickedBtn.parentElement.dataset.product === 'car-care-_-selling':\r\n navMobile_mainNavClassName = 'cnf_nav--is-open-mobile--car-care';\r\n navMobile_carCareMenu.classList.remove('cnf_no-height');\r\n navMobile_carCareSecondMenu.classList.remove('cnf_no-height');\r\n document.querySelector('[data-product=\"car-care-_-selling\"]').classList.add('cnf_active'); // jshint ignore:line\r\n break;\r\n default:\r\n return;\r\n }\r\n navMobile_mainNav.className = 'cnf_main-nav cnf_nav--is-open-mobile ' + navMobile_mainNavClassName;\r\n }\r\n\r\n function backOneMenuLayer() {\r\n if (!navMobile_isMobile) { return; }\r\n if (noHeightElArr.length > 0) {\r\n var menuToClose = noHeightElArr[noHeightElArr.length - 1];\r\n menuToClose.classList.remove('cnf_active');\r\n setTimeout(function () {\r\n menuToClose.classList.add('cnf_no-height');\r\n }, 251);\r\n noHeightElArr.pop();\r\n }\r\n }\r\n\r\n // Observer to add faders to mobile menu\r\n var observer = new IntersectionObserver(function (entries) {\r\n entries.forEach(function (entry) {\r\n addOrRemoveFader(entry);\r\n });\r\n }, { threshold: 1 });\r\n\r\n [document.querySelector('[data-product=\"insurance\"] > button'), document.querySelector('[data-product=\"car-care-_-selling\"] > button')].forEach(function (btnEl) { // jshint ignore:line\r\n observer.observe(btnEl);\r\n });\r\n\r\n function addOrRemoveFader(element) {\r\n if (!navMobile_isMobile) { return; }\r\n var elId = element.target;\r\n elId.closest('[data-product]').dataset.product === 'insurance'; // jshint ignore:line\r\n var isIntersecting = element.isIntersecting;\r\n var navUl = document.querySelector('.cnf_main-nav__container');\r\n if (elId.closest('[data-product]').dataset.product === 'insurance') { // jshint ignore:line\r\n if (isIntersecting) {\r\n navUl.classList.remove('cnf_first-option-off-screen');\r\n } else {\r\n navUl.classList.add('cnf_first-option-off-screen');\r\n }\r\n } else {\r\n if (isIntersecting) {\r\n navUl.classList.remove('cnf_last-option-off-screen');\r\n } else {\r\n navUl.classList.add('cnf_last-option-off-screen');\r\n }\r\n }\r\n }\r\n\r\n function removeNoHeightClasses(event) {\r\n if (!navMobile_isMobile) { return; }\r\n var button = event.target;\r\n var noHeightEl = button.nextElementSibling;\r\n noHeightEl.classList.remove('cnf_no-height');\r\n if (!noHeightElArr.includes(noHeightEl)) {\r\n noHeightElArr.push(noHeightEl);\r\n }\r\n }\r\n\r\n function closeMobileNav() {\r\n if (!navMobile_isMobile) { return; }\r\n navMobile_navIsOpen = false;\r\n document.querySelectorAll('.cnf_main-nav .cnf_active').forEach(function (activeEl) {\r\n activeEl.classList.remove('cnf_active');\r\n });\r\n setTimeout(function () {\r\n htmlEl.classList.remove('cnf_nav-is-open');\r\n resetNoHeightClasses();\r\n setAllTabIndexes();\r\n }, 251);\r\n }\r\n\r\n function resetNoHeightClasses() {\r\n if (!navMobile_isMobile) { return; }\r\n var menus = [\r\n navMobile_insuranceMenu,\r\n navMobile_insuranceSecondMenu,\r\n navMobile_utilsMenu,\r\n navMobile_utilsSecondMenu,\r\n navMobile_financeMenu,\r\n navMobile_financeSecondMenu,\r\n navMobile_carCareMenu,\r\n navMobile_carCareSecondMenu\r\n ];\r\n menus.forEach(function (menu) {\r\n menu.classList.add('cnf_no-height');\r\n });\r\n noHeightElArr.forEach(function (el) {\r\n el.classList.add('cnf_no-height');\r\n });\r\n noHeightElArr = [];\r\n }\r\n}();"]}