{"version":3,"sources":["blocks/o-masthead.js"],"names":["define","utility","oMastheadFn","settings","closeMenu","FRAMEWORK","locale","oMasthead","closeText","loadingText","animationSpeed","busy","init","wholePageElm","elm","closest","menuId","makeId","menuLinkHtml","menuText","classList","add","currentBreakpoint","current","mastheadElm","querySelector","logoElm","navContainerElm","pageWrapperElm","wholeNavElm","navLinkElm","isNode","navLinkHidden","remove","navElm","getAttribute","skipLinksElm","prepend","htmlStringToElement","append","orphanPrimaryNavElm","navSectionHeadingLinks","querySelectorAll","navSubSections","navBasicLinks","processSkipLink","topBarElm","countryLinkElm","processOtherSkipLinks","extraContentAreaElm","getBreakpoint","windowWidth","window","changeInProgress","wrap","insertAdjacentElement","setupLink","loggedInLinkElm","narrowMenu","sizeNavElements","positionNav","loginElm","loggedInElm","searchLinkElm","searchElm","setupCountryLink","buildPrimaryNav","ariaHidden","displayType","element","fadeOnly","instantHideShow","style","opacity","hide","validHref","urlAnchorRegExp","loginLinkHidden","linkName","queryString","loggedInLinkName","removeAttribute","loginLinkUrl","loginLinkElm","searchInputElm","document","searchLinkHidden","parentNode","insertBefore","loggedInLinkHidden","allSkipLinks","forEach","linkElm","scrollTargetHref","scrollTarget","getElementById","searchLinkUrl","scrollTo","offset","matches","setAttribute","setupSiteSwitcher","siteSwitcherLink","siteSwitcherUrl","e","preventDefault","siteSwitcherContent","top","validSiteSwitcherHref","updateSiteSwitcherText","test","toggleSiteSwitcher","hasSiteSwitcher","buttonElm","siteSwitcherContentInner","children","setAttributes","role","aria-controls","siteSwitcherTabbing","replace","aria-expanded","close","siteSwitcherOpen","timings","t200ms","addEventListener","slideToggle","contains","variant","complete","fade","setTimeout","t300ms","callback","selectedOption","target","disabled","siteName","allLinksInSiteSwitcher","shiftKey","innerHTML","switcherInitial","getVisibleLinks","switcherSelection","allNonDisabledLinks","key","focus","visibleLinkElm","length","allLinks","isVisible","currentLinkElm","visibleLinks","bindEvents","timeoutFn","newBreakpoint","smallTag","resetPosition","targetElm","isButton","newWindowWidth","resizeRedraw","wait","debounce","listener","body","tagName","match","onResize","reDraw","linkHref","onKeydown","areaElm","test2","tempAreaElm","setFocusFunc","tempAreaPos","cloneNode","contentHref","countryLinkUrl","requestLoadInto","status","tempAreaHeight","windowHeight","innerHeight","windowPos","landingPageLinkTop","buildPrimaryNavBasic","sectionAllLinkElm","currentSectionArea","sectionTitle","sectionHeadingElm","textContent","selectedSectionClass","countryElm","open","newNavElm","subSectionId","subSectionLinkElm","subSectionContentElm","wrapInner","currentSubSectionElm","offsetHeight","setupCloseButton","sectionId","thisLinkElm","adjustNavPositions","section","allColumns","columnContainer","basicLink","push","buttonCloseFunc","closeButtonBottom","buttonHtml","checkSection","currentSectionUrl","testLinkElm","testLinkUrl","sectionOpen","checkAllLinks","sameSection","transitionBetweenMenus","test1","vars","allNavSectionDescriptions","insertAdjacentHTML","closeButtonTop","openSection","currentHeight","animationDirection","transitionSection","loggedInLinkUrl","minHeight","convertToPx","newHeight","openPart2","thisAreaElm","display","customStartHeight","removeProperty","currLink","navigationInteval","closeAll","closeOverlay","openSectionPart2","waitForFade","overlapMargin","alignDescriptions","customEndHeight","closeSearchLoginLoggedIn","sectionElm","linkSelector","openLinkElm","openAreaElm","speed","accordionSubSections","sectionLinkElm","sectionContentElm","item","clearInterval","animationLoops","sectionOffset","Number","repositionNavigation","windowOffset","newWindowOffset","newAnimationLoops","closeSections","hasHeaderLink","el","event","visibleNavLinks","currentIndex","allHeaderLinks","prevLinkElm","bodyLinkElm","visibleMenuLinks","slice","lastHeaderLinkElm","scrollY","parseInt","keydownHeaderLink","indexOf","keydownNotBodyLink","call","filter","tabbableLink","tabNowShowing","listItemElm","tabsShowing","breakpoint","visibleDescriptions","end","rows","descriptionElm","i","descriptionsInRow","rowLoop","rowElm","loop","thisRowElm","fitNavigation","menuOpen","allClasses","loginOpen","maxMenuHeight","positionNavPart2","itemElm","positionNavPart3","initInstance","start","mediumTag","Math","ceil","findTallestDescription","removeClass"],"mappings":"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","file":"blocks/o-masthead.js","sourcesContent":["/* eslint-disable max-lines */\r\n// eslint-disable-next-line max-lines-per-function\r\ndefine( [ 'utility' ], function run( utility ) {\r\n\t'use strict';\r\n\r\n\tvar oMastheadFn = {\r\n\r\n\t\tsettings : {\r\n\t\t\tcloseMenu : FRAMEWORK.locale.settings.oMasthead.closeMenu,\r\n\t\t\tcloseText : FRAMEWORK.locale.settings.oMasthead.closeText,\r\n\t\t\tloadingText : FRAMEWORK.locale.settings.oMasthead.loadingText,\r\n\t\t\tanimationSpeed : FRAMEWORK.timings.current.t350ms,\r\n\t\t\tbusy : false,\r\n\t\t},\r\n\r\n\t\t// eslint-disable-next-line complexity\r\n\t\tinit : function( elm ) {\r\n\t\t\t// Get the wrapping div for the page.\r\n\t\t\tvar wholePageElm = elm.closest( '.l-whole-page' ),\r\n\t\t\t\tmenuId = utility.makeId( 'nav' ),\r\n\t\t\t\tmenuLinkHtml = '
  • ' + FRAMEWORK.locale.settings.oMasthead.menuText + '
  • ',\r\n\t\t\t\tskipLinksElm;\r\n\r\n\t\t\t// Check if the masthead has already been setup. If so do nothing more.\r\n\t\t\tif ( !wholePageElm.classList.contains( 'js-o-masthead' ) ) {\r\n\t\t\t\t// Add class to page so that setup is not run again.\r\n\t\t\t\twholePageElm.classList.add( 'js-o-masthead' );\r\n\r\n\t\t\t\t// Store all common element searches as settings for quick reuse\r\n\t\t\t\telm.oMasthead = {\r\n\t\t\t\t\tsettings : {\r\n\t\t\t\t\t\tcurrentBreakpoint : null,\r\n\t\t\t\t\t\tcurrent : null,\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t\telm.oMasthead.settings.wholePageElm = wholePageElm;\r\n\t\t\t\telm.oMasthead.settings.mastheadElm = elm.oMasthead.settings.wholePageElm.querySelector( '.o-masthead' );\r\n\t\t\t\telm.oMasthead.settings.logoElm = elm.oMasthead.settings.wholePageElm.querySelector( '.o-masthead-logo' );\r\n\t\t\t\telm.oMasthead.settings.navContainerElm = elm.oMasthead.settings.wholePageElm.querySelector( '.o-masthead__navigation-container' );\r\n\t\t\t\telm.oMasthead.settings.pageWrapperElm = elm.oMasthead.settings.wholePageElm.querySelector( '.l-page-wrapper' );\r\n\t\t\t\telm.oMasthead.settings.wholeNavElm = elm.oMasthead.settings.wholePageElm.querySelector( '.o-masthead-navigation' );\r\n\t\t\t\telm.oMasthead.settings.navLinkElm = elm.oMasthead.settings.wholePageElm.querySelector( '.o-masthead__menu-link a' );\r\n\t\t\t\tif ( utility.isNode( elm.oMasthead.settings.navLinkElm ) ) {\r\n\t\t\t\t\telm.oMasthead.settings.navLinkHidden = elm.oMasthead.settings.navLinkElm.querySelector( '.u-hidden--visually' );\r\n\t\t\t\t\tif ( elm.oMasthead.settings.navLinkHidden ) {\r\n\t\t\t\t\t\telm.oMasthead.settings.navLinkHidden.remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telm.oMasthead.settings.navElm = elm.oMasthead.settings.wholePageElm.querySelector( elm.oMasthead.settings.navLinkElm.getAttribute( 'href' ) );\r\n\t\t\t\t} else if ( elm.oMasthead.settings.wholeNavElm ) {\r\n\t\t\t\t\tskipLinksElm = elm.oMasthead.settings.mastheadElm.querySelector( '.o-masthead__skip-links' );\r\n\t\t\t\t\tif ( skipLinksElm ) {\r\n\t\t\t\t\t\tskipLinksElm.prepend( utility.htmlStringToElement( menuLinkHtml ) );\r\n\t\t\t\t\t\telm.oMasthead.settings.navLinkElm = elm.oMasthead.settings.wholePageElm.querySelector( '.o-masthead__menu-link a' );\r\n\t\t\t\t\t\t// Create a dummy primary nav element and append it to the masthead navigation area\r\n\t\t\t\t\t\telm.oMasthead.settings.navElm = utility.htmlStringToElement( '
    ' );\r\n\t\t\t\t\t\telm.oMasthead.settings.wholeNavElm.querySelector( '.l-content-container' ).append( elm.oMasthead.settings.navElm );\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Do nothing\r\n\t\t\t\t}\r\n\t\t\t\telm.oMasthead.settings.orphanPrimaryNavElm = elm.oMasthead.settings.wholePageElm.querySelector( '.m-primary-navigation' );\r\n\t\t\t\telm.oMasthead.settings.navSectionHeadingLinks = elm.oMasthead.settings.wholePageElm.querySelectorAll( '.m-primary-navigation__section-heading a' );\r\n\t\t\t\telm.oMasthead.settings.navSubSections = [];\r\n\t\t\t\telm.oMasthead.settings.navBasicLinks = elm.oMasthead.settings.wholePageElm.querySelectorAll( '.m-primary-navigation__link-list a' );\r\n\r\n\t\t\t\toMastheadFn.processSkipLink( elm, '.o-masthead__login-link a', 'login' );\r\n\t\t\t\toMastheadFn.processSkipLink( elm, '.o-masthead__logged-in-link a', 'loggedIn' );\r\n\t\t\t\toMastheadFn.processSkipLink( elm, '.o-masthead__search-link a', 'search' );\r\n\r\n\t\t\t\telm.oMasthead.settings.topBarElm = elm.oMasthead.settings.wholePageElm.querySelector( '.m-site-country-selection' );\r\n\t\t\t\tif ( utility.isNode( elm.oMasthead.settings.topBarElm ) ) {\r\n\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--has-top-bar' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\telm.oMasthead.settings.countryLinkElm = elm.oMasthead.settings.wholePageElm.querySelector( '.m-site-country-selection__country a' );\r\n\t\t\t\telm.oMasthead.settings.countryLinkUrl = '';\r\n\r\n\t\t\t\telm.oMasthead.settings.allSkipLinks = elm.oMasthead.settings.wholePageElm.querySelectorAll( '.o-masthead-main-content a, .o-masthead__skip-links a' );\r\n\t\t\t\toMastheadFn.processOtherSkipLinks( elm );\r\n\t\t\t\telm.oMasthead.settings.extraContentAreaElm = elm.oMasthead.settings.wholePageElm.querySelector( '.o-masthead__extra-content' );\r\n\t\t\t\tif ( utility.isNode( elm.oMasthead.settings.extraContentAreaElm ) ) {\r\n\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--has-extra-content' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\telm.oMasthead.settings.currentBreakpoint = utility.getBreakpoint( elm );\r\n\t\t\t\telm.oMasthead.settings.windowWidth = window.innerWidth;\r\n\r\n\t\t\t\telm.oMasthead.settings.changeInProgress = false;\r\n\r\n\r\n\t\t\t\t// If no navigation area has been included because there is no login, search or menu then add one to the page before the footer\r\n\t\t\t\tif ( utility.isNode( elm.oMasthead.settings.wholeNavElm ) ) {\r\n\t\t\t\t\telm.oMasthead.settings.wholeNavElm.classList.add( 't-accent-light' );\r\n\t\t\t\t\telm.oMasthead.settings.wholeNavElm.classList.add( 't-accent-light--1' );\r\n\t\t\t\t} else {\r\n\t\t\t\t\telm.oMasthead.settings.wholeNavElm = utility.htmlStringToElement( '
    ' );\r\n\t\t\t\t\telm.oMasthead.settings.wholePageElm.querySelector( '.m-footer' ).insertAdjacentElement( 'beforebegin', elm.oMasthead.settings.wholeNavElm );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Move Navigation to just below the masthead to maintain content ordering for when CSS is off but JavaScript is on\r\n\t\t\t\telm.oMasthead.settings.pageWrapperElm.prepend( elm.oMasthead.settings.wholeNavElm );\r\n\t\t\t\tif ( utility.isNode( document.querySelector( '.framework-wrapper' ) ) ) {\r\n\t\t\t\t\tutility.wrap( elm.oMasthead.settings.wholeNavElm, utility.htmlStringToElement( '
    ' ) );\r\n\t\t\t\t}\r\n\r\n\t\t\t\telm.oMasthead.settings.narrowMenu = false;\r\n\r\n\t\t\t\toMastheadFn.setupSiteSwitcher( elm );\r\n\r\n\t\t\t\t// Run setup on the main links that can be in the header\r\n\t\t\t\toMastheadFn.setupLink( elm, elm.oMasthead.settings.navLinkElm, elm.oMasthead.settings.navElm );\r\n\t\t\t\toMastheadFn.setupLink( elm, elm.oMasthead.settings.loginLinkElm, elm.oMasthead.settings.loginElm );\r\n\t\t\t\toMastheadFn.setupLink( elm, elm.oMasthead.settings.loggedInLinkElm, elm.oMasthead.settings.loggedInElm );\r\n\t\t\t\toMastheadFn.setupLink( elm, elm.oMasthead.settings.searchLinkElm, elm.oMasthead.settings.searchElm );\r\n\t\t\t\toMastheadFn.setupCountryLink( elm );\r\n\r\n\t\t\t\t// Build up the primary navigation system\r\n\t\t\t\toMastheadFn.buildPrimaryNav( elm );\r\n\r\n\t\t\t\t// Correctly size and position elements with in the header area\r\n\t\t\t\toMastheadFn.sizeNavElements( elm, elm.oMasthead.settings.currentBreakpoint );\r\n\t\t\t\toMastheadFn.positionNav( elm, elm.oMasthead.settings.currentBreakpoint );\r\n\r\n\t\t\t\tif ( utility.isNode( elm.oMasthead.settings.loggedInElm ) ) {\r\n\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'has-logged-in' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\toMastheadFn.bindEvents( elm );\r\n\t\t\t}\r\n\r\n\t\t\treturn elm.oMasthead;\r\n\t\t},\r\n\r\n\t\tinstantHideShow : function( element, hide, fadeOnly ) {\r\n\t\t\tvar ariaHidden = 'false',\r\n\t\t\t\tdisplayType = 'block',\r\n\t\t\t\topacity = 1;\r\n\t\t\tif ( utility.isNode( element ) ) {\r\n\t\t\t\tif ( hide ) {\r\n\t\t\t\t\tariaHidden = 'true';\r\n\t\t\t\t\tdisplayType = 'none';\r\n\t\t\t\t\tif ( fadeOnly ) {\r\n\t\t\t\t\t\tdisplayType = 'block';\r\n\t\t\t\t\t\topacity = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telement.setAttribute( 'aria-hidden', ariaHidden );\r\n\t\t\t\telement.style.display = displayType;\r\n\t\t\t\tif ( fadeOnly ) {\r\n\t\t\t\t\telement.style.opacity = opacity;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// eslint-disable-next-line complexity\r\n\t\tprocessSkipLink : function( elm, queryString, linkName ) {\r\n\t\t\tvar validHref;\r\n\r\n\t\t\telm.oMasthead.settings[ linkName + 'LinkElm' ] = elm.oMasthead.settings.wholePageElm.querySelector( queryString );\r\n\t\t\t// Only do more if the link is available\r\n\t\t\tif ( utility.isNode( elm.oMasthead.settings[ linkName + 'LinkElm' ] ) ) {\r\n\t\t\t\telm.oMasthead.settings[ linkName + 'LinkUrl' ] = elm.oMasthead.settings[ linkName + 'LinkElm' ].getAttribute( 'href' );\r\n\r\n\t\t\t\tvalidHref = utility.urlAnchorRegExp.test( elm.oMasthead.settings[ linkName + 'LinkUrl' ] );\r\n\r\n\t\t\t\tif ( validHref ) {\r\n\t\t\t\t\telm.oMasthead.settings[ linkName + 'Elm' ] = elm.oMasthead.settings.wholeNavElm.querySelector( elm.oMasthead.settings[ linkName + 'LinkUrl' ] );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( linkName === 'login' ) {\r\n\t\t\t\t\telm.oMasthead.settings.loginLinkUrl = validHref ? elm.oMasthead.settings.loginLinkUrl : '';\r\n\t\t\t\t\tif ( elm.oMasthead.settings.loginLinkUrl !== '' ) {\r\n\t\t\t\t\t\tutility.wrapInner( elm.oMasthead.settings.loginLinkElm, utility.htmlStringToElement( '' ) );\r\n\t\t\t\t\t\telm.oMasthead.settings.loginLinkHidden = elm.oMasthead.settings.loginLinkElm.querySelector( '.u-hidden--visually' );\r\n\t\t\t\t\t\tif ( elm.oMasthead.settings.loginLinkHidden ) {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.loginLinkHidden.remove();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if ( linkName === 'loggedIn' ) {\r\n\t\t\t\t\telm.oMasthead.settings.loggedInLinkName = elm.oMasthead.settings.wholePageElm.querySelector( '.o-masthead-logged-in-link__name' );\r\n\t\t\t\t\tif ( elm.oMasthead.settings.loggedInLinkName ) {\r\n\t\t\t\t\t\tif ( elm.oMasthead.settings.loggedInLinkName.hasAttribute( 'aria-hidden' ) ) {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.loggedInLinkName.removeAttribute( 'aria-hidden' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telm.oMasthead.settings.loggedInLinkElm.parentNode.insertBefore( elm.oMasthead.settings.loggedInLinkName, elm.oMasthead.settings.loggedInLinkElm );\r\n\t\t\t\t\t}\r\n\t\t\t\t\telm.oMasthead.settings.loggedInLinkHidden = elm.oMasthead.settings.loggedInLinkElm.querySelector( '.u-hidden--visually' );\r\n\t\t\t\t\tif ( elm.oMasthead.settings.loggedInLinkHidden ) {\r\n\t\t\t\t\t\telm.oMasthead.settings.loggedInLinkHidden.remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if ( linkName === 'search' ) {\r\n\t\t\t\t\tif ( elm.oMasthead.settings.searchElm ) {\r\n\t\t\t\t\t\telm.oMasthead.settings.searchInputElm = elm.oMasthead.settings.searchElm.querySelector( 'input[type=\"text\"], input[type=\"search\"]' );\r\n\t\t\t\t\t} else if ( validHref ) {\r\n\t\t\t\t\t\telm.oMasthead.settings.searchInputElm = document.querySelector( elm.oMasthead.settings.searchLinkUrl );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Do nothing\r\n\t\t\t\t\t}\r\n\t\t\t\t\telm.oMasthead.settings.searchLinkElm.append( utility.htmlStringToElement( '' ) );\r\n\r\n\t\t\t\t\telm.oMasthead.settings.searchLinkHidden = elm.oMasthead.settings.searchLinkElm.querySelector( '.u-hidden--visually' );\r\n\t\t\t\t\tif ( elm.oMasthead.settings.searchLinkHidden ) {\r\n\t\t\t\t\t\telm.oMasthead.settings.searchLinkHidden.remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tprocessOtherSkipLinks : function( elm ) {\r\n\t\t\telm.oMasthead.settings.allSkipLinks.forEach( function loop( linkElm ) {\r\n\t\t\t\tvar scrollTargetHref,\r\n\t\t\t\t\tscrollTarget;\r\n\t\t\t\tif ( linkElm.closest( '.o-masthead__menu-link, .o-masthead__login-link, .o-masthead__search-link, .o-masthead__logged-in-link' ) ) {\r\n\t\t\t\t\t// If its the menu, login or search link do nothing\r\n\t\t\t\t} else {\r\n\t\t\t\t\tscrollTargetHref = linkElm.getAttribute( 'href' ).substring( 1 );\r\n\t\t\t\t\tscrollTarget = document.getElementById( scrollTargetHref );\r\n\r\n\t\t\t\t\tif ( scrollTarget ) {\r\n\t\t\t\t\t\tlinkElm.addEventListener( 'click', function listener( e ) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\twindow.scrollTo( 0, utility.offset( scrollTarget ).top );\r\n\t\t\t\t\t\t\tscrollTarget.focus(); // Set focus on the target element\r\n\t\t\t\t\t\t\tif ( !utility.matches( scrollTarget, ':focus' ) ) {\r\n\t\t\t\t\t\t\t\t// If the focus wasn't gained set tab index to minus one and transfer focus again\r\n\t\t\t\t\t\t\t\tscrollTarget.setAttribute( 'tabindex', '-1' );\r\n\t\t\t\t\t\t\t\tscrollTarget.focus();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tsetupSiteSwitcher : function( elm ) {\r\n\t\t\tvar validSiteSwitcherHref;\r\n\r\n\t\t\telm.oMasthead.settings.siteSwitcherLink = elm.oMasthead.settings.wholePageElm.querySelector( '.m-site-country-selection__site-switcher a' );\r\n\t\t\telm.oMasthead.settings.hasSiteSwitcher = false;\r\n\t\t\telm.oMasthead.settings.siteSwitcherOpen = false;\r\n\t\t\tif ( utility.isNode( elm.oMasthead.settings.siteSwitcherLink ) ) {\r\n\t\t\t\telm.oMasthead.settings.siteSwitcherUrl = elm.oMasthead.settings.siteSwitcherLink.getAttribute( 'href' );\r\n\t\t\t\tvalidSiteSwitcherHref = utility.urlAnchorRegExp.test( elm.oMasthead.settings.siteSwitcherUrl );\r\n\t\t\t\telm.oMasthead.settings.siteSwitcherUrl = validSiteSwitcherHref ? elm.oMasthead.settings.siteSwitcherUrl : '';\r\n\r\n\t\t\t\tif ( elm.oMasthead.settings.siteSwitcherUrl !== '' ) {\r\n\t\t\t\t\telm.oMasthead.settings.siteSwitcherContent = document.querySelector( elm.oMasthead.settings.siteSwitcherUrl );\r\n\t\t\t\t\tif ( elm.oMasthead.settings.siteSwitcherContent ) {\r\n\t\t\t\t\t\telm.oMasthead.settings.hasSiteSwitcher = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( elm.oMasthead.settings.hasSiteSwitcher ) {\r\n\t\t\t\tif ( elm.oMasthead.settings.siteSwitcherContent.getAttribute( 'data-highlight' ) === 'true' ) {\r\n\t\t\t\t\telm.oMasthead.settings.siteSwitcherLink.parentNode.classList.add( 'm-site-country-selection__site-switcher--highlight' );\r\n\t\t\t\t}\r\n\t\t\t\telm.oMasthead.settings.siteSwitcherContentInner = elm.oMasthead.settings.siteSwitcherContent.children[ 0 ];\r\n\t\t\t\tutility.setAttributes( elm.oMasthead.settings.siteSwitcherLink, {\r\n\t\t\t\t\trole : 'button',\r\n\t\t\t\t\t'aria-controls' : elm.oMasthead.settings.siteSwitcherUrl.replace( '#', '' ),\r\n\t\t\t\t\t'aria-expanded' : 'false',\r\n\t\t\t\t});\r\n\t\t\t\telm.oMasthead.settings.siteSwitcherContent.classList.add( 'm-site-switcher--header' );\r\n\t\t\t\toMastheadFn.instantHideShow( elm.oMasthead.settings.siteSwitcherContent, true, false );\r\n\t\t\t\telm.oMasthead.settings.topBarElm.insertAdjacentElement( 'afterend', elm.oMasthead.settings.siteSwitcherContent );\r\n\t\t\t\toMastheadFn.updateSiteSwitcherText( elm, elm.oMasthead.settings.siteSwitcherContent.querySelector( '.m-site-switcher__selected-option' ) );\r\n\r\n\t\t\t\telm.oMasthead.settings.siteSwitcherLink.addEventListener( 'click', function listener( e ) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tif ( elm.oMasthead.settings.busy ) {\r\n\t\t\t\t\t\t// Do nothing\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\telm.oMasthead.settings.busy = true;\r\n\t\t\t\t\t\toMastheadFn.toggleSiteSwitcher( elm, false, true ); // Close any open masthead element;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\telm.oMasthead.settings.siteSwitcherContent.querySelectorAll( '.a-button' ).forEach( function loop( buttonElm ) {\r\n\t\t\t\t\tbuttonElm.addEventListener( 'click', function listener( e ) {\r\n\t\t\t\t\t\tif ( elm.oMasthead.settings.busy || buttonElm.classList.contains( 'm-site-switcher__selected-option' ) ) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.busy = true;\r\n\t\t\t\t\t\t\toMastheadFn.updateSiteSwitcherText( elm, buttonElm );\r\n\t\t\t\t\t\t\toMastheadFn.toggleSiteSwitcher( elm, true, true );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\toMastheadFn.siteSwitcherTabbing( elm );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttoggleSiteSwitcher : function( elm, close, complete ) {\r\n\t\t\tif ( elm.oMasthead.settings.hasSiteSwitcher ) {\r\n\t\t\t\tif ( elm.oMasthead.settings.siteSwitcherOpen || close ) {\r\n\t\t\t\t\tutility.fade( elm.oMasthead.settings.siteSwitcherContentInner, FRAMEWORK.timings.current.t200ms, { variant : 'out' });\r\n\t\t\t\t\tsetTimeout( function timeoutFn() {\r\n\t\t\t\t\t\tutility.slideToggle( elm.oMasthead.settings.siteSwitcherContent, FRAMEWORK.timings.current.t300ms, {\r\n\t\t\t\t\t\t\tvariant : 'up',\r\n\t\t\t\t\t\t\tcallback : function() {\r\n\t\t\t\t\t\t\t\telm.oMasthead.settings.siteSwitcherLink.classList.remove( 'is-open' );\r\n\t\t\t\t\t\t\t\telm.oMasthead.settings.siteSwitcherLink.setAttribute( 'aria-expanded', 'false' );\r\n\t\t\t\t\t\t\t\telm.oMasthead.settings.siteSwitcherOpen = false;\r\n\t\t\t\t\t\t\t\tif ( complete ) {\r\n\t\t\t\t\t\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}, FRAMEWORK.timings.current.t100ms );\r\n\t\t\t\t} else {\r\n\t\t\t\t\toMastheadFn.close( elm, true, true ); // Close any open masthead element;\r\n\t\t\t\t\toMastheadFn.instantHideShow( elm.oMasthead.settings.siteSwitcherContentInner, false, false );\r\n\t\t\t\t\telm.oMasthead.settings.siteSwitcherContentInner.style.opacity = 0;\r\n\t\t\t\t\tutility.slideToggle( elm.oMasthead.settings.siteSwitcherContent, oMastheadFn.settings.animationSpeed, {\r\n\t\t\t\t\t\tvariant : 'down',\r\n\t\t\t\t\t\tcallback : function() {\r\n\t\t\t\t\t\t\tutility.fade( elm.oMasthead.settings.siteSwitcherContentInner, FRAMEWORK.timings.current.t200ms, {\r\n\t\t\t\t\t\t\t\tvariant : 'in',\r\n\t\t\t\t\t\t\t\tcallback : function() {\r\n\t\t\t\t\t\t\t\t\telm.oMasthead.settings.siteSwitcherLink.classList.add( 'is-open' );\r\n\t\t\t\t\t\t\t\t\telm.oMasthead.settings.siteSwitcherLink.setAttribute( 'aria-expanded', 'true' );\r\n\t\t\t\t\t\t\t\t\telm.oMasthead.settings.siteSwitcherOpen = true;\r\n\t\t\t\t\t\t\t\t\tif ( complete ) {\r\n\t\t\t\t\t\t\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tupdateSiteSwitcherText : function( elm, target ) {\r\n\t\t\tvar selectedOption = elm.oMasthead.settings.siteSwitcherContent.querySelector( '.m-site-switcher__selected-option' ),\r\n\t\t\t\tsiteName;\r\n\t\t\tif ( selectedOption ) {\r\n\t\t\t\tselectedOption.classList.remove( 'm-site-switcher__selected-option' );\r\n\t\t\t\tselectedOption.classList.remove( 'is-disabled' );\r\n\t\t\t\tselectedOption.removeAttribute( 'disabled' );\r\n\t\t\t\tselectedOption.removeAttribute( 'aria-current' );\r\n\t\t\t\tselectedOption.removeAttribute( 'tabIndex' );\r\n\t\t\t}\r\n\r\n\t\t\tif ( target === null ) {\r\n\t\t\t\telm.oMasthead.settings.siteSwitcherLink.innerHTML = FRAMEWORK.locale.settings.oMasthead.switcherInitial;\r\n\t\t\t} else {\r\n\t\t\t\ttarget.classList.add( 'm-site-switcher__selected-option' );\r\n\t\t\t\ttarget.classList.add( 'is-disabled' );\r\n\t\t\t\ttarget.disabled = true;\r\n\t\t\t\ttarget.setAttribute( 'tabIndex', -1 );\r\n\t\t\t\ttarget.setAttribute( 'aria-current', 'true' );\r\n\r\n\t\t\t\tsiteName = '' + target.getAttribute( 'data-value' ) + '';\r\n\t\t\t\telm.oMasthead.settings.siteSwitcherLink.innerHTML = '' + FRAMEWORK.locale.settings.oMasthead.switcherSelection.replace( '{option}', siteName ) + '';\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsiteSwitcherTabbing : function( elm ) {\r\n\t\t\telm.oMasthead.settings.siteSwitcherLink.addEventListener( 'keydown', function listener( e ) {\r\n\t\t\t\t// When tab has been pressed and site switcher is open transfer focus to first focusable element in site switcher\r\n\t\t\t\tif ( e.key === 'Tab' && !e.shiftKey && elm.oMasthead.settings.siteSwitcherOpen ) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\telm.oMasthead.settings.siteSwitcherContent.querySelector( '.a-button:not(.is-disabled)' ).focus();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Do nothing\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\telm.oMasthead.settings.siteSwitcherContent.querySelectorAll( '.a-button, a' ).forEach( function loop( linkElm ) {\r\n\t\t\t\tlinkElm.addEventListener( 'keydown', function listener( e ) {\r\n\t\t\t\t\tvar allLinksInSiteSwitcher = elm.oMasthead.settings.siteSwitcherContent.querySelectorAll( '.a-button:not(.is-disabled), a:not(.is-disabled)' );\r\n\t\t\t\t\tif ( e.key === 'Tab' ) {\r\n\t\t\t\t\t\t// Tab pressed\r\n\t\t\t\t\t\tif ( e.shiftKey && linkElm === allLinksInSiteSwitcher[ 0 ] ) {\r\n\t\t\t\t\t\t\t// If shift also pressed and on first link in site switcher tranfer to site switcher link\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\telm.oMasthead.settings.siteSwitcherLink.focus();\r\n\t\t\t\t\t\t} else if ( !e.shiftKey && linkElm === allLinksInSiteSwitcher[ allLinksInSiteSwitcher.length - 1 ] ) {\r\n\t\t\t\t\t\t\t// If no shift and on last link in site switcher tranfer focus to coutnry selector of first element in masthead\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\tif ( elm.oMasthead.settings.countryLinkElm ) {\r\n\t\t\t\t\t\t\t\telm.oMasthead.settings.countryLinkElm.focus();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// Make first visible link focused\r\n\t\t\t\t\t\t\t\toMastheadFn.getVisibleLinks( elm.oMasthead.settings.mastheadElm.querySelectorAll( 'a' ) )[ 0 ].focus();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Do nothing\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tif ( elm.oMasthead.settings.countryLinkElm ) {\r\n\t\t\t\telm.oMasthead.settings.countryLinkElm.addEventListener( 'keydown', function listener( e ) {\r\n\t\t\t\t\tvar allNonDisabledLinks;\r\n\t\t\t\t\t// When tab has been pressed and site switcher is open transfer focus to first focusable element in site switcher\r\n\t\t\t\t\tif ( e.key === 'Tab' && elm.oMasthead.settings.siteSwitcherOpen ) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tif ( e.shiftKey ) {\r\n\t\t\t\t\t\t\tallNonDisabledLinks = elm.oMasthead.settings.siteSwitcherContent.querySelectorAll( '.a-button:not(.is-disabled), a:not(.is-disabled)' );\r\n\t\t\t\t\t\t\tallNonDisabledLinks[ allNonDisabledLinks.length - 1 ].focus();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Make first visible link focused\r\n\t\t\t\t\t\t\toMastheadFn.getVisibleLinks( elm.oMasthead.settings.mastheadElm.querySelectorAll( 'a' ) )[ 0 ].focus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Do nothing\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\toMastheadFn.getVisibleLinks( elm.oMasthead.settings.mastheadElm.querySelectorAll( 'a' ) ).forEach( function loop( visibleLinkElm ) {\r\n\t\t\t\tvisibleLinkElm.addEventListener( 'keydown', function listener( e ) {\r\n\t\t\t\t\tvar allNonDisabledLinks;\r\n\t\t\t\t\tif ( e.key === 'Tab' && e.shiftKey && elm.oMasthead.settings.siteSwitcherOpen ) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tif ( elm.oMasthead.settings.countryLinkElm ) {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.countryLinkElm.focus();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tallNonDisabledLinks = elm.oMasthead.settings.siteSwitcherContent.querySelectorAll( '.a-button:not(.is-disabled), a:not(.is-disabled)' );\r\n\t\t\t\t\t\t\tallNonDisabledLinks[ allNonDisabledLinks.length - 1 ].focus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tgetVisibleLinks : function( allLinks ) {\r\n\t\t\tvar visibleLinks = [];\r\n\t\t\tallLinks.forEach( function loop( currentLinkElm ) {\r\n\t\t\t\tif ( utility.isVisible( currentLinkElm ) ) {\r\n\t\t\t\t\tvisibleLinks.push( currentLinkElm );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn visibleLinks;\r\n\t\t},\r\n\r\n\t\tbindEvents : function( elm ) {\r\n\t\t\tvar onResize,\r\n\t\t\t\tresizeRedraw = function() {\r\n\t\t\t\t\tvar newBreakpoint = utility.getBreakpoint( elm ),\r\n\t\t\t\t\t\twait = 0;\r\n\r\n\t\t\t\t\t// Check if the breakpoint has changed. If it had close any open nav items\r\n\t\t\t\t\tif ( newBreakpoint !== elm.oMasthead.settings.currentBreakpoint ) {\r\n\t\t\t\t\t\tif ( newBreakpoint === utility.smallTag && elm.oMasthead.settings.navLinkElm && elm.oMasthead.settings.pageWrapperElm.classList.contains( 'is-open' ) ) {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.navLinkElm.focus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ( elm.oMasthead.settings.countryLinkElm && elm.oMasthead.settings.countryLinkElm.classList.contains( 'is-open' ) ) {\r\n\t\t\t\t\t\t\twait = oMastheadFn.settings.animationSpeed;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\toMastheadFn.close( elm, true, true );\r\n\t\t\t\t\t\telm.oMasthead.settings.currentBreakpoint = newBreakpoint;\r\n\t\t\t\t\t\tsetTimeout( function timeoutFn() {\r\n\t\t\t\t\t\t\toMastheadFn.resetPosition( elm, newBreakpoint );\r\n\t\t\t\t\t\t}, wait );\r\n\t\t\t\t\t} else if ( newBreakpoint === utility.smallTag ) {\r\n\t\t\t\t\t\toMastheadFn.resetPosition( elm, newBreakpoint );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\toMastheadFn.positionNav( elm, newBreakpoint );\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tisMastheadButton = function( targetElm ) {\r\n\t\t\t\t\tvar isButton = false;\r\n\t\t\t\t\tif ( targetElm.classList.contains( 'o-masthead-support__link' ) || utility.isNode( targetElm.closest( '.o-masthead-support__link' ) ) ) {\r\n\t\t\t\t\t\tisButton = true;\r\n\t\t\t\t\t} else if ( ( targetElm.classList.contains( 'a-button' ) || utility.isNode( targetElm.closest( '.a-button' ) ) ) && ( utility.isNode( targetElm.closest( '.m-primary-navigation-sub-section__link-list' ) ) || utility.isNode( targetElm.closest( '.m-primary-navigation-sub-section__link' ) ) || utility.isNode( targetElm.closest( '.m-primary-navigation .m-card' ) ) ) ) { // eslint-disable-line max-len\r\n\t\t\t\t\t\tisButton = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Do nothing\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn isButton;\r\n\t\t\t\t};\r\n\r\n\t\t\t// Set debounce function to stop resize function running too often\r\n\t\t\tonResize = utility.debounce( function listener() {\r\n\t\t\t\tvar newWindowWidth = window.innerWidth;\r\n\t\t\t\tif ( newWindowWidth !== elm.oMasthead.settings.windowWidth ) {\r\n\t\t\t\t\telm.oMasthead.settings.windowWidth = newWindowWidth;\r\n\t\t\t\t\tresizeRedraw();\r\n\t\t\t\t}\r\n\t\t\t}, 10 );\r\n\t\t\telm.oMasthead.reDraw = utility.debounce( function listener() {\r\n\t\t\t\tresizeRedraw();\r\n\t\t\t}, 10 ); // Function to call if extraContent area is updated dynamically and requires the nav to be redrawn\r\n\t\t\twindow.addEventListener( 'resize', onResize );\r\n\r\n\t\t\t// Keep the user within the header and open nav item when a nav item is open\r\n\t\t\tdocument.body.addEventListener( 'keydown', function listener( e ) {\r\n\t\t\t\t// If any visible anchor, input or button is hit then fire keydown function\r\n\t\t\t\tif ( ( e.key === 'Escape' || e.key === 'Esc' ) && elm.oMasthead.settings.pageWrapperElm.classList.contains( 'is-open' ) && !elm.oMasthead.settings.busy ) {\r\n\t\t\t\t\t// If escape key is pressed then close the menu\r\n\t\t\t\t\telm.oMasthead.settings.busy = true;\r\n\t\t\t\t\toMastheadFn.close( elm, true, true );\r\n\t\t\t\t} else if ( e.target.tagName.match( /^(A|INPUT|BUTTON)$/g ) && utility.isVisible( e.target ) ) {\r\n\t\t\t\t\toMastheadFn.onKeydown( e, e.target, elm );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tdocument.addEventListener( 'click', function listener( e ) {\r\n\t\t\t\t// If the page wrapper is currently open\r\n\t\t\t\tif ( elm.oMasthead.settings.pageWrapperElm.classList.contains( 'is-open' ) ) {\r\n\t\t\t\t\tif ( e.target.closest( 'header' ) === null && e.target.closest( '.o-masthead-navigation' ) === null ) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\toMastheadFn.close( elm, true, true );\r\n\t\t\t\t\t} else if ( isMastheadButton( e.target ) || e.target.closest( '.o-masthead-main-content' ) ) {\r\n\t\t\t\t\t\toMastheadFn.close( elm, true, true );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Do nothing\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tdocument.addEventListener( 'focusin', function listener( e ) {\r\n\t\t\t\tvar test2 = utility.isNode( e.target ) && e.target.closest( 'header' ) === null && e.target.closest( '.o-masthead-navigation' ) === null;\r\n\t\t\t\t// If the page wrapper is currently open and focus has moved off the menu\r\n\t\t\t\tif ( elm.oMasthead.settings.pageWrapperElm.classList.contains( 'is-open' ) && test2 ) {\r\n\t\t\t\t\toMastheadFn.close( elm, true, true );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tresetPosition : function( elm, newBreakpoint ) {\r\n\t\t\toMastheadFn.sizeNavElements( elm, newBreakpoint );\r\n\t\t\toMastheadFn.positionNav( elm, newBreakpoint );\r\n\t\t},\r\n\r\n\t\tsetupLink : function( elm, linkElm, areaElm ) {\r\n\t\t\tvar linkHref,\r\n\t\t\t\tvalidHref,\r\n\t\t\t\ttempAreaElm,\r\n\t\t\t\tsetFocusFunc;\r\n\r\n\t\t\t// If the link and its connected navigation area exist do the following\r\n\t\t\tif ( utility.isNode( linkElm ) && utility.isNode( areaElm ) ) {\r\n\t\t\t\tlinkHref = linkElm.getAttribute( 'href' );\r\n\r\n\t\t\t\t/*\r\n\t\t\t\t * Add area to the link and navigation area and preset the minimum link width\r\n\t\t\t\t * for when link text is switched out.\r\n\t\t\t\t */\r\n\t\t\t\tutility.setAttributes( linkElm, {\r\n\t\t\t\t\trole : 'button',\r\n\t\t\t\t\t'aria-controls' : linkHref.replace( '#', '' ),\r\n\t\t\t\t\t'aria-expanded' : 'false',\r\n\t\t\t\t});\r\n\t\t\t\toMastheadFn.instantHideShow( areaElm, true, false );\r\n\r\n\t\t\t\t/*\r\n\t\t\t\t * Set onclick function that closes the navigation if this links navigation\r\n\t\t\t\t * is already open, otherwise opens the navigation\r\n\t\t\t\t */\r\n\t\t\t\tlinkElm.addEventListener( 'click', function listener( e ) {\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tif ( elm.oMasthead.settings.busy || elm.oMasthead.settings.changeInProgress ) {\r\n\t\t\t\t\t\t// Do nothing\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\telm.oMasthead.settings.busy = true;\r\n\t\t\t\t\t\telm.oMasthead.settings.changeInProgress = true;\r\n\r\n\t\t\t\t\t\tif ( linkHref === elm.oMasthead.settings.current ) {\r\n\t\t\t\t\t\t\toMastheadFn.close( elm, true, true );\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\toMastheadFn.open( elm, linkElm, areaElm );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// If this is the login link setup the login and register buttons for desktop\r\n\t\t\t\tif ( utility.isNode( linkElm ) && linkElm === elm.oMasthead.settings.loginLinkElm ) {\r\n\t\t\t\t\telm.oMasthead.settings.loginLinkElm.insertAdjacentElement( 'beforebegin', elm.oMasthead.settings.loginElm.querySelector( '.o-masthead-login__link-list' ).cloneNode( true ) );\r\n\t\t\t\t}\r\n\t\t\t} else if ( linkElm === null ) {\r\n\t\t\t\t// Do nothing\r\n\t\t\t} else {\r\n\t\t\t\tlinkHref = linkElm.getAttribute( 'href' );\r\n\t\t\t\tvalidHref = utility.urlAnchorRegExp.test( linkHref );\r\n\r\n\t\t\t\tif ( validHref ) {\r\n\t\t\t\t\ttempAreaElm = document.querySelector( linkHref );\r\n\t\t\t\t\tif ( utility.isNode( tempAreaElm ) ) {\r\n\t\t\t\t\t\tsetFocusFunc = function() {\r\n\t\t\t\t\t\t\ttempAreaElm.focus(); // Set focus on the target element\r\n\t\t\t\t\t\t\tif ( !utility.matches( tempAreaElm, ':focus' ) ) {\r\n\t\t\t\t\t\t\t\t// If the focus wasn't gained set tab index to minus one and transfer focus again\r\n\t\t\t\t\t\t\t\ttempAreaElm.setAttribute( 'tabindex', '-1' );\r\n\t\t\t\t\t\t\t\ttempAreaElm.focus();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tlinkElm.classList.add( 'js-tabbable' );\r\n\t\t\t\t\t\tlinkElm.addEventListener( 'click', function listener( e ) {\r\n\t\t\t\t\t\t\tvar tempAreaPos = utility.offset( tempAreaElm ).top,\r\n\t\t\t\t\t\t\t\ttempAreaHeight = tempAreaElm.offsetHeight,\r\n\t\t\t\t\t\t\t\twindowHeight = window.innerHeight,\r\n\t\t\t\t\t\t\t\twindowPos = window.scrollY;\r\n\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\tif ( tempAreaPos < windowPos || tempAreaPos > ( windowPos + windowHeight - tempAreaHeight ) ) {\r\n\t\t\t\t\t\t\t\twindow.scrollTo( 0, tempAreaPos );\r\n\t\t\t\t\t\t\t\tsetFocusFunc();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tsetFocusFunc();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsetupCountryLink : function( elm ) {\r\n\t\t\t// Run setup for the country selector link if one exists\r\n\t\t\tif ( utility.isNode( elm.oMasthead.settings.countryLinkElm ) ) {\r\n\t\t\t\telm.oMasthead.settings.countryLinkUrl = elm.oMasthead.settings.countryLinkElm.getAttribute( 'href' );\r\n\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--has-country-selector' );\r\n\r\n\t\t\t\t// Add aria and onclick cunfction\r\n\t\t\t\telm.oMasthead.settings.countryLinkElm.setAttribute( 'role', 'button' );\r\n\t\t\t\telm.oMasthead.settings.countryLinkElm.setAttribute( 'aria-expanded', 'false' );\r\n\t\t\t\telm.oMasthead.settings.countryLinkElm.classList.add( 'js-m-site-country-selection__country' );\r\n\r\n\t\t\t\telm.oMasthead.settings.countryLinkElm.addEventListener( 'click', function listener( e ) {\r\n\t\t\t\t\tvar contentHref;\r\n\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tif ( elm.oMasthead.settings.busy || elm.oMasthead.settings.changeInProgress ) {\r\n\t\t\t\t\t\t// Do nothing\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\telm.oMasthead.settings.busy = true;\r\n\t\t\t\t\t\telm.oMasthead.settings.changeInProgress = true;\r\n\t\t\t\t\t\tif ( elm.oMasthead.settings.countryLinkUrl === elm.oMasthead.settings.current ) {\r\n\t\t\t\t\t\t\t// Close country selector if currently open\r\n\t\t\t\t\t\t\toMastheadFn.close( elm, true, true );\r\n\t\t\t\t\t\t} else if ( utility.isNode( elm.oMasthead.settings.countryElm ) ) {\r\n\t\t\t\t\t\t\t// If the country options are already on the page, open the country selector\r\n\t\t\t\t\t\t\toMastheadFn.open( elm, elm.oMasthead.settings.countryLinkElm, elm.oMasthead.settings.countryElm );\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// If the country options are not on the page load them into the overall navigation area and add appropriate aria\r\n\t\t\t\t\t\t\telm.oMasthead.settings.countryLinkElm.setAttribute( 'aria-controls', 'o-masthead-navigation__country-listing' );\r\n\t\t\t\t\t\t\telm.oMasthead.settings.countryElm = utility.htmlStringToElement( '
    ' +\r\n\t\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t\toMastheadFn.settings.loadingText + '
    ' );\r\n\r\n\t\t\t\t\t\t\tcontentHref = elm.oMasthead.settings.countryLinkElm.getAttribute( 'href' ) + ' .m-country-selection';\r\n\r\n\t\t\t\t\t\t\tutility.requestLoadInto( elm.oMasthead.settings.countryElm, contentHref, function cb( response, status ) {\r\n\t\t\t\t\t\t\t\tif ( status >= 200 && status < 400 ) {\r\n\t\t\t\t\t\t\t\t\telm.oMasthead.settings.wholeNavElm.querySelector( '.l-content-container' ).append( elm.oMasthead.settings.countryElm );\r\n\t\t\t\t\t\t\t\t\tsetTimeout( function timeoutFn() {\r\n\t\t\t\t\t\t\t\t\t\telm.oMasthead.settings.pageWrapperElm.style.minHeight = utility.convertToPx( elm.oMasthead.settings.wholeNavElm.offsetHeight );\r\n\t\t\t\t\t\t\t\t\t\t// Open the country selector\r\n\t\t\t\t\t\t\t\t\t\toMastheadFn.open( elm, elm.oMasthead.settings.countryLinkElm, elm.oMasthead.settings.countryElm );\r\n\t\t\t\t\t\t\t\t\t}, FRAMEWORK.timings.current.t500ms );\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\telm.oMasthead.settings.countryElm = null; // Errored so clear the variable\r\n\t\t\t\t\t\t\t\t\toMastheadFn.close( elm, true, true ); // If error then just close the menu\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tbuildPrimaryNav : function( elm ) {\r\n\t\t\tvar newNavElm = '',\r\n\t\t\t\tlandingPageLinkTop = !elm.classList.contains( 'o-masthead--landing-page-bottom' );\r\n\r\n\t\t\toMastheadFn.setupCloseButton( elm );\r\n\r\n\t\t\tif ( elm.oMasthead.settings.navBasicLinks.length > 0 ) {\r\n\t\t\t\t// Build basic version of primary nav\r\n\t\t\t\toMastheadFn.buildPrimaryNavBasic( elm );\r\n\t\t\t} else {\r\n\t\t\t\tif ( landingPageLinkTop ) {\r\n\t\t\t\t\t// Do nothing\r\n\t\t\t\t} else {\r\n\t\t\t\t\telm.oMasthead.settings.wholePageElm.querySelectorAll( '.m-primary-navigation--landing-page-bottom' );\r\n\t\t\t\t}\r\n\t\t\t\t/*\r\n\t\t\t\t * Loop through the primary nav section.\r\n\t\t\t\t * Create a unique ID for each main menu item and add it to the menu item\r\n\t\t\t\t * Use the heading text for the menu item for the primary nav tab text and create a primary nav tab link\r\n\t\t\t\t */\r\n\t\t\t\telm.oMasthead.settings.wholePageElm.querySelectorAll( '.m-primary-navigation__section' ).forEach( function loop( currentSectionArea ) {\r\n\t\t\t\t\tvar sectionId = utility.makeId( 'primary-nav-' ),\r\n\t\t\t\t\t\tsectionHeadingElm = currentSectionArea.querySelector( '.m-primary-navigation__section-heading' ),\r\n\t\t\t\t\t\tsectionAllLinkElm = currentSectionArea.querySelector( '.m-primary-navigation-sub-section__link' ),\r\n\t\t\t\t\t\tsectionTitle = sectionHeadingElm.textContent,\r\n\t\t\t\t\t\tselectedSectionClass = '';\r\n\r\n\t\t\t\t\toMastheadFn.adjustNavPositions( elm, currentSectionArea );\r\n\r\n\t\t\t\t\tif ( sectionHeadingElm.classList.contains( 'a-heading--3' ) ) {\r\n\t\t\t\t\t\tsectionHeadingElm.classList.remove( 'a-heading--3' );\r\n\t\t\t\t\t\tsectionHeadingElm.classList.add( 'a-heading--2' );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( sectionHeadingElm.querySelector( 'a' ) === null && utility.isNode( sectionAllLinkElm ) ) {\r\n\t\t\t\t\t\tutility.wrapInner( sectionHeadingElm, utility.htmlStringToElement( '' ) );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( currentSectionArea.classList.contains( 'is-selected' ) ) {\r\n\t\t\t\t\t\tselectedSectionClass = 'is-selected';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tnewNavElm = newNavElm + '
  • ' + sectionTitle + '
  • ';\r\n\r\n\t\t\t\t\tcurrentSectionArea.setAttribute( 'id', sectionId );\r\n\r\n\t\t\t\t\t// Loop through all sub sections and setup for mobile view show/hide functionality\r\n\t\t\t\t\tcurrentSectionArea.querySelectorAll( '.m-primary-navigation-sub-section__heading' ).forEach( function innerLoop( currentSubSectionElm ) {\r\n\t\t\t\t\t\tvar subSectionId = utility.makeId( 'primary-nav-sub-' ),\r\n\t\t\t\t\t\t\tsubSectionLinkElm,\r\n\t\t\t\t\t\t\tsubSectionContentElm;\r\n\r\n\t\t\t\t\t\tutility.wrapInner( currentSubSectionElm, utility.htmlStringToElement( '' ) );\r\n\t\t\t\t\t\tsubSectionLinkElm = currentSubSectionElm.querySelector( 'a' );\r\n\r\n\t\t\t\t\t\tsubSectionContentElm = currentSubSectionElm.closest( '.m-primary-navigation-sub-section' ).querySelector( '.m-primary-navigation-sub-section__link-list' );\r\n\t\t\t\t\t\toMastheadFn.instantHideShow( subSectionContentElm, true, false );\r\n\r\n\t\t\t\t\t\t// Make sure all the links are tertiary links\r\n\t\t\t\t\t\tsubSectionContentElm.querySelectorAll( 'a:not(.a-button)' ).forEach( function innerLoop2( linkElm ) {\r\n\t\t\t\t\t\t\tlinkElm.classList.add( 'a-button' );\r\n\t\t\t\t\t\t\tlinkElm.classList.add( 'a-button--tertiary' );\r\n\t\t\t\t\t\t\tutility.wrapInner( linkElm, utility.htmlStringToElement( '' ) );\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\telm.oMasthead.settings.navSubSections.push( [ subSectionLinkElm, subSectionContentElm ] );\r\n\r\n\t\t\t\t\t\tsubSectionLinkElm.addEventListener( 'click', function listener( e ) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\tif ( elm.oMasthead.settings.busy ) {\r\n\t\t\t\t\t\t\t\t// Do nothing\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\telm.oMasthead.settings.busy = true;\r\n\t\t\t\t\t\t\t\toMastheadFn.accordionSubSections( elm, subSectionLinkElm, subSectionContentElm, e );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// If the landing page link exists and should be displayed at the top (default) then move to below the section heading\r\n\t\t\t\t\tif ( landingPageLinkTop && sectionAllLinkElm ) {\r\n\t\t\t\t\t\tsectionHeadingElm.insertAdjacentElement( 'afterend', sectionAllLinkElm );\r\n\t\t\t\t\t\tcurrentSectionArea.classList.add( 'm-primary-navigation__section--landing-page-link' );\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\telm.oMasthead.settings.allNavSectionDescriptions = elm.oMasthead.settings.wholePageElm.querySelectorAll( '.m-primary-navigation-sub-section__description' );\r\n\t\t\t\telm.oMasthead.settings.navSectionHeadingLinks = elm.oMasthead.settings.wholePageElm.querySelectorAll( '.m-primary-navigation__section-heading a' );\r\n\r\n\t\t\t\tif ( utility.isNode( elm.oMasthead.settings.navLinkElm ) && newNavElm !== '' ) {\r\n\t\t\t\t\t// Using the built up primary nav links add this to the masthead\r\n\t\t\t\t\telm.oMasthead.settings.navLinkElm.insertAdjacentElement( 'afterend', utility.htmlStringToElement( '' ) );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Loop through all the links in the new primary nav and run link setup on them\r\n\t\t\t\telm.oMasthead.settings.wholePageElm.querySelectorAll( '.o-masthead__primary-nav-link' ).forEach( function loop( thisLinkElm ) {\r\n\t\t\t\t\toMastheadFn.setupLink( elm, thisLinkElm, document.querySelector( thisLinkElm.getAttribute( 'href' ) ) );\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tadjustNavPositions : function( elm, section ) {\r\n\t\t\tvar columnContainer = section.querySelector( '.l-columns' ),\r\n\t\t\t\tallColumns = section.querySelectorAll( '.l-columns__column' );\r\n\t\t\tif ( allColumns.length >= 3 ) {\r\n\t\t\t\t// Adjust layout for tablet to avoid the close button\r\n\t\t\t\tsection.classList.add( 'm-primary-navigation__section--close-adjust-medium' );\r\n\t\t\t}\r\n\r\n\t\t\tif ( allColumns.length < 4 || ( allColumns.length > 3 && allColumns[ allColumns.length - 1 ].classList.contains( 'm-card' ) ) ) {\r\n\t\t\t\t// If less than 4 columns or the last column is a card, do nothing\r\n\t\t\t} else if ( ( columnContainer.classList.contains( 'l-columns--4-large' ) && allColumns.length === 4 ) ||\r\n\t\t\t\t( columnContainer.classList.contains( 'l-columns--5-large' ) && allColumns.length === 5 ) ) {\r\n\t\t\t\t// If 4 of 5 columns and last is not a card, adjust the layout at desktop to avoid the close button\r\n\t\t\t\tsection.classList.add( 'm-primary-navigation__section--close-adjust' );\r\n\t\t\t} else {\r\n\t\t\t\t// Do nothing\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tbuildPrimaryNavBasic : function( elm ) {\r\n\t\t\tvar newNavElm = '';\r\n\r\n\t\t\t/*\r\n\t\t\t * Loop through the primary nav section.\r\n\t\t\t * Create a unique ID for each main menu item and add it to the menu item\r\n\t\t\t * Use the heading text for the menu item for the primary nav tab text and create a primary nav tab link\r\n\t\t\t */\r\n\t\t\telm.oMasthead.settings.navBasicLinks.forEach( function loop( basicLink ) {\r\n\t\t\t\tvar selectedSectionClass = '';\r\n\r\n\t\t\t\tif ( basicLink.classList.contains( 'is-selected' ) ) {\r\n\t\t\t\t\tselectedSectionClass = 'is-selected';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tnewNavElm = newNavElm + '
  • ' + basicLink.textContent + '
  • ';\r\n\t\t\t});\r\n\r\n\t\t\telm.oMasthead.settings.allNavSectionDescriptions = document.querySelectorAll( '.m-primary-navigation-sub-section__description' );\r\n\r\n\t\t\t// Using the built up primary nav links add this to the masthead\r\n\t\t\tif ( newNavElm === '' ) {\r\n\t\t\t\t// Do nothing\r\n\t\t\t} else {\r\n\t\t\t\telm.oMasthead.settings.navLinkElm.insertAdjacentHTML( 'afterend', '' );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsetupCloseButton : function( elm ) {\r\n\t\t\t// Add close button tc\r\n\t\t\t// eslint-disable-next-line max-len\r\n\t\t\tvar buttonHtml = '',\r\n\t\t\t\tbuttonCloseFunc = function( e ) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tif ( elm.oMasthead.settings.busy ) {\r\n\t\t\t\t\t\t// Do nothing\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\telm.oMasthead.settings.busy = true;\r\n\t\t\t\t\t\toMastheadFn.close( elm, true, true );\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t// Button for mobile view\r\n\t\t\telm.oMasthead.settings.closeButtonTop = utility.htmlStringToElement( buttonHtml );\r\n\t\t\telm.oMasthead.settings.wholeNavElm.querySelector( '.l-content-container' ).prepend( elm.oMasthead.settings.closeButtonTop );\r\n\t\t\tutility.wrap( elm.oMasthead.settings.closeButtonTop, utility.htmlStringToElement( '
    ' ) );\r\n\r\n\t\t\telm.oMasthead.settings.closeButtonTop.addEventListener( 'click', function listener( e ) {\r\n\t\t\t\tbuttonCloseFunc( e );\r\n\t\t\t});\r\n\r\n\t\t\t// Button for tablet and desktop view\r\n\t\t\telm.oMasthead.settings.closeButtonBottom = utility.htmlStringToElement( buttonHtml );\r\n\t\t\telm.oMasthead.settings.wholeNavElm.querySelector( '.l-content-container' ).append( elm.oMasthead.settings.closeButtonBottom );\r\n\t\t\tutility.wrap( elm.oMasthead.settings.closeButtonBottom, utility.htmlStringToElement( '
    ' ) );\r\n\r\n\t\t\telm.oMasthead.settings.closeButtonBottom.addEventListener( 'click', function listener( e ) {\r\n\t\t\t\tbuttonCloseFunc( e );\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tcheckSection : function( linkElm, currentSectionUrl, testLinkElm, testLinkUrl ) {\r\n\t\t\tvar sectionOpen = false;\r\n\t\t\tif ( linkElm === testLinkElm || currentSectionUrl === testLinkUrl ) {\r\n\t\t\t\tsectionOpen = true;\r\n\t\t\t}\r\n\t\t\treturn sectionOpen;\r\n\t\t},\r\n\r\n\t\tcheckAllLinks : function( elm, linkElm ) {\r\n\t\t\tvar linkOpen = linkElm === elm.oMasthead.settings.navLinkElm || linkElm === elm.oMasthead.settings.searchLinkElm;\r\n\t\t\tlinkOpen = linkOpen || linkElm === elm.oMasthead.settings.loggedInLinkElm;\r\n\r\n\t\t\treturn linkOpen;\r\n\t\t},\r\n\r\n\t\topen : function( elm, linkElm, areaElm ) {\r\n\t\t\tvar vars = {\r\n\t\t\t\t\tcurrentSectionUrl : null,\r\n\t\t\t\t\tsameSection : false,\r\n\t\t\t\t\ttransitionBetweenMenus : null,\r\n\t\t\t\t},\r\n\t\t\t\ttest1,\r\n\t\t\t\ttest2;\r\n\r\n\t\t\toMastheadFn.toggleSiteSwitcher( elm, true ); // Close siteswitcher\r\n\r\n\t\t\tif ( elm.oMasthead.settings.current ) {\r\n\t\t\t\tvars.currentSectionUrl = elm.oMasthead.settings.current;\r\n\t\t\t}\r\n\t\t\tvars.sameSection = vars.currentSectionUrl === linkElm.getAttribute( 'href' );\r\n\t\t\tvars.transitionBetweenMenus = !vars.sameSection && vars.currentSectionUrl !== null;\r\n\t\t\ttest1 = oMastheadFn.checkSection( linkElm, vars.currentSectionUrl, elm.oMasthead.settings.loginLinkElm, elm.oMasthead.settings.loginLinkUrl );\r\n\t\t\ttest2 = oMastheadFn.checkSection( linkElm, vars.currentSectionUrl, elm.oMasthead.settings.countryLinkElm, elm.oMasthead.settings.countryLinkUrl );\r\n\r\n\t\t\tif ( test1 || test2 ) {\r\n\t\t\t\tvars.transitionBetweenMenus = false;\r\n\t\t\t} else if ( elm.oMasthead.settings.currentBreakpoint === utility.smallTag ) {\r\n\t\t\t\tvars.transitionBetweenMenus = true;\r\n\t\t\t} else if ( oMastheadFn.checkSection( linkElm, vars.currentSectionUrl, elm.oMasthead.settings.loggedInLinkElm, elm.oMasthead.settings.loggedInLinkUrl ) ) {\r\n\t\t\t\tvars.transitionBetweenMenus = false;\r\n\t\t\t} else if ( vars.transitionBetweenMenus ) {\r\n\t\t\t\telm.oMasthead.settings.wholeNavElm.style.minHeight = utility.convertToPx( elm.oMasthead.settings.wholeNavElm.offsetHeight );\r\n\t\t\t} else {\r\n\t\t\t\t// Do nothing\r\n\t\t\t}\r\n\r\n\t\t\toMastheadFn.openPart2( elm, linkElm, areaElm, vars );\r\n\t\t},\r\n\r\n\t\topenPart2 : function( elm, linkElm, areaElm, vars ) {\r\n\t\t\tvar test1,\r\n\t\t\t\ttest2;\r\n\t\t\t// If the current open link is not the same as the link being opened do the following\r\n\t\t\tif ( vars.sameSection ) {\r\n\t\t\t\toMastheadFn.close( elm, !vars.transitionBetweenMenus, true );\r\n\t\t\t} else {\r\n\t\t\t\toMastheadFn.close( elm, !vars.transitionBetweenMenus, false );\r\n\r\n\t\t\t\t/* eslint-disable-next-line complexity */\r\n\t\t\t\tsetTimeout( function timeoutFn() {\r\n\t\t\t\t\tif ( !( elm.oMasthead.settings.navElm && elm.oMasthead.settings.navElm.classList.contains( 'm-primary-navigation' ) ) && elm.oMasthead.settings.orphanPrimaryNavElm ) {\r\n\t\t\t\t\t\t// If the login or country selection link and there is no primary nav make sure any get support links are hidden\r\n\t\t\t\t\t\tif ( linkElm === elm.oMasthead.settings.loginLinkElm || linkElm === elm.oMasthead.settings.countryLinkElm ) {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.orphanPrimaryNavElm.style.display = 'none';\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.orphanPrimaryNavElm.style.display = 'block';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( linkElm === elm.oMasthead.settings.loginLinkElm || linkElm === elm.oMasthead.settings.loggedInLinkElm ) {\r\n\t\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--narrow-megamenu' );\r\n\t\t\t\t\t\telm.oMasthead.settings.narrowMenu = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\toMastheadFn.instantHideShow( elm.oMasthead.settings.wholeNavElm, false, false );\r\n\r\n\t\t\t\t\tif ( elm.oMasthead.settings.currentBreakpoint === utility.smallTag && oMastheadFn.checkAllLinks( elm, linkElm ) ) {\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t * If at mobile and the link is either menu or search and the current open link is NOT menu or search then\r\n\t\t\t\t\t\t * open the search menu and then open the main menu as well\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\ttest1 = vars.currentSectionUrl !== elm.oMasthead.settings.navLinkElm && vars.currentSectionUrl !== elm.oMasthead.settings.searchLinkUrl;\r\n\t\t\t\t\t\ttest2 = vars.currentSectionUrl !== elm.oMasthead.settings.loggedInLinkUrl;\r\n\t\t\t\t\t\tif ( test1 && test2 ) {\r\n\t\t\t\t\t\t\tutility.fade( elm.oMasthead.settings.searchElm, oMastheadFn.settings.animationSpeed, { variant : 'in' });\r\n\t\t\t\t\t\t\tutility.fade( elm.oMasthead.settings.loggedInElm, oMastheadFn.settings.animationSpeed, { variant : 'in' });\r\n\r\n\t\t\t\t\t\t\toMastheadFn.openSection( elm, elm.oMasthead.settings.navLinkElm, elm.oMasthead.settings.navElm, vars.transitionBetweenMenus );\r\n\t\t\t\t\t\t\telm.oMasthead.settings.navLinkElm.focus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\toMastheadFn.openSection( elm, linkElm, areaElm, vars.transitionBetweenMenus );\r\n\t\t\t\t\t}\r\n\t\t\t\t}, oMastheadFn.settings.animationSpeed + 100 );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\topenSection : function( elm, linkElm, areaElm, transitionSection ) {\r\n\t\t\tvar currentHeight,\r\n\t\t\t\tanimationDirection;\r\n\r\n\t\t\t// If both the link and area provided can be found on the page do the following\r\n\t\t\tif ( utility.isNode( linkElm ) && utility.isNode( areaElm ) ) {\r\n\t\t\t\telm.oMasthead.settings.currLink = linkElm;\r\n\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--is-open' );\r\n\t\t\t\telm.oMasthead.settings.pageWrapperElm.classList.add( 'is-open' );\r\n\t\t\t\telm.oMasthead.settings.current = linkElm.getAttribute( 'href' );\r\n\r\n\t\t\t\tif ( elm.oMasthead.settings.searchLinkElm && linkElm === elm.oMasthead.settings.searchLinkElm ) {\r\n\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--search-open' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( !( elm.oMasthead.settings.currentBreakpoint !== utility.smallTag && !elm.oMasthead.settings.wholePageElm.classList.contains( 'js-o-masthead--wont-fit-extra-content' ) ) ) {\r\n\t\t\t\t\toMastheadFn.instantHideShow( elm.oMasthead.settings.extraContentAreaElm, true, false );\r\n\t\t\t\t}\r\n\t\t\t\toMastheadFn.instantHideShow( elm.oMasthead.settings.wholeNavElm, false, false );\r\n\t\t\t\tcurrentHeight = elm.oMasthead.settings.wholeNavElm.offsetHeight;\r\n\t\t\t\telm.oMasthead.settings.wholeNavElm.style.minHeight = 0;\r\n\r\n\t\t\t\t// Update the aria attributes\r\n\t\t\t\tlinkElm.classList.add( 'is-open' );\r\n\t\t\t\tlinkElm.setAttribute( 'aria-expanded', 'true' );\r\n\r\n\t\t\t\tif ( linkElm === elm.oMasthead.settings.countryLinkElm ) {\r\n\t\t\t\t\toMastheadFn.instantHideShow( elm.oMasthead.settings.mastheadElm, true, false );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( linkElm.classList.contains( 'o-masthead__primary-nav-link' ) ) {\r\n\t\t\t\t\t// If the link forms part of the primary nav set all the aria attributes for the whole of nav and show\r\n\t\t\t\t\telm.oMasthead.settings.navLinkElm.setAttribute( 'aria-expanded', 'true' );\r\n\t\t\t\t\telm.oMasthead.settings.navLinkElm.classList.add( 'is-open' );\r\n\t\t\t\t\tutility.fade( elm.oMasthead.settings.navElm, oMastheadFn.settings.animationSpeed, { variant : 'in' });\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Do nothing\r\n\t\t\t\t}\r\n\r\n\t\t\t\toMastheadFn.openSectionPart2( elm, {\r\n\t\t\t\t\tareaElm : areaElm,\r\n\t\t\t\t\ttransitionSection : transitionSection,\r\n\t\t\t\t\tanimationDirection : animationDirection,\r\n\t\t\t\t\tcurrentHeight : currentHeight,\r\n\t\t\t\t\tlinkElm : linkElm,\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\topenSectionPart2 : function( elm, vars ) {\r\n\t\t\tvar newHeight,\r\n\t\t\t\twaitForFade = 0;\r\n\r\n\t\t\t// If the link is the main menu link. Loop through all the primary nav items, setting the aria attributes correctly and fade them all in\r\n\t\t\tif ( vars.linkElm === elm.oMasthead.settings.navLinkElm ) {\r\n\t\t\t\twaitForFade = ( oMastheadFn.settings.animationSpeed / 3 ) + 100;\r\n\t\t\t\tif ( elm.oMasthead.settings.navBasicLinks.length === 0 ) {\r\n\t\t\t\t\tdocument.querySelectorAll( '.o-masthead__primary-nav-link' ).forEach( function loop( thisLinkElm ) {\r\n\t\t\t\t\t\tvar thisAreaElm = document.querySelector( thisLinkElm.getAttribute( 'href' ) );\r\n\r\n\t\t\t\t\t\tthisLinkElm.setAttribute( 'aria-expanded', 'true' );\r\n\t\t\t\t\t\tutility.fade( thisAreaElm, ( oMastheadFn.settings.animationSpeed / 3 ), { variant : 'in' });\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\telm.oMasthead.settings.navLinkElm.setAttribute( 'aria-expanded', 'true' );\r\n\t\t\t\t\telm.oMasthead.settings.navLinkElm.classList.add( 'is-open' );\r\n\t\t\t\t\tutility.fade( elm.oMasthead.settings.navElm, ( oMastheadFn.settings.animationSpeed / 3 ), { variant : 'in' });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Show the nav area, get the final height then hide again.\r\n\t\t\toMastheadFn.instantHideShow( vars.areaElm, false, false );\r\n\t\t\tif ( elm.oMasthead.settings.currentBreakpoint !== utility.smallTag && elm.oMasthead.settings.wholePageElm.classList.contains( 'js-o-masthead--fit-tabs' ) ) {\r\n\t\t\t\toMastheadFn.alignDescriptions( elm, elm.oMasthead.settings.currentBreakpoint );\r\n\t\t\t}\r\n\t\t\tnewHeight = elm.oMasthead.settings.wholeNavElm.offsetHeight;\r\n\t\t\telm.oMasthead.settings.pageWrapperElm.style.minHeight = utility.convertToPx( newHeight );\r\n\t\t\toMastheadFn.instantHideShow( vars.areaElm, true, false );\r\n\r\n\t\t\t// Update aria and then slide in the nav area\r\n\t\t\tsetTimeout( function timeoutFn() {\r\n\t\t\t\tif ( vars.transitionSection ) {\r\n\t\t\t\t\toMastheadFn.instantHideShow( elm.oMasthead.settings.wholeNavElm, false, false );\r\n\t\t\t\t\tutility.slideToggle( elm.oMasthead.settings.wholeNavElm, oMastheadFn.settings.animationSpeed, {\r\n\t\t\t\t\t\tvariant : 'down',\r\n\t\t\t\t\t\tcustomStartHeight : vars.currentHeight,\r\n\t\t\t\t\t\tcustomEndHeight : newHeight,\r\n\t\t\t\t\t});\r\n\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--show-close' );\r\n\t\t\t\t\tutility.fade( vars.areaElm, oMastheadFn.settings.animationSpeed, {\r\n\t\t\t\t\t\tvariant : 'in',\r\n\t\t\t\t\t\tcallback : function() {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.wholeNavElm.style.removeProperty( 'height' );\r\n\t\t\t\t\t\t\telm.oMasthead.settings.wholeNavElm.style.removeProperty( 'max-height' );\r\n\t\t\t\t\t\t\telm.oMasthead.settings.changeInProgress = false;\r\n\t\t\t\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\t\t\t\t} else if ( elm.oMasthead.settings.narrowMenu ) {\r\n\t\t\t\t\tutility.slideToggle( vars.areaElm, oMastheadFn.settings.animationSpeed, {\r\n\t\t\t\t\t\tvariant : 'down',\r\n\t\t\t\t\t\tcallback : function() {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.wholeNavElm.style.removeProperty( 'height' );\r\n\t\t\t\t\t\t\telm.oMasthead.settings.wholeNavElm.style.removeProperty( 'max-height' );\r\n\t\t\t\t\t\t\telm.oMasthead.settings.changeInProgress = false;\r\n\t\t\t\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvars.areaElm.style.opacity = 0;\r\n\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--show-close' );\r\n\t\t\t\t\tutility.slideToggle( vars.areaElm, oMastheadFn.settings.animationSpeed, {\r\n\t\t\t\t\t\tvariant : 'down',\r\n\t\t\t\t\t\tfade : true,\r\n\t\t\t\t\t\tcallback : function() {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.wholeNavElm.style.removeProperty( 'height' );\r\n\t\t\t\t\t\t\telm.oMasthead.settings.wholeNavElm.style.removeProperty( 'max-height' );\r\n\t\t\t\t\t\t\telm.oMasthead.settings.changeInProgress = false;\r\n\t\t\t\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, waitForFade );\r\n\r\n\t\t\t// If the section being opened is search transfer the focus straight to the search input/\r\n\t\t\tif ( vars.linkElm === elm.oMasthead.settings.searchLinkElm && elm.oMasthead.settings.searchInputElm !== null ) {\r\n\t\t\t\telm.oMasthead.settings.searchInputElm.focus();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tclose : function( elm, closeAll, closeOverlay ) {\r\n\t\t\tvar navigationInteval;\r\n\r\n\t\t\telm.oMasthead.settings.current = null;\r\n\r\n\t\t\toMastheadFn.closeSections( elm, oMastheadFn.settings.animationSpeed );\r\n\t\t\toMastheadFn.closeSearchLoginLoggedIn( elm.oMasthead.settings.searchElm, true );\r\n\t\t\toMastheadFn.closeSearchLoginLoggedIn( elm.oMasthead.settings.loginElm, true );\r\n\t\t\toMastheadFn.closeSearchLoginLoggedIn( elm.oMasthead.settings.loggedInElm, true );\r\n\r\n\t\t\tif ( closeAll ) {\r\n\t\t\t\tsetTimeout( function timeoutFn() {\r\n\t\t\t\t\tif ( closeOverlay ) {\r\n\t\t\t\t\t\tif ( elm.oMasthead.settings.pageWrapperElm.classList.contains( 'is-open' ) ) {\r\n\t\t\t\t\t\t\tif ( elm.oMasthead.settings.wholeNavElm.classList.contains( 'is-animating' ) ) {\r\n\t\t\t\t\t\t\t\tnavigationInteval = setInterval( function intervalFn() {\r\n\t\t\t\t\t\t\t\t\tif ( elm.oMasthead.settings.wholeNavElm.classList.contains( 'is-animating' ) ) {\r\n\t\t\t\t\t\t\t\t\t\t// Do nothing still animating\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tclearInterval( navigationInteval );\r\n\t\t\t\t\t\t\t\t\t\telm.oMasthead.settings.pageWrapperElm.classList.remove( 'is-open' );\r\n\t\t\t\t\t\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.remove( 'js-o-masthead--is-open' );\r\n\t\t\t\t\t\t\t\t\t\tutility.slideToggle( elm.oMasthead.settings.extraContentAreaElm, oMastheadFn.settings.animationSpeed, {\r\n\t\t\t\t\t\t\t\t\t\t\tvariant : 'down',\r\n\t\t\t\t\t\t\t\t\t\t\toverlapMargin : true,\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\telm.oMasthead.settings.changeInProgress = false;\r\n\t\t\t\t\t\t\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}, 10 );\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tutility.slideToggle( elm.oMasthead.settings.wholeNavElm, oMastheadFn.settings.animationSpeed, {\r\n\t\t\t\t\t\t\t\t\tvariant : 'up',\r\n\t\t\t\t\t\t\t\t\tcallback : function() {\r\n\t\t\t\t\t\t\t\t\t\telm.oMasthead.settings.pageWrapperElm.classList.remove( 'is-open' );\r\n\t\t\t\t\t\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.remove( 'js-o-masthead--is-open' );\r\n\t\t\t\t\t\t\t\t\t\tutility.slideToggle( elm.oMasthead.settings.extraContentAreaElm, oMastheadFn.settings.animationSpeed, {\r\n\t\t\t\t\t\t\t\t\t\t\tvariant : 'down',\r\n\t\t\t\t\t\t\t\t\t\t\toverlapMargin : true,\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\telm.oMasthead.settings.changeInProgress = false;\r\n\t\t\t\t\t\t\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Do nothing - close being forced by third parameter, but not needed since wholeNavElm is already closed!\r\n\t\t\t\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tutility.slideToggle( elm.oMasthead.settings.wholeNavElm, oMastheadFn.settings.animationSpeed, { variant : 'up' });\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 20 );\r\n\t\t\t}\r\n\r\n\t\t\toMastheadFn.instantHideShow( elm.oMasthead.settings.mastheadElm, false, false );\r\n\t\t\tif ( elm.oMasthead.settings.wholePageElm.classList.contains( 'js-o-masthead--is-open' ) ) {\r\n\t\t\t\tif ( elm.oMasthead.settings.currLink ) {\r\n\t\t\t\t\telm.oMasthead.settings.currLink.focus();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telm.oMasthead.settings.pageWrapperElm.style.minHeight = 'auto';\r\n\t\t\telm.oMasthead.settings.wholePageElm.classList.remove( 'js-o-masthead--show-close' );\r\n\t\t\telm.oMasthead.settings.wholePageElm.classList.remove( 'js-o-masthead--search-open' );\r\n\t\t\telm.oMasthead.settings.wholePageElm.classList.remove( 'js-o-masthead--narrow-megamenu' );\r\n\t\t\telm.oMasthead.settings.narrowMenu = false;\r\n\t\t},\r\n\r\n\t\tcloseSearchLoginLoggedIn : function( sectionElm, fade ) {\r\n\t\t\tif ( utility.isNode( sectionElm ) ) {\r\n\t\t\t\tif ( fade ) {\r\n\t\t\t\t\tutility.fade( sectionElm, oMastheadFn.settings.animationSpeed, { variant : 'out' });\r\n\t\t\t\t} else {\r\n\t\t\t\t\tutility.slideToggle( sectionElm, oMastheadFn.settings.animationSpeed, { variant : 'up' });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcloseSections : function( elm, speed ) {\r\n\t\t\tvar linkSelector = '.o-masthead__skip-links a.is-open, .o-masthead__primary-nav:not(.o-masthead__primary-nav--basic) a, .js-m-site-country-selection__country.is-open';\r\n\t\t\t// Loop through all open sections a reset the aria attributes and text, then hide the area associated to them.\r\n\t\t\tdocument.querySelectorAll( linkSelector ).forEach( function loop( openLinkElm ) {\r\n\t\t\t\tvar openAreaElm;\r\n\r\n\t\t\t\topenLinkElm.classList.remove( 'is-open' );\r\n\t\t\t\topenLinkElm.setAttribute( 'aria-expanded', 'false' );\r\n\r\n\t\t\t\tif ( openLinkElm.classList.contains( 'js-m-site-country-selection__country' ) ) {\r\n\t\t\t\t\topenAreaElm = elm.oMasthead.settings.countryElm;\r\n\t\t\t\t} else {\r\n\t\t\t\t\topenAreaElm = document.querySelector( openLinkElm.getAttribute( 'href' ) );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( elm.oMasthead.settings.narrowMenu ) {\r\n\t\t\t\t\tutility.slideToggle( openAreaElm, speed, { variant : 'up' });\r\n\t\t\t\t} else {\r\n\t\t\t\t\tutility.fade( openAreaElm, speed, { variant : 'out' });\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\taccordionSubSections : function( elm, sectionLinkElm, sectionContentElm ) {\r\n\t\t\t// If on small screen or tabs not fitting allow accordion of sub sections\r\n\t\t\tif ( elm.oMasthead.settings.currentBreakpoint === utility.smallTag || !elm.oMasthead.settings.wholePageElm.classList.contains( 'js-o-masthead--fit-tabs' ) ) {\r\n\t\t\t\tif ( sectionLinkElm.classList.contains( 'is-open' ) ) {\r\n\t\t\t\t\tsectionLinkElm.classList.remove( 'is-open' );\r\n\t\t\t\t\tsectionLinkElm.setAttribute( 'aria-expanded', 'false' );\r\n\t\t\t\t\tutility.slideToggle( sectionContentElm, oMastheadFn.settings.animationSpeed, {\r\n\t\t\t\t\t\tvariant : 'up',\r\n\t\t\t\t\t\tcallback : function() {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Hide all open sections\r\n\t\t\t\t\telm.oMasthead.settings.navSubSections.forEach( function loop( item ) {\r\n\t\t\t\t\t\tif ( item[ 0 ].classList.contains( 'is-open' ) ) {\r\n\t\t\t\t\t\t\titem[ 0 ].classList.remove( 'is-open' );\r\n\t\t\t\t\t\t\titem[ 0 ].setAttribute( 'aria-expanded', 'false' );\r\n\t\t\t\t\t\t\tutility.slideToggle( item[ 1 ], oMastheadFn.settings.animationSpeed, { variant : 'up' });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tsectionLinkElm.classList.add( 'is-open' );\r\n\t\t\t\t\tsectionLinkElm.setAttribute( 'aria-expanded', 'true' );\r\n\t\t\t\t\tutility.slideToggle( sectionContentElm, oMastheadFn.settings.animationSpeed, {\r\n\t\t\t\t\t\tvariant : 'down',\r\n\t\t\t\t\t\tcallback : function() {\r\n\t\t\t\t\t\t\tvar sectionOffset = utility.offset( sectionLinkElm ).top,\r\n\t\t\t\t\t\t\t\twindowOffset = window.scrollY,\r\n\t\t\t\t\t\t\t\tanimationLoops;\r\n\r\n\t\t\t\t\t\t\tif ( sectionOffset < windowOffset ) {\r\n\t\t\t\t\t\t\t\tanimationLoops = oMastheadFn.settings.animationSpeed / 20;\r\n\t\t\t\t\t\t\t\tanimationLoops = Number.parseInt( animationLoops, 10 );\r\n\r\n\t\t\t\t\t\t\t\toMastheadFn.repositionNavigation( sectionLinkElm, animationLoops, windowOffset );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telm.oMasthead.settings.navSectionHeadingLinks.forEach( function loop( linkElm ) {\r\n\t\t\t\t\tlinkElm.removeAttribute( 'tabindex' );\r\n\t\t\t\t});\r\n\t\t\t\tsetTimeout( function timeoutFn() {\r\n\t\t\t\t\telm.oMasthead.settings.pageWrapperElm.style.minHeight = utility.convertToPx( elm.oMasthead.settings.wholeNavElm.offsetHeight );\r\n\t\t\t\t}, oMastheadFn.settings.animationSpeed + 20 );\r\n\t\t\t} else {\r\n\t\t\t\telm.oMasthead.settings.navSectionHeadingLinks.forEach( function loop( linkElm ) {\r\n\t\t\t\t\tlinkElm.setAttribute( 'tabindex', '-1' );\r\n\t\t\t\t\tlinkElm.setAttribute( 'aria-expanded', 'true' );\r\n\t\t\t\t});\r\n\t\t\t\toMastheadFn.instantHideShow( sectionContentElm, false, false );\r\n\t\t\t\telm.oMasthead.settings.busy = false;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\trepositionNavigation : function( sectionLinkElm, animationLoops, windowOffset ) {\r\n\t\t\tvar newWindowOffset = windowOffset,\r\n\t\t\t\tnewAnimationLoops = animationLoops;\r\n\r\n\t\t\tif ( newAnimationLoops > 0 ) {\r\n\t\t\t\tsetTimeout( function timeoutFn() {\r\n\t\t\t\t\tvar sectionOffset = utility.offset( sectionLinkElm ).top;\r\n\r\n\t\t\t\t\tif ( newAnimationLoops === 1 ) {\r\n\t\t\t\t\t\tnewWindowOffset = sectionOffset;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tnewWindowOffset -= ( ( newWindowOffset - sectionOffset ) / newAnimationLoops );\r\n\t\t\t\t\t}\r\n\t\t\t\t\twindow.scrollTo( 0, newWindowOffset );\r\n\t\t\t\t\tnewAnimationLoops -= 1;\r\n\t\t\t\t\toMastheadFn.repositionNavigation( sectionLinkElm, newAnimationLoops, newWindowOffset );\r\n\t\t\t\t}, 10 );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonKeydown : function( e, linkElm, elm ) {\r\n\t\t\tvar hasHeaderLink,\r\n\t\t\t\tallHeaderLinks,\r\n\t\t\t\tvisibleNavLinks,\r\n\t\t\t\tvisibleMenuLinks,\r\n\t\t\t\tcurrentLinkElm,\r\n\t\t\t\tbodyLinkElm,\r\n\t\t\t\tcurrentIndex,\r\n\t\t\t\tprevLinkElm,\r\n\t\t\t\tlastHeaderLinkElm;\r\n\r\n\t\t\t// When tab has been pressed and a nav item is open do the following\r\n\t\t\tif ( e.key === 'Tab' && elm.oMasthead.settings.pageWrapperElm.classList.contains( 'is-open' ) ) {\r\n\t\t\t\thasHeaderLink = linkElm.closest( 'header' ) !== null;\r\n\t\t\t\tallHeaderLinks = [].slice.call( elm.oMasthead.settings.wholePageElm.querySelectorAll( '.o-masthead a, .m-site-country-selection a' ) ).filter( function filterFn( el ) {\r\n\t\t\t\t\tvar isVisible = false;\r\n\t\t\t\t\tif ( utility.isVisible( el ) && el.getAttribute( 'tabindex' ) !== '-1' ) {\r\n\t\t\t\t\t\tisVisible = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn isVisible;\r\n\t\t\t\t});\r\n\t\t\t\tvisibleNavLinks = [].slice.call( elm.oMasthead.settings.wholeNavElm.querySelectorAll( 'a, input, button' ) ).filter( function filterFn( el ) {\r\n\t\t\t\t\tvar isVisible = false;\r\n\t\t\t\t\tif ( utility.isVisible( el ) && el.getAttribute( 'tabindex' ) !== '-1' ) {\r\n\t\t\t\t\t\tisVisible = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn isVisible;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif ( hasHeaderLink ) {\r\n\t\t\t\t\t// If the link is part of the header area...\r\n\t\t\t\t\toMastheadFn.keydownHeaderLink({\r\n\t\t\t\t\t\tevent : e,\r\n\t\t\t\t\t\tcurrentIndex : currentIndex,\r\n\t\t\t\t\t\tallHeaderLinks : allHeaderLinks,\r\n\t\t\t\t\t\tlinkElm : linkElm,\r\n\t\t\t\t\t\tprevLinkElm : prevLinkElm,\r\n\t\t\t\t\t\tvisibleNavLinks : visibleNavLinks,\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// If the link is not part of the header area...\r\n\t\t\t\t\tbodyLinkElm = linkElm.closest( '.o-masthead-navigation' ).length === 0;\r\n\t\t\t\t\tvisibleMenuLinks = [].slice.call( elm.oMasthead.settings.wholePageElm.querySelectorAll( '.o-masthead__skip-links li' ) ).filter( function filterFn( el ) {\r\n\t\t\t\t\t\tvar isVisible = false;\r\n\t\t\t\t\t\tif ( utility.isVisible( el ) && el.getAttribute( 'tabindex' ) !== '-1' ) {\r\n\t\t\t\t\t\t\tisVisible = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn isVisible;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvisibleMenuLinks.forEach( function loop( listItemElm ) {\r\n\t\t\t\t\t\tvisibleMenuLinks.concat( [].slice.call( listItemElm.querySelectorAll( 'a' ) ) );\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif ( bodyLinkElm ) {\r\n\t\t\t\t\t\t// If the link is not part of the header or navigation areas move the user back into the header system.\r\n\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\tlastHeaderLinkElm = allHeaderLinks[ allHeaderLinks.length - 1 ];\r\n\t\t\t\t\t\tif ( lastHeaderLinkElm.classList.add( 'is-open' ) ) {\r\n\t\t\t\t\t\t\tvisibleMenuLinks[ visibleMenuLinks.length - 1 ].focus();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tlastHeaderLinkElm.focus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\toMastheadFn.keydownNotBodyLink( elm, {\r\n\t\t\t\t\t\t\tcurrentLinkElm : currentLinkElm,\r\n\t\t\t\t\t\t\tallHeaderLinks : allHeaderLinks,\r\n\t\t\t\t\t\t\tevent : e,\r\n\t\t\t\t\t\t\tvisibleNavLinks : visibleNavLinks,\r\n\t\t\t\t\t\t\tlinkElm : linkElm,\r\n\t\t\t\t\t\t\tcurrentIndex : currentIndex,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tkeydownHeaderLink : function( vars ) {\r\n\t\t\tif ( vars.event.shiftKey ) {\r\n\t\t\t\t/*\r\n\t\t\t\t * If the shift key has also been pressed\r\n\t\t\t\t * Get the index of the link in comparison to other links within the header\r\n\t\t\t\t */\r\n\t\t\t\tvars.currentIndex = vars.allHeaderLinks.indexOf( vars.linkElm );\r\n\t\t\t\t/*\r\n\t\t\t\t * If the link is not the first link in the header check if the previous link is open.\r\n\t\t\t\t * If is open then move to the last link within the open navigation. Otherwise just move to the previous link.\r\n\t\t\t\t */\r\n\t\t\t\tif ( vars.currentIndex > 0 ) {\r\n\t\t\t\t\tvars.prevLinkElm = vars.allHeaderLinks[ vars.currentIndex - 1 ];\r\n\t\t\t\t\tif ( vars.prevLinkElm.classList.contains( 'is-open' ) ) {\r\n\t\t\t\t\t\tvars.event.preventDefault();\r\n\t\t\t\t\t\tvars.visibleNavLinks[ vars.visibleNavLinks.length - 1 ].focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if ( vars.linkElm.classList.contains( 'is-open' ) && vars.visibleNavLinks.length > 0 ) {\r\n\t\t\t/*\r\n\t\t\t * If the current link is set to open and the contents of the open area has links within it.\r\n\t\t\t * Move the user into the open navigation.\r\n\t\t\t * If the current link is not set to open and the last link in the header move the user back to the first link in the header.\r\n\t\t\t */\r\n\t\t\t\tvars.event.preventDefault();\r\n\t\t\t\tvars.visibleNavLinks[ 0 ].focus();\r\n\t\t\t} else if ( vars.allHeaderLinks.indexOf( vars.linkElm ) >= vars.allHeaderLinks.length - 1 ) {\r\n\t\t\t\tvars.event.preventDefault();\r\n\t\t\t\tvars.allHeaderLinks[ 0 ].focus();\r\n\t\t\t} else {\r\n\t\t\t\t// Do nothing\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tkeydownNotBodyLink : function( elm, vars ) {\r\n\t\t\tvars.currentLinkElm = vars.allHeaderLinks.filter( function filterFn( el ) {\r\n\t\t\t\treturn el.getAttribute( 'href' ) === elm.oMasthead.settings.current;\r\n\t\t\t})[ 0 ];\r\n\t\t\tif ( vars.event.shiftKey && vars.visibleNavLinks.indexOf( vars.linkElm ) === 0 ) {\r\n\t\t\t\t/*\r\n\t\t\t\t * If the shift key has also been pressed and the link is the first one in the visible navigation move\r\n\t\t\t\t * the user back onto the link that opened the navigation.\r\n\t\t\t\t */\r\n\t\t\t\tvars.event.preventDefault();\r\n\t\t\t\tvars.currentLinkElm.focus();\r\n\t\t\t} else if ( vars.event.shiftKey && vars.visibleNavLinks.indexOf( vars.linkElm ) === vars.visibleNavLinks.length - 1 ) {\r\n\t\t\t\t// Do nothing\r\n\t\t\t} else if ( vars.visibleNavLinks.indexOf( vars.linkElm ) === vars.visibleNavLinks.length - 1 ) {\r\n\t\t\t\t/*\r\n\t\t\t\t * If the link is the last link in the visible navigation move the user to the last link in the header unless the\r\n\t\t\t\t * user opened the navigation from the last link, then move the user to the first link in the header\r\n\t\t\t\t */\r\n\t\t\t\tvars.event.preventDefault();\r\n\r\n\t\t\t\tvars.currentIndex = vars.allHeaderLinks.indexOf( vars.currentLinkElm );\r\n\t\t\t\tif ( vars.currentIndex >= vars.allHeaderLinks.length - 1 ) {\r\n\t\t\t\t\tvars.allHeaderLinks[ 0 ].focus();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvars.allHeaderLinks[ vars.currentIndex + 1 ].focus();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// Do nothing\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsizeNavElements : function( elm, breakpoint ) {\r\n\t\t\t// If mobile then make link not tabbable\r\n\t\t\toMastheadFn.tabbableLink( elm.oMasthead.settings.searchLinkElm, breakpoint );\r\n\t\t\toMastheadFn.tabbableLink( elm.oMasthead.settings.loggedInLinkElm, breakpoint );\r\n\t\t},\r\n\r\n\t\ttabbableLink : function( linkElm, breakpoint ) {\r\n\t\t\t// If mobile then make link not tabbable\r\n\t\t\tif ( utility.isNode( linkElm ) ) {\r\n\t\t\t\tif ( breakpoint === utility.smallTag && !linkElm.classList.contains( 'js-tabbable' ) ) {\r\n\t\t\t\t\tlinkElm.setAttribute( 'tabindex', '-1' );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlinkElm.removeAttribute( 'tabindex' );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tpositionNav : function( elm, breakpoint ) {\r\n\t\t\tvar menuOpen = false,\r\n\t\t\t\tloginOpen = false,\r\n\t\t\t\ttabsShowing,\r\n\t\t\t\ttabNowShowing;\r\n\r\n\t\t\t// If the menu is open then make sure the page is tall enough to contain the open menu\r\n\t\t\tif ( elm.oMasthead.settings.pageWrapperElm.classList.contains( 'is-open' ) ) {\r\n\t\t\t\tmenuOpen = true;\r\n\t\t\t\telm.oMasthead.settings.pageWrapperElm.classList.remove( 'is-open' );\r\n\t\t\t\toMastheadFn.instantHideShow( elm.oMasthead.settings.extraContentAreaElm, false, false );\r\n\t\t\t}\r\n\t\t\t// If the login menu is open\r\n\t\t\tif ( menuOpen && elm.oMasthead.settings.loginLinkUrl === elm.oMasthead.settings.current ) {\r\n\t\t\t\tloginOpen = true;\r\n\t\t\t}\r\n\r\n\t\t\t// Store if tabs are currently being shown and then reset the masthead back to basics\r\n\t\t\ttabsShowing = elm.oMasthead.settings.wholePageElm.classList.contains( 'js-o-masthead--fit-tabs' );\r\n\r\n\t\t\toMastheadFn.fitNavigation( elm, breakpoint );\r\n\r\n\t\t\ttabNowShowing = elm.oMasthead.settings.wholePageElm.classList.contains( 'js-o-masthead--fit-tabs' );\r\n\r\n\t\t\t// If the menu is open then make sure the page is tall enough to contain the open menu\r\n\t\t\tif ( menuOpen ) {\r\n\t\t\t\telm.oMasthead.settings.pageWrapperElm.classList.add( 'is-open' );\r\n\r\n\t\t\t\tif ( elm.oMasthead.settings.wholePageElm.classList.contains( 'js-o-masthead--wont-fit-extra-content' ) ) {\r\n\t\t\t\t\toMastheadFn.instantHideShow( elm.oMasthead.settings.extraContentAreaElm, true, false );\r\n\t\t\t\t}\r\n\r\n\t\t\t\telm.oMasthead.settings.pageWrapperElm.style.minHeight = utility.convertToPx( elm.oMasthead.settings.wholeNavElm );\r\n\t\t\t}\r\n\r\n\t\t\toMastheadFn.positionNavPart2( elm, breakpoint, tabsShowing, tabNowShowing );\r\n\r\n\t\t\t// Reset heights on the section descriptions\r\n\t\t\telm.oMasthead.settings.allNavSectionDescriptions.forEach( function loop( itemElm ) {\r\n\t\t\t\titemElm.style.minHeight = 0;\r\n\t\t\t});\r\n\r\n\t\t\toMastheadFn.positionNavPart3( elm, breakpoint, tabsShowing, tabNowShowing, loginOpen );\r\n\t\t},\r\n\r\n\t\tpositionNavPart2 : function( elm, breakpoint, tabsShowing, tabNowShowing ) {\r\n\t\t\t// If on mobile or tabs are not showing allow heading to be clickable\r\n\t\t\tif ( breakpoint === utility.smallTag || tabsShowing !== tabNowShowing ) {\r\n\t\t\t\tif ( breakpoint !== utility.smallTag && tabNowShowing ) {\r\n\t\t\t\t\telm.oMasthead.settings.navSectionHeadingLinks.forEach( function loop( linkElm ) {\r\n\t\t\t\t\t\tlinkElm.setAttribute( 'tabindex', '-1' );\r\n\t\t\t\t\t});\r\n\t\t\t\t\telm.oMasthead.settings.navSubSections.forEach( function loop( item ) {\r\n\t\t\t\t\t\titem[ 0 ].setAttribute( 'tabindex', '-1' );\r\n\t\t\t\t\t\titem[ 0 ].setAttribute( 'aria-expanded', 'true' );\r\n\t\t\t\t\t\toMastheadFn.instantHideShow( item[ 1 ], false, false );\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\telm.oMasthead.settings.navSectionHeadingLinks.forEach( function loop( item ) {\r\n\t\t\t\t\t\titem.removeAttribute( 'tabindex' );\r\n\t\t\t\t\t});\r\n\t\t\t\t\telm.oMasthead.settings.navSubSections.forEach( function loop( item ) {\r\n\t\t\t\t\t\titem[ 0 ].classList.remove( 'is-open' );\r\n\t\t\t\t\t\titem[ 0 ].removeAttribute( 'tabindex' );\r\n\t\t\t\t\t\titem[ 0 ].setAttribute( 'aria-expanded', 'false' );\r\n\t\t\t\t\t\toMastheadFn.instantHideShow( item[ 1 ], true, false );\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tpositionNavPart3 : function( elm, breakpoint, tabsShowing, tabNowShowing, loginOpen ) {\r\n\t\t\t// If at desktop and the display of primary tabs has changed then close any menu currently open\r\n\t\t\tif ( ( breakpoint !== utility.smallTag && tabsShowing !== tabNowShowing ) || ( loginOpen && elm.oMasthead.settings.wholePageElm.classList.contains( 'js-o-masthead--wont-fit-login' ) ) ) {\r\n\t\t\t\toMastheadFn.close( elm, true, true );\r\n\t\t\t} else {\r\n\t\t\t\tif ( breakpoint !== utility.smallTag && tabNowShowing ) {\r\n\t\t\t\t\t// If not on small screen or tabs fit match the height of the descriptions across a row\r\n\t\t\t\t\toMastheadFn.alignDescriptions( elm, breakpoint );\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Do nothing\r\n\t\t\t\t}\r\n\t\t\t\telm.oMasthead.settings.pageWrapperElm.style.minHeight = utility.convertToPx( elm.oMasthead.settings.wholeNavElm.offsetHeight );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\talignDescriptions : function( elm, breakpoint ) {\r\n\t\t\tvar visibleDescriptions = [].slice.call( elm.oMasthead.settings.allNavSectionDescriptions ).filter( function filterFn( el ) {\r\n\t\t\t\t\treturn utility.isVisible( el );\r\n\t\t\t\t}),\r\n\t\t\t\tdescriptionsInRow,\r\n\t\t\t\tstart,\r\n\t\t\t\tend,\r\n\t\t\t\trows = 1,\r\n\t\t\t\ti,\r\n\t\t\t\tminHeight,\r\n\t\t\t\trowLoop = function( descriptionElm ) {\r\n\t\t\t\t\tdescriptionElm.style.minHeight = utility.convertToPx( minHeight ); // Set the min height on all items within the row\r\n\t\t\t\t};\r\n\r\n\t\t\tif ( visibleDescriptions.length > 0 ) {\r\n\t\t\t\tif ( breakpoint === utility.mediumTag ) {\r\n\t\t\t\t\t// Calculate the number of rows there are to align\r\n\t\t\t\t\trows = Math.ceil( visibleDescriptions.length / 3 );\r\n\t\t\t\t}\r\n\t\t\t\tfor ( i = 0; i < rows; i++ ) {\r\n\t\t\t\t\tdescriptionsInRow = visibleDescriptions.slice( 0 );\r\n\r\n\t\t\t\t\tif ( breakpoint === utility.mediumTag ) {\r\n\t\t\t\t\t\tstart = i * 3; // Start of slice\r\n\t\t\t\t\t\tend = start + 3; // End of slice\r\n\t\t\t\t\t\tif ( end > visibleDescriptions.length ) {\r\n\t\t\t\t\t\t\tend = visibleDescriptions.length;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdescriptionsInRow = visibleDescriptions.slice( start, end );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( descriptionsInRow.length > 0 ) {\r\n\t\t\t\t\t\tminHeight = oMastheadFn.findTallestDescription( descriptionsInRow );\r\n\t\t\t\t\t\tdescriptionsInRow.forEach( rowLoop );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tfindTallestDescription : function( rowElm ) {\r\n\t\t\tvar minHeight = 0;\r\n\t\t\trowElm.forEach( function loop( thisRowElm ) {\r\n\t\t\t\tvar newHeight = thisRowElm.offsetHeight;\r\n\t\t\t\tif ( newHeight > minHeight ) {\r\n\t\t\t\t\tminHeight = newHeight; // If the description is the tallest in this set so far store the min height\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn minHeight;\r\n\t\t},\r\n\r\n\t\tfitNavigation : function( elm, breakpoint ) {\r\n\t\t\tvar allClasses = 'js-o-masthead--wont-fit-extra-content js-o-masthead--wont-fit-search js-o-masthead--wont-fit-login js-o-masthead--fit-tabs',\r\n\t\t\t\tmaxMenuHeight;\r\n\r\n\t\t\t// Reset all classes controlling the layout\r\n\t\t\tutility.removeClass( elm.oMasthead.settings.wholePageElm, allClasses );\r\n\r\n\t\t\t// If at desktop check for if the tabs and the extra content can fit and add styles appropriately\r\n\t\t\tif ( breakpoint !== utility.smallTag ) {\r\n\t\t\t\t// Get the base height of the masthead\r\n\t\t\t\tmaxMenuHeight = elm.oMasthead.settings.logoElm.offsetHeight + 2; // Add two pixel to allow for rounding errors when using browser zoom\r\n\r\n\t\t\t\t// Show the primary nav tabs\r\n\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--fit-tabs' );\r\n\r\n\t\t\t\t// Test if the primary nav tabs fit by checking if they have wrapped\r\n\t\t\t\tif ( elm.oMasthead.settings.mastheadElm.offsetHeight > maxMenuHeight ) {\r\n\t\t\t\t\t// If the tabs don't fit move the extra content below\r\n\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--wont-fit-extra-content' );\r\n\t\t\t\t\t// Test if the primary nav tabs fit by checking if they have wrapped and if they still won't fit reduce the search button size\r\n\t\t\t\t\tif ( elm.oMasthead.settings.navContainerElm.offsetHeight > maxMenuHeight ) {\r\n\t\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--wont-fit-search' );\r\n\t\t\t\t\t\t// Test if the primary nav tabs fit by checking if they have wrapped and if they still won't fit reduce the login register area size\r\n\t\t\t\t\t\tif ( elm.oMasthead.settings.navContainerElm.offsetHeight > maxMenuHeight ) {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--wont-fit-login' );\r\n\t\t\t\t\t\t\t// Test if the primary nav tabs fit by checking if they have wrapped and if they still won't fit set to use menu button\r\n\t\t\t\t\t\t\tif ( elm.oMasthead.settings.navContainerElm.offsetHeight > maxMenuHeight ) {\r\n\t\t\t\t\t\t\t\tutility.removeClass( elm.oMasthead.settings.wholePageElm, allClasses );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Test if the extra content still does not fit and push below\r\n\t\t\t\t\tif ( elm.oMasthead.settings.mastheadElm.offsetHeight > maxMenuHeight ) {\r\n\t\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--wont-fit-extra-content' );\r\n\t\t\t\t\t\t// Test if the search still does not fit and reduce size\r\n\t\t\t\t\t\tif ( elm.oMasthead.settings.navContainerElm.offsetHeight > maxMenuHeight ) {\r\n\t\t\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--wont-fit-search' );\r\n\t\t\t\t\t\t\t// Test if the login register still does not fit and reduce in size\r\n\t\t\t\t\t\t\tif ( elm.oMasthead.settings.navContainerElm.offsetHeight > maxMenuHeight ) {\r\n\t\t\t\t\t\t\t\telm.oMasthead.settings.wholePageElm.classList.add( 'js-o-masthead--wont-fit-login' );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t};\r\n\r\n\treturn {\r\n\t\tinitInstance : function( elm ) {\r\n\t\t\toMastheadFn.init( elm );\r\n\t\t},\r\n\t};\r\n});\r\n"]}