{"version":3,"sources":["pra-accessibility.js","accordion.js","datepicker.js","pra-cache.js","pra-glossary.js","expander.js","pra-nav-chapters.js","download-sticky.js","1-pagination.js","anchor-links.js","cookie-notice.js","gift-animated.js","glossary.js","iframe-blocker.js","home-news-carousel.js","in-view.js","image-carousel.js","jumplink.js","links-external.js","main.js","nav-chapters.js","nav-primary.js","news.js","pra-application-provision.js","pdf.js","pra-footnotes.js","pra-print-api.js","pra-search-listing.js","pra-time-travel-carousel.js","releases.js","scroll-to-top.js","search.js","share.js","table-scroll.js","tabs.js","videos.js"],"names":["PraAccessibility","srConditionalAnnouncement","element","attribute","length","textContent","getAttribute","announceMessage","className","successMsgContainer","document","querySelector","setAttribute","tabIndex","focus","Accordion","$","ready","selector","selectorHead","buttonSelector","contentSelector","selectorNoDesk","windowSize","window","innerWidth","duration","destroyDesk","init","this","bindAccordion","bindChangeEvent","destroyAccordion","TableScroll","addIDs","unbindAllClickEvents","bindClickEvents","on","clearTimeout","id","setTimeout","updateWindowSize","reset","removeAttr","each","i","$thisList","$thisButtons","children","find","$thisContent","unbindClickEvents","$listItems","$listButtons","$listContent","attr","$thisButton","parentId","parents","parent","e","$this","activateAccordion","preventDefault","stopPropagation","unbind","state","slideToggle","DatePicker","$datePickerEleOverride","$stickyNav","$datePickerElements","$datePickerEle","dateCloseOnScroll","scrollDiff","scrollY","lastScrollY","data","datepicker","blur","currentText","datePickerDateOverride","dateFormat","firstDay","showButtonPanel","closeText","changeMonth","changeYear","yearRange","Date","getFullYear","beforeShow","css","scroll-behavior","scroll-padding-top","bind","removeClass","addClass","onClose","onSelect","dateText","inst","urlDateString","input","replace","urlPath","location","pathname","endsWith","slice","substring","lastIndexOf","test","_gotoToday","$datepickerElement","_getInst","_get","dateStr","_formatDate","apply","PraCache","regexDateText","regexDateUrl","rulebookDateServer","timelineElement","timelineMessageElement","timelineMessageState","notFoundElement","processHistoryTimeline","processPageLinks","processPageContent","setElementUrl","isAnchor","url","textToReplace","includes","href","upsertDateUrl","let","nodeName","toLowerCase","hasAttribute","startsWith","trim","split","message","bookTitle","text","dataset","effectiveDate","downloadTitle","notFoundText","PraGlossary","glossaryModalUpdatePanelJS","glossaryModalUpdatePanel","glossaryEndpoint","glossaryModalDataContainer","activeGlossaryElem","focusableElements","firstFocusableElement","focusableContent","lastFocusableElement","glossaryModalBreadcrumbList","glossaryModalAppendToBreadcrumbClass","lastGlossaryModalGlossaryTermGroupId","glossaryLinkSelectors","loadingElement","openGlossaryModal","stop","slideDown","scrollTo","closeGlossaryModal","slideUp","scrollToSubDefBox","subDefBox","animate","scrollTop","offset","top","height","glossaryLinkOnClick","event","subDefinitionBox","closest","glossaryBoxContainer","glossaryId","hasClass","appendToBreadcrumb","hasBreadcrumb","activeElement","existingSubDefBox","empty","$result","after","prependTo","ajax","type","contentType","JSON","stringify","glossaryTermGroupId","breadcrumbList","dataType","beforeSend","show","success","jsonResponse","$searchContainer","getElementById","dataNoVersionText","dataNoVersionLinkText","dataNoVersionLinkUrl","dataApplicablePart","dataApplicablePartSr","dataIsExternallyDefinedText","dataLegalInstruments","dataLegalInstrumentsUrl","dataCloseDialog","dataClose","newSubDefBox","term","Term","NoVersion","ApplicablePart","definition","IsExternallyDefined","Definition","EffectiveDate","GlossaryTermGroupId","prepend","breadcrumbs","append","BreadcrumbList","forEach","index","array","Url","DisplayName","singleClass","legalInstrumentsUrl","legalInstrumentsText","centralGlossaryUrl","centralGlossaryText","legalInstrumentsHref","RedirectGlossaryTermGroupId","centralGlossary","ContentType","encodeURIComponent","toUpperCase","hide","printAnchor","pdfAnchor","emailAnchor","hrefToFormat","indexOf","GlossaryTermId","reduce","p","c","console","log","mailtoToFormat","regex","value","replacement","pattern","encodeURI","origin","querySelectorAll","error","jqXHR","textStatus","errorThrown","complete","$matchedGlossaryLink","remove","addEventListener","is","target","has","classList","contains","key","keyCode","shiftKey","hash","first","click","Expander","content","btnClose","modeAttr","modeAttrOpen","modeSingle","$expanderElems","$expander","$expanderContent","warn","setDefaultState","setStateText","bindClickEvent","unbindClickEvent","setupContent","bindClickClose","setAriaAttr","setFocus","off","$elem","stateLink","stateContent","childNodes","nodeValue","PraNavChapters","progressBar","praChapters","checkSize","outerHeight","toggleBoolAttr","ele","resize","lastFocusedElement","anchors","focusedElement","last","scroll","winScroll","body","documentElement","scrollHeight","clientHeight","style","width","not","chapter","chapterNo","chapterHeading","noAndHeading","DownloadSticky","pages","$pages","scrollClass","$pageBreaks","urlParams","vars","hashes","push","newHTML","html","map","page","join","jQuery","slick","focusOnChange","focusOnSelect","accessibility","slidesToShow","slidesToScroll","arrows","fade","dots","autoplay","adaptiveHeight","infinite","swipe","draggable","prevArrow","nextArrow","direction","name","position","currentSlide","nextSlide","$element","tabindex","String","prototype","searchString","anchorContainers","getElementsByClassName","j","hTagsName","attributes","getNamedItem","elements","getElementsByTagName","list","createElement","k","l","innerText","linkedElement","link","appendChild","title","titleText","$cookieNotice","removePanel","addCookie","consentValue","days","cname","d","cvalue","exdays","setTime","getTime","expires","toUTCString","cookie","ca","decodeURIComponent","charAt","thisAttr","SetAnalytics","setTagManager","IframeBlocker","selectorButton","isSticky","isEndPoint","isDisabled","classActive","classAbsolute","classOpen","endPointClass","headerHeight","selectorWidth","contentWidth","viewPortHeight","offsetElRound","endStickyPosition","startPosition","rightPosition","footerHeight","footerPosition","getWindowSize","getElSize","checkOffsetEl","setPosition","bindHoverEvent","bindKeyboardEvent","offsetEl","Math","round","footerPositionRound","endPointPosition","elRightPosition","removeHideClass","containerPercentage","outerWidth","elHeight","addAbsoluteClass","winScrollRound","addStickyClass","removeAbsoluteClass","removeStickyClass","addEndPointClass","removeEndPointClass","addOpenClass","removeOpenClass","AnimatedGif","selectorText","selectorImg","bindClickOff","$thisContainer","$thisImg","thisSelectorAttr","addClassActive","Glossary","buttonClose","pageEditMode","createTitle","bindClickOpen","$thisSelector","findMatchContent","LinksExternal","thisText","thisTitle","idLabel","idDescription","descrWrapper","$matchedContentEl","thisContent","siblings","wrapAll","showModal","$thisBtClose","hideModal","bindKeyDownClose","bindClickOutside","currentContentainer","removeFocus","$childContainer","$childContent","$focusableElements","firstFocusedEl","lastFocusedEl","CheckCookies","slideContainer","slide","$homeCarousel","setAriaAttributes","autoplaySpeed","before","toggleClass","thisId","$matchedSlideLink","thisAriaLabel","getCookie","selectorOverlay","blockerImage","videoPlayer","iframeId","videoID","iframeTitle","$thisIframe","iframeType","iframeOverlay","iframeImage","iframeVideo","crateIframe","removeBlocker","buildTableau","thisIframe","tag","src","frameBorder","tableauPlaceholder","tableauObj","iframeWidth","iframeHeight","iframeHeightMobile","scriptElement","inView","selection","scrollOffset","viewportAll","elTop","elBottom","winHeight","getStyle","el","prop","getComputedStyle","defaultView","currentStyle","nodeList","nodeArray","filter","parentNode","inViewport","elClientRect","getBoundingClientRect","offsetHeight","bottom","innerHeight","isVisible","isElementVisible","opacity","display","visibility","nodeType","nav","asNavFor","carousel","featherlightGallery","previousIcon","nextIcon","galleryFadeIn","galleryFadeOut","JumpLink","contentNav","navHeight","thisHash","lineBarHeight","iconExternal","addLinkFeautures","$externalLink","$thisLink","$thisLinkContentBlock","$thisLinkAccordion","$thisLinkExpander","$thisLinkBoxwrap","$thisLinkTimeline","$thisLinkModal","listExcluded","Main","navigator","maxTouchPoints","msMaxTouchPoints","val","Modernizr","objectfit","$imageContainer","imgUrl","NavChapters","selectorContainer","linkNav","classCurrent","lineBar","lineBarIndicator","scrollPercentage","listNav","section","heading","sectionHeading","verticalClass","selectorPublication","contentPublication","stopSticky","isHorizontal","isOpen","navListItem","backLinkNav","navHeightInitial","navNoStickyHeight","contentHeight","navChapersOffset","contentOffset","topOffsetDesk","navBreakPoint","addHorizontalClass","getHeading","addLineBar","showScrollingPercentage","bindScrollEvent","setStickyPosition","setAriaAttrs","bindClickButton","bindExpanderLink","heading2","$thisHeading","textH2","$section","eq","createNav","bindClickLink","nextUntil","andSelf","elementH3","$thisH2Id","h2Link","$thisMatched","$thisH3","thisH3Text","thisH3Id","next","getInViewSection","thisLink","checkOffsetSection","removeClassActive","resetAriaAttrs","$thisParent","resetPosition","unbindClickButton","resetHeight","animateNavChapt","offSetEl","offsetRound","navChapBar","combinedHeight","endScroll","endScrollNoSticky","endScrollNoStickyDesk","endScrollDesk","jumpToHeading","jumpToSection","contentHeading","combinedNavHeight","currentHeading","$currentHeading","$currentSection","currentSectionId","$navList","currentH2Id","$navItemH2","currentHeadingId","$navItemMatched","heightDoc","scrolledRound","addHideClass","combinedNavHead","contentHidden","NavPrimary","navPrimaryUl","selectorMenu","navHasChildren","dropdownToggle","subList","showElClass","openSubMenuClass","hoverClass","hideClass","backMenu","subNavSecondaryButton","subNavPrimaryButton","seconLevelUl","thirdLevelUl","firstSubLink","secondarySubLink","setAttributes","addCurrentClass","removeAttributes","resetMobileNav","unbindMobileEvent","bindMouseEvent","unbindMouseEvent","bindMobileEvents","setAriaMenuMobile","$thisListItem","addShowElClass","removeShowElClasss","$thisSubNav","$thisLi","closeDeskSubNav","openSubNav","clickedOutside","resetDeskNav","resetDeskSubNavDropdown","removeHideClasss","$liSiblings","$ulSiblings","$thisMenu","$thisMenuState","primaryNavState","$ulParent","$LiSiblings","$currentPageLink","addOpenSubMenuClass","removeOpenSubMenuClass","CP","AppProv","NEWS","obj","loading","initAjaxCall","reload","Page","loadResults","BOE","done","result","textCount","InfiniteScrolling","replaceWith","Results","fadeIn","Refiners","IEimages","setState","history","pushState","initRefreshTypes","checked","typeCheckboxes","toArray","typeCheckboxesValues","initRefreshSearchbox","SearchTerm","initRefreshDirection","Direction","initRefreshDate","DateFrom","DateTo","undefined","initRefreshGrid","grid","selectorId","dataPlaceholder","submit","dataEmpty","clear","accessibleAutocomplete","source","query","syncResults","initGetFilters","results","valuesFiltered","suggestions","confirmOnBlur","displayMenu","minLength","placeholder","showNoOptionsFound","onConfirm","templates","inputValue","suggestion","keyup","which","initFilters","initDirection","elem","thisToggle","$thisSiblings","nextSiblingsToggle","initPagination","pagerDataElement","currentPage","pageCount","parseInt","LoadMore","initClearFilters","dateFrom","dateTo","queryType","queryTaxonomy","typeValues","searchCtrl","queryTypeOptions","NewsTypes","taxonomyValues","taxonomyValuesAvailable","NewsTaxonomies","fromVal","toVal","parseToISOString","setDate","getDate","Id","NewsPageDataSourceID","PageSize","NewsPageSize","NewsTypesAvailable","Taxonomies","TaxonomiesAvailable","Grid","initGridState","isInViewPort","elementTop","elementBottom","viewportTop","viewportBottom","InfiniteScroll","initialize","setupEvents","handleScroll","initRefreshTaxonomies","performance","navigation","ajaxTransport","options","originalOptions","FormData","ArrayBuffer","Blob","send","headers","callback","xhr","XMLHttpRequest","async","responseType","username","password","response","status","statusText","getAllResponseHeaders","open","setRequestHeader","abort","verifiedPdf","info","genMsg","ajaxSettings","onFail","onSuccess","form","isFloating","button","hiddenAlert","defaultHtml","action","retries","timeout","fail","jqXhr","disposition","getResponseHeader","headerParts","keyValuePairs","keyValuePair","blob","URL","createObjectURL","download","filename","wrapper","container","numberPlaceholder","contentPlaceholder","attrDataAppProvvision","attrDataAppProvvisionTrue","chapterClass","ellipsisClassName","contentLength","buttonShowClassName","buttonCloseClassName","expandedAttr","expandedShowAttr","expandedHideAttr","expandedTextSelector","update","appProvision","contentText","number","clone","appProvisionObserver","IntersectionObserver","entries","observer","entry","isIntersecting","chapterAppProvvision","rootMargin","observe","classNameAdd","isExpanded","expandedText","PraFootnotes","footnoteLinks","ensureBrackets","needsUpdating","linkText","printApi","docEndpoint","pdfEndpoint","DoExportOfUrlHandler","extension","endpoint","requestBody","currentTarget","HTMLAnchorElement","DownloadExtension","DownloadEndpoint","xhttp","add","resendXhr","sendXhr","bodyData","PraSearchListing","rootId","rootElement","endpointAttribute","paginationClassAttribute","paginationClass","containerId","loadingId","errorId","errorElement","triggerSearchAttribute","triggerHiddenAttributeText","triggerHiddenAttribute","triggerClearAttributeText","triggerClearAttribute","triggerClearSkipAjaxAttribute","triggerClearDependencyAttributeText","extraParameterAttribute","urlIncludeParameterAttribute","staticKeepAttribute","ignoreTodayDefaultDataAttribute","isAjaxAllowed","isFirstAjaxCall","lastAjaxParameters","attrType","attrTypeSearch","attrTypeCheckbox","attrRoleTab","attrActiveClass","attrClassDatepicker","dateLocale","querystringSymbol","initTriggers","initOnPopState","$hiddenTrigger","$hiddenInput","$clearTrigger","$clearTriggerTargetElements","tagName","toLocaleDateString","resetPagination","inputType","$checkbox","$checkboxes","attrValue","$clearDependencyTriggerSelectors","$clearDependencyTriggerTargetElements","$tabs","activeClass","ariaDisabled","ariaSelected","initDatePickerOnSelect","skipPushState","ajaxParameters","extraParameters","parametersMiddle","getAjaxParameters","getExtraAjaxParameters","htmlResponse","$htmlResponse","onAjaxError","getUrlParameters","outerHTML","reinitComponents","err","$validSearchElements","realValue","elementsToKvpQueryString","$includedHiddenInputs","$includedUrlParams","$validHiddenInputs","$elements","params","Array","realDate","splitDate","pad","padStart","Object","keys","$paginationElements","clickedIndex","slickGoTo","setOption","speed","rows","responsive","breakpoint","settings","SEARCH","initAutocomplete","ContentPageSearchDataSourceID","errorText","search","NumResultsTxt","initRefreshOrderBy","OrderBy","isUndefined","Submit","targetPage","queryParam","extraParams","initSortedBy","sortBy","ContentPageTypes","ContentPageTaxonomies","SortByParameter","ContentPageSize","ReleaseTypes","ReleaseTypesAvailable","Share","$thisSelectorParent","toggleClassActive","tableRow","tableCol","setTheadPosition","$thisTable","thisRow","thisCol","thisTdHead","thisTh","thisTbody","thisTd","tHeadRowHeight","colHeadWidth","cellTd","cellWidth","cellTdHead","tdHeadWidth","cellTh","cellThWidth","scrollLeftValue","scrollLeft","scrollTopValue","$tabsWrap","$content","tab_id","iframe","fadeOut"],"mappings":"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","file":"BoE.min.js","sourcesContent":["var PraAccessibility = {\r\n\r\n\tsrConditionalAnnouncement: function (element, attribute) {\r\n\t\tif (!element && !element.length && !attribute && !attribute.length) return;\r\n\t\telement.textContent = element.getAttribute(attribute);\r\n\t}, \r\n\r\n\tannounceMessage: function (className) {\r\n\t\t// Find the div element\r\n\t\tvar successMsgContainer = document.querySelector(\".\" + className);\r\n\t\tif (!successMsgContainer) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Set the attributes for the div\r\n\t\tsuccessMsgContainer.setAttribute(\"role\", \"alert\");\r\n\t\tsuccessMsgContainer.setAttribute(\"aria-live\", \"assertive\");\r\n\t\tsuccessMsgContainer.setAttribute(\"aria-atomic\", \"true\");\r\n\r\n\t\t// Set the focus to the div\r\n\t\tsuccessMsgContainer.tabIndex = -1;\r\n\t\tsuccessMsgContainer.focus();\r\n\t}\r\n\r\n};\r\n\r\n$(document).ready(function () {\r\n\r\n\tPraAccessibility.announceMessage(\"msg-basic\");\r\n\r\n});\r\n","// Accordion\r\nvar Accordion = {\r\n\r\n\tselector: '.accordion',\r\n\tselectorHead: '.accordion-head',\r\n\tbuttonSelector: '.accordion-button',\r\n\tcontentSelector: '.accordion-content',\r\n\tselectorNoDesk: '[data-accordion-mobile]',\r\n\twindowSize: window.innerWidth,\r\n\tduration: 250,\r\n\tdestroyDesk: false,\r\n\r\n\tinit: function () {\r\n\r\n\t\tif (!$(this.selector).length) return;\r\n\r\n\t\tthis.bindAccordion();\r\n\t\tthis.bindChangeEvent();\r\n\t\tif (Accordion.windowSize > 719) {\r\n\t\t\tAccordion.destroyDesk = true;\r\n\t\t\tthis.destroyAccordion();\r\n\t\t} else {\r\n\t\t\tAccordion.destroyDesk = false;\r\n\t\t}\r\n\t},\r\n\r\n\tbindAccordion: function () {\r\n\r\n\t\t// initialize table scroll\r\n\t\tTableScroll.init();\r\n\r\n\t\t// add IDs to the accordion list items\r\n\t\tthis.addIDs();\r\n\r\n\t\t// unbind click event to fix the bug in news&event page where the function is called twice\r\n\t\tthis.unbindAllClickEvents();\r\n\r\n\t\t// bind click events for toggle\r\n\t\tthis.bindClickEvents();\r\n\r\n\t},\r\n\r\n\tbindChangeEvent: function () {\r\n\r\n\t\t$(window).on('orientationchange resize', function () {\r\n\r\n\t\t\t// Throttle the resize event to fix adroid bug\r\n\t\t\tclearTimeout(this.id);\r\n\t\t\tthis.id = setTimeout(function () {\r\n\t\t\t\tif (Accordion.windowSize !== window.innerWidth) {\r\n\r\n\t\t\t\t\t// Update the width variable\r\n\t\t\t\t\tAccordion.updateWindowSize();\r\n\r\n\t\t\t\t\tif (Accordion.windowSize > 719) {\r\n\r\n\t\t\t\t\t\tAccordion.destroyDesk = true;\r\n\t\t\t\t\t\tAccordion.destroyAccordion();\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tAccordion.destroyDesk = false;\r\n\t\t\t\t\t\tAccordion.reset();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, 10);\r\n\r\n\t\t});\r\n\t},\r\n\r\n\tupdateWindowSize: function () {\r\n\r\n\t\t// get window width and update the global value\r\n\t\tAccordion.windowSize = window.innerWidth;\r\n\r\n\t},\r\n\r\n\treset: function () {\r\n\t\tAccordion.unbindAllClickEvents();\r\n\t\t$(Accordion.contentSelector).removeAttr('style');\r\n\t\tAccordion.bindAccordion();\r\n\t},\r\n\r\n\tdestroyAccordion: function () {\r\n\r\n\t\tif (Accordion.destroyDesk) {\r\n\r\n\t\t\t$(Accordion.selectorNoDesk).each(function (i) {\r\n\r\n\t\t\t\tvar $thisList = $(this),\r\n\t\t\t\t\t$thisItems = $thisList.children('li'),\r\n\t\t\t\t\t$thistHeads = $thisItems.children('.accordion-head'),\r\n\t\t\t\t\t$thisButtons = $thistHeads.find('.accordion-button'),\r\n\t\t\t\t\t$thisContent = $thisList.find('.accordion-content');\r\n\r\n\t\t\t\t$thisButtons.removeAttr('aria-expanded');\r\n\t\t\t\t$thisButtons.removeAttr('aria-controls');\r\n\t\t\t\t$thisContent.removeAttr('aria-hidden');\r\n\t\t\t\t$thisContent.removeAttr('id');\r\n\r\n\t\t\t\tAccordion.unbindClickEvents($thisButtons);\r\n\r\n\t\t\t});\r\n\r\n\t\t} else {\r\n\t\t\tAccordion.reset();\r\n\t\t}\r\n\t},\r\n\r\n\taddIDs: function () {\r\n\r\n\t\t// get all
  • elements within an accordion\r\n\t\tvar $accordions = $('.accordion'),\r\n\t\t\t$listItems = $accordions.children('li'),\r\n\t\t\t$listHead = $listItems.children('.accordion-head'),\r\n\t\t\t$listButtons = $listHead.find('.accordion-button'),\r\n\t\t\t$listContent = $listItems.find('.accordion-content');\r\n\r\n\t\t// add an IDs to each list\r\n\t\t$listItems.each(function (i) {\r\n\r\n\t\t\tvar $thisList = $(this);\r\n\r\n\t\t\t// add id to list item\r\n\t\t\t$thisList.attr('id', 'item-' + i);\r\n\r\n\t\t});\r\n\r\n\t\t$listButtons.each(function (i) {\r\n\r\n\t\t\tvar $thisButton = $(this),\r\n\t\t\t\tparentId = $thisButton.parents('li').attr('id');\r\n\r\n\t\t\t// add IDs aria attributes\r\n\t\t\t$thisButton.attr('aria-controls', 'content-' + parentId);\r\n\t\t\t$thisButton.attr('aria-expanded', false);\r\n\r\n\t\t});\r\n\r\n\t\t$listContent.each(function (i) {\r\n\r\n\t\t\tvar $thisContent = $(this),\r\n\t\t\t\tparentId = $thisContent.parent('li').attr('id');\r\n\r\n\t\t\t// add IDs to the content \r\n\t\t\t$thisContent.attr('id', 'content-' + parentId);\r\n\t\t\t$thisContent.attr('aria-hidden', true);\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tbindClickEvents: function () {\r\n\r\n\t\t$(Accordion.buttonSelector).on('click', function (e) {\r\n\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar $thisParent = $this.parents('li');\r\n\t\t\tvar $thisContent = $thisParent.find('.accordion-content');\r\n\r\n\t\t\t// update accordion state\r\n\t\t\tAccordion.activateAccordion($this, $thisContent);\r\n\r\n\t\t\t// prevent default click behavior\r\n\t\t\te.preventDefault();\r\n\t\t\t// stopPropagation to prevent the button click from bubbling up the DOM\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t});\r\n\t},\r\n\r\n\tunbindClickEvents: function ($thisButtons) {\r\n\t\t$thisButtons.unbind(\"click\");\r\n\t},\r\n\r\n\tunbindAllClickEvents: function () {\r\n\t\t$(Accordion.buttonSelector).unbind('click');\r\n\t},\r\n\r\n\tactivateAccordion: function ($this, $thisContent) {\r\n\r\n\t\tvar state = $this.attr('aria-expanded') === 'false' ? true : false;\r\n\r\n\t\t// set aria attribute state\r\n\t\t$this.attr('aria-expanded', state);\r\n\r\n\t\t// animate height\r\n\t\t$thisContent.slideToggle(Accordion.duration, function () {\r\n\r\n\t\t\t// set aria-hidden state and focus\r\n\t\t\t$thisContent.attr('aria-hidden', !state);\r\n\r\n\t\t});\r\n\r\n\t}\r\n\r\n};\r\n\r\n$(document).ready(function () {\r\n\tAccordion.init();\r\n});","var DatePicker = {\r\n\r\n\tinit: function ($datePickerEleOverride) {\r\n\t\tvar $stickyNav = $('.nav-sticky');\r\n\t\tvar $datePickerElements;\r\n\t\tif (!$datePickerEleOverride) {\r\n\t\t\t$datePickerElements = $('.date-field input[type=\"text\"]');\r\n\t\t} else {\r\n\t\t\t$datePickerElements = $datePickerEleOverride;\r\n\t\t}\r\n\t\tif (!$datePickerElements.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t$datePickerElements.each(function () {\r\n\t\t\t$datePickerEle = $(this);\r\n\t\t\tvar dateCloseOnScroll = function () {\r\n\t\t\t\t// Check for a threshold first:\r\n\t\t\t\t// there is a re-draw event of sorts that seems to sometimes trigger when the datepicker dropdown options are selected\r\n\t\t\t\t// i.e. it causes an 'invalid' scroll event\r\n\t\t\t\tvar scrollDiff = window.scrollY - window.lastScrollY;\r\n\t\t\t\tif (scrollDiff < -4 || scrollDiff > 4) {\r\n\t\t\t\t\tvar closeOnScroll = $datePickerEle.data('close-on-scroll');\r\n\t\t\t\t\tif (closeOnScroll === true) {\r\n\t\t\t\t\t\t$datePickerEle.datepicker().blur();\r\n\t\t\t\t\t\t$datePickerEle.datepicker(\"hide\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tvar currentText = '';\r\n\t\t\tvar showToday = $datePickerEle.data('show-today');\r\n\t\t\tif (showToday === true) {\r\n\t\t\t\tcurrentText = 'Today';\r\n\t\t\t}\r\n\t\t\t$datePickerEle.datepicker({\r\n\t\t\t\tdateFormat: \"dd/mm/yy\",\r\n\t\t\t\tfirstDay: 1,\r\n\t\t\t\tshowButtonPanel: true,\r\n\t\t\t\tcurrentText: currentText,\r\n\t\t\t\tcloseText: \"Close\",\r\n\t\t\t\tchangeMonth: true,\r\n\t\t\t\tchangeYear: true,\r\n\t\t\t\tyearRange: \"1946:\" + (new Date().getFullYear() + 5),\r\n\t\t\t\tbeforeShow: function () {\r\n\t\t\t\t\twindow.lastScrollY = window.scrollY;\r\n\t\t\t\t\tif ($stickyNav.length > 0) {\r\n\t\t\t\t\t\t$('html').css({\r\n\t\t\t\t\t\t\t'scroll-behavior': 'auto',\r\n\t\t\t\t\t\t\t'scroll-padding-top': 'inherit'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t$(window).bind('scroll', dateCloseOnScroll);\r\n\t\t\t\t\t}, 250);\r\n\t\t\t\t\t// Show the Today button\r\n\t\t\t\t\tvar $currentButton = $('.ui-datepicker-current');\r\n\t\t\t\t\tif ($currentButton.length > 0) {\r\n\t\t\t\t\t\t$('body').removeClass('ui-datepicker-show-today');\r\n\t\t\t\t\t\tvar showToday = $datePickerEle.data('show-today');\r\n\t\t\t\t\t\tif (showToday === true) {\r\n\t\t\t\t\t\t\t$('body').addClass('ui-datepicker-show-today');\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\tonClose: function () {\r\n\t\t\t\t\t$(window).unbind('scroll', dateCloseOnScroll);\r\n\t\t\t\t\tif ($stickyNav.length > 0) {\r\n\t\t\t\t\t\t$('html').css({\r\n\t\t\t\t\t\t\t'scroll-behavior': 'smooth'\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\tonSelect: function (dateText, inst) {\r\n\t\t\t\t\tvar datePickerUpdateUrl = inst.input.data('update-url');\r\n\t\t\t\t\tif (datePickerUpdateUrl === true) {\r\n\t\t\t\t\t\tdateText = dateText.replace(/\\//g, '-');\r\n\t\t\t\t\t\tvar urlPath = window.location.pathname;\r\n\t\t\t\t\t\tif (urlPath.endsWith('/')) {\r\n\t\t\t\t\t\t\turlPath = urlPath.slice(0, -1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar urlDateString = urlPath.substring(urlPath.lastIndexOf('/') + 1);\r\n\t\t\t\t\t\tvar regexDate = /^(0?[1-9]|[12][0-9]|3[01])[\\-](0?[1-9]|1[012])[\\-]\\d{4}$/g;\r\n\t\t\t\t\t\tif (regexDate.test(urlDateString)) {\r\n\t\t\t\t\t\t\turlPath = urlPath.replace(urlDateString, dateText);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\turlPath = urlPath + '/' + dateText;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twindow.location = urlPath;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t$.datepicker._gotoToday = function (id) {\r\n\t\t\t\tvar $datepickerElement = $(id);\r\n\t\t\t\t$datepickerElement.datepicker('setDate', new Date()).datepicker('hide').blur();\r\n\t\t\t\tvar inst = $.datepicker._getInst($datepickerElement[0]);\r\n\t\t\t\tvar onSelect = $.datepicker._get(inst, 'onSelect');\r\n\t\t\t\tif (onSelect) {\r\n\t\t\t\t\tdateStr = $.datepicker._formatDate(inst);\r\n\t\t\t\t\tonSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tvar datePickerDateOverride = $datePickerEle.data('date-override');\r\n\t\t\tif (datePickerDateOverride && datePickerDateOverride.length > 0) {\r\n\t\t\t\t$datePickerEle.datepicker('setDate', datePickerDateOverride);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n};\r\n\r\n$(document).ready(function () {\r\n\tDatePicker.init();\r\n});","const PraCache = {\r\n\r\n\tregexDateText: /(0?[1-9]|[12][0-9]|3[01])[\\/](0?[1-9]|1[012])[\\/]\\d{4}/g,\r\n\tregexDateUrl: /(0?[1-9]|[12][0-9]|3[01])[\\-](0?[1-9]|1[012])[\\-]\\d{4}/g,\r\n\trulebookDateServer: '',\r\n\t// No longer relying on cached date, now replaces any date with the correct one (see above)\r\n\t//cachedRulebookDateServer: $(document.querySelector('[data-cached-rulebook-date]')).data('cached-rulebook-date'),\r\n\ttimelineElement: $(document.querySelector('p.tt-panel')),\r\n\ttimelineMessageElement: $(document.querySelector('#timeline-message-container')),\r\n\ttimelineMessageState: $(document.querySelector('[data-rulebook-timeline-message-state]')).data('rulebook-timeline-message-state'),\r\n\tnotFoundElement: $(document.querySelector('#notfound-message-container strong')),\r\n\r\n\tinit: function () {\r\n\r\n\t\t// We intentionally do not check for 'rulebookDateServer' validity as it should always be set\r\n\r\n\t\t// Get 'rulebookDateServer'\r\n\t\tPraCache.rulebookDateServer = $(document.querySelector('[data-rulebook-date]')).data('rulebook-date');\r\n\r\n\t\t// Update any cached date references to the actual server effective date, etc\r\n\t\tPraCache.processHistoryTimeline();\r\n\t\tPraCache.processPageLinks();\r\n\t\tPraCache.processPageContent();\r\n\r\n\t},\r\n\r\n\tsetElementUrl: function (element, isAnchor, url, textToReplace) {\r\n\r\n\t\t// This can be an anchor HREF or text content i.e. \r\n\r\n\t\tif (url.includes(`/${textToReplace}`)) {\r\n\t\t\t// Ensure no trailing forward slash\r\n\t\t\turl = url.replace(`/${textToReplace}`, textToReplace);\r\n\t\t}\r\n\t\turl = url.replace(textToReplace, `/${PraCache.rulebookDateServer}${textToReplace}`);\r\n\t\tif (isAnchor) {\r\n\t\t\telement.href = url;\r\n\t\t} else {\r\n\t\t\telement.textContent = url;\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tupsertDateUrl: function (element) {\r\n\r\n\t\tif (element == null) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet isAnchor = true;\r\n\t\tlet url = '';\r\n\r\n\t\t// Check if (anchor) OR (table cell)\r\n\t\tif (element.nodeName.toLowerCase() === 'a') {\r\n\t\t\t// Ignore if invalid i.e. print layout\r\n\t\t\tif (!element.hasAttribute('href')\r\n\t\t\t\t|| !element.href\r\n\t\t\t\t|| !element.href.length\r\n\t\t\t\t|| element.href === '#'\r\n\t\t\t\t|| element.href.startsWith('#')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\turl = element.href;\r\n\t\t} else if (element.nodeName.toLowerCase() === 'td') {\r\n\t\t\tisAnchor = false;\r\n\t\t\turl = element.textContent.trim();\r\n\t\t}\r\n\r\n\t\tif (!url.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Update existing date\r\n\t\tif (PraCache.regexDateUrl.test(url)) {\r\n\t\t\turl = url.replace(PraCache.regexDateUrl, PraCache.rulebookDateServer);\r\n\t\t\tif (isAnchor) {\r\n\t\t\t\telement.href = url;\r\n\t\t\t} else {\r\n\t\t\t\telement.textContent = url;\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Insert new date\r\n\t\t// mailto:\r\n\t\tif (url.startsWith('mailto:')\r\n\t\t\t&& url.includes('?body=')) {\r\n\t\t\tlet textToReplace = '&subject=';\r\n\t\t\tconst beforeTextToReplace = url.split(textToReplace)[0];\r\n\t\t\t// %23 == #\r\n\t\t\tif (beforeTextToReplace.includes('%23')) {\r\n\t\t\t\ttextToReplace = '%23';\r\n\t\t\t}\r\n\t\t\tPraCache.setElementUrl(element, isAnchor, url, textToReplace);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// ? (Query String)\r\n\t\tif (url.includes('?')) {\r\n\t\t\tPraCache.setElementUrl(element, isAnchor, url, '?');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// # (Fragment)\r\n\t\tif (url.includes('#')) {\r\n\t\t\tPraCache.setElementUrl(element, isAnchor, url, '#');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Standard URL Path - append to the end\r\n\t\tif (url.endsWith('/')) {\r\n\t\t\t// Ensure no trailing forward slash\r\n\t\t\turl = url.slice(0, -1);\r\n\t\t}\r\n\t\turl = url + '/' + PraCache.rulebookDateServer;\r\n\t\tif (isAnchor) {\r\n\t\t\telement.href = url;\r\n\t\t} else {\r\n\t\t\telement.textContent = url;\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tprocessHistoryTimeline: function () {\r\n\r\n\t\t// Only valid if a history timeline is present and we have a state to set\r\n\t\tif (!PraCache.timelineElement.length\r\n\t\t\t|| !PraCache.timelineMessageElement.length\r\n\t\t\t|| !PraCache.timelineMessageState\r\n\t\t\t|| !PraCache.timelineMessageState.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// This is essentially a clint-side recreation of the server-side history timeline logic\r\n\t\t// which also includes the timeline message (separate to the history timeline)\r\n\r\n\t\t// Update class (for colour)\r\n\t\tPraCache.timelineElement.attr('class', `tt-panel tt-panel--${PraCache.timelineMessageState}`);\r\n\r\n\t\t// Update message\r\n\t\tPraCache.timelineMessageElement.text(\r\n\t\t\t(function () {\r\n\t\t\t\tconst message = PraCache.timelineMessageElement.data('timeline-message');\r\n\t\t\t\tconst bookTitle = PraCache.timelineMessageElement.data('timeline-book');\r\n\t\t\t\tif (bookTitle\r\n\t\t\t\t\t&& bookTitle.length) {\r\n\t\t\t\t\treturn message.replace('{0}', bookTitle);\r\n\t\t\t\t}\r\n\t\t\t\treturn PraCache.timelineMessageElement.data('timeline-message-notfound');\r\n\t\t\t})() +\r\n\t\t\t' ' +\r\n\t\t\tPraCache.timelineMessageState +\r\n\t\t\t' ' +\r\n\t\t\tPraCache.timelineMessageElement.data('timeline-on') +\r\n\t\t\t' ' +\r\n\t\t\tPraCache.rulebookDateServer.replace(/-/g, '/'));\r\n\r\n\t},\r\n\r\n\tprocessPageLinks: function () {\r\n\r\n\t\t// Rulebook Content i.e. Parts/Guidance\r\n\t\t// Pre-Rendering causes the Item Url Builder to not include dates\r\n\r\n\t\t// Export\r\n\t\t$('.part-content .page-utilities__list a').each(function () {\r\n\t\t\t// i.e. PDF\r\n\t\t\tif (this.hasAttribute('data-effective-date')) {\r\n\t\t\t\tthis.dataset.effectiveDate = PraCache.rulebookDateServer;\r\n\t\t\t}\r\n\t\t\tif (this.hasAttribute('data-download-title')) {\r\n\t\t\t\tthis.dataset.downloadTitle = this.dataset.downloadTitle.slice(0, -10) + PraCache.rulebookDateServer;\r\n\t\t\t}\r\n\t\t\tPraCache.upsertDateUrl(this);\r\n\t\t});\r\n\r\n\t\t// Content\r\n\t\t$('.part-content .div-row__col-2 a[data-rb-content-link], .glossary-box-links-container a[data-rb-content-link]').each(function () {\r\n\t\t\tPraCache.upsertDateUrl(this);\r\n\t\t});\r\n\r\n\t\t// Related Links - (web) OR (print)\r\n\t\t$('.rb-related-link').each(function () {\r\n\t\t\tPraCache.upsertDateUrl(this);\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tprocessPageContent: function () {\r\n\r\n\t\t// Rule Not Found\r\n\t\tif (PraCache.notFoundElement.length) {\r\n\t\t\tconst notFoundText = PraCache.notFoundElement.text();\r\n\t\t\tif (PraCache.regexDateText.test(notFoundText)) {\r\n\t\t\t\tPraCache.notFoundElement.text(notFoundText.replace(PraCache.regexDateText, PraCache.rulebookDateServer.replace(/-/g, '/')));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n};\r\n\r\n$(document).ready(function () {\r\n\tPraCache.init();\r\n});","// Note: Depends on pra-cache.js - accounted for in gulp-config.js ordering\r\n\r\nvar PraGlossary = {\r\n\r\n\tglossaryModalUpdatePanelJS: document.querySelector('.glossary-modal-update-panel'),\t\r\n\tglossaryModalUpdatePanel: $(document.querySelector('.glossary-modal-update-panel')),\r\n\tglossaryEndpoint: $(document.querySelector('[data-glossary-endpoint]')).data('glossary-endpoint'),\r\n\tglossaryModalDataContainer: $('.glossary-modal-data-container'),\r\n\tactiveGlossaryElem: '',\r\n\tfocusableElements: 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\r\n\tfirstFocusableElement: '',\r\n\tfocusableContent: '',\r\n\tlastFocusableElement: '',\r\n\tglossaryModalBreadcrumbList: {},\r\n\tglossaryModalAppendToBreadcrumbClass: 'append-to-breadcrumb',\r\n\tlastGlossaryModalGlossaryTermGroupId: '',\r\n\tglossaryLinkSelectors: '.glossary-link, a[href^=\"#glossary-term-\"]:not(.glossary-link)',\r\n\tloadingElement: $(document.querySelector('#pra-loading')),\r\n\r\n\topenGlossaryModal: function () {\r\n\t\tif (!PraGlossary.glossaryModalUpdatePanel.length) return;\r\n\t\tPraGlossary.glossaryModalUpdatePanel.stop(true, true).slideDown();\r\n\t\tPraGlossary.glossaryModalUpdatePanelJS.scrollTo(0, 0);\r\n\t\tPraGlossary.glossaryModalUpdatePanel.addClass('is-visible');\r\n\t},\r\n\r\n\tcloseGlossaryModal: function () {\r\n\t\tif (!PraGlossary.glossaryModalUpdatePanel.length) return;\r\n\t\tPraGlossary.glossaryModalUpdatePanel.slideUp();\r\n\t\tPraGlossary.glossaryModalUpdatePanel.removeClass('is-visible');\r\n\t\tPraGlossary.activeGlossaryElem.focus();\r\n\t},\r\n\r\n\tscrollToSubDefBox: function (subDefBox) {\r\n\t\t$('html, body').animate({ scrollTop: subDefBox.offset().top - ($('.global-header').height() + 10) }, 1200);\r\n\t},\r\n\r\n\tglossaryLinkOnClick: function (event) {\r\n\t\tevent.preventDefault();\r\n\r\n\t\tvar $this = $(this);\r\n\r\n\t\t// Check if we're clicking a glossary term inside a sub-definition box or in the search listing result\r\n\t\tvar subDefinitionBox = $this.closest('.glossary-box');\r\n\t\tvar glossaryBoxContainer = $this.closest('.glossary-box-links-container').find('.glossary-box-container');\r\n\r\n\t\tif (!glossaryBoxContainer.length\r\n\t\t\t&& !PraGlossary.glossaryModalUpdatePanel.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar href = $this.attr('href');\r\n\t\tif (!href.length || href === '#' || !href.includes('#glossary-term-')\r\n\t\t\t|| !PraGlossary.glossaryEndpoint.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar glossaryId = href.substring(href.lastIndexOf('-') + 1);\r\n\t\tif (glossaryId === PraGlossary.lastGlossaryModalGlossaryTermGroupId) {\r\n\t\t\tif (!PraGlossary.glossaryModalUpdatePanel.hasClass('is-visible')) {\r\n\t\t\t\tPraGlossary.openGlossaryModal();\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar appendToBreadcrumb = $this.hasClass(PraGlossary.glossaryModalAppendToBreadcrumbClass);\r\n\r\n\t\tif (!appendToBreadcrumb) {\r\n\t\t\tPraGlossary.activeGlossaryElem = document.activeElement;\r\n\t\t}\r\n\r\n\t\tvar hasBreadcrumb = false;\r\n\r\n\t\tif (PraGlossary.glossaryModalDataContainer.length) {\r\n\t\t\thasBreadcrumb = true;\r\n\t\t\tPraGlossary.closeGlossaryModal();\r\n\t\t\tPraGlossary.glossaryModalDataContainer.empty();\r\n\t\t}\r\n\r\n\t\tvar existingSubDefBox = glossaryBoxContainer.find('[data-glossary-id=\"' + glossaryId + '\"]');\r\n\t\tif (glossaryBoxContainer.length\r\n\t\t\t&& existingSubDefBox.length) {\r\n\t\t\t// When a term is clicked which is already open in the list, it will be promoted to the top of the list\r\n\t\t\tvar $result;\r\n\t\t\tif (subDefinitionBox.length) {\r\n\t\t\t\t// Note: $result is the subDefinitionBox not the existingSubDefBox, but that's okay\r\n\t\t\t\t$result = subDefinitionBox.after(existingSubDefBox);\r\n\t\t\t} else {\r\n\t\t\t\t$result = existingSubDefBox.prependTo(glossaryBoxContainer);\r\n\t\t\t}\r\n\t\t\tPraGlossary.scrollToSubDefBox($result);\r\n\t\t} else {\r\n\t\t\tconst effectiveDate = $(document.querySelector('[data-rulebook-date]')).data('rulebook-date');\r\n\r\n\t\t\t$.ajax({\r\n\t\t\t\ttype: 'POST',\r\n\t\t\t\turl: PraGlossary.glossaryEndpoint,\r\n\t\t\t\tcontentType: 'application/json',\r\n\t\t\t\tdata: JSON.stringify({\r\n\t\t\t\t\tglossaryTermGroupId: glossaryId,\r\n\t\t\t\t\teffectiveDate: effectiveDate,\r\n\t\t\t\t\thasBreadcrumb: hasBreadcrumb,\r\n\t\t\t\t\tappendToBreadcrumb: appendToBreadcrumb,\r\n\t\t\t\t\tbreadcrumbList: PraGlossary.glossaryModalBreadcrumbList\r\n\t\t\t\t}),\r\n\t\t\t\tdataType: 'json',\r\n\t\t\t\tbeforeSend: function () {\r\n\t\t\t\t\tPraGlossary.loadingElement.show();\r\n\t\t\t\t},\r\n\t\t\t\tsuccess: function (jsonResponse) {\r\n\t\t\t\t\tif (!jsonResponse) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Glossary Sub-Definitions (Search Listing)\r\n\t\t\t\t\tif (glossaryBoxContainer.length) {\r\n\t\t\t\t\t\tconst $searchContainer = $(document.getElementById('search-update-container'));\r\n\t\t\t\t\t\tconst dataNoVersionText = $searchContainer.attr('data-no-version-text');\r\n\t\t\t\t\t\tconst dataNoVersionLinkText = $searchContainer.attr('data-no-version-link-text');\r\n\t\t\t\t\t\tconst dataNoVersionLinkUrl = $searchContainer.attr('data-no-version-link-url');\r\n\t\t\t\t\t\tconst dataApplicablePart = $searchContainer.attr('data-applicable-part');\r\n\t\t\t\t\t\tconst dataApplicablePartSr = $searchContainer.attr('data-applicable-part-sr');\r\n\t\t\t\t\t\tconst dataIsExternallyDefinedText = $searchContainer.attr('data-is-externally-defined-text');\r\n\t\t\t\t\t\tconst dataLegalInstruments = $searchContainer.attr('data-legal-instruments');\r\n\t\t\t\t\t\tconst dataLegalInstrumentsUrl = $searchContainer.attr('data-legal-instruments-url');\r\n\t\t\t\t\t\tconst dataCloseDialog = $searchContainer.attr('data-close-dialog');\r\n\t\t\t\t\t\tconst dataClose = $searchContainer.attr('data-close');\r\n\r\n\t\t\t\t\t\tvar newSubDefBox = '
    ' +\r\n\t\t\t\t\t\t\t'
    ';\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn '';\r\n\t\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\t'
    ';\r\n\t\t\t\t\t\tvar $result;\r\n\t\t\t\t\t\tif (subDefinitionBox.length) {\r\n\t\t\t\t\t\t\t// Clicked a term from within an existing sub-definition box\r\n\t\t\t\t\t\t\t// Note: $result is the subDefinitionBox not the newSubDefBox, but that's okay\r\n\t\t\t\t\t\t\t$result = subDefinitionBox.after(newSubDefBox);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Clicked a term from the main search result item\r\n\t\t\t\t\t\t\t$result = glossaryBoxContainer.prepend(newSubDefBox);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// PRA Cache\r\n\t\t\t\t\t\t// pra-cache.js dependency call\r\n\t\t\t\t\t\tPraCache.init();\r\n\t\t\t\t\t\tPraGlossary.scrollToSubDefBox($result);\r\n\t\t\t\t\t\tPraAccessibility.srConditionalAnnouncement(document.querySelector('#sr-results-info'), 'data-text');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Glossary Modal\r\n\t\t\t\t\tif (PraGlossary.glossaryModalDataContainer.length) {\r\n\t\t\t\t\t\tPraGlossary.lastGlossaryModalGlossaryTermGroupId = jsonResponse.GlossaryTermGroupId;\r\n\r\n\t\t\t\t\t\tPraGlossary.glossaryModalDataContainer.append('
    ' +\r\n\t\t\t\t\t\t\t(function () {\r\n\t\t\t\t\t\t\t\tif (jsonResponse.BreadcrumbList.length > 0) {\r\n\t\t\t\t\t\t\t\t\tvar breadcrumbs = '';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t\t\t})() +\r\n\t\t\t\t\t\t\t(function () {\r\n\t\t\t\t\t\t\t\tif (jsonResponse.ApplicablePart.length > 0) {\r\n\t\t\t\t\t\t\t\t\treturn '
    ' +\r\n\t\t\t\t\t\t\t\t\t\t'

    ' +\r\n\t\t\t\t\t\t\t\t\t\t'' + PraGlossary.glossaryModalUpdatePanel.attr('data-applicable-part-sr') + '' +\r\n\t\t\t\t\t\t\t\t\t\t'' + PraGlossary.glossaryModalUpdatePanel.attr('data-applicable-part').replace('{0}', jsonResponse.ApplicablePart) + '' +\r\n\t\t\t\t\t\t\t\t\t\t'

    ' +\r\n\t\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\treturn '';\r\n\t\t\t\t\t\t\t})() +\r\n\t\t\t\t\t\t\t'
    ' +\r\n\t\t\t\t\t\t\t(function () {\r\n\t\t\t\t\t\t\t\tvar term = jsonResponse.Term;\r\n\t\t\t\t\t\t\t\tif (jsonResponse.NoVersion === true) {\r\n\t\t\t\t\t\t\t\t\tterm = $this.text();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn '
    ' + term + '
    ';\r\n\t\t\t\t\t\t\t})() +\r\n\t\t\t\t\t\t\t(function () {\r\n\t\t\t\t\t\t\t\tlet definition = '';\r\n\t\t\t\t\t\t\t\tif (jsonResponse.IsExternallyDefined === true) {\r\n\t\t\t\t\t\t\t\t\tdefinition = `

    ${PraGlossary.glossaryModalUpdatePanel.attr('data-is-externally-defined-text')}

    `;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tdefinition += jsonResponse.Definition;\r\n\t\t\t\t\t\t\t\tif (jsonResponse.NoVersion === true) {\r\n\t\t\t\t\t\t\t\t\tdefinition = PraGlossary.glossaryModalUpdatePanel.attr('data-no-version-text').replace('{0}', effectiveDate.replace(/-/g, '/')) +\r\n\t\t\t\t\t\t\t\t\t\t' ' +\r\n\t\t\t\t\t\t\t\t\t\tPraGlossary.glossaryModalUpdatePanel.attr('data-no-version-link-text') + '';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn '
    ' + definition + '
    ';\r\n\t\t\t\t\t\t\t})() +\r\n\t\t\t\t\t\t\t'
    ' +\r\n\t\t\t\t\t\t\t(function () {\r\n\t\t\t\t\t\t\t\tif (jsonResponse.NoVersion === true) {\r\n\t\t\t\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn '

    ' + jsonResponse.EffectiveDate + '

    ';\r\n\t\t\t\t\t\t\t})() +\r\n\t\t\t\t\t\t\t(function () {\r\n\t\t\t\t\t\t\t\tif (jsonResponse.NoVersion === true) {\r\n\t\t\t\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvar legalInstrumentsUrl = PraGlossary.glossaryModalUpdatePanel.attr('data-legal-instruments-url');\r\n\t\t\t\t\t\t\t\tvar legalInstrumentsText = PraGlossary.glossaryModalUpdatePanel.attr('data-legal-instruments');\r\n\t\t\t\t\t\t\t\tif ((legalInstrumentsUrl && legalInstrumentsUrl.length > 0)\r\n\t\t\t\t\t\t\t\t\t&& (legalInstrumentsText && legalInstrumentsText.length > 0)) {\r\n\t\t\t\t\t\t\t\t\tvar legalInstrumentsHref = jsonResponse.GlossaryTermGroupId;\r\n\t\t\t\t\t\t\t\t\tif (jsonResponse.RedirectGlossaryTermGroupId != null) {\r\n\t\t\t\t\t\t\t\t\t\tlegalInstrumentsHref = jsonResponse.RedirectGlossaryTermGroupId;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tlet centralGlossary = '';\r\n\t\t\t\t\t\t\t\t\tif (jsonResponse.ContentType === 'Central') {\r\n\t\t\t\t\t\t\t\t\t\tconst centralGlossaryUrl = PraGlossary.glossaryModalUpdatePanel.attr('data-central-glossary-url');\r\n\t\t\t\t\t\t\t\t\t\tconst centralGlossaryText = PraGlossary.glossaryModalUpdatePanel.attr('data-central-glossary');\r\n\t\t\t\t\t\t\t\t\t\tif ((centralGlossaryUrl && centralGlossaryUrl.length > 0)\r\n\t\t\t\t\t\t\t\t\t\t\t&& (centralGlossaryText && centralGlossaryText.length > 0)) {\r\n\t\t\t\t\t\t\t\t\t\t\tcentralGlossary = `
  • `;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t\t\t})() +\r\n\t\t\t\t\t\t\t'');\r\n\t\t\t\t\t\tPraGlossary.glossaryModalBreadcrumbList = jsonResponse.BreadcrumbList;\r\n\t\t\t\t\t\tPraGlossary.glossaryModalDataContainer.find('.glossary-panel-definition ' + PraGlossary.glossaryLinkSelectors).addClass(PraGlossary.glossaryModalAppendToBreadcrumbClass);\r\n\t\t\t\t\t\tPraGlossary.openGlossaryModal();\r\n\r\n\t\t\t\t\t\tif (jsonResponse.NoVersion === true) {\r\n\t\t\t\t\t\t\tPraGlossary.glossaryModalUpdatePanel.find('.page-utilities').hide();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tPraGlossary.glossaryModalUpdatePanel.find('.page-utilities').show();\r\n\t\t\t\t\t\t\t//update export links:\r\n\t\t\t\t\t\t\tvar printAnchor = PraGlossary.glossaryModalUpdatePanel.find('a.icon-print');\r\n\t\t\t\t\t\t\tvar pdfAnchor = PraGlossary.glossaryModalUpdatePanel.find('a.icon-pdf');\r\n\t\t\t\t\t\t\tif (printAnchor.length > 0 && pdfAnchor.length > 0) {\r\n\t\t\t\t\t\t\t\tvar hrefToFormat = printAnchor.data('url-format');\r\n\t\t\t\t\t\t\t\tif (typeof hrefToFormat === \"string\" && hrefToFormat.indexOf('%s') !== -1) {\r\n\t\t\t\t\t\t\t\t\tconst _r = function (p, c) { return p.replace(/%s/, c); }\r\n\t\t\t\t\t\t\t\t\threfToFormat = [effectiveDate, jsonResponse.GlossaryTermId].reduce(_r, hrefToFormat);\r\n\t\t\t\t\t\t\t\t\tprintAnchor.attr('href', hrefToFormat);\r\n\t\t\t\t\t\t\t\t\tpdfAnchor.attr('href', hrefToFormat);\r\n\t\t\t\t\t\t\t\t\tpdfAnchor.attr('data-url', hrefToFormat);\r\n\t\t\t\t\t\t\t\t\tpdfAnchor.attr('data-download-title', pdfAnchor.attr('data-download-title-format').replace('{0}', jsonResponse.Term + '_' + effectiveDate));\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tconsole.log('.icon-print href value not valid');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tconsole.log('cannot find anchor: .icon-print');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar emailAnchor = PraGlossary.glossaryModalUpdatePanel.find('[data-glossary-modal-pattern]');\r\n\t\t\t\t\t\t\tif (emailAnchor.length > 0) {\r\n\t\t\t\t\t\t\t\tvar mailtoToFormat = emailAnchor.data('glossary-modal-pattern');\r\n\t\t\t\t\t\t\t\tif (typeof mailtoToFormat === \"string\" && mailtoToFormat.indexOf('%s') !== -1 && mailtoToFormat.indexOf('%t') !== -1) {\r\n\t\t\t\t\t\t\t\t\tconst regex = function (value, replacement, pattern) { return value.replace(pattern, replacement); }\r\n\t\t\t\t\t\t\t\t\tconst regexBody = function (p, c) { return regex(p, c, /%s/); }\r\n\t\t\t\t\t\t\t\t\tconst regexSubject = function (p, c) { return regex(p, c, /%t/); }\r\n\t\t\t\t\t\t\t\t\tmailtoToFormat = [encodeURI(document.location.origin + document.location.pathname + \"#glossary-term-\" + jsonResponse.GlossaryTermGroupId)].reduce(regexBody, mailtoToFormat);\r\n\t\t\t\t\t\t\t\t\tmailtoToFormat = [` - ${jsonResponse.Term}`].reduce(regexSubject, mailtoToFormat);\r\n\t\t\t\t\t\t\t\t\temailAnchor.attr('href', mailtoToFormat);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tconsole.log('glossary-modal-pattern value not valid.');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tconsole.log('cannot find anchor for glossary modal email.');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// add all the elements inside modal which you want to make focusable\r\n\t\t\t\t\t\tPraGlossary.firstFocusableElement = PraGlossary.glossaryModalUpdatePanelJS.querySelectorAll(PraGlossary.focusableElements)[0]; // get first element to be focused inside modal\r\n\t\t\t\t\t\tPraGlossary.focusableContent = PraGlossary.glossaryModalUpdatePanelJS.querySelectorAll(PraGlossary.focusableElements);\r\n\t\t\t\t\t\tPraGlossary.lastFocusableElement = PraGlossary.focusableContent[PraGlossary.focusableContent.length - 1]; // get last element to be focused inside modal\r\n\t\t\t\t\t\tPraGlossary.glossaryModalUpdatePanelJS.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror: function (jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\t// Intentionally not displaying error detail, can be debugged\r\n\t\t\t\t\tconsole.error('Failed to retrieve glossary data.');\r\n\t\t\t\t\tif (PraGlossary.glossaryModalDataContainer.length) {\r\n\t\t\t\t\t\tPraGlossary.lastGlossaryModalGlossaryTermGroupId = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcomplete: function () {\r\n\t\t\t\t\tPraGlossary.loadingElement.hide();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tinit: function () {\r\n\t\tPraGlossary.glossaryModalUpdatePanel.hide();\r\n\r\n\t\t// Event delegation for all glossary links, current and dynamically loaded i.e. application provision\r\n\t\t$(document).on('click', PraGlossary.glossaryLinkSelectors, PraGlossary.glossaryLinkOnClick);\r\n\r\n\t\t$('.pra-modal-close').on('click', function () {\r\n\t\t\tPraGlossary.closeGlossaryModal();\r\n\t\t});\r\n\r\n\t\t$(document).on('click', '.glossary-box .pra-box-close', function () {\r\n\t\t\t$(this).closest('.glossary-box').remove();\r\n\t\t});\r\n\r\n\t\tdocument.addEventListener('click', function (e) {\r\n\t\t\tif (PraGlossary.glossaryModalUpdatePanel.hasClass('is-visible')\r\n\t\t\t\t&& !PraGlossary.glossaryModalUpdatePanel.is(e.target)\r\n\t\t\t\t&& PraGlossary.glossaryModalUpdatePanel.has(e.target).length === 0\r\n\t\t\t\t&& !e.target.classList.contains('glossary-link')\r\n\t\t\t\t&& (typeof (e.target.href) === 'undefined'\r\n\t\t\t\t\t|| (typeof (e.target.href) !== 'undefined'\r\n\t\t\t\t\t\t&& !e.target.href.includes('#glossary-term-')))) {\r\n\t\t\t\tPraGlossary.closeGlossaryModal();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdocument.addEventListener('keydown', function (e) {\r\n\r\n\t\t\tif (!PraGlossary.glossaryModalUpdatePanel.hasClass('is-visible')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (e.key === 'Escape' || e.keyCode === 27) {\r\n\t\t\t\tPraGlossary.closeGlossaryModal();\r\n\t\t\t}\r\n\r\n\t\t\tvar isTabPressed = e.key === 'Tab' || e.keyCode === 9;\r\n\r\n\t\t\tif (!isTabPressed) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (e.shiftKey) { // if shift key pressed for shift + tab combination\r\n\t\t\t\tif (document.activeElement === PraGlossary.firstFocusableElement) {\r\n\t\t\t\t\tPraGlossary.lastFocusableElement.focus(); // add focus for the last focusable element\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t} else { // if tab key is pressed\r\n\t\t\t\tif (document.activeElement === PraGlossary.lastFocusableElement) { // if focused has reached to last focusable element then focus first focusable element after pressing tab\r\n\t\t\t\t\tPraGlossary.firstFocusableElement.focus(); // add focus for the first focusable element\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (PraGlossary.glossaryModalUpdatePanel.length) {\r\n\t\t\t// Show modal on page load when #glossary-term-{id} is present\r\n\t\t\tif (location.hash.startsWith('#glossary-term-')) {\r\n\t\t\t\tvar $matchedGlossaryLink = $('.glossary-link[href=\"' + location.hash + '\"], a[href=\"' + location.hash + '\"]:not(.glossary-link)').first();\r\n\t\t\t\tif ($matchedGlossaryLink.length > 0) {\r\n\t\t\t\t\t$matchedGlossaryLink.click();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n};\r\n\r\n$(document).ready(function () {\r\n\r\n\tPraGlossary.init();\r\n\r\n});","var Expander = {\r\n\r\n\tselector: '[data-expander-open]',\r\n\tcontent: '[data-expander-content]',\r\n\tbtnClose: '[data-expander-close]',\r\n\tmodeAttr: 'data-expander-mode',\r\n\tmodeAttrOpen: 'data-expander-mode-open',\r\n\tmodeSingle: 'single',\r\n\tduration: 250,\r\n\r\n\tinit: function () {\r\n\t\tvar $expanderElems = $(Expander.selector);\r\n\t\tif (!$expanderElems.length) return;\r\n\r\n\t\t$expanderElems.each(function () {\r\n\t\t\tvar $expander = $(this);\r\n\t\t\tvar $expanderContent = $('[data-expander-content=\"' + $expander.attr('data-expander-open') + '\"]');\r\n\t\t\tif ($expanderContent.length > 1) {\r\n\t\t\t\tconsole.warn('Multiple expander content elements found.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tExpander.setDefaultState($expander, $expanderContent);\r\n\t\t\tExpander.setStateText($expander);\r\n\t\t\tExpander.bindClickEvent($expander, $expanderContent);\r\n\t\t});\r\n\t},\r\n\r\n\tsetDefaultState: function ($expander, $expanderContent) {\r\n\t\t$expander.attr('aria-expanded', 'false');\r\n\t\t$expanderContent.attr('aria-hidden', 'true');\r\n\r\n\t\t// Default HTML state is visible when open mode set to true\r\n\t\tif ($expander.attr(Expander.modeAttrOpen) === 'true') {\r\n\t\t\t$expander.attr('aria-expanded', 'true');\r\n\t\t\t$expanderContent.attr('aria-hidden', 'false');\r\n\t\t}\r\n\r\n\t\tif ($expander.attr(Expander.modeAttr) === Expander.modeSingle\r\n\t\t\t&& !$expanderContent.children().length) {\r\n\t\t\t$expander.hide();\r\n\t\t}\r\n\t},\r\n\r\n\tbindClickEvent: function ($expander, $expanderContent) {\r\n\t\t$expander.on('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\te.stopPropagation();\r\n\t\t\tExpander.unbindClickEvent($expander);\r\n\t\t\tExpander.setupContent($expander, $expanderContent);\r\n\t\t});\r\n\t},\r\n\r\n\tsetupContent: function ($expander, $expanderContent) {\r\n\t\tExpander.bindClickClose($expander, $expanderContent);\r\n\t\tExpander.setAriaAttr($expander, $expanderContent);\r\n\t\tExpander.setFocus($expanderContent);\r\n\t},\r\n\r\n\tbindClickClose: function ($expander, $expanderContent) {\r\n\t\tif ($expander.attr(Expander.modeAttr) === Expander.modeSingle) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $contentCloseBtn = $expanderContent.find(Expander.btnClose);\r\n\r\n\t\t$contentCloseBtn.on('click', function (e) {\r\n\r\n\t\t\te.preventDefault();\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t\tExpander.unbindClickEvent($(this));\r\n\t\t\t$expander.off(\"click\");\r\n\t\t\t$expanderContent.removeAttr('tabindex');\r\n\t\t\tExpander.bindClickEvent($expander, $expanderContent);\r\n\t\t\tExpander.setAriaAttr($expander, $expanderContent);\r\n\t\t\t// Set focus back to the first opening element\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t$expander.focus();\r\n\t\t\t}, 10);\r\n\t\t});\r\n\t},\r\n\r\n\tunbindClickEvent: function ($elem) {\r\n\t\tif ($elem.attr(Expander.modeAttr) !== Expander.modeSingle) {\r\n\t\t\t$elem.off(\"click\");\r\n\t\t}\r\n\t},\r\n\r\n\tsetAriaAttr: function ($expander, $expanderContent) {\r\n\t\t// check state and set the opposite attr\r\n\t\tvar stateLink = $expander.attr('aria-expanded') === 'false' ? true : false;\r\n\t\tvar stateContent = $expanderContent.attr('aria-hidden') === 'true' ? false : true;\r\n\r\n\t\t// set button state\r\n\t\t$expander.attr('aria-expanded', stateLink);\r\n\t\t// set content state\r\n\t\t$expanderContent.attr('aria-hidden', stateContent);\r\n\r\n\t\tExpander.setStateText($expander);\r\n\t},\r\n\r\n\tsetFocus: function ($expanderContent) {\r\n // remove the focus\r\n $(Expander.content).removeAttr('tabindex');\r\n\r\n // set focus\r\n\t\tsetTimeout(function () {\r\n\t\t\t$expanderContent.attr('tabindex', '-1');\r\n\t\t\t$expanderContent.focus();\r\n }, 10);\r\n },\r\n\r\n\tsetStateText: function ($expander) {\r\n\t\tif ($expander.attr(Expander.modeAttr) === Expander.modeSingle) {\r\n\t\t\tvar stateLink = $expander.attr('aria-expanded') === 'false' ? true : false;\r\n\t\t\t//node value = text\r\n\t\t\t$expander[0].childNodes[0].nodeValue = stateLink ? $expander.attr('data-expander-show') : $expander.attr('data-expander-hide');\r\n\t\t}\r\n\t}\r\n};\r\n\r\n$(document).ready(function () {\r\n\tExpander.init();\r\n});","var PraNavChapters = {\r\n\tinit: function () {\r\n\t\tif (!$('.nav-chapters-simple')[0]) return;\r\n\r\n\t\tfunction checkSize() {\r\n\t\t\tif ($(\".global-header\").css(\"position\") == \"fixed\") {\r\n\t\t\t\t$('html').css('scroll-padding-top', $('.global-header').outerHeight() + $('.nav-sticky').outerHeight() + 12);\r\n\t\t\t} else {\r\n\t\t\t\t$('html').css('scroll-padding-top', 'inherit');\r\n\t\t\t}\r\n\t\t}\r\n\t\t$('html').css('scroll-behavior', 'smooth');\r\n\t\t$('html').addClass('has-sticky-nav');\r\n\t\t$('.page-section.page-section--last .scroll-to-top').addClass('no-animate');\r\n\r\n\t\t// run test on initial page load\r\n\t\tcheckSize();\r\n\t\t// run test on resize of the window\r\n\t\t$(window).resize(checkSize);\r\n\r\n\t\tfunction toggleBoolAttr(ele, attr) {\r\n\t\t\tele.attr(attr, ele.attr(attr) === 'true' ? 'false' : 'true');\r\n\t\t}\r\n\r\n\t\t$('.nav-chapters-simple__button').on('click', function () {\r\n toggleBoolAttr($(this), 'aria-expanded');\r\n toggleBoolAttr($('#list-chapters'), 'aria-hidden');\r\n\r\n var isExpanded = $(this).attr('aria-expanded') === 'true';\r\n if (isExpanded) {\r\n lastFocusedElement = document.activeElement;\r\n $('#list-chapters').find('a').first().focus();\r\n\r\n $('#list-chapters').on('keydown', function (e) {\r\n if (e.key === 'Tab') {\r\n e.preventDefault();\r\n var focusedElement = $(':focus');\r\n var anchors = $(this).find('a');\r\n var index = anchors.index(focusedElement);\r\n if (e.shiftKey) {\r\n if (index === 0) {\r\n anchors.last().focus();\r\n } else {\r\n anchors[index - 1].focus();\r\n }\r\n } else {\r\n if (index === anchors.length - 1) {\r\n anchors.first().focus();\r\n } else {\r\n anchors[index + 1].focus();\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n if (lastFocusedElement) {\r\n lastFocusedElement.focus();\r\n }\r\n $('#list-chapters').off('keydown');\r\n }\r\n });\r\n\r\n\t\t// Add keydown event listener to document\r\n\t\t$(document).on('keydown', function (e) {\r\n\t\t\tif (e.key === 'Escape' && $('#list-chapters').attr('aria-hidden') === 'false') {\r\n\t\t\t\t// If Escape key is pressed and .list-nav is visible, close .list-nav and update aria-hidden and aria-expanded attributes\r\n\t\t\t\t$('#list-chapters').attr('aria-hidden', 'true');\r\n\t\t\t\t$('.nav-chapters-simple__button').attr('aria-expanded', 'false');\r\n\t\t\t\tif (lastFocusedElement) {\r\n\t\t\t\t\tlastFocusedElement.focus();\r\n\t\t\t\t}\r\n\t\t\t\t$('#list-chapters').off('keydown');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar progressBar = document.getElementById(\"progressBar\");\r\n\r\n\t\t// progress bar on page scroll\r\n\t\tfunction handleScroll() {\r\n\t\t\tvar winScroll = document.body.scrollTop || document.documentElement.scrollTop;\r\n\t\t\tvar height = document.documentElement.scrollHeight - document.documentElement.clientHeight;\r\n\t\t\tvar scrolled = (winScroll / height) * 100;\r\n\t\t\tprogressBar.style.width = scrolled + \"%\";\r\n\t\t}\r\n\r\n\t\tif (progressBar) {\r\n\t\t\t$(window).scroll(handleScroll);\r\n\t\t}\r\n\r\n\t\tvar praChapters = $('.chapters').find('.chapter-section').not('.exclude-nav');\r\n\r\n\t\t$(praChapters).each(function () {\r\n\t\t\tvar chapter = $(this);\r\n\t\t\tvar chapterNo = chapter.find('.div-row').first().find('.chapter-number').first().text().trim();\r\n\t\t\tvar chapterHeading = chapter.find('.div-row').first().find('.chapter-heading').first().text().trim();\r\n\t\t\tif (chapterNo.length <= 0\r\n\t\t\t\t&& chapterHeading.length <= 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar noAndHeading = '' + chapterNo.replace('.', '') + '';\r\n\t\t\tif (chapterHeading.length > 0) {\r\n\t\t\t\tnoAndHeading += '' + chapterHeading + '';\r\n\t\t\t}\r\n\t\t\t// create the markup for each element found\r\n\t\t\t$('.nav-chapters-simple .list-nav').append(\"
  • \" + noAndHeading + \"
  • \");\r\n\t\t});\r\n\r\n\t\t// When nav chapter is click collapse rule history, show more and section links\r\n\t\t$('.nav-chapters-simple .list-nav__link').on('click', function () {\r\n\t\t\t$('#list-chapters').attr('aria-hidden', 'true');\r\n\t\t\t$('.nav-chapters-simple__button').attr('aria-expanded', 'false');\r\n\t\t\t$('.nav-sticky').find('.expander__toggle').each(function () {\r\n\t\t\t\tif ($(this).attr('aria-expanded') === 'true' && !$(\".global-header\").css(\"position\") == \"fixed\") {\r\n\t\t\t\t\t$(this).click();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tcheckSize();\r\n\t\t});\r\n\t}\r\n}\r\n\r\n$(document).ready(function () {\r\n\tPraNavChapters.init();\r\n});","//----------------------------------------------------------------------\r\n//\tDONWLOAD STICKY\r\n//\tCustom Package\r\n//----------------------------------------------------------------------\r\n\r\nvar DownloadSticky = {\r\n\tselector: '[data-download]',\r\n\tselectorButton: '.button-download',\r\n\tisSticky: false,\r\n\tisEndPoint: false,\r\n\tisDisabled: false,\r\n\tclassActive: 'container-download--active',\r\n\tclassAbsolute: 'container-download--absolute',\r\n\tclassOpen: 'container-download--open',\r\n\tendPointClass: 'endpoint',\r\n\theaderHeight: 0,\r\n\tselectorWidth: 0,\r\n\tcontentWidth: 0,\r\n\tviewPortHeight: 0,\r\n\toffsetElRound: 0,\r\n\tendStickyPosition: 0,\r\n\tstartPosition: 0,\r\n\trightPosition: 0,\r\n\tfooterHeight: 0,\r\n\tfooterPosition: 0,\r\n\twindowSize: 0,\r\n\twinScroll: 0,\r\n\r\n\tinit: function () {\r\n\t\t// return if the container not present\r\n\t\tif (!$(this.selector).length) return;\r\n\t\tthis.bindChangeEvent();\r\n\t\tthis.getWindowSize();\r\n\t\tthis.getElSize();\r\n\t\tthis.checkOffsetEl();\r\n\t\tthis.setPosition();\r\n\t\tthis.bindHoverEvent();\r\n\t\tthis.bindKeyboardEvent();\r\n\t\tthis.bindClickEvent();\r\n\t},\r\n\r\n\tbindChangeEvent: function () {\r\n\r\n\t\t// reset the functions and recalculate the values\r\n\t\t$(window).on('orientationchange resize load', function () {\r\n\r\n\t\t\tif (DownloadSticky.windowSize !== window.innerWidth) {\r\n\r\n\t\t\t\t// Update variables\r\n\t\t\t\tDownloadSticky.getWindowSize();\r\n\t\t\t\tDownloadSticky.getElSize();\r\n\t\t\t\tDownloadSticky.checkOffsetEl();\r\n\t\t\t\tDownloadSticky.setPosition();\r\n\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tcheckOffsetEl: function () {\r\n\r\n\t\t// get the section offset position and the height of each top elements\r\n\t\tvar offsetEl = $(DownloadSticky.selector).offset().top;\r\n\t\t\tDownloadSticky.offsetElRound = Math.round(offsetEl),\r\n\t\t\tDownloadSticky.startPosition = DownloadSticky.offsetElRound - DownloadSticky.footerHeight - 200,\r\n\t\t\tfooterPosition = $('.global-footer').offset().top,\r\n\t\t\tDownloadSticky.footerPositionRound = Math.round(footerPosition),\r\n\t\t\tDownloadSticky.endPointPosition = DownloadSticky.footerPositionRound - 400,\r\n\t\t\telRightPosition = (DownloadSticky.windowSize / 2 - DownloadSticky.contentWidth / 2) - DownloadSticky.selectorWidth - 90,\r\n\t\t\tDownloadSticky.rightPosition = elRightPosition;\r\n\t},\r\n\r\n\tremoveHideClass: function () {\r\n\t\t$(DownloadSticky.containerPercentage).removeClass('hide');\r\n\t},\r\n\r\n\tgetElSize: function () {\r\n\r\n\t\tDownloadSticky.headerHeight = $('.global-header').height(),\r\n\t\t\tDownloadSticky.contentWidth = $('.container').outerWidth(),\r\n\t\t\tDownloadSticky.footerHeight = $('.global-header').outerHeight(),\r\n\t\t\tDownloadSticky.selectorWidth = $(DownloadSticky.selector).outerWidth(),\r\n\t\t\tDownloadSticky.elHeight = $(DownloadSticky.selector).outerHeight();\r\n\t},\r\n\r\n\tgetWindowSize: function () {\r\n\t\t// get window width and update the global value\r\n\t\tDownloadSticky.windowSize = window.innerWidth;\r\n\t},\r\n\r\n\tsetPosition: function () {\r\n\r\n\t\t// set position if the view is tablet and laptop layout\r\n\t\tif (DownloadSticky.windowSize >= 720 && DownloadSticky.windowSize <= 1580) {\r\n\t\t\tDownloadSticky.addAbsoluteClass();\r\n\t\t\t$(DownloadSticky.selector).css('top', DownloadSticky.offsetElRound);\r\n\t\t}\r\n\r\n\t\t// set the right posion Xlarge desktop layout\r\n\t\tif (DownloadSticky.windowSize >= 1790) {\r\n\t\t\t$(DownloadSticky.selector).css('right', DownloadSticky.rightPosition);\r\n\r\n\t\t} else {\r\n\t\t\t$(DownloadSticky.selector).css('right', '0');\r\n\t\t}\r\n\r\n\r\n\t\t$(window).on('scroll', function () {\r\n\t\t\tif (DownloadSticky.windowSize >= 720) {\r\n\r\n\t\t\t\tif (!DownloadSticky.isDisabled === true) {\r\n\r\n\t\t\t\t\t// get scrolling position\r\n\t\t\t\t\tvar winScroll = $(window).scrollTop(),\r\n\t\t\t\t\t\twinScrollRound = Math.round(winScroll);\r\n\r\n\t\t\t\t\t//add and remove sticky class if the scrolling position is greater than offset position\r\n\t\t\t\t\tif (winScrollRound >= DownloadSticky.startPosition) {\r\n\r\n\r\n\t\t\t\t\t\tif (DownloadSticky.isEndPoint === false) {\r\n\r\n\t\t\t\t\t\t\tDownloadSticky.addStickyClass();\r\n\t\t\t\t\t\t\tDownloadSticky.removeAbsoluteClass();\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (winScrollRound > DownloadSticky.endPointPosition) {\r\n\r\n\t\t\t\t\t\t\tDownloadSticky.removeStickyClass();\r\n\t\t\t\t\t\t\tDownloadSticky.addEndPointClass();\r\n\t\t\t\t\t\t\t$(DownloadSticky.selector).css('top', DownloadSticky.endPointPosition + DownloadSticky.elHeight);\r\n\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tDownloadSticky.removeEndPointClass();\r\n\t\t\t\t\t\t\t$(DownloadSticky.selector).css('top', '200px');\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\tDownloadSticky.removeStickyClass();\r\n\t\t\t\t\t\tDownloadSticky.addAbsoluteClass();\r\n\t\t\t\t\t\t$(DownloadSticky.selector).css('top', 'auto');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\t$(DownloadSticky.selector).css('top', 'auto');\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tbindHoverEvent: function () {\r\n\r\n\t\t$(DownloadSticky.selectorButton).on('mouseenter keyup', function (e) {\r\n\r\n\t\t\tDownloadSticky.addOpenClass();\r\n\r\n\t\t\t// prevent default click behavior\r\n\t\t\te.preventDefault();\r\n\t\t\t// stopPropagation to prevent the button click from bubbling up the DOM\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tbindClickEvent: function () {\r\n\r\n\t\t$('.button-close').on('click', function (e) {\r\n\r\n\t\t\tDownloadSticky.isDisabled = true;\r\n\t\t\tDownloadSticky.removeStickyClass();\r\n\t\t\tDownloadSticky.removeOpenClass();\r\n\r\n\t\t\t$(DownloadSticky.selector).attr('style', '');\r\n\t\t\tDownloadSticky.setPosition();\r\n\r\n\t\t\tif (DownloadSticky.windowSize >= 720 && DownloadSticky.windowSize <= 1580) {\r\n\t\t\t\tDownloadSticky.addAbsoluteClass();\r\n\t\t\t\t$(DownloadSticky.selector).css('top', DownloadSticky.offsetElRound);\r\n\t\t\t}\r\n\r\n\t\t\t// prevent default click behavior\r\n\t\t\te.preventDefault();\r\n\t\t\t// stopPropagation to prevent the button click from bubbling up the DOM\r\n\t\t\te.stopPropagation();\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t\t// if user click outsidde the content area to hide modal\r\n\t\t$('body').on('click', function (e) {\r\n\r\n\t\t\tvar $thisTarget = $(e.target)[0];\r\n\r\n\t\t\tif ($thisTarget.closest('.button-download') !== $(DownloadSticky.selectorButton)[0]) {\r\n\t\t\t\tDownloadSticky.removeOpenClass();\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tbindKeyboardEvent: function () {\r\n\r\n\t\t$('.button-close').on('keydown', function (e) {\r\n\r\n\t\t\tif (e.keyCode === 13) {\r\n\t\t\t\tDownloadSticky.isDisabled = true;\r\n\t\t\t\tDownloadSticky.removeStickyClass();\r\n\t\t\t\tDownloadSticky.removeOpenClass();\r\n\r\n\t\t\t\t$(DownloadSticky.selector).attr('style', '');\r\n\t\t\t\tDownloadSticky.setPosition();\r\n\t\t\t}\r\n\r\n\t\t\t// prevent default click behavior\r\n\t\t\te.preventDefault();\r\n\t\t\t// stopPropagation to prevent the button click from bubbling up the DOM\r\n\t\t\te.stopPropagation();\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t},\r\n\r\n\taddStickyClass: function () {\r\n\t\tDownloadSticky.isSticky = true;\r\n\t\t$(DownloadSticky.selector).addClass(DownloadSticky.classActive);\r\n\t},\r\n\r\n\tremoveStickyClass: function () {\r\n\t\tDownloadSticky.isSticky = false;\r\n\t\t$(DownloadSticky.selector).removeClass(DownloadSticky.classActive);\r\n\t},\r\n\r\n\taddEndPointClass: function () {\r\n\t\tDownloadSticky.isEndPoint = true;\r\n\t\t$(DownloadSticky.selector).addClass(DownloadSticky.endPointClass);\r\n\t},\r\n\r\n\tremoveEndPointClass: function () {\r\n\t\tDownloadSticky.isEndPoint = false;\r\n\t\t$(DownloadSticky.selector).removeClass(DownloadSticky.endPointClass);\r\n\t},\r\n\r\n\taddAbsoluteClass: function () {\r\n\t\t$(DownloadSticky.selector).addClass(DownloadSticky.classAbsolute);\r\n\t},\r\n\r\n\tremoveAbsoluteClass: function () {\r\n\t\t$(DownloadSticky.selector).removeClass(DownloadSticky.classAbsolute);\r\n\t},\r\n\r\n\taddOpenClass: function () {\r\n\t\t$(DownloadSticky.selector).addClass(DownloadSticky.classOpen);\r\n\t},\r\n\r\n\tremoveOpenClass: function () {\r\n\t\t$(DownloadSticky.selector).removeClass(DownloadSticky.classOpen);\r\n\t}\r\n};\r\n\r\n$(document).ready(function () {\r\n\tDownloadSticky.init();\r\n});","(function ($) {\r\n\r\n\tfunction getUrlVars() {\r\n\t\tvar vars = [], hash;\r\n\t\tvar hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\r\n\t\tfor (var i = 0; i < hashes.length; i++) {\r\n\t\t\thash = hashes[i].split('=');\r\n\t\t\tvars.push(hash[0]);\r\n\t\t\tvars[hash[0]] = hash[1];\r\n\t\t}\r\n\t\treturn vars;\r\n\t}\r\n\r\n\r\n\t// Pagination\r\n\t$('.page-content').each(function () {\r\n\t\tvar scrollClass = \"sc-\" + $(this).data(\"id\");\r\n\t\tvar $this = $(this).addClass('page-carousel').addClass(scrollClass);\r\n\t\tvar $pageBreaks = $this.find('hr');\r\n\t\tvar urlParams = getUrlVars();\r\n\t\tif ($pageBreaks.length === 0 || $('.pagemode-edit').length > 0 || urlParams[\"pdf\"]==\"1\") return;\r\n\r\n\t\t//Solution 1\r\n\t\t/*$this.contents().filter(function () { return this.nodeType === 3 }).wrap('

    ');\r\n\r\n\t\t$pageBreaks.each(function (i) {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tif (i === 0) $this.prevAll().wrapAll('

    ');\r\n\t\t\t$this.nextUntil('hr').wrapAll('
    ');\r\n\t\t\t$this.detach();\r\n\t\t});*/\r\n\r\n\t\t//Solution 2\r\n\t\t$pageBreaks.each(function() {\r\n\t\t\t$(this).removeAttr(\"class\");\r\n\t\t});\r\n\r\n\t\tvar pages = $this.html().split('
    ');\r\n\t\tvar newHTML = pages.map(function (page, i) {\r\n\t\t\tvar active = (i == 0) ? ' active' : '';\r\n\t\t\treturn '
    ' + page + '
    ';\r\n\t\t}).join('');\r\n\t\t$this.html(newHTML);\r\n\r\n\t\tvar $pages = $this.find('.page');\r\n\t\t/* Append footer to each page */\r\n\t\t$pages.each(function (i) {\r\n\t\t\tif (i === 0) {\r\n\t\t\t\t$(this).append('

    Page ' + '' + (i + 1) + '' + ' of ' + $pages.length + '

    ');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$(this).append('
    ');\r\n\t\t\t}\r\n\t\t})\r\n\t\t/* Initialise carousel */\r\n\t\tif (jQuery().slick) {\r\n\r\n\t\t\t$this.slick({\r\n\t\t\t\tfocusOnChange: true,\r\n\t\t\t\tfocusOnSelect: false,\r\n\t\t\t\taccessibility: true,\r\n\t\t\t\tslidesToShow: 1,\r\n\t\t\t\tslidesToScroll: 1,\r\n\t\t\t\tarrows: true,\r\n\t\t\t\tfade: false,\r\n\t\t\t\tdots: false,\r\n\t\t\t\tautoplay: false,\r\n\t\t\t\tadaptiveHeight: true,\r\n\t\t\t\tinfinite: false,\r\n\t\t\t\tswipe: false,\r\n\t\t\t\tdraggable: false,\r\n\t\t\t\tprevArrow: '',\r\n\t\t\t\tnextArrow: '',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t$this.on('beforeChange', function (event, slick, direction) {\r\n\t\t\tvar offset = ($(window).width() >= '1024') ? '100' : '30';\r\n\t\t\t(name === 'true') ? 'Y' : 'N';\r\n\t\t\t$(\"body, html\").animate({\r\n\t\t\t\tscrollTop: $(\".\" + scrollClass).position().top - offset\r\n\t\t\t});\r\n\t\t});\r\n\r\n\r\n\t\t$this.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n\t\t\t//get and loop over all the pages within the carousel\r\n\t\t\t$pages = $this.find('.page');\r\n\t\t\tif (pages.length > 0) {\r\n\t\t\t\t$pages.each(function (index, element) {\r\n\t\t\t\t\tvar $element = $(element);\r\n\t\t\t\t\t//the next slide\r\n\t\t\t\t\tif (index === nextSlide) {\r\n\t\t\t\t\t\t//insert pagination text\r\n\t\t\t\t\t\t$element.find('.page-footer').html('

    Page ' + '' + (index + 1) + '' + ' of ' + $pages.length + '

    ');\r\n\t\t\t\t\t\t//make all focusable elements focusable\r\n\t\t\t\t\t\t//$element.find('a, areabutton, details, input, frame, select, textarea').attr({ 'tabindex': '0' })\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t//clear pagination text for all slides except the next slide.\r\n\t\t\t\t\t\t$element.find('.page-footer').html('')\r\n\t\t\t\t\t\t//make all focusable elements not focusable for all slides except the next slide.\r\n\t\t\t\t\t\t//$element.find('a, areabutton, details, input, frame, select, textarea').attr({ 'tabindex': '-1' })\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\t$this.on('afterChange', function (event, slick, direction) {\r\n\t\t\t$pages = $this.find('.page');\r\n\t\t\tif (pages.length > 0) {\r\n\t\t\t\t$pages.attr({ 'tabindex': '-1' });\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n})(jQuery);\r\n","(function () {\r\n\r\n\tif (!String.prototype.startsWith) {\r\n\t\tString.prototype.startsWith = function (searchString, position) {\r\n\t\t\tposition = position || 0;\r\n\t\t\treturn this.indexOf(searchString, position) === position;\r\n\t\t};\r\n\t}\r\n\r\n\t//Anchor Links\t\r\n\tvar messageEditMode = \"Anchor links are only displayed in View mode. Please, preview or publish the page to show them.\";\r\n\tvar messageNoH3 = \"No anchor links found\";\r\n\r\n\tvar anchorContainers = document.getElementsByClassName(\"anchor-links-wrap\");\r\n\r\n\tif (anchorContainers.length > 0) {\r\n\t\tfor (var i = 0, j = anchorContainers.length; i < j; i++) {\r\n\t\t\tvar hTagsName = anchorContainers[i].attributes.getNamedItem(\"data-headerType\").value;\r\n\r\n\t\t\tif (hTagsName !== null && hTagsName !== \"\") {\r\n\t\t\t\t \r\n\t\t\t\tvar elements = document.getElementsByTagName(hTagsName);\r\n\r\n\t\t\t\tvar isEditMode = anchorContainers[i].attributes.getNamedItem(\"data-pageeditor\") != null\r\n\t\t\t\t\t? \"true\" === anchorContainers[i].attributes.getNamedItem(\"data-pageeditor\").value.toLowerCase()\r\n\t\t\t\t\t: false;\r\n\t\t\t\tisEditMode = false;\r\n\t\t\t\tif (!isEditMode) {\r\n\t\t\t\t\tvar list = document.createElement(\"ul\");\r\n\t\t\t\t\tlist.setAttribute(\"class\", \"anchor-links\");\r\n\r\n\t\t\t\t\tfor (var k = 0, l = elements.length; k < l; k++) {\r\n\t\t\t\t\t\tvar text = elements[k].innerText;\r\n\t\t\t\t\t\tif (!text.startsWith(\"{\") &&\r\n\t\t\t\t\t\t\telements[k].className.indexOf(\"exclude-navigation\") < 0 &&\r\n\t\t\t\t\t\t\t$.trim(text).length > 0 &&\r\n\t\t\t\t\t\t\t!$(elements[k]).parent().hasClass('slick-slide')) {\r\n\t\t\t\t\t\t\tvar element = getListElement(text, elements[k]);\r\n\t\t\t\t\t\t\tlist.appendChild(element);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar title = document.createElement(\"h2\");\r\n\t\t\t\t\tvar titleText = anchorContainers[i].attributes.getNamedItem(\"data-title\").value;\r\n\r\n\t\t\t\t\tif (titleText == null || titleText == \"\"\r\n\t\t\t\t\t) titleText = \"On this page\"; //default fallback original value\r\n\t\t\t\t\ttitle.innerText = titleText;\r\n\r\n\t\t\t\t\tanchorContainers[i].appendChild(title);\r\n\t\t\t\t\tanchorContainers[i].appendChild(list);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar message = document.createElement(\"h4\");\r\n\t\t\t\t\tmessage.innerText = elements.length > 0 ? messageEditMode : messageNoH3;\r\n\t\t\t\t\tanchorContainers[i].appendChild(message);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getListElement(text, linkedElement) {\r\n\t\tvar element = document.createElement(\"li\");\r\n\t\telement.setAttribute(\"class\", \"anchor-links-item\");\r\n\t\tvar link = document.createElement(\"a\");\r\n\t\tlink.setAttribute(\"href\", \"#\");\r\n\t\tlink.setAttribute(\"class\", \"anchor-links-link\");\r\n\t\tlink.innerText = text;\r\n\t\tlink.addEventListener(\"click\", function (event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\t\r\n\t\t\t$('html, body').animate({\r\n\t\t\t\tscrollTop: $(linkedElement).offset().top - 100\r\n\t\t\t}, 500);\r\n\t\t\t// set focus\r\n\t\t\t$(linkedElement).attr('tabindex', '-1');\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t$(linkedElement).focus();\r\n\t\t\t}, 500);\r\n\t\t});\r\n\r\n\t\telement.appendChild(link);\r\n\t\treturn element;\r\n\t};\r\n\r\n})();","\r\n(function ($) {\r\n\r\n\tfunction getUrlVars() {\r\n\t\tvar vars = [], hash;\r\n\t\tvar hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\r\n\t\tfor (var i = 0; i < hashes.length; i++) {\r\n\t\t\thash = hashes[i].split('=');\r\n\t\t\tvars.push(hash[0]);\r\n\t\t\tvars[hash[0]] = hash[1];\r\n\t\t}\r\n\t\treturn vars;\r\n\t}\r\n\tfunction getCookie(cname) {\r\n\t\tvar name = cname + \"=\";\r\n\t\tvar decodedCookie = decodeURIComponent(document.cookie);\r\n\t\tvar ca = decodedCookie.split(';');\r\n\t\tfor (var i = 0; i < ca.length; i++) {\r\n\t\t\tvar c = ca[i];\r\n\t\t\twhile (c.charAt(0) === ' ') {\r\n\t\t\t\tc = c.substring(1);\r\n\t\t\t}\r\n\t\t\tif (c.indexOf(name) === 0) {\r\n\t\t\t\treturn c.substring(name.length, c.length);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\r\n\tfunction setCookie(cname, cvalue, exdays) {\r\n\t\tvar d = new Date();\r\n\t\td.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\r\n\t\tvar expires = \"expires=\" + d.toUTCString();\r\n\t\tdocument.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/;\" + \"SameSite=Lax\";\r\n\t}\r\n\r\n\tvar urlParams = getUrlVars();\r\n\tif (urlParams[\"pdf\"] === \"1\") return; // don't display cookie banner when saving to pdf\r\n\r\n\tvar $cookieNotice = $('.cookie-notice');\r\n\tif ($cookieNotice === 0) return; //If cookie doesnt html does not exist then return\r\n\r\n\tvar hasConsent = getCookie('boeconsent');\r\n\tif (hasConsent === \"\") {\r\n\t\t// User has not dismissed the cookie\r\n\t\tsetTimeout(function () {\r\n\t\t\tshowPanel();\r\n\t\t}, 1000);\r\n\r\n\t}\r\n\r\n\t// hide and show panel\r\n\tfunction showPanel() {\r\n\r\n\t\t$cookieNotice.addClass('is-visible');\r\n\t\tbindClickEvent();\r\n\t\tbindFocusEvent();\r\n\t}\r\n\tfunction bindClickEvent() {\r\n\r\n\t\tvar daysMax = 90,\r\n\t\t\tdaysMin = 1,\r\n\t\t\tconsentNecessary = 'necessary',\r\n\t\t\tconsentAnalytics = 'analytics';\r\n\r\n\t\t$('[data-cookie]').on('click', function (e) {\r\n\r\n\t\t\tthisAttr = $(this).attr('data-cookie');\r\n\r\n\t\t\tif (thisAttr === 'analytics') {\r\n\t\t\t\taddCookie(consentAnalytics, daysMax);\r\n\t\t\t\tif (typeof (SetAnalytics) != 'undefined') {\r\n\t\t\t\t\tvar analytics = SetAnalytics || {}; // set to SetAnalytics if it exists\r\n\t\t\t\t\tif (analytics.setTagManager) {\r\n\t\t\t\t\t\tSetAnalytics.setTagManager();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// update iFrameBlocker\r\n\t\t\t\tIframeBlocker.init();\r\n\t\t\t} else {\r\n\t\t\t\taddCookie(consentNecessary, daysMin);\r\n\t\t\t}\r\n\r\n\t\t\tremovePanel();\r\n\r\n\t\t\t// prevent default click behavior\r\n\t\t\te.preventDefault();\r\n\r\n\t\t});\r\n\t}\r\n\tfunction removePanel() {\r\n\r\n\t\t$cookieNotice.removeClass('is-visible');\r\n\r\n\t}\r\n\tfunction addCookie(consentValue, days) {\r\n\r\n\t\tsetCookie('boeconsent', consentValue, days);\r\n\t}\r\n\tfunction bindFocusEvent() {\r\n\r\n\t\t// if user tab outside the cookie panel area \r\n\t\t$('body').on('keyup', function (e) {\r\n\r\n\t\t\tvar $thisTarget = $(e.target),\r\n\t\t\t\tclickedOutside = $thisTarget.closest('.cookie-notice').length === 0;\r\n\r\n\t\t\tif (clickedOutside) {\r\n\r\n\t\t\t\t// remove panel\r\n\t\t\t\tif ($('.cookie-notice').hasClass('is-visible')) {\r\n\t\t\t\t\tremovePanel();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\r\n})(jQuery);","// Animated gif\r\nvar AnimatedGif = {\r\n\r\n selector: '[data-gif]',\r\n selectorText: '[data-gif-text]',\r\n selectorImg: '[data-gif-img]',\r\n\r\n init: function () {\r\n\r\n if (!$(this.selector).length) return;\r\n\r\n this.bindClickOff();\r\n },\r\n\r\n bindClickOff: function () {\r\n\r\n $(AnimatedGif.selector).on('click', function (event) {\r\n\r\n $thisContainer = $(this);\r\n $thisImg = $thisContainer.find(AnimatedGif.selectorImg);\r\n\r\n thisSelectorAttr = $thisImg.attr('data-gif-img');\r\n $thisImg.attr(\"src\", thisSelectorAttr);\r\n\r\n AnimatedGif.addClassActive($thisContainer);\r\n\r\n event.preventDefault();\r\n\r\n });\r\n },\r\n\r\n addClassActive: function ($thisContainer) {\r\n $thisContainer.addClass('animation-off');\r\n }\r\n}\r\n\r\n\r\n$(document).ready(function () {\r\n\r\n AnimatedGif.init();\r\n\r\n});\r\n","// Glossary tooltip\r\n\r\nvar Glossary = {\r\n\r\n\tselector: '[data-glossary-open]',\r\n\tcontent: '[data-glossary-content]',\r\n\tbuttonClose: '[data-glossary-close]',\r\n\tpageEditMode: '.pagemode-edit',\r\n\r\n\tinit: function () {\r\n\t\tif (!$(this.selector).length) return;\r\n\r\n\t\tthis.createTitle();\r\n\t\tthis.bindClickOpen();\r\n\t},\r\n\r\n\tbindClickOpen: function () {\r\n\r\n\t\t$(Glossary.selector).on('click', function (event) {\r\n\r\n\t\t\t$thisSelector = $(this);\r\n\t\t\tthisSelectorAttr = $thisSelector.attr('data-glossary-open');\r\n\r\n\t\t\t// Prevent default anchor click behavior\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\tGlossary.findMatchContent($thisSelector, thisSelectorAttr);\r\n\t\t\tGlossary.unbindClickEvent($thisSelector);\r\n\r\n\t\t});\r\n\t},\r\n\r\n\tcreateTitle: function () {\r\n\r\n\t\t// remove any existing title - this is to fix the content editor bug \r\n\t\t$('.modal__content').find('h2.h3.exclude-navigation').remove();\r\n\r\n\t\t// return function if you are in edit mode in the cms\r\n\t\tif ($(LinksExternal.pageEditMode).length) return;\r\n\r\n\t\t$(Glossary.selector).each(function () {\r\n\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\tthisText = $this.text().trim(),\r\n\t\t\t\tthisTextUppercase = thisText[0].toUpperCase() + thisText.substring(1),\r\n\t\t\t\tthisTitle = '

    ' + thisTextUppercase + '

    ',\r\n\t\t\t\tthisAttr = $this.attr('data-glossary-open'),\r\n\t\t\t\tidLabel = thisAttr + '-label',\r\n\t\t\t\tidDescription = thisAttr + '-desc',\r\n\t\t\t\tdescrWrapper = '
    ',\r\n\r\n\r\n\t\t\t\t// find the content that matches the attribute of the selector\r\n\t\t\t\tmatchedContentAttr = '[data-glossary-content=\"' + thisAttr + '\"]',\r\n\t\t\t\t$matchedContentEl = $(matchedContentAttr),\r\n\t\t\t\tthisContent = $matchedContentEl.find('.modal__content');\r\n\r\n\t\t\t// add aria attributes\r\n\t\t\t$matchedContentEl.attr('aria-labelledby', idLabel);\r\n\t\t\t$matchedContentEl.attr('aria-describedby', idDescription);\r\n\t\t\t$(Glossary.content).attr('aria-modal', true);\r\n\r\n\t\t\t// add title to modal content\r\n\t\t\tthisContent.prepend(thisTitle);\r\n\t\t\tthisContent.find('h2').attr('id', idLabel);\r\n\r\n\t\t\t// add wrapper to the main content\r\n\t\t\tthisContent.find('h2').siblings().wrapAll(descrWrapper);\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tunbindClickEvent: function ($thisSelector) {\r\n\t\t$thisSelector.off(\"click\");\r\n\t},\r\n\r\n\tfindMatchContent: function ($thisSelector, thisSelectorAttr) {\r\n\r\n\t\t// find the content that matches the attribute of the selector\r\n\t\tvar matchedContentAttr = '[data-glossary-content=\"' + thisSelectorAttr + '\"]';\r\n\t\tvar $matchedContentEl = $(matchedContentAttr);\r\n\r\n\t\tGlossary.showModal($thisSelector, $matchedContentEl);\r\n\t\tGlossary.bindClickClose($thisSelector, $matchedContentEl);\r\n\t\tGlossary.setFocus($matchedContentEl);\r\n\t},\r\n\r\n\tbindClickClose: function ($thisSelector, $matchedContentEl) {\r\n\r\n\t\tvar $thisBtClose = $matchedContentEl.find(Glossary.buttonClose);\r\n\r\n\t\t$thisBtClose.on('click', function (e) {\r\n\r\n\t\t\t//prevent default clicks\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tGlossary.hideModal($thisSelector, $matchedContentEl);\r\n\t\t\t$thisSelector.focus();\r\n\t\t\tGlossary.unbindClickEvent($thisBtClose);\r\n\t\t});\r\n\t},\r\n\r\n\tshowModal: function ($thisSelector, $matchedContentEl) {\r\n\r\n\t\t$thisSelector.addClass('active');\r\n\t\tGlossary.bindKeyDownClose($thisSelector, $matchedContentEl);\r\n\t\tGlossary.bindClickOutside($thisSelector, $matchedContentEl);\r\n\t},\r\n\r\n\tbindClickOutside: function ($thisSelector, $matchedContentEl) {\r\n\r\n\t\t// Get the modal\r\n\t\tvar currentContentainer = $matchedContentEl.find('.modal__container')[0];\r\n\r\n\t\t// if user click outsidde the content area to hide modal\r\n\t\t$('.modal').on('click', function (e) {\r\n\r\n\t\t\tvar $thisTarget = $(e.target)[0];\r\n\r\n\t\t\tif ($thisTarget === currentContentainer) {\r\n\t\t\t\tGlossary.hideModal($thisSelector, $matchedContentEl);\r\n\t\t\t\t$thisSelector.focus();\r\n\r\n\t\t\t\t//prevent default clicks and stop propagation\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\thideModal: function ($thisSelector, $matchedContentEl) {\r\n\r\n\t\t// hide modal window\r\n\t\t$thisSelector.removeClass('active');\r\n\t\tGlossary.removeFocus($thisSelector, $matchedContentEl);\r\n\t\tGlossary.unbindClickEvent($(Glossary.buttonClose));\r\n\t\tGlossary.bindClickOpen();\r\n\t},\r\n\r\n\tsetFocus: function ($matchedContentEl) {\r\n\r\n\t\tvar $childContainer = $matchedContentEl.find('.modal__container'),\r\n\t\t\t$childContent = $childContainer.find('.modal__content'),\r\n\t\t\t$focusableElements = $childContainer.find('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'),\r\n\t\t\tfirstFocusedEl = $focusableElements[0],\r\n\t\t\tlastFocusedEl = $focusableElements[$focusableElements.length - 1];\r\n\r\n\t\t// set aria attributes and remove focus\r\n\t\t$('.modal__content').removeAttr('tabindex');\r\n\t\t$matchedContentEl.attr('aria-hidden', false);\r\n\t\t$childContent.attr('tabindex', '-1');\r\n\r\n\t\t// set focus\r\n\t\tsetTimeout(function () {\r\n\t\t\t$childContent.focus();\r\n\t\t}, 100);\r\n\r\n\r\n\t\t$('body').on('keydown', function (e) {\r\n\r\n\t\t\tvar isTabPressed = e.key === 'Tab' || e.keyCode === 9;\r\n\r\n\t\t\tif (!isTabPressed) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// if shift key pressed for shift + tab combination\r\n\t\t\tif (e.shiftKey) {\r\n\t\t\t\tif (document.activeElement === firstFocusedEl) {\r\n\t\t\t\t\t// add focus for the last focusable element\r\n\t\t\t\t\t$(lastFocusedEl).focus();\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t} else { // if tab key is pressed\r\n\t\t\t\t// if focused has reached to last focusable element then focus first focusable element after pressing tab\r\n\t\t\t\tif (document.activeElement === lastFocusedEl) {\r\n\t\t\t\t\t// add focus for the first focusable element\r\n\t\t\t\t\t$(firstFocusedEl).focus();\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tremoveFocus: function ($thisSelector, $matchedContentEl) {\r\n\r\n\t\t// set aria attributes and remove the focus\r\n\t\t$matchedContentEl.attr('aria-hidden', true);\r\n\t\t$('.modal__content').removeAttr('tabindex');\r\n\r\n\t\t// set focus\r\n\t\tsetTimeout(function () {\r\n\t\t\t$thisSelector.focus();\r\n\t\t}, 100);\r\n\t},\r\n\r\n\tbindKeyDownClose: function ($thisSelector, $matchedContentEl) {\r\n\r\n\t\t$(document).on('keydown.modal__content', function (e) {\r\n\r\n\t\t\t// if user press key Esc close modal\r\n\t\t\tif (e.keyCode === 27) {\r\n\r\n\t\t\t\t//prevent default clicks\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tGlossary.hideModal($thisSelector, $matchedContentEl);\r\n\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n};\r\n\r\n$(document).ready(function () {\r\n\tGlossary.init();\r\n});","// IframeBlocker\r\n\r\nvar CheckCookies = {\r\n\tgetCookie: function (cname) {\r\n\t\tvar name = cname + \"=\";\r\n\t\tvar decodedCookie = decodeURIComponent(document.cookie);\r\n\t\tvar ca = decodedCookie.split(';');\r\n\t\tfor (var i = 0; i < ca.length; i++) {\r\n\t\t\tvar c = ca[i];\r\n\t\t\twhile (c.charAt(0) === ' ') {\r\n\t\t\t\tc = c.substring(1);\r\n\t\t\t}\r\n\t\t\tif (c.indexOf(name) === 0) {\r\n\t\t\t\treturn c.substring(name.length, c.length);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\r\n};\r\n\r\nvar IframeBlocker = {\r\n\r\n\tselector: '[data-iframe]',\r\n\tselectorOverlay: '.iframe-blocker__overlay',\r\n\tselectorButton: '.iframe-blocker__button',\r\n\tblockerImage: '.iframe-blocker__image',\r\n\tvideoPlayer: '[data-video]',\r\n\tiframeId: '[data-iframe-id]',\r\n\twindowSize: window.innerWidth,\r\n\tduration: 250,\r\n\r\n\tinit: function () {\r\n\t\tif (!$(this.selector).length) return;\r\n\t\tthis.setDefaultState();\r\n\t},\r\n\r\n\tsetDefaultState: function () {\r\n\r\n\t\tvar hasConsentAnalytics = CheckCookies.getCookie('boeconsent');\r\n\t\tif (hasConsentAnalytics === \"analytics\") {\r\n\t\t\t$(IframeBlocker.selector).each(function (i) {\r\n\t\t\t\t$thisIframe = $(this);\r\n\t\t\t\tiframeType = $thisIframe.attr('data-iframe');\r\n\t\t\t\tiframeOverlay = $thisIframe.find(IframeBlocker.selectorOverlay);\r\n\t\t\t\tiframeImage = $thisIframe.find(IframeBlocker.blockerImage);\r\n\r\n\t\t\t\tif (iframeType === \"vimeo\") {\r\n\t\t\t\t\tvar iframeVideo = $thisIframe.find(IframeBlocker.videoPlayer),\r\n\t\t\t\t\t\tvideoID = iframeVideo.attr('data-video'),\r\n\t\t\t\t\t\tiframeTitle = iframeVideo.attr('data-iframe-title');\r\n\r\n\t\t\t\t\tIframeBlocker.crateIframe(videoID, iframeTitle);\r\n\t\t\t\t\tIframeBlocker.removeBlocker(iframeOverlay, iframeImage);\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tIframeBlocker.buildTableau();\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tIframeBlocker.bindClickEvent();\r\n\t\t}\r\n\t},\r\n\r\n\tbindClickEvent: function () {\r\n\r\n\t\t$(IframeBlocker.selectorButton).on('click', function (e) {\r\n\r\n\t\t\t// prevent default click behavior\r\n\t\t\te.preventDefault();\r\n\t\t\t// stopPropagation to prevent the button click from bubbling up the DOM\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t\t// get attribute from button clicked\r\n\t\t\t$thisButton = $(this);\r\n\t\t\tiframeOverlay = $thisButton.parents(IframeBlocker.selectorOverlay);\r\n\r\n\t\t\tthisIframe = $thisButton.parents(IframeBlocker.selector);\r\n\t\t\tiframeType = thisIframe.attr('data-iframe');\r\n\r\n\t\t\tif (iframeType === \"vimeo\") {\r\n\t\t\t\tiframeImage = thisIframe.find(IframeBlocker.blockerImage);\r\n\t\t\t\tvideoID = $thisButton.attr('data-video');\r\n\t\t\t\tiframeTitle = $thisButton.attr('data-iframe-title');\r\n\t\t\t\tIframeBlocker.crateIframe(videoID, iframeTitle);\r\n\t\t\t\tIframeBlocker.removeBlocker(iframeOverlay, iframeImage);\r\n\t\t\t} else {\r\n\t\t\t\tIframeBlocker.buildTableau();\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tcrateIframe: function (videoID, iframeTitle) {\r\n\t\tvar tag = document.createElement('iframe');\r\n\t\ttag.src = \"https://player.vimeo.com/video/\" + videoID;\r\n\t\ttag.frameBorder = 0;\r\n\t\ttag.setAttribute('webkitallowfullscreen', '');\r\n\t\ttag.setAttribute('mozallowfullscreen', '');\r\n\t\ttag.setAttribute('allowfullscreen', '');\r\n\t\ttag.setAttribute('title', iframeTitle);\r\n\r\n\t\tvar el = \"#\" + videoID;\r\n\t\t$(el).prepend(tag);\r\n\r\n\t},\r\n\r\n\tbuildTableau: function () {\r\n\r\n\t\t$(IframeBlocker.selector).each(function (i) {\r\n\t\t\tvar $thisIframe = $(this),\r\n\t\t\t\tiframeType = $thisIframe.attr('data-iframe'),\r\n\t\t\t\ttableauPlaceholder = $thisIframe.find('.tableauPlaceholder'),\r\n\t\t\t\ttableauObj = tableauPlaceholder.find('object'),\r\n\t\t\t\tiframeWidth = tableauPlaceholder.attr('data-iframe-width'),\r\n\t\t\t\tiframeHeight = tableauPlaceholder.attr('data-iframe-height'),\r\n\t\t\t\tiframeHeightMobile = tableauPlaceholder.attr('data-iframe-height-mobile'),\r\n\r\n\t\t\t\tiframeOverlay = $thisIframe.find(IframeBlocker.selectorOverlay),\r\n\t\t\t\tiframeImage = tableauPlaceholder.find(IframeBlocker.blockerImage);\r\n\r\n\t\t\tif (IframeBlocker.windowSize > 500) {\r\n\t\t\t\ttableauObj.css('width', iframeWidth);\r\n\t\t\t\ttableauObj.css('height', iframeHeight);\r\n\t\t\t} else {\r\n\t\t\t\ttableauObj.css('width', '100%');\r\n\t\t\t\ttableauObj.css('height', iframeHeightMobile);\r\n\t\t\t}\r\n\r\n\t\t\tvar scriptElement = document.createElement('script');\r\n\t\t\tscriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js';\r\n\t\t\t$(tableauPlaceholder).append(scriptElement, tableauObj);\r\n\r\n\t\t\tif (iframeType === \"tableau\") {\r\n\t\t\t\tIframeBlocker.removeBlocker(iframeOverlay, iframeImage);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tremoveBlocker: function (iframeOverlay, iframeImage) {\r\n\t\tiframeOverlay.css('display', 'none');\r\n\t\tiframeImage.css('display', 'none');\r\n\t}\r\n};\r\n\r\n\r\n$(document).ready(function () {\r\n\tIframeBlocker.init();\r\n});","(function ($) {\r\n\tif (jQuery().slick) {\r\n\r\n\t\tvar dots = '.slick-dots button',\r\n\t\t\tdotsContainer = '.slick-dots',\r\n\t\t\tslideContainer = '.slick-track',\r\n\t\t\tslide = '.slick-slide',\r\n\t\t\t$homeCarousel = $('.home-news-carousel').slick({\r\n\t\t\t\tfocusOnChange: false,\r\n\t\t\t\taccessibility: true,\r\n\t\t\t\tslidesToShow: 1,\r\n\t\t\t\tslidesToScroll: 1,\r\n\t\t\t\tarrows: false,\r\n\t\t\t\tfade: true,\r\n\t\t\t\tdots: true,\r\n\t\t\t\tautoplay: true,\r\n\t\t\t\tautoplaySpeed: 7000\r\n\t\t\t});\r\n\r\n\t\t$('.home-news-carousel .slick-dots').before('');\r\n\r\n\t\t$('.slick-play-pause').click(function (e) {\r\n\t\t\tif ($(this).hasClass('icon-play')) {\r\n\t\t\t\t$('.home-news-carousel').slick('slickPlay');\r\n\t\t\t} else {\r\n\t\t\t\t$('.home-news-carousel').slick('slickPause');\r\n\t\t\t}\r\n\t\t\t$(this).toggleClass('icon-play');\r\n\t\t\t$(this).toggleClass('icon-pause');\r\n\t\t\tif ($(this).hasClass('icon-play')) {\r\n\t\t\t\t$(this).html('
    Start automatic slide show
    ');\r\n\t\t\t} else {\r\n\t\t\t\t$(this).html('
    Stop automatic slide show
    ');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// redirect focus to slides after clicking on the dots buttons \r\n\t\t$(dots).each(function () {\r\n\r\n\t\t\tvar $this = $(this);\r\n\r\n\t\t\t// redirect focus to read the content within the matched slide \r\n\t\t\t$this.on('click', function (e) {\r\n\r\n\t\t\t\tvar thisId = $this.attr('id'),\r\n\t\t\t\t\tmatchedSlide = '[aria-describedby=\"' + thisId + '\"]',\r\n\t\t\t\t\t$matchedSlideLink = $(matchedSlide).find('.home-news-link');\r\n\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t$matchedSlideLink.attr('tabindex', '-1').focus();\r\n\t\t\t\t}, 700);\r\n\r\n\t\t\t\t// prevent default click behavior\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tvar setAriaAttributes = function () {\r\n\r\n\t\t\t$(slideContainer).attr('role', 'region');\r\n\t\t\t$(slideContainer).attr('aria-roledescription', 'carousel');\r\n\t\t\t$(slideContainer).attr('aria-label', 'latest news');\r\n\t\t\t$(dotsContainer).attr('aria-label', 'slides');\r\n\t\t\t$(slide).attr('aria-roledescription', 'slide');\r\n\r\n\t\t\t$(dots).each(function () {\r\n\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\tthisAriaLabel = $this.attr('aria-label'),\r\n\t\t\t\t\tnewAriaLabel = 'Slide ' + thisAriaLabel;\r\n\r\n\t\t\t\t$this.attr('aria-label', newAriaLabel);\r\n\t\t\t\t$(slide).attr('aria-label', thisAriaLabel);\r\n\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t// set attributes on load\r\n\t\tsetAriaAttributes();\r\n\r\n\t\t// set attribute on change slide\r\n\t\t$homeCarousel.on('afterChange', function () {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tsetAriaAttributes();\r\n\t\t\t}, 100);\r\n\r\n\t\t});\r\n\t}\r\n\r\n})(jQuery);","//----------------------------------------------------------------------\r\n//\tIN VIEW\r\n//\tBase Package\r\n//----------------------------------------------------------------------\r\n\r\nfunction inView(selector, selection, offset) {\r\n\r\n\t// get nodeList from selector and convert to array\r\n\tvar scrollOffset = !!offset ? offset : 0,\r\n\t\tselectorNodeList = document.querySelectorAll(selector),\r\n\t\tselectorArray = getArrayFromNodelist(selectorNodeList),\r\n\t\tinviewElements = getMatchingElements();\r\n\r\n\tfunction getMatchingElements() {\r\n\r\n\t\t// filter non-matching elements\r\n\t\tvar filteredElements = selectorArray.filter(function (el) {\r\n\r\n\t\t\t// determine if element is in viewport and parent node is visible as element may not be due to inView implementation. Usually an element itself would be hidden before fading in, whereas if the parent is hidden this will usually be due to another piece of functionality like a set of tabs/carousel etc. inView can be run on callback of tabs/carousel and will match the hidden element\r\n\t\t\tvar parent = el.parentNode,\r\n\t\t\t\tinViewport = isElementInViewport(el),\r\n\t\t\t\tisVisible = inViewport ? isElementVisible(parent) : false;\r\n\r\n\t\t\t// return if in viewport and visible\r\n\t\t\treturn (inViewport && isVisible);\r\n\t\t});\r\n\r\n\t\treturn filteredElements;\r\n\t}\r\n\r\n\t// detect element properties\r\n\tfunction isElementInViewport(el) {\r\n\r\n\t\t// get boundaries of element and window\r\n\t\tvar elClientRect = el.getBoundingClientRect(),\r\n\t\t\telHeight = el.offsetHeight,\r\n\t\t\telTop = elClientRect.top,\r\n\t\t\telBottom = elClientRect.bottom,\r\n\t\t\twinHeight = window.innerHeight || document.documentElement.clientHeight;\r\n\r\n\t\t// return in view based on selection\r\n\t\tswitch (selection) {\r\n\t\t\tcase 'top':\r\n\t\t\t\treturn viewportTop(elTop, elBottom);\r\n\t\t\tcase 'bottom':\r\n\t\t\t\treturn viewportBottom(elTop, elBottom, elHeight, winHeight);\r\n\t\t\tcase 'inner':\r\n\t\t\t\treturn viewportInner(elTop, elBottom, winHeight);\r\n\t\t\tcase 'all':\r\n\t\t\t\treturn viewportAll(elTop, elBottom, elHeight, winHeight);\r\n\t\t\tdefault:\r\n\t\t\t\treturn viewportAll(elTop, elBottom, elHeight, winHeight);\r\n\t\t}\r\n\t}\r\n\tfunction isElementVisible(el) {\r\n\r\n\t\t// get style properties of element and check element is visible\r\n\t\tvar opacity = getStyle(el, 'opacity') === '0',\r\n\t\t\tdisplay = getStyle(el, 'display') === 'none',\r\n\t\t\tvisibility = getStyle(el, 'visibility') === 'hidden';\r\n\r\n\t\t// if element is not visible, return false\r\n\t\tif (opacity || display || visibility) return false;\r\n\r\n\t\t// if parent is document node, return true\r\n\t\tif (el.parentNode.nodeType === 9) return true;\r\n\r\n\t\t// if parent exists, re-run isElementVisible with parent node to determine if parent is visible\r\n\t\tif (el.parentNode) return isElementVisible(el.parentNode);\r\n\r\n\t\t// otherwise element is visible\r\n\t\treturn true;\r\n\t}\r\n\r\n\t// calculate element position in viewport\r\n\tfunction viewportTop(elTop, elBottom) {\r\n\t\treturn (elTop <= 0 - scrollOffset) && (elBottom >= 0 - scrollOffset);\r\n\t}\r\n\tfunction viewportBottom(elTop, elBottom, elHeight, winHeight) {\r\n\t\treturn elBottom <= (0 + winHeight + elHeight) && elBottom >= winHeight;\r\n\t}\r\n\tfunction viewportAll(elTop, elBottom, elHeight, winHeight) {\r\n\t\treturn elTop >= -(elHeight) - scrollOffset && elBottom <= (winHeight + elHeight) - scrollOffset;\r\n\t}\r\n\tfunction viewportInner(elTop, elBottom, winHeight) {\r\n\t\treturn elTop >= 0 && elBottom <= winHeight;\r\n\t}\r\n\r\n\t// utils\r\n\tfunction getStyle(el, prop) {\r\n\t\t// get style properties\r\n\t\tif (window.getComputedStyle) {\r\n\t\t\treturn document.defaultView.getComputedStyle(el, null)[prop];\r\n\t\t} else if (el.currentStyle) {\r\n\t\t\treturn el.currentStyle[prop];\r\n\t\t}\r\n\t}\r\n\tfunction getArrayFromNodelist(nodeList) {\r\n\t\t// create empty array to push to\r\n\t\tvar nodeArray = [];\r\n\t\t// loop through each item in the nodeList and add to nodeArray\r\n\t\tfor (var i = 0; i < nodeList.length; i++) {\r\n\t\t\tnodeArray.push(nodeList[i]);\r\n\t\t}\r\n\t\t// return nodeList as array\r\n\t\treturn nodeArray;\r\n\t}\r\n\r\n\t// return nodeList of visible elements within the viewport\r\n\treturn inviewElements;\r\n}","(function ($) {\r\n // Carousels\r\n if(jQuery().slick && $('.img-carousel').length) {\r\n\t\t\r\n \t$('.img-carousel').each(function () {\r\n \t\tvar nav = $(this).parent().find('.img-carousel-nav').attr('id');\r\n \t\tnav = '#' + nav;\r\n \t\t$(this).slick({\r\n \t\t\tslidesToShow: 1,\r\n \t\t\tslidesToScroll: 1,\r\n \t\t\tarrows: true,\r\n \t\t\tfade: true,\r\n \t\t\tadaptiveHeight: true,\r\n \t\t\tasNavFor: nav\r\n \t\t});\r\n \t});\r\n \r\n \tif ($('body').hasClass('pagemode-edit')) {\r\n \t\t$('.img-carousel-nav').each(function () {\r\n \t\t\tvar carousel = $(this).parent().parent().find('.img-carousel').attr('id');\r\n \t\t\tcarousel = '#' + carousel;\r\n \t\t\t$(this).slick({\r\n \t\t\t\tslidesToShow: 4,\r\n \t\t\t\tslidesToScroll: 1,\r\n \t\t\t\tasNavFor: carousel,\r\n \t\t\t\tarrows: true,\r\n \t\t\t\tfocusOnSelect: true,\r\n \t\t\t\tinfinite: false\r\n \t\t\t});\r\n \t\t});\r\n } else {\r\n \t\t$('.img-carousel-nav').each(function () {\r\n \t\t\tvar carousel = $(this).parent().parent().find('.img-carousel').attr('id');\r\n \t\t\tcarousel = '#' + carousel;\r\n \t\t\t$(this).slick({\r\n \t\t\tslidesToShow: 4,\r\n \t\t\tslidesToScroll: 1,\r\n \t\t\tasNavFor: carousel,\r\n \t\t\tarrows: true,\r\n \t\t\tfocusOnSelect: true\r\n \t\t\t});\r\n \t\t});\r\n\r\n \t\t//Lightbox\r\n \t\t$('.img-carousel').each(function () {\r\n \t\t\t$(this).featherlightGallery({\r\n \t\t\t\tpreviousIcon: '',\r\n \t\t\t\tnextIcon: '',\r\n \t\t\t\tgalleryFadeIn: 100,\r\n \t\t\t\tgalleryFadeOut: 300,\r\n \t\t\t\tfilter: '.img-carousel-link'\r\n \t\t\t});\r\n \t\t});\r\n \t\t\r\n }\r\n\r\n }\r\n})(jQuery);","// In page jumpLink\r\nvar JumpLink = {\r\n\r\n\tselector: 'a:not(.footnote-link, .list-nav__link, .list-nav-secondary__link, .anchor-links-link, .div-row .div-row__col-2 a, .icon-previous, .icon-future)',\r\n\tcontentNav: '.nav-chapters',\r\n\r\n\tinit: function () {\r\n\r\n\t\tif (!$(this.selector).length) return;\r\n\r\n\t\tthis.bindClickEvent();\r\n\t},\r\n\r\n\tbindClickEvent: function () {\r\n\r\n\t\t$(JumpLink.selector).on('click', function (event) {\r\n\r\n\t\t\tvar headerHeight = $('.global-header').height(),\r\n\t\t\t\tthisHash = this.hash;\r\n\r\n\t\t\tif (!$(thisHash).length) return;\r\n\r\n\t\t\t// Prevent default anchor click behavior\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\tif (thisHash !== \"\") {\r\n\r\n\t\t\t\t// set focus\r\n\t\t\t\t$(thisHash).attr('tabindex', '-1');\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t$(thisHash).focus();\r\n\t\t\t\t}, 100);\r\n\r\n\t\t\t\t// Jump to link with smooth animation\r\n\t\t\t\tif ($(JumpLink.contentNav).length) {\r\n\t\t\t\t\t// get height from line bar and top nav\r\n\t\t\t\t\tvar lineBarHeight = $('.nav-chapters__line').height(),\r\n\t\t\t\t\t\tcontentNavHeight = $(JumpLink.contentNav).height(),\r\n\t\t\t\t\t\tnavHeight = lineBarHeight + contentNavHeight + 2;\r\n\r\n\t\t\t\t\tif ($(window).width() < 1023) {\r\n\r\n\t\t\t\t\t$('html, body').animate({\r\n\t\t\t\t\t\tscrollTop: $(thisHash).offset().top - navHeight\r\n\t\t\t\t\t}, 800);\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$('html, body').animate({\r\n\t\t\t\t\t\t\tscrollTop: $(thisHash).offset().top - (headerHeight + lineBarHeight + 5)\r\n\t\t\t\t\t\t}, 800);\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ($(window).width() < 1023) {\r\n\r\n\t\t\t\t\t\t$('html, body').animate({\r\n\t\t\t\t\t\t\tscrollTop: $(thisHash).offset().top - 5\r\n\t\t\t\t\t\t}, 800);\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$('html, body').animate({\r\n\t\t\t\t\t\t\tscrollTop: $(thisHash).offset().top - (headerHeight + 5)\r\n\r\n\t\t\t\t\t\t}, 800);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n};\r\n\r\n$(document).ready(function () {\r\n\tJumpLink.init();\r\n}); ","// External link title tag\r\nvar LinksExternal = {\r\n\r\n\tselector: 'a[target=\"_blank\"]',\r\n\tpageEditMode: '.pagemode-edit',\r\n\ticonExternal: '',\r\n\r\n\tinit: function () {\r\n\r\n\t\tif (!$(this.selector).length) return;\r\n\t\tthis.addLinkFeautures();\r\n\t},\r\n\taddLinkFeautures: function () {\r\n\r\n\t\tvar $externalLink = $(LinksExternal.selector),\r\n\t\t\timgButton = \"img[src^='/assets/img/icon']\",\r\n\t\t\timgButtonPlaceholder = \"img[src^='/assets/img/styleguide/icon']\";\r\n\r\n\t\t// remove alt tag from assets icon\r\n\t\t$(imgButton).attr('alt', '');\r\n\t\t$(imgButtonPlaceholder).attr('alt', '');\r\n\r\n\t\t$externalLink.each(function () {\r\n\r\n\t\t\tvar $thisLink = $(this),\r\n\t\t\t\t$thisLinkContentBlock = $thisLink.parents('.content-block'),\r\n\t\t\t\t$thisLinkAccordion = $thisLink.parents('.accordion-content'),\r\n\t\t\t\t$thisLinkExpander = $thisLink.parents('.expander'),\r\n\t\t\t\t$thisLinkBoxwrap = $thisLink.parents('.box-wrap'),\r\n\t\t\t\t$thisLinkTimeline = $thisLink.parents('.timeline-wrap'),\r\n\t\t\t\t$thisLinkModal = $thisLink.parents('.modal__container'),\r\n\t\t\t\tvissuallyHiddenText = ' Opens in a new window';\r\n\r\n\t\t\t// remove any existing text\r\n\t\t\t$thisLink.find('.visually-hidden').remove();\r\n\r\n\t\t\t// add text and remove title attribute if you not are in edit mode in the cms\r\n\t\t\tif (!$(LinksExternal.pageEditMode).length) {\r\n\t\t\t\t$thisLink.append(vissuallyHiddenText);\r\n\t\t\t\t$thisLink.removeAttr('title');\r\n\t\t\t}\r\n\r\n\t\t\t// if the content block has an external link as an image\r\n\t\t\t$thisLinkContentBlock.each(function () {\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t$linkImg = $this.find('img'),\r\n\t\t\t\t\t$linkWithImage = $linkImg.parent('a');\r\n\r\n\t\t\t\t// add a class to any link with an image\r\n\t\t\t\t$linkWithImage.addClass('link-image');\r\n\r\n\t\t\t});\r\n\r\n\t\t\t// list of external links to exclude\r\n\t\t\tvar listExcluded = $thisLink.is(':not(.list-links__link, .btn, .btn-load-video, .link-image, .social-link, .related-links > li > a)');\r\n\r\n\t\t\t// add title tag only if the link has the following parent's containers \r\n\t\t\tif ($thisLinkContentBlock.length || $thisLinkAccordion.length || $thisLinkExpander.length || $thisLinkBoxwrap.length || $thisLinkTimeline.length || $thisLinkModal.length) {\r\n\r\n\t\t\t\tif (listExcluded) {\r\n\r\n\t\t\t\t\t// remove any existing icons\r\n\t\t\t\t\t$thisLink.find('.icon-external').remove();\r\n\r\n\t\t\t\t\t// add icon if you are not in the cms\r\n\t\t\t\t\tif (!$(LinksExternal.pageEditMode).length) {\r\n\t\t\t\t\t\t$thisLink.append(LinksExternal.iconExternal);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n};\r\n\r\n$(document).ready(function () {\r\n\tLinksExternal.init();\r\n});","var Main = {\r\n\r\n\tinit: function () {\r\n\r\n\t\t$('.non-link-prevent-default').on('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\r\n\t\tvar touchsupport = ('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0)\r\n\t\tif (!touchsupport) {\r\n\t\t\t$('body').addClass('non-touch');\r\n\t\t}\r\n\r\n\t\t//Form\r\n\t\t$('.form-group input[type=\"text\"], .form-group textarea').focus(function () {\r\n\t\t\t$(this).parent().addClass('focus');\r\n\t\t}).blur(function () {\r\n\t\t\tif (!$(this).val()) {\r\n\t\t\t\t$(this).parent().removeClass('focus');\r\n\t\t\t}\r\n\t\t});\r\n\t\t$('.form-group input[type=\"checkbox\"]').click(function () {\r\n\t\t\tif ($(this).is(':checked')) {\r\n\t\t\t\t$(this).parent().addClass('focus');\r\n\t\t\t} else {\r\n\t\t\t\t$(this).parent().removeClass('focus');\r\n\t\t\t}\r\n\t\t});\r\n\t\t$('.form-group input[type=\"radio\"]').click(function () {\r\n\t\t\t$(this).closest('.radio').find('.focus').removeClass('focus');\r\n\t\t\tif ($(this).is(':checked')) {\r\n\t\t\t\t$(this).parent().addClass('focus');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif ($('.grid-item').length > 0) {\r\n\t\t\t$('.grid-item a.small-block-cta').featherlightGallery({\r\n\t\t\t\tpreviousIcon: '',\r\n\t\t\t\tnextIcon: '',\r\n\t\t\t\tgalleryFadeIn: 100,\r\n\t\t\t\tgalleryFadeOut: 300\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//Person CTA\r\n\t\tif (!Modernizr.objectfit) {\r\n\t\t\t$('.person-cta').each(function () {\r\n\t\t\t\tvar $imageContainer = $(this).find('.cta-img'),\r\n\t\t\t\t\timgUrl = $imageContainer.find('img').prop('src');\r\n\t\t\t\tif (imgUrl) {\r\n\t\t\t\t\t$imageContainer\r\n\t\t\t\t\t\t.css('backgroundImage', 'url(' + imgUrl + ')')\r\n\t\t\t\t\t\t.addClass('object-fit');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// remove default alt from any images\r\n\t\t$('img').each(function () {\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\timgAlt = $this.attr('alt');\r\n\t\t\tif (imgAlt === \"default-boe-image\") {\r\n\t\t\t\t$(this).attr('alt', '');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//PRA\r\n\t\tif ($('.nav-sticky').length > 0) {\r\n\t\t\t$('html').addClass('has-sticky-nav');\r\n\t\t}\r\n\t}\r\n};\r\n\r\n$(document).ready(function () {\r\n\t// Initialise\r\n\tMain.init();\r\n});","//----------------------------------------------------------------------\r\n//\tNAVIGATION CHAPTERS\r\n//\tCustom Package\r\n//----------------------------------------------------------------------\r\n\r\nvar NavChapters = {\r\n\tselectorContainer: '[data-chapter]',\r\n\tselector: '[data-chapter-trigger]',\r\n\tlinkNav: '[data-nav-link]',\r\n\tclassCurrent: 'current',\r\n\tlineBar: '.nav-chapters__line',\r\n\tlineBarIndicator: $('.nav-chapters__line-indicator'),\r\n\tcontainerPercentage: '[data-percentage]',\r\n\tscrollPercentage: '[data-percentage-number]',\r\n\twindowSize: 0,\r\n\twinScroll: 0,\r\n\tlistNav: '.list-nav',\r\n\tsection: '[data-section]',\r\n\theading: '[data-heading]',\r\n\tsectionHeading: '[data-section-heading]',\r\n\tverticalClass: 'nav-chapters--vertical',\r\n\tselectorPublication: '[data-publication]',\r\n\tcontentPublication: false,\r\n\tisSticky: false,\r\n\tisEndPoint: false,\r\n\tstopSticky: false,\r\n\tisHorizontal: false,\r\n\tisOpen: false,\r\n\tnavListItem: '.list-nav__item',\r\n\tclassActive: 'active',\r\n\tbackLinkNav: '[data-back]',\r\n\theaderHeight: 0,\r\n\tnavHeightInitial: 0,\r\n\tnavNoStickyHeight: 0,\r\n\tcontentHeight: 0,\r\n\tviewPortHeight: 0,\r\n\tnavChapersOffset: 0,\r\n\tcontentOffset: 0,\r\n\tendStickyPosition: 0,\r\n\ttopOffsetDesk: 0,\r\n\twinScrollRound: 0,\r\n\tnavBreakPoint: 1100,\r\n\r\n\tinit: function () {\r\n\t\t// return if the container not present\r\n\t\tif (!$(this.selectorContainer).length) return;\r\n\t\tif ($(this.selectorPublication).length) {\r\n\t\t\tthis.contentPublication = true;\r\n\t\t} else {\r\n\t\t\tthis.isHorizontal = true;\r\n\t\t\tthis.addHorizontalClass();\r\n\t\t}\r\n\t\tthis.bindChangeEvent();\r\n\t\tthis.getWindowSize();\r\n\t\tthis.getElSize();\r\n\t\tthis.getHeading();\r\n\t\tthis.addLineBar();\r\n\t\tthis.showScrollingPercentage();\r\n\t\tthis.bindScrollEvent();\r\n\t\tthis.setStickyPosition();\r\n\t\tif (this.windowSize < 1024) {\r\n\t\t\tthis.setAriaAttrs();\r\n\t\t\tthis.bindClickButton();\r\n\t\t} else {\r\n\t\t\tNavChapters.bindExpanderLink();\r\n\t\t}\r\n\t},\r\n\r\n\tgetHeading: function () {\r\n\r\n\t\t// find all headings in the page\r\n\t\theading2 = $('.page-section').find('h2').not('.exclude-navigation');\r\n\t\theading2.attr('data-heading', '');\r\n\r\n\t\t// for each heading find its section container\r\n\t\t$(heading2).each(function (i) {\r\n\r\n\t\t\tvar $thisHeading = $(this),\r\n\t\t\t\ttextH2 = $(this).text();\r\n\r\n\t\t\tif (NavChapters.isHorizontal) {\r\n\t\t\t\t$section = $(this).parents('.page-section');\r\n\t\t\t\t$section.attr('data-section', '');\r\n\t\t\t} else {\r\n\t\t\t\tif ($thisHeading.hasClass('box__h2')) {\r\n\t\t\t\t\t$section = $(this).parents().eq(1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$section = $(this).parent('.page-section');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tNavChapters.createNav(textH2, i, $section, $thisHeading);\r\n\r\n\t\t});\r\n\r\n\t\tNavChapters.bindClickLink();\r\n\r\n\t\t$(NavChapters.heading).each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tif (NavChapters.contentPublication) {\r\n\t\t\t\t$this.nextUntil(NavChapters.heading).andSelf().wrapAll('
    ');\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tcreateNav: function (textH2, i, $section, $thisHeading) {\r\n\r\n\t\t// do not create the navigation if the CMS content editor is open\r\n\t\tvar bodyEdit = '.pagemode-edit';\r\n\r\n\t\tif ($(bodyEdit).length) return;\r\n\r\n\t\tvar elementH3 = $thisHeading.nextUntil('h2', 'h3:not(.exclude-navigation)');\r\n\r\n\t\t// create the markup for each element found\r\n\t\t$(NavChapters.listNav).append(\"
  • \" + textH2 + \"
  • \");\r\n\r\n\t\t// add IDs to headings\r\n\t\t$thisHeading.attr('id', 'chapter-' + i);\r\n\t\t$thisH2Id = $thisHeading.attr('id');\r\n\t\th2Link = '[href=\"#' + $thisH2Id + '\"]';\r\n\r\n\t\t// add back link to section title\r\n\t\tif (!NavChapters.contentPublication) {\r\n\t\t\tvar backLinkHTML = '';\r\n\t\t\t$section.append(backLinkHTML);\r\n\t\t}\r\n\r\n\t\t// add secondary nav to publications\r\n\t\tif (NavChapters.contentPublication) {\r\n\r\n\t\t\t$(h2Link).each(function () {\r\n\r\n\t\t\t\tvar $thisMatched = $(this);\r\n\r\n\t\t\t\t// if link has H3 child add secondary nav\r\n\t\t\t\tif (elementH3.length) {\r\n\r\n\t\t\t\t\t$thisMatched.addClass('has-child');\r\n\t\t\t\t\t$thisMatched.after($(''));\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// for each H3 add id and markup to the secondary nav of the link matched\r\n\t\t\t\telementH3.each(function (i) {\r\n\r\n\t\t\t\t\tvar $thisH3 = $(this),\r\n\t\t\t\t\t\tthisH3Text = $thisH3.text(),\r\n\t\t\t\t\t\tthisH3Id = $thisH2Id + '-' + i;\r\n\r\n\t\t\t\t\t// set ids to headings\r\n\t\t\t\t\t$thisH3.attr('id', thisH3Id);\r\n\t\t\t\t\t$thisH3.attr('data-heading', '');\r\n\t\t\t\t\t$thisMatched.next($('.list-nav-secondary')).append(\"
  • \" + thisH3Text + \"
  • \");\r\n\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// update nav height after being created\r\n\t\tNavChapters.navHeightInitial = $(NavChapters.selectorContainer).height();\r\n\r\n\t\tNavChapters.getInViewSection();\r\n\r\n\t},\r\n\r\n\tbindClickLink: function () {\r\n\r\n\t\t$(NavChapters.linkNav).on('click', function (e) {\r\n\r\n\t\t\tvar thisLink = $(this);\r\n\t\t\tNavChapters.checkOffsetSection(thisLink);\r\n\t\t\tNavChapters.removeClassActive();\r\n\t\t\tNavChapters.addClassActive(thisLink);\r\n\r\n\r\n\t\t\tif (NavChapters.windowSize < 1024) {\r\n\t\t\t\t$(NavChapters.selectorContainer).removeClass('active');\r\n\t\t\t\tNavChapters.resetAriaAttrs();\r\n\t\t\t}\r\n\r\n\t\t\t// set focus for keyboard users\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tNavChapters.setFocus(thisLink);\r\n\t\t\t}, 100);\r\n\r\n\r\n\t\t\t// prevent default click behavior\r\n\t\t\te.preventDefault();\r\n\t\t\t// stopPropagation to prevent the button click from bubbling up the DOM\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t});\r\n\r\n\t\tif ($(NavChapters.backLinkNav)) {\r\n\t\t\t$(NavChapters.backLinkNav).on('click', function (e) {\r\n\t\t\t\t// prevent default click\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t$(\"html, body\").animate({ scrollTop: 0 }, 1000);\r\n\t\t\t\t// set focus back to nav links\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t$(NavChapters.selectorContainer).attr('tabindex', '-1').focus();\r\n\t\t\t\t}, 100);\r\n\t\t\t});\r\n\t\t};\r\n\t},\r\n\r\n\tbindExpanderLink: function () {\r\n\r\n\t\tif (NavChapters.contentPublication) {\r\n\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\t$thisParent = $this.parents('#output');\r\n\r\n\t\t\t$('.accordion-button').on('click', function (e) {\r\n\r\n\t\t\t\tif (NavChapters.windowSize >= 1024) {\r\n\r\n\t\t\t\t\t// if you click on an accordion which is inside an #output container\r\n\t\t\t\t\tif ($thisParent.length) {\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tNavChapters.removeEndPointClass();\r\n\t\t\t\t\t\t\tNavChapters.addStickyClass();\r\n\t\t\t\t\t\t\t$(NavChapters.selectorContainer).css('top', NavChapters.headerHeight);\r\n\t\t\t\t\t\t}, 100);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tNavChapters.getElSize();\r\n\t\t\t\t\t}, 270);\r\n\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tNavChapters.setStickyPosition();\r\n\t\t\t\t\t}, 280);\r\n\r\n\t\t\t\t\t// prevent default click behavior\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t// stopPropagation to prevent the button click from bubbling up the DOM\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tNavChapters.resetPosition();\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tbindChangeEvent: function () {\r\n\r\n\t\t// reset the functions and recalculate the values\r\n\t\t$(window).on('orientationchange resize load', function () {\r\n\r\n\t\t\t// Throttle the resize event to fix mobile bug\r\n\t\t\tclearTimeout(this.id);\r\n\t\t\tthis.id = setTimeout(function () {\r\n\t\t\t\tif (NavChapters.windowSize !== $(window).width()) {\r\n\r\n\t\t\t\t\tNavChapters.getWindowSize();\r\n\r\n\t\t\t\t\tif (NavChapters.contentPublication) {\r\n\t\t\t\t\t\tNavChapters.contentHeight = $('[data-publication]').height();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ($(NavChapters.selectorContainer).hasClass('sticky')) {\r\n\t\t\t\t\t\tNavChapters.removeStickyClass();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ($(NavChapters.selectorContainer).hasClass('endpoint')) {\r\n\t\t\t\t\t\tNavChapters.removeEndPointClass();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tNavChapters.resetAriaAttrs();\r\n\r\n\t\t\t\t\tif (NavChapters.windowSize < 1024) {\r\n\t\t\t\t\t\tNavChapters.resetPosition();\r\n\t\t\t\t\t\tNavChapters.unbindClickButton();\r\n\t\t\t\t\t\tNavChapters.bindClickButton();\r\n\t\t\t\t\t\tNavChapters.resetHeight();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tNavChapters.bindExpanderLink();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tNavChapters.getElSize();\r\n\t\t\t\t\tNavChapters.setStickyPosition();\r\n\r\n\t\t\t\t}\r\n\t\t\t}, 10);\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tbindClickButton: function () {\r\n\t\t// on clink event get the parent container and add active class\r\n\t\t$(NavChapters.selector).on('click', function (e) {\r\n\r\n\t\t\t$thisSelector = $(this);\r\n\r\n\t\t\t// animate the height of the content and set the aria attributes\r\n\t\t\tNavChapters.animateNavChapt($thisSelector);\r\n\r\n\t\t\t// prevent default click behavior\r\n\t\t\te.preventDefault();\r\n\t\t\t// stopPropagation to prevent the button click from bubbling up the DOM\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tunbindClickButton: function () {\r\n\r\n\t\t$(NavChapters.selector).unbind(\"click\");\r\n\t},\r\n\r\n\tcheckOffsetSection: function (thisLink) {\r\n\r\n\t\t// get the section offset position and the height of each top elements\r\n\t\tvar offSetEl = $(thisLink.attr('href')).offset().top,\r\n\t\t\toffsetRound = Math.round(offSetEl),\r\n\t\t\tnavButtonHeight = $(NavChapters.selector).outerHeight(),\r\n\t\t\tlineHeight = $(NavChapters.lineBarIndicator).height(),\r\n\t\t\tnavChapBar = navButtonHeight + lineHeight,\r\n\t\t\tcombinedHeight = NavChapters.navHeightInitial + NavChapters.headerHeight,\r\n\r\n\t\t\t// calculate the end scroll position for horizontal nav layout\r\n\t\t\tendScroll = offsetRound - navChapBar - 15,\r\n\t\t\tendScrollNoSticky = offsetRound - (navChapBar + NavChapters.navNoStickyHeight + 15),\r\n\t\t\tendScrollNoStickyDesk = offsetRound - (combinedHeight + NavChapters.navHeightInitial + 35),\r\n\t\t\tendScrollDesk = offsetRound - combinedHeight - 25;\r\n\r\n\t\tif (NavChapters.contentPublication && NavChapters.windowSize >= 1024) {\r\n\r\n\t\t\tNavChapters.jumpToHeading(offsetRound);\r\n\r\n\t\t} else {\r\n\t\t\t// horizontal nav layout\r\n\t\t\tNavChapters.jumpToSection(endScroll, endScrollDesk, endScrollNoSticky, endScrollNoStickyDesk, navChapBar);\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tjumpToHeading: function (offsetRound) {\r\n\r\n\t\tvar contentHeading = offsetRound - (NavChapters.headerHeight + 15);\r\n\r\n\t\t$('html, body').animate({ scrollTop: contentHeading }, 500);\r\n\r\n\t},\r\n\r\n\tjumpToSection: function (endScroll, endScrollDesk, endScrollNoSticky, endScrollNoStickyDesk, navChapBar) {\r\n\r\n\t\tif (NavChapters.windowSize >= 1024) {\r\n\r\n\t\t\tif ($(NavChapters.selectorContainer).hasClass('sticky')) {\r\n\r\n\t\t\t\tif (NavChapters.windowSize >= NavChapters.navBreakPoint) {\r\n\t\t\t\t\t$('html, body').animate({ scrollTop: endScrollDesk }, 500);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$('html, body').animate({ scrollTop: endScrollDesk + navChapBar }, 500);\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t} else {\r\n\t\t\t\tif (NavChapters.windowSize >= NavChapters.navBreakPoint) {\r\n\t\t\t\t\t$('html, body').animate({ scrollTop: endScrollNoStickyDesk }, 500);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$('html, body').animate({ scrollTop: endScrollNoStickyDesk + navChapBar }, 500);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tif ($(NavChapters.selectorContainer).hasClass('sticky')) {\r\n\t\t\t\t$('html, body').animate({ scrollTop: endScroll - 5 }, 500);\r\n\t\t\t} else {\r\n\t\t\t\t$('html, body').animate({ scrollTop: endScrollNoSticky - 5 }, 500);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tgetInViewSection: function () {\r\n\r\n\t\tvar combinedNavHeight = NavChapters.navHeightInitial + NavChapters.headerHeight;\r\n\r\n\t\t$(window).on('scroll', function () {\r\n\r\n\t\t\t// get current section and headings through inview filter\r\n\t\t\tvar $currentHeading = $(inView(NavChapters.sectionHeading, 'top', -100)),\r\n\t\t\t\t$currentSection;\r\n\r\n\t\t\tif (NavChapters.contentPublication) {\r\n\t\t\t\t$currentSection = $(inView(NavChapters.section, 'top', -100));\r\n\t\t\t} else {\r\n\t\t\t\t// Horizontal bar \r\n\t\t\t\t// current section is H2 position minus top navigation + chatper navigation \r\n\t\t\t\t$currentSection = $(inView(NavChapters.section, 'top', - combinedNavHeight));\r\n\t\t\t}\r\n\r\n\t\t\t// if filtered selection returns an element\r\n\t\t\tif ($currentSection) {\r\n\t\t\t\tif (NavChapters.contentPublication) {\r\n\r\n\t\t\t\t\t// get id and matching nav element\r\n\t\t\t\t\tvar currentSectionId = $currentSection.find('h2').attr('id'),\r\n\t\t\t\t\t\t$navItem = $(NavChapters.linkNav + '[href=\"#' + currentSectionId + '\"]'),\r\n\t\t\t\t\t\t$navList = $navItem.parent('.list-nav__item');\r\n\r\n\t\t\t\t\t// remove class from other nav items and add current class to current section\r\n\t\t\t\t\t$(NavChapters.navListItem).not(NavChapters.classCurrent).removeClass(NavChapters.classCurrent);\r\n\t\t\t\t\t$navList.addClass(NavChapters.classCurrent);\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t// get id and matching nav element\r\n\t\t\t\t\tvar currentH2Id = $currentSection.find('h2').attr('id'),\r\n\t\t\t\t\t\t$navItemH2 = $(NavChapters.linkNav + '[href=\"#' + currentH2Id + '\"]');\r\n\r\n\r\n\t\t\t\t\t// remove class from other nav items and add current class to current section\r\n\t\t\t\t\tNavChapters.removeClassActive();\r\n\r\n\t\t\t\t\tNavChapters.addClassActive($navItemH2);\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (NavChapters.contentPublication && $currentHeading) {\r\n\t\t\t\t// get id and matching nav element\r\n\t\t\t\tvar currentHeading = $currentHeading.find(NavChapters.heading),\r\n\t\t\t\t\tcurrentHeadingId = $(currentHeading).attr('id'),\r\n\t\t\t\t\t$navItemMatched = $(NavChapters.linkNav + '[href=\"#' + currentHeadingId + '\"]');\r\n\r\n\t\t\t\tNavChapters.removeClassActive();\r\n\t\t\t\tNavChapters.addClassActive($navItemMatched);\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\taddClassActive: function (thisLink) {\r\n\t\tthisLink.addClass(NavChapters.classActive);\r\n\t},\r\n\r\n\tremoveClassActive: function () {\r\n\t\t$(NavChapters.linkNav).removeClass(NavChapters.classActive);\r\n\t\t//NavChapters.unBindTouchEvent();\r\n\t},\r\n\r\n\taddLineBar: function () {\r\n\r\n\t\t// get the offset position of the navbar\r\n\t\t$(window).on('scroll', function () {\r\n\r\n\t\t\tvar winScroll = document.body.scrollTop || document.documentElement.scrollTop,\r\n\t\t\t\theightDoc = document.documentElement.scrollHeight - document.documentElement.clientHeight,\r\n\t\t\t\tscrolled = winScroll / heightDoc * 100,\r\n\t\t\t\tscrolledRound = Math.round(scrolled);\r\n\r\n\r\n\t\t\t// add the scrolled position to the line bar\r\n\t\t\t$(NavChapters.lineBarIndicator).css('width', +scrolledRound + \"%\");\r\n\r\n\t\t\t$(NavChapters.scrollPercentage).text(scrolledRound + '%');\r\n\r\n\t\t\tif ($(NavChapters.containerPercentage).hasClass('hide')) {\r\n\t\t\t\tNavChapters.removeHideClass();\r\n\t\t\t}\r\n\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tshowScrollingPercentage: function () {\r\n\r\n\t\t$(window).on('scroll', function () {\r\n\r\n\t\t\tclearTimeout($.data(this, 'scrollTimer'));\r\n\t\t\t$.data(this, 'scrollTimer', setTimeout(function () {\r\n\t\t\t\t// hide percentage\r\n\t\t\t\tNavChapters.addHideClass();\r\n\r\n\t\t\t}, 1000));\r\n\t\t});\r\n\t},\r\n\r\n\taddHideClass: function () {\r\n\r\n\t\t$(NavChapters.containerPercentage).addClass('hide');\r\n\t},\r\n\r\n\tremoveHideClass: function () {\r\n\t\t$(NavChapters.containerPercentage).removeClass('hide');\r\n\t},\r\n\r\n\tgetElSize: function () {\r\n\r\n\t\tNavChapters.headerHeight = $('.global-header').height();\r\n\t\t//NavChapters.navHeightInitial = $(NavChapters.selectorContainer).height(),\r\n\t\tNavChapters.viewPortHeight = $(window).height(),\r\n\t\t\tNavChapters.navChapersOffset = Math.round($('.nav-chapters').offset().top);\r\n\r\n\t\tif (NavChapters.contentPublication) {\r\n\t\t\tNavChapters.contentOffset = Math.round($('.container-publication').offset().top),\r\n\t\t\t\tNavChapters.contentHeight = $('[data-publication]').height(),\r\n\t\t\t\tNavChapters.endStickyPosition = NavChapters.contentOffset + NavChapters.contentHeight - (NavChapters.navHeightInitial + NavChapters.headerHeight);\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tgetWindowSize: function () {\r\n\t\t// get window width and update the global value\r\n\t\tNavChapters.windowSize = window.innerWidth;\r\n\t\tNavChapters.viewPortHeight = $(window).height();\r\n\t},\r\n\r\n\tsetStickyPosition: function () {\r\n\r\n\t\tNavChapters.topOffsetDesk = NavChapters.contentOffset - NavChapters.headerHeight;\r\n\t\tvar combinedNavHead = NavChapters.navChapersOffset - NavChapters.headerHeight;\r\n\r\n\t\t// if the layout is laptop and is publication\r\n\t\tif (NavChapters.contentPublication) {\r\n\r\n\t\t\tvar combinedNavHeight = NavChapters.navHeightInitial + NavChapters.headerHeight;\r\n\r\n\t\t\tif (NavChapters.windowSize >= 1024) {\r\n\r\n\t\t\t\t// set the top posion of the nav bar to 0 if is a publication\r\n\t\t\t\t$(NavChapters.selectorContainer).css('top', '0');\r\n\r\n\t\t\t\t//add and remove sticky class if the scrolling position is greater than offset nav position\r\n\t\t\t\tif (NavChapters.winScrollRound >= NavChapters.topOffsetDesk) {\r\n\r\n\t\t\t\t\tif (NavChapters.isEndPoint === false) {\r\n\r\n\t\t\t\t\t\tNavChapters.addStickyClass();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tNavChapters.removeStickyClass();\r\n\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t// if the viewport height is greater than the initial navigation height \r\n\t\t\t\tif (NavChapters.viewPortHeight >= combinedNavHeight) {\r\n\r\n\t\t\t\t\t$(NavChapters.selectorContainer).css('height', 'auto');\r\n\r\n\t\t\t\t\t// when the scroll is greater than initial height end position \r\n\t\t\t\t\tif (NavChapters.winScrollRound >= NavChapters.endStickyPosition) {\r\n\r\n\t\t\t\t\t\tNavChapters.removeStickyClass();\r\n\t\t\t\t\t\tNavChapters.addEndPointClass();\r\n\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\tNavChapters.removeEndPointClass();\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t// when the view port reaches the end position initial height\r\n\t\t\t\t\tif (NavChapters.winScrollRound >= NavChapters.endStickyPosition) {\r\n\r\n\t\t\t\t\t\tNavChapters.removeStickyClass();\r\n\t\t\t\t\t\t$(NavChapters.selectorContainer).css('height', 'auto');\r\n\t\t\t\t\t\tNavChapters.addEndPointClass();\r\n\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\tNavChapters.removeEndPointClass();\r\n\r\n\t\t\t\t\t\t// if tablet layout\r\n\t\t\t\t\t\t$(NavChapters.selectorContainer).css('height', 'calc(100% - 40px)');\r\n\r\n\t\t\t\t\t\t// if laptop layout\r\n\t\t\t\t\t\tif (NavChapters.windowSize >= NavChapters.navBreakPoint) {\r\n\t\t\t\t\t\t\t$(NavChapters.selectorContainer).css('height', 'calc(100% - 96px)');\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\r\n\t\t\t\t// set the top posion of the nav bar\r\n\t\t\t\tif (NavChapters.isSticky) {\r\n\r\n\t\t\t\t\tif (NavChapters.isEndPoint === false) {\r\n\r\n\t\t\t\t\t\tif (NavChapters.windowSize >= 1100) {\r\n\r\n\t\t\t\t\t\t\t$(NavChapters.selectorContainer).css('top', NavChapters.headerHeight);\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t$(NavChapters.selectorContainer).css('top', '0');\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t$(NavChapters.selectorContainer).css('top', 'auto');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t$(NavChapters.selectorContainer).css('top', '0');\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tif (NavChapters.winScrollRound >= NavChapters.navChapersOffset) {\r\n\r\n\t\t\t\t\tNavChapters.addStickyClass();\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tNavChapters.removeStickyClass();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\t// Horizontal bar (knowledgebank)\r\n\t\t\t// add the sticky class to the navbar when you reach its scroll position.Remove \"sticky\" when you leave the scroll position\r\n\t\t\tif (NavChapters.windowSize >= NavChapters.navBreakPoint && NavChapters.winScrollRound >= combinedNavHead || NavChapters.windowSize < NavChapters.navBreakPoint && NavChapters.winScrollRound >= NavChapters.navChapersOffset) {\r\n\r\n\t\t\t\tNavChapters.addStickyClass();\r\n\r\n\t\t\t} else {\r\n\t\t\t\tNavChapters.removeStickyClass();\r\n\t\t\t}\r\n\r\n\t\t\t// set the top posion of the nav bar\r\n\t\t\tif (NavChapters.windowSize >= NavChapters.navBreakPoint) {\r\n\r\n\t\t\t\t$(NavChapters.selectorContainer).css('top', NavChapters.headerHeight);\r\n\r\n\t\t\t} else {\r\n\t\t\t\t$(NavChapters.selectorContainer).css('top', '0');\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tbindScrollEvent: function () {\r\n\r\n\t\t$(window).on('scroll', function () {\r\n\r\n\t\t\t// get scrolling position\r\n\t\t\tvar winScroll = $(window).scrollTop();\r\n\t\t\tNavChapters.winScrollRound = Math.round(winScroll);\r\n\r\n\t\t\tNavChapters.setStickyPosition();\r\n\t\t});\r\n\t},\r\n\r\n\tresetHeight: function () {\r\n\r\n\t\t$(NavChapters.selectorContainer).css('height', 'auto');\r\n\t},\r\n\r\n\tresetPosition: function () {\r\n\r\n\t\t// set the top posion of the nav bar\r\n\t\t$(NavChapters.selectorContainer).css('top', '0');\r\n\t},\r\n\r\n\taddEndPointClass: function () {\r\n\t\tNavChapters.isEndPoint = true;\r\n\t\t$(NavChapters.selectorContainer).addClass('endpoint');\r\n\t},\r\n\r\n\tremoveEndPointClass: function () {\r\n\t\tNavChapters.isEndPoint = false;\r\n\t\t$(NavChapters.selectorContainer).removeClass('endpoint');\r\n\t},\r\n\r\n\taddStickyClass: function () {\r\n\t\tNavChapters.isSticky = true;\r\n\t\t$(NavChapters.selectorContainer).addClass(\"sticky\");\r\n\t\tif (NavChapters.windowSize <= 1024 && NavChapters.contentPublication) {\r\n\t\t\t$(NavChapters.lineBar).addClass(\"sticky\");\r\n\t\t}\r\n\t},\r\n\r\n\tremoveStickyClass: function () {\r\n\t\tNavChapters.isSticky = false;\r\n\t\t$(NavChapters.selectorContainer).removeClass(\"sticky\");\r\n\t\tif (NavChapters.windowSize <= 1024 && NavChapters.contentPublication) {\r\n\t\t\t$(NavChapters.lineBar).removeClass(\"sticky\");\r\n\t\t}\r\n\t},\r\n\r\n\tsetFocus: function (thisLink) {\r\n\r\n\t\tvar $currentSection = $(thisLink.attr('href'));\r\n\t\t$currentSection.attr('tabindex', '-1').focus();\r\n\t},\r\n\r\n\tsetAriaAttrs: function () {\r\n\r\n\t\t// add aria-controls to button and hidden content\r\n\t\t$(NavChapters.selector).attr('aria-expanded', false);\r\n\t\t$(NavChapters.listNav).attr('aria-hidden', true);\r\n\t},\r\n\r\n\tresetAriaAttrs: function () {\r\n\r\n\t\t// set aria to initial values and remove the attr if it's desk layout\r\n\t\tif (NavChapters.windowSize < 1024) {\r\n\r\n\t\t\t$(NavChapters.selector).attr('aria-expanded', false);\r\n\r\n\t\t\t$('#list-chapters').attr('aria-hidden', true);\r\n\r\n\t\t} else {\r\n\t\t\t$(NavChapters.selector).removeAttr('aria-expanded');\r\n\t\t\t$('#list-chapters').removeAttr('aria-hidden');\r\n\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tanimateNavChapt: function ($thisSelector) {\r\n\r\n\t\tvar state = $thisSelector.attr('aria-expanded') === 'false' ? true : false,\r\n\t\t\tcontentHidden = $(NavChapters.listNav).attr('aria-hidden') === 'true' ? false : true;\r\n\r\n\t\t// set btn state\r\n\t\t$thisSelector.attr('aria-expanded', state);\r\n\t\t$('.list-nav').attr('aria-hidden', contentHidden);\r\n\r\n\t\t// set nav height if the nav is not sticky\r\n\t\tif (NavChapters.windowSize < 1024) {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif (!contentHidden) {\r\n\t\t\t\t\tNavChapters.navNoStickyHeight = $(NavChapters.selectorContainer).height();\r\n\t\t\t\t}\r\n\t\t\t}, 100);\r\n\t\t}\r\n\t},\r\n\r\n\taddHorizontalClass: function () {\r\n\r\n\t\t$(NavChapters.selectorContainer).addClass('nav-chapters--horizontal');\r\n\t}\r\n};\r\n\r\n$(document).ready(function () {\r\n\tNavChapters.init();\r\n});","//----------------------------------------------------------------------\r\n//\tPRIMARY NAVIGATION\r\n//\tCustom Package\r\n//----------------------------------------------------------------------\r\n//\r\n\r\nvar NavPrimary = {\r\n\tselector: '[data-nav-primary]',\r\n\tnavPrimaryUl: '.nav-primary',\r\n\tselectorMenu: '[data-nav-toggle]',\r\n\tnavHasChildren: '[data-nav-has-children]',\r\n\tnavListItem: '.nav-primary__list-item',\r\n\tdropdownToggle: '.nav-primary__dropdown-toggle',\r\n\tsubList: '.nav-primary__sublist',\r\n\tshowElClass: 'js-show-element',\r\n\topenSubMenuClass: 'js-open-submenu',\r\n\thoverClass: 'js-hovered',\r\n\thideClass: 'js-hide',\r\n\tbackMenu: '[data-nav-back]',\r\n\tsubNavSecondaryButton: '.nav-primary__sublist-item > .nav-primary__dropdown-toggle',\r\n\tsubNavPrimaryButton: '.nav-primary__list-item > .nav-primary__dropdown-toggle',\r\n\tseconLevelUl: '.nav-primary__list-item > .nav-primary__sublist',\r\n\tthirdLevelUl: '.nav-primary__sublist-item > .nav-primary__sublist',\r\n\tfirstSubLink: '.nav-primary__list-item > ul > li > a',\r\n\tsecondarySubLink: '.nav-primary__list-item > ul > li > ul',\r\n\twindowSize: 0,\r\n\tnavBreakPoint: 1100,\r\n\r\n\tinit: function () {\r\n\t\t// return if the container not present\r\n\t\tif (!$(this.selector).length) return;\r\n\t\tthis.bindChangeEvent();\r\n\t\tthis.setAttributes();\r\n\t\tthis.addCurrentClass();\r\n\t\tthis.bindClickEvent();\r\n\t},\r\n\r\n\tbindChangeEvent: function () {\r\n\r\n\t\t// reset the functions and recalculate the values\r\n\t\t$(window).on('orientationchange resize load', function () {\r\n\r\n\t\t\tif (NavPrimary.windowSize !== window.innerWidth) {\r\n\r\n\t\t\t\t// Update variables\r\n\t\t\t\tNavPrimary.getWindowSize();\r\n\t\t\t\tNavPrimary.removeAttributes();\r\n\t\t\t\tNavPrimary.setAttributes();\r\n\r\n\t\t\t\tif (NavPrimary.windowSize >= NavPrimary.navBreakPoint) {\r\n\t\t\t\t\tNavPrimary.resetMobileNav();\r\n\t\t\t\t\tNavPrimary.unbindMobileEvent();\r\n\t\t\t\t\tNavPrimary.bindMouseEvent();\r\n\t\t\t\t\tNavPrimary.bindKeyboardEvent();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tNavPrimary.resetMobileNav();\r\n\t\t\t\t\tNavPrimary.unbindMouseEvent();\r\n\t\t\t\t\tNavPrimary.unbindMobileEvent();\r\n\t\t\t\t\tNavPrimary.bindMobileEvents();\r\n\t\t\t\t\tNavPrimary.setAriaMenuMobile();\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tgetWindowSize: function () {\r\n\t\t// get window width and update the global value\r\n\t\tNavPrimary.windowSize = window.innerWidth;\r\n\t},\r\n\r\n\tbindMouseEvent: function () {\r\n\r\n\t\t// sub menu - When interacting with a li that has a sub menu\r\n\t\t$(NavPrimary.navHasChildren).on('mouseover mouseleave', function (e) {\r\n\r\n\t\t\tvar $thisListItem = $(this);\r\n\r\n\t\t\t// If either tabbing into the li or hovering over the li\r\n\t\t\tif (e.type === 'mouseover') {\r\n\r\n\t\t\t\t// Show sub menu\r\n\t\t\t\tNavPrimary.addShowElClass($thisListItem);\r\n\t\t\t}\r\n\r\n\t\t\t// If mouse leaves li that has sub menu\r\n\t\t\tif (e.type === 'mouseleave') {\r\n\r\n\t\t\t\t// Hide sub menu\r\n\t\t\t\tNavPrimary.removeShowElClasss($thisListItem);\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tunbindMouseEvent: function () {\r\n\t\t$(NavPrimary.navHasChildren).unbind('mouseover mouseleave');\r\n\t},\r\n\r\n\tunbindMobileEvent: function () {\r\n\t\t$(NavPrimary.selectorMenu).unbind('click touchend');\r\n\t\t$(NavPrimary.backMenu).unbind('click touchend');\r\n\t},\r\n\r\n\tbindClickEvent: function () {\r\n\r\n\t\t$(NavPrimary.subNavPrimaryButton).on('click touchend', function (e) {\r\n\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\t$thisSubNav = $this.next(),\r\n\t\t\t\t$thisLi = $this.parent('li');\r\n\r\n\t\t\tif ($thisSubNav.hasClass(NavPrimary.showElClass)) {\r\n\r\n\t\t\t\tNavPrimary.closeDeskSubNav($this, $thisSubNav);\r\n\t\t\t\tif (e.type === 'touchend') {\r\n\t\t\t\t\t$('.nav-primary__list-item').removeClass('js-active');\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\t// add show class and set attributes\r\n\t\t\t\t$(NavPrimary.seconLevelUl).removeClass(NavPrimary.showElClass);\r\n\t\t\t\t$(NavPrimary.seconLevelUl).attr('aria-hidden', true);\r\n\t\t\t\tNavPrimary.openSubNav($this, $thisSubNav);\r\n\r\n\t\t\t\tif (e.type === 'touchend') {\r\n\t\t\t\t\t$('.nav-primary__list-item').removeClass('js-active');\r\n\t\t\t\t\t$('.nav-primary__sublist-item').removeClass('js-active');\r\n\t\t\t\t\t$thisLi.addClass('js-active');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t\t$(NavPrimary.subNavSecondaryButton).on('click touchend', function (e) {\r\n\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\t$thisSubNav = $this.next(),\r\n\t\t\t\t$thisLi = $this.parent('li');\r\n\r\n\t\t\tif ($thisSubNav.hasClass(NavPrimary.showElClass)) {\r\n\t\t\t\t// remove show class and reset attributes\r\n\t\t\t\tNavPrimary.closeDeskSubNav($this, $thisSubNav);\r\n\t\t\t\tif (e.type === 'touchend') {\r\n\t\t\t\t\t$('.nav-primary__sublist-item').removeClass('js-active');\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\t// add show class and set attributes\r\n\t\t\t\tNavPrimary.openSubNav($this, $thisSubNav);\r\n\t\t\t\tif (e.type === 'touchend') {\r\n\t\t\t\t\t$('.nav-primary__sublist-item').removeClass('js-active');\r\n\t\t\t\t\t$thisLi.addClass('js-active');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t\t// if user click outside the nav primary area \r\n\t\t$('body').on('click touchmove keyup', function (e) {\r\n\r\n\t\t\tvar $thisTarget = $(e.target),\r\n\t\t\t\tclickedOutside = $thisTarget.closest(NavPrimary.selector).length === 0;\r\n\r\n\t\t\tif (clickedOutside) {\r\n\r\n\t\t\t\tif (NavPrimary.windowSize >= NavPrimary.navBreakPoint) {\r\n\r\n\t\t\t\t\t// reset nav - close any submenu\r\n\t\t\t\t\tif ($(NavPrimary.subList).hasClass(NavPrimary.showElClass)) {\r\n\t\t\t\t\t\tNavPrimary.resetDeskNav();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t// close menu and reset mobile events\r\n\t\t\t\t\tif (clickedOutside && $('.global-header').hasClass('js-open')) {\r\n\r\n\t\t\t\t\t\tNavPrimary.resetMobileNav();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tbindKeyboardEvent: function () {\r\n\r\n\t\t$('.nav-primary__link').on('keyup', function (e) {\r\n\r\n\t\t\t// remove and reset first level open dropdown menu\r\n\t\t\tNavPrimary.resetDeskNav();\r\n\r\n\t\t\t// prevent default click behavior\r\n\t\t\te.preventDefault();\r\n\t\t\t// stopPropagation to prevent the button click from bubbling up the DOM\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t});\r\n\r\n\t\t$(NavPrimary.firstSubLink).on('keyup', function (e) {\r\n\r\n\t\t\t// remove and reset first level open dropdown menu\r\n\t\t\tNavPrimary.resetDeskSubNavDropdown();\r\n\r\n\t\t\t// prevent default click behavior\r\n\t\t\te.preventDefault();\r\n\t\t\t// stopPropagation to prevent the button click from bubbling up the DOM\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tresetDeskNav: function () {\r\n\t\t$(NavPrimary.subList).removeClass(NavPrimary.showElClass);\r\n\t\t$('.nav-primary__list-item').removeClass('js-active');\r\n\t\t$('.nav-primary__sublist-item').removeClass('js-active');\r\n\t\t$(NavPrimary.dropdownToggle).attr('aria-expanded', false);\r\n\t\t$(NavPrimary.subList).attr('aria-hidden', true);\r\n\t},\r\n\r\n\tresetDeskSubNavDropdown: function () {\r\n\t\t$(NavPrimary.secondarySubLink).removeClass(NavPrimary.showElClass);\r\n\t\t$(NavPrimary.subNavSecondaryButton).attr('aria-expanded', false);\r\n\t\t$(NavPrimary.secondarySubLink).attr('aria-hidden', true);\r\n\t},\r\n\r\n\tresetMobileNav: function () {\r\n\t\t$(NavPrimary.selectorMenu).removeClass('js-open');\r\n\t\t$('.global-header').removeClass('js-open');\r\n\t\t$('.header-nav').removeClass('js-open-submenu');\r\n\r\n\t\t// remove hide class to display LI back\r\n\t\tNavPrimary.removeHideClasss();\r\n\t},\r\n\r\n\tcloseDeskSubNav: function ($this, $thisSubNav) {\r\n\r\n\t\t// remove show class and reset attributes\r\n\t\t$this.attr('aria-expanded', false);\r\n\t\t$thisSubNav.attr('aria-hidden', true);\r\n\t\t$thisSubNav.removeClass(NavPrimary.showElClass);\r\n\t},\r\n\r\n\topenSubNav: function ($this, $thisSubNav) {\r\n\r\n\t\tvar $liSiblings = $this.parent().siblings('li'),\r\n\t\t\t$ulSiblings = $thisSubNav.siblings();\r\n\r\n\t\t$(NavPrimary.thirdLevelUl).attr('aria-hidden', true);\r\n\t\t$(NavPrimary.dropdownToggle).attr('aria-expanded', false);\r\n\t\t$this.attr('aria-expanded', true);\r\n\t\t$thisSubNav.attr('aria-hidden', false);\r\n\r\n\r\n\t\tif (NavPrimary.windowSize <= NavPrimary.navBreakPoint - 1) {\r\n\r\n\t\t\t// add show class to submenu\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t$(NavPrimary.thirdLevelUl).removeClass(NavPrimary.showElClass);\r\n\t\t\t\t$thisSubNav.addClass(NavPrimary.showElClass);\r\n\t\t\t}, 100);\r\n\r\n\t\t\t// once the animation is finished\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t// remove visibility from LI and UL siblings so that if the parent is longer then is not visible \r\n\t\t\t\t// and prevent keyboard focus on elements that are visually hidden\r\n\t\t\t\tNavPrimary.addHideClass($liSiblings);\r\n\t\t\t\tNavPrimary.addHideClass($ulSiblings);\r\n\r\n\t\t\t}, 500);\r\n\r\n\t\t} else {\r\n\t\t\t$(NavPrimary.thirdLevelUl).removeClass(NavPrimary.showElClass);\r\n\t\t\t$thisSubNav.addClass(NavPrimary.showElClass);\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tsetAriaMenuMobile: function () {\r\n\t\t// set aria to main nav \r\n\t\t$(NavPrimary.selectorMenu).attr('aria-expanded', 'false');\r\n\t\t$(NavPrimary.navPrimaryUl).attr('aria-hidden', 'true');\r\n\t},\r\n\r\n\tbindMobileEvents: function () {\r\n\r\n\t\t$(NavPrimary.selectorMenu).on('click touchend', function () {\r\n\r\n\t\t\tvar $thisMenu = $(this);\r\n\r\n\t\t\t// set aria state\r\n\t\t\t$thisMenuState = $thisMenu.attr('aria-expanded') === 'false' ? true : false;\r\n\t\t\tprimaryNavState = $(NavPrimary.navPrimaryUl).attr('aria-hidden') === 'true' ? false : true;\r\n\r\n\t\t\t$thisMenu.attr('aria-expanded', $thisMenuState);\r\n\t\t\t$(NavPrimary.navPrimaryUl).attr('aria-hidden', primaryNavState);\r\n\t\t\t$thisMenu.toggleClass('js-open');\r\n\t\t\t$('.global-header').toggleClass('js-open');\r\n\r\n\t\t\t// remove any opened submenu and reset attributes\r\n\t\t\t$(NavPrimary.subList).removeClass(NavPrimary.showElClass);\r\n\t\t\t$(NavPrimary.dropdownToggle).attr('aria-expanded', 'false');\r\n\t\t\t$(NavPrimary.subList).attr('aria-hidden', 'true');\r\n\r\n\t\t\tif (!$('.global-header').hasClass('js-open')) {\r\n\r\n\t\t\t\tNavPrimary.removeHideClasss();\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t\t$(NavPrimary.dropdownToggle).on('click touchend', function () {\r\n\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\t$thisSubNav = $this.next();\r\n\r\n\t\t\t// animate back to top\r\n\t\t\t$(\"html, body\").animate({ scrollTop: 0 }, 300);\r\n\r\n\t\t\t// set the focus to the top of the navigation\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t$thisSubNav.attr('tabindex', '-1').focus;\r\n\t\t\t}, 100);\r\n\r\n\t\t});\r\n\r\n\t\t$(NavPrimary.backMenu).on('click touchend', function () {\r\n\t\t\tvar $ulParent = $(this).parent('li').parent('ul'),\r\n\t\t\t\t$ulSiblings = $ulParent.siblings();\r\n\t\t\t$LiSiblings = $ulParent.parent('li').siblings('li');\r\n\r\n\t\t\t// display LI and UL siblings\r\n\t\t\t$LiSiblings.removeClass(NavPrimary.hideClass);\r\n\t\t\t$ulSiblings.removeClass(NavPrimary.hideClass);\r\n\r\n\t\t\t// remove animation\r\n\t\t\t$ulParent.removeClass(NavPrimary.showElClass);\r\n\r\n\t\t\t// display none\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t// reset attributes\r\n\t\t\t\t$('.nav-primary__dropdown-toggle').attr('aria-expanded', false);\r\n\t\t\t\t$ulParent.attr('aria-hidden', true);\r\n\r\n\t\t\t\t// set the focus to the LI parent \r\n\t\t\t\t$ulParent.parent('li').attr('tabindex', '-1').focus();\r\n\r\n\t\t\t}, 600);\r\n\r\n\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tsetAttributes: function () {\r\n\t\t// set aria attributes on mobile layout\r\n\t\t$(NavPrimary.dropdownToggle).attr('aria-expanded', 'false');\r\n\t\t$(NavPrimary.subList).attr('aria-hidden', 'true');\r\n\t},\r\n\r\n\tremoveAttributes: function () {\r\n\t\t// remove aria attributes on mobile layout\r\n\t\t$(NavPrimary.selectorMenu).removeAttr('aria-expanded');\r\n\t\t$(NavPrimary.navPrimaryUl).removeAttr('aria-hidden');\r\n\t\t$(NavPrimary.dropdownToggle).removeAttr('aria-expanded');\r\n\t\t$(NavPrimary.subList).removeAttr('aria-hidden');\r\n\t},\r\n\r\n\taddCurrentClass: function () {\r\n\r\n\t\tvar $currentPageLink = $('.nav-primary a[href=\"' + document.location.pathname + '\"]');\r\n\r\n\t\t// add current class and current page attribute\r\n\t\t$currentPageLink.addClass('is-current');\r\n\t\t$($currentPageLink).attr('aria-current', 'page');\r\n\r\n\t},\r\n\r\n\taddOpenSubMenuClass: function () {\r\n\t\t$(NavPrimary.navPrimaryUl).addClass(NavPrimary.openSubMenuClass);\r\n\t},\r\n\r\n\tremoveOpenSubMenuClass: function () {\r\n\t\t$(NavPrimary.navPrimaryUl).removeClass(NavPrimary.openSubMenuClass);\r\n\t},\r\n\r\n\taddShowElClass: function ($thisListItem) {\r\n\t\t$thisListItem.children('ul').addClass(NavPrimary.showElClass);\r\n\t},\r\n\r\n\tremoveShowElClasss: function ($thisListItem) {\r\n\t\t$thisListItem.children('ul').removeClass(NavPrimary.showElClass);\r\n\t},\r\n\r\n\taddHideClass: function ($liSiblings) {\r\n\t\t$liSiblings.addClass(NavPrimary.hideClass);\r\n\t},\r\n\r\n\tremoveHideClasss: function ($thisListItem) {\r\n\t\t$('.nav-primary__list-item').removeClass(NavPrimary.hideClass);\r\n\t\t$('.nav-primary__sublist-item').removeClass(NavPrimary.hideClass);\r\n\t\t$('.nav-primary__dropdown-toggle').removeClass(NavPrimary.hideClass);\r\n\t\t$('.nav-primary__link').removeClass(NavPrimary.hideClass);\r\n\t\t$('.nav-primary__sublist-link').removeClass(NavPrimary.hideClass);\r\n\t}\r\n\r\n};\r\n\r\n$(document).ready(function () {\r\n\tNavPrimary.init();\r\n});\r\n","var CP = CP || {};\r\nCP.NEWS = CP.NEWS || {};\r\n\r\n(function ($, cp) {\r\n\tvar loading = false;\r\n\r\n\tIEimages();\r\n\tif ($('#NewsListingPage').length > 0) {\r\n\t\t//Filters Search\r\n\t\t$('.filter-search').each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tif ($this.data('type') != 'news') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//console.info(\"Autocomplete Setup\");\r\n\t\t\t//Autocomplete\r\n\t\t\tvar element = document.querySelector('#news-autocomplete');\r\n\t\t\tvar selectorId = $this.data('id');\r\n\r\n\t\t\tvar dataPlaceholder = $this.closest(\".search-widget.filter-search\").data(\"placeholder\");\r\n\r\n\t\t\tfunction customSuggest(query, syncResults) {\r\n\t\t\t\tvar obj = CP.NEWS.initGetFilters();\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl: \"/_api/News/TypeAheadSearch\",\r\n\t\t\t\t\ttype: \"post\",\r\n\t\t\t\t\tdata: obj\r\n\t\t\t\t}).done(function (results) {\r\n\t\t\t\t\tvar valuesFiltered = results.suggestions.filter(function (result) {\r\n\t\t\t\t\t\treturn result.value.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tsyncResults(valuesFiltered);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tfunction inputValueTemplate(result) {\r\n\t\t\t\treturn result && result.value;\r\n\t\t\t}\r\n\r\n\t\t\tfunction suggestionTemplate(result) {\r\n\t\t\t\treturn result && result.value;\r\n\t\t\t}\r\n\r\n\t\t\tfunction onConfirm(result) {\r\n\t\t\t\twindow.location.href = result.data;\r\n\t\t\t}\r\n\r\n\t\t\taccessibleAutocomplete({\r\n\t\t\t\telement: element,\r\n\t\t\t\tid: selectorId,\r\n\t\t\t\tsource: customSuggest,\r\n\t\t\t\t//autoselect: true,\r\n\t\t\t\tconfirmOnBlur: false,\r\n\t\t\t\tdisplayMenu: 'overlay',\r\n\t\t\t\tminLength: 3,\r\n\t\t\t\tplaceholder: dataPlaceholder,\r\n\t\t\t\tshowNoOptionsFound: false,\r\n\t\t\t\tonConfirm: onConfirm,\r\n\t\t\t\ttemplates: {\r\n\t\t\t\t\tinputValue: inputValueTemplate,\r\n\t\t\t\t\tsuggestion: suggestionTemplate\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tvar input = $this.find('input[type=\"text\"].autocomplete__input');\r\n\t\t\tvar submit = $this.find('input[type=\"submit\"]');\r\n\t\t\tvar dataEmpty = $this.data(\"empty\");\r\n\t\t\tvar clear = $this.find('.search-widget-clear');\r\n\t\t\tvar error = $this.find('.search-widget-error');\r\n\t\t\tvar errorText = \"Nothing searched for. Please enter a search term.\";\r\n\t\t\tinput.attr(\"data-error\", errorText).attr('aria-labelledby', 'news-error').attr('aria-describedby', 'news-error');\r\n\r\n\t\t\tinput.keyup(function (e) {\r\n\t\t\t\tif (e.which == 13) {\r\n\t\t\t\t\tif (!$(this).val()) {\r\n\t\t\t\t\t\tinput.attr(\"placeholder\", dataEmpty).attr('aria-invalid', 'true').addClass('error');\r\n\t\t\t\t\t\tif (!$.trim(error.html())) { error.append('

    Nothing searched for. Please enter a search term.

    '); }\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(this).data('value', $(this).val());\r\n\t\t\t\t\tCP.NEWS.initFilters();\r\n\t\t\t\t}\r\n\t\t\t\tif (e.which != 13 && $(this).attr(\"placeholder\") == dataEmpty) {\r\n\t\t\t\t\t$(this).attr(\"placeholder\", dataPlaceholder).attr('aria-invalid', 'false').removeClass('error');\r\n\t\t\t\t\terror.find('p').remove();\r\n\t\t\t\t\tclear.css(\"display\", \"block\");\r\n\t\t\t\t}\r\n\t\t\t\tif (!$(this).val()) {\r\n\t\t\t\t\tclear.css(\"display\", \"none\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Clean search box\r\n\t\t\tclear.on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif (!input.data('value')) {\r\n\t\t\t\t\tinput.val(\"\");\r\n\t\t\t\t\tclear.css(\"display\", \"none\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tinput.val(\"\");\r\n\t\t\t\t\tinput.data('value', '');\r\n\t\t\t\t\tclear.css(\"display\", \"none\");\r\n\t\t\t\t\tCP.NEWS.initFilters();\r\n\t\t\t\t}\r\n\t\t\t\tinput.attr('tabindex', '-1');\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tinput.focus();\r\n\t\t\t\t}, 100);\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\r\n\t\t\tsubmit.on('click', function () {\r\n\t\t\t\tif (!input.val()) {\r\n\t\t\t\t\tinput.attr(\"placeholder\", dataEmpty).attr('aria-invalid', 'true').addClass('error').focus();\r\n\t\t\t\t\tif (!$.trim(error.html())) { error.append('

    Nothing searched for. Please enter a search term.

    '); }\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tinput.data('value', input.val());\r\n\t\t\t\tCP.NEWS.initFilters();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t$('.js-calendar').on('keydown', function (e) {\r\n\t\t\tif (e.keyCode === 13) {\r\n\t\t\t\tCP.NEWS.initFilters();\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n\t//CP.BOE.InfiniteScrolling = false;\r\n\tCP.NEWS.Page = 1;\r\n\r\n\tCP.NEWS.initDirection = function (elem) {\r\n\t\tvar $this = $(elem),\r\n\t\t\tthisToggle = $this.find('a'),\r\n\t\t\t$thisSiblings = $this.siblings(),\r\n\t\t\tnextSiblingsToggle = $thisSiblings.find('a');\r\n\r\n\t\t$thisSiblings.removeClass('tab-current');\r\n\t\t$this.addClass('tab-current');\r\n\r\n\t\t// set aria attribute\r\n\t\t$(nextSiblingsToggle).attr('aria-selected', 'false');\r\n\t\t$(thisToggle).attr('aria-selected', 'true');\r\n\r\n\t\tCP.NEWS.initFilters();\r\n\t};\r\n\r\n\tCP.NEWS.initPagination = function (elem) {\r\n\t\tvar $this = $(elem);\r\n\t\tif ($this.hasClass('pagination-disabled')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar pagerDataElement = $this.closest('[data-page]');\r\n\t\tvar currentPage = pagerDataElement.data('page');\r\n\t\tvar pageCount = pagerDataElement.data('pagecount');\r\n\r\n\t\tif ($this.hasClass('list-pagination__link--page')) {\r\n\t\t\tcurrentPage = parseInt($this.data('page-link'));\r\n\t\t\tpagerDataElement.data('page', currentPage);\r\n\t\t}\r\n\r\n\t\tif ($this.hasClass('pagination-next') || $this.hasClass('list-pagination__link--next')) {\r\n\t\t\tif (pageCount > currentPage) {\r\n\t\t\t\tcurrentPage = currentPage + 1;\r\n\t\t\t\tpagerDataElement.data('page', currentPage);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif ($this.hasClass('pagination-prev') || $this.hasClass('list-pagination__link--prev')) {\r\n\t\t\tif (currentPage > 1) {\r\n\t\t\t\tcurrentPage = currentPage - 1;\r\n\t\t\t\tpagerDataElement.data('page', currentPage);\r\n\t\t\t}\r\n\t\t}\r\n\t\tpagerDataElement.data('pagination', 'true');\r\n\t\tCP.NEWS.initFilters();\r\n\t};\r\n\r\n\tCP.NEWS.LoadMore = function (page) {\r\n\t\tif (!loading) {\r\n\t\t\tloading = true;\r\n\t\t\tCP.BOE.InfiniteScrolling = true;\r\n\t\t\tCP.NEWS.Page = page;\r\n\t\t\tCP.NEWS.initFilters(undefined, page);\r\n\t\t}\r\n\t};\r\n\r\n\tCP.NEWS.initClearFilters = function (elem) {\r\n\t\tvar $this = $(elem);\r\n\t\tif ($this.hasClass('clear-type')) {\r\n\t\t\t$this.data('clear', 'type');\r\n\t\t}\r\n\t\tif ($this.hasClass('clear-taxonomy')) {\r\n\t\t\t$this.data('clear', 'taxonomy');\r\n\t\t}\r\n\t\tif ($this.hasClass('clear-dates')) {\r\n\t\t\t$this.data('clear', 'dates');\r\n\t\t}\r\n\t\tCP.NEWS.Page = 1;\r\n\t\tCP.NEWS.initFilters();\r\n\t};\r\n\r\n\tCP.NEWS.initFilters = function (reload, page) {\r\n\t\t//console.info(\"CP.NEWS.initFilters \");\r\n\t\tvar obj = CP.NEWS.initGetFilters();\r\n\r\n\t\tif (page)\r\n\t\t\tobj.Page = page;\r\n\r\n\t\treload = reload || (obj.Page === 1);\r\n\t\tinitAjaxCall(obj, reload);\r\n\t};\r\n\r\n\tCP.NEWS.initGetFilters = function () {\r\n\t\t//console.info(\"CP.NEWS.initGetFilters\");\r\n\t\tvar query = '';\r\n\t\tvar queryType = '';\r\n\t\tvar queryTypeOptions = '';\r\n\t\tvar queryTaxonomy = '';\r\n\t\tvar page = 1;\r\n\t\tvar direction = '';\r\n\t\tvar dateFrom;\r\n\t\tvar dateTo;\r\n\r\n\t\t//Search\r\n\t\t$('.filter-search').each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tif (!$this.data('type') == 'news') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar searchCtrl = $this.find('input[type=\"text\"].autocomplete__input');\r\n\t\t\tvar inputValue = searchCtrl.data('value') || searchCtrl.val();\r\n\r\n\t\t\tif (inputValue)\r\n\t\t\t\tquery = inputValue;\r\n\t\t});\r\n\r\n\t\t//Type\r\n\t\tvar typeValues = $('.sidebar-filters.type-filters').find('input[type=\"checkbox\"]').toArray();\r\n\t\t//queryTypeOptions = typeValues.map(function (obj) { return obj.value; });\r\n\t\tqueryTypeOptions = CP.BOE.NewsTypes ? CP.BOE.NewsTypes : queryTypeOptions;\r\n\t\ttypeValues = typeValues.filter(function (obj) { return obj.checked; });\r\n\t\tqueryType = typeValues.map(function (obj) { return obj.value; });\r\n\r\n\t\t//Taxonomies\r\n\t\tvar taxonomyValues = $('.sidebar-filters.taxonomy-filters').find('input[type=\"checkbox\"]').toArray();\r\n\t\tvar taxonomyValuesAvailable = CP.BOE.NewsTaxonomies ? CP.BOE.NewsTaxonomies : [];\r\n\t\ttaxonomyValues = taxonomyValues.filter(function (obj) { return obj.checked; });\r\n\t\tqueryTaxonomy = taxonomyValues.map(function (obj) { return obj.value; });\r\n\r\n\t\t//Direction\r\n\t\tdirection = $('.releases-type .tab-current').data('direction');\r\n\r\n\t\t//Pagination\r\n\t\tif (!CP.BOE.InfiniteScrolling) {\r\n\t\t\tif ($('.container-list-pagination').data('pagination') == 'true') {\r\n\t\t\t\tvar offset = ($(window).width() >= '1024') ? '90' : '20';\r\n\t\t\t\tpage = $('.container-list-pagination').data('page');\r\n\t\t\t\t$(\"html, body\").animate({ scrollTop: $(\"#SearchResults\").offset().top - offset }, 1000);\r\n\t\t\t}\r\n\t\t\t$('.container-list-pagination').data('pagination', 'false');\r\n\t\t} /*else {\r\n\t\t\tpage = CP.NEWS.Page;\r\n\t\t}*/\r\n\r\n\t\t//Date\r\n\t\tvar fromVal = $('.date-field #newsDateMin').datepicker(\"getDate\");\r\n\t\tvar toVal = $('.date-field #newsDateMax').datepicker(\"getDate\");\r\n\t\tif (fromVal) {\r\n\t\t\tdateFrom = fromVal.parseToISOString();\r\n\t\t}\r\n\t\tif (toVal) {\r\n\t\t\ttoVal.setDate(toVal.getDate() + 1);\r\n\t\t\tdateTo = toVal.parseToISOString();\r\n\t\t}\r\n\r\n\t\t//Clear buttons\r\n\t\tif ($('.clear-type').data('clear')) {\r\n\t\t\tif (typeValues.length != 0) {\r\n\t\t\t\t//clear type\r\n\t\t\t\tqueryType = [];\r\n\t\t\t\t//Uncheck inputs\r\n\t\t\t\t$.each(typeValues, function (index, value) {\r\n\t\t\t\t\t$(value).prop('checked', false);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t//remove data-type\r\n\t\t\t$('.clear-type').data('clear', '');\r\n\t\t}\r\n\t\tif ($('.clear-taxonomy').data('clear')) {\r\n\t\t\tif (taxonomyValues.length != 0) {\r\n\t\t\t\t//clear taxonomy\r\n\t\t\t\tqueryTaxonomy = [];\r\n\t\t\t\t//Uncheck inputs\r\n\t\t\t\t$.each(taxonomyValues, function (index, value) {\r\n\t\t\t\t\t$(value).prop('checked', false);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t//remove data-type\r\n\t\t\t$('.clear-taxonomy').data('clear', '');\r\n\t\t}\r\n\t\tif ($('.clear-dates').data('clear')) {\r\n\t\t\tif (fromVal || toVal) {\r\n\t\t\t\t//clear dates\r\n\t\t\t\tdateFrom = undefined;\r\n\t\t\t\tdateTo = undefined;\r\n\t\t\t\t//Uncheck inputs\r\n\t\t\t\t$('.date-field #newsDateMin').datepicker(\"setDate\", '');\r\n\t\t\t\t$('.date-field #newsDateMax').datepicker(\"setDate\", '');\r\n\t\t\t}\r\n\t\t\t//remove data-type\r\n\t\t\t$('.clear-dates').data('clear', '');\r\n\t\t}\r\n\r\n\t\tvar grid = $('.switch-view .switch-view-grid').hasClass('view-active');\r\n\r\n\t\tvar obj = {\r\n\t\t\tSearchTerm: query,\r\n\t\t\tId: CP.BOE.NewsPageDataSourceID,\r\n\t\t\tPageSize: CP.BOE.NewsPageSize,\r\n\t\t\tNewsTypes: queryType,\r\n\t\t\tNewsTypesAvailable: queryTypeOptions,\r\n\t\t\tTaxonomies: queryTaxonomy,\r\n\t\t\tTaxonomiesAvailable: taxonomyValuesAvailable,\r\n\t\t\tPage: page,\r\n\t\t\tDirection: direction,\r\n\t\t\tDateFrom: dateFrom,\r\n\t\t\tDateTo: dateTo,\r\n\t\t\tGrid: grid,\r\n\t\t\tInfiniteScrolling: CP.BOE.InfiniteScrolling\r\n\t\t};\r\n\r\n\t\treturn obj;\r\n\t};\r\n\r\n\tCP.NEWS.initGridState = function () {\r\n\t\tif($('#NewsListingPage').length > 0) {\r\n\t\t\tvar obj = CP.NEWS.initGetFilters();\r\n\t\t\tsetState(obj);\r\n\t\t}\r\n\t};\r\n\r\n\tfunction initAjaxCall(obj, reload) {\r\n\t\t//console.info(\"AJAX request for search results\");\r\n\t\tif (reload) {\r\n\t\t\tobj.Page = 1;\r\n\t\t\tCP.NEWS.Page = 1;\r\n\t\t}\r\n\r\n\t\tvar loadResults = (reload || obj.Page === 1) ? $(\"#SearchResults\") :\r\n\t\t\t(CP.BOE.InfiniteScrolling) ? $(\"#LoadMore\") : $(\"#SearchResults\");\r\n\r\n\t\tloadResults.css('display', 'none');\r\n\t\t$('.loading').css('display', 'block');\r\n\t\t$('.loading').html('\"\"

    Content loading

    ');\r\n\r\n\t\t$.ajax({\r\n\t\t\turl: \"/_api/News/RefreshPagedNewsList\",\r\n\t\t\ttype: \"post\",\r\n\t\t\tdata: obj\r\n\t\t})\r\n\t\t\t.done(function (result) {\r\n\t\t\t\tif (CP.BOE.InfiniteScrolling && obj.Page > 1) {\r\n\t\t\t\t\tloadResults.replaceWith(result.Results).fadeIn(600, function () {\r\n\t\t\t\t\t\t$('.loading').empty();\r\n\t\t\t\t\t\t$('.loading').css('display', 'none');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tloadResults.hide().html(result.Results).fadeIn(600);\r\n\r\n\t\t\t\t\tvar textCount = $('#resultCount').html();\r\n\t\t\t\t\t$('#resultCountAnnounce').html('');\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t$('#resultCountAnnounce').html(textCount);\r\n\t\t\t\t\t}, 500);\r\n\r\n\t\t\t\t}\r\n\t\t\t\t$('.sidebar-filters.taxonomy-filters').hide().html(result.Refiners).fadeIn(600);\r\n\t\t\t\t$('.loading').css('display', 'none');\r\n\t\t\t\tif ($('.no-results').length) {\r\n\t\t\t\t\t$('.no-results').css('display', 'block');\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t\tloading = false;\r\n\r\n\t\t\t\tIEimages();\r\n\t\t\t})\r\n\t\t\t.error(function (e) {\r\n\t\t\t\t$('.loading').replaceWith(\"

    An error happened. Please, try again later.

    \");\r\n\t\t\t});\r\n\r\n\t\tif (!reload) {\r\n\t\t\tsetState(obj);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setState(obj) {\r\n\t\tif (!CP.BOE.InfiniteScrolling) {\r\n\t\t\thistory.pushState(obj, null, null);\r\n\t\t\t//console.info(\"SetState Done\");\r\n\t\t}\r\n\t}\r\n\r\n\tCP.NEWS.isInViewPort = function (element) {\r\n\t\tif (!element || !element.offset())\r\n\t\t\treturn false;\r\n\t\ttry {\r\n\t\t\tvar elementTop = element.offset().top;\r\n\t\t\tvar elementBottom = elementTop + element.outerHeight();\r\n\r\n\t\t\tvar viewportTop = $(window).scrollTop();\r\n\t\t\tvar viewportBottom = viewportTop + $(window).height();\r\n\r\n\t\t\treturn elementBottom > viewportTop && elementTop < viewportBottom;\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t};\r\n\r\n\tCP.NEWS.InfiniteScroll = function () {\r\n\t\tthis.initialize = function () {\r\n\t\t\tthis.setupEvents();\r\n\t\t};\r\n\r\n\t\tthis.setupEvents = function () {\r\n\t\t\t$(window).on(\r\n\t\t\t\t'scroll',\r\n\t\t\t\tthis.handleScroll.bind(this)\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tthis.handleScroll = function () {\r\n\t\t\tif (CP.NEWS.isInViewPort($(\"#loadMoreLink\"))) {\r\n\t\t\t\tCP.NEWS.LoadMore(++CP.NEWS.Page);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.initialize();\r\n\t};\r\n\r\n\tif ($('#NewsListingPage').length > 0) {\r\n\r\n\t\tif (!$(\"body\").hasClass(\"pagemode-edit\")) {\r\n\t\t\t//console.info(\"Adding Popstate event handler\");\r\n\t\t\twindow.addEventListener('popstate', function (e) {\r\n\t\t\t\t//console.info(\"Popstate event fired\");\r\n\t\t\t\tvar obj = e.state;\r\n\t\t\t\tif (obj && !CP.BOE.InfiniteScrolling) {\r\n\t\t\t\t\tinitAjaxCall(obj, true);\r\n\t\t\t\t\tinitRefreshTypes(obj.NewsTypes);\r\n\t\t\t\t\tinitRefreshTaxonomies(obj.Taxonomies);\r\n\t\t\t\t\tinitRefreshSearchbox(obj.SearchTerm);\r\n\t\t\t\t\tinitRefreshDirection(obj.Direction);\r\n\t\t\t\t\tinitRefreshDate(obj.DateFrom, obj.DateTo);\r\n\t\t\t\t\tinitRefreshGrid(obj.Grid);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlocation.href = location.href;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (performance.navigation.type != 1 && history.state != null && !CP.BOE.InfiniteScrolling && history.state.Id && !$(\"body\").hasClass(\"pagemode-edit\")) {\r\n\t\t\t//console.info(\"Initialise from state\");\r\n\t\t\tinitRefreshTypes(history.state.NewsTypes);\r\n\t\t\t//initRefreshTaxonomies(history.state.Taxonomies);\r\n\t\t\tinitRefreshSearchbox(history.state.SearchTerm);\r\n\t\t\tinitRefreshDirection(history.state.Direction);\r\n\t\t\tinitRefreshDate(history.state.DateFrom, history.state.DateTo);\r\n\t\t\tinitRefreshGrid(history.state.Grid);\r\n\r\n\t\t\tvar obj = CP.NEWS.initGetFilters();\r\n\t\t\tobj.Taxonomies = history.state.Taxonomies;\r\n\t\t\tobj.Page = history.state.Page;\r\n\t\t\tinitAjaxCall(obj);\r\n\r\n\t\t} else {\r\n\t\t\t//console.info(\"Initialise from page\");\r\n\t\t\t//Delay necessary due to race conditions with browser restoring page state\r\n\t\t\t//when back button has been pressed.\r\n\t\t\tvar delay = 300;\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tCP.NEWS.initFilters(true);\r\n\t\t\t}, delay);\r\n\t\t\t//console.info(\"Delay: \" + delay);\r\n\t\t}\r\n\r\n\t\tCP.NEWS.InfiniteScroll();\r\n\t}\r\n\r\n\tfunction initRefreshTypes(checked) {\r\n\r\n\t\tvar typeCheckboxes = $('.sidebar-filters.type-filters').find('input[type=\"checkbox\"]').toArray();\r\n\t\tvar typeCheckboxesValues = typeCheckboxes.map(function (obj) { return obj.value; });\r\n\r\n\t\tfor (var i = 0; i < typeCheckboxesValues.length; i++) {\r\n\t\t\tif (checked.indexOf(typeCheckboxesValues[i]) !== -1) {\r\n\t\t\t\t$(typeCheckboxes[i]).prop('checked', true);\r\n\t\t\t} else {\r\n\t\t\t\t$(typeCheckboxes[i]).prop('checked', false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction initRefreshTaxonomies(checked) {\r\n\r\n\t\tvar typeCheckboxes = $('.sidebar-filters.taxonomy-filters').find('input[type=\"checkbox\"]').toArray();\r\n\t\tvar typeCheckboxesValues = typeCheckboxes.map(function (obj) { return obj.value; });\r\n\r\n\t\tfor (var i = 0; i < typeCheckboxesValues.length; i++) {\r\n\t\t\tif (checked.indexOf(typeCheckboxesValues[i]) !== -1) {\r\n\t\t\t\t$(typeCheckboxes[i]).prop('checked', true);\r\n\t\t\t} else {\r\n\t\t\t\t$(typeCheckboxes[i]).prop('checked', false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction initRefreshSearchbox(SearchTerm) {\r\n\t\t$('.filter-search input[type=\"search\"]').val(SearchTerm);\r\n\t}\r\n\r\n\tfunction initRefreshDirection(Direction) {\r\n\t\t$('.releases-type li').each(function () {\r\n\t\t\tif ($(this).data('direction') == Direction) {\r\n\t\t\t\t$(this).siblings().removeClass('tab-current');\r\n\t\t\t\t$(this).addClass('tab-current');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction initRefreshDate(DateFrom, DateTo) {\r\n\t\tif (DateFrom) {\r\n\t\t\tDateFrom = new Date(DateFrom);\r\n\t\t} else {\r\n\t\t\tDateFrom = undefined;\r\n\t\t}\r\n\t\tif (DateTo) {\r\n\t\t\tDateTo = new Date(DateTo);\r\n\t\t} else {\r\n\t\t\tDateTo = undefined;\r\n\t\t}\r\n\t\t$('.date-field #newsDateMin').datepicker(\"setDate\", DateFrom);\r\n\t\t$('.date-field #newsDateMax').datepicker(\"setDate\", DateTo);\r\n\t}\r\n\t//test\r\n\tfunction initRefreshGrid(grid) {\r\n\t\tif (grid) {\r\n\t\t\t$('.switch-view-grid').addClass('view-active');\r\n\t\t\t$('.switch-view-list').removeClass('view-active');\r\n\t\t\t$('.releases-items').removeClass('releases-list').addClass('releases-grid');\r\n\t\t} else {\r\n\t\t\t$('.switch-view-grid').removeClass('view-active');\r\n\t\t\t$('.switch-view-list').addClass('view-active');\r\n\t\t\t$('.releases-items').removeClass('releases-grid').addClass('releases-list');\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tfunction IEimages() {\r\n\t\tif (!Modernizr.objectfit) {\r\n\t\t\t$('.release').each(function () {\r\n\t\t\t\tvar $imageContainer = $(this).find('.release-img'),\r\n\t\t\t\t\timgUrl = $imageContainer.find('img').prop('src');\r\n\t\t\t\tif (imgUrl) {\r\n\t\t\t\t\t$imageContainer\r\n\t\t\t\t\t\t.css(\"background-image\", \"url('\" + imgUrl + \"')\")\r\n\t\t\t\t\t\t.addClass('object-fit');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n})(jQuery, CP.NEWS);","var AppProv = {\r\n\r\n\twrapper: $('.application-provision-wrapper'),\r\n\tcontainer: $('.application-provision-container'),\r\n\tnumberPlaceholder: $('[data-ap-number]'),\r\n\tcontentPlaceholder: $('[data-ap-content]'),\r\n\tattrDataAppProvvision: '[data-application-provision]',\r\n\tattrDataAppProvvisionTrue: '[data-application-provision=\"1\"]',\r\n\tchapterClass: '.chapter-section',\r\n\tellipsisClassName: 'ellipsis',\r\n\tcontentLength: 90,\r\n\tbutton: $('#application-provision-button'),\r\n\tbuttonShowClassName: 'expander__toggle--show',\r\n\tbuttonCloseClassName: 'expander__toggle--close',\r\n\texpandedAttr: 'data-expanded',\r\n\texpandedShowAttr: 'data-expanded-show',\r\n\texpandedHideAttr: 'data-expanded-hide',\r\n\texpandedTextSelector: 'span.text',\r\n\r\n\tupdate: function (appProvision) {\r\n\r\n\t\tif (!appProvision) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Empty the sticky app provision container ready for new content\r\n\t\tAppProv.numberPlaceholder.empty();\r\n\t\tAppProv.contentPlaceholder.empty();\r\n\r\n\t\t// Initial button state - show more\r\n\t\tAppProv.button.removeClass(AppProv.buttonCloseClassName + ' ' + AppProv.buttonShowClassName).addClass(AppProv.buttonShowClassName);\r\n\t\tAppProv.button.attr(AppProv.expandedAttr, 'false');\r\n\t\tAppProv.button.children(AppProv.expandedTextSelector).text(AppProv.button.attr(AppProv.expandedShowAttr));\r\n\r\n\t\t// Get the html from required app provision \r\n\t\tvar number = appProvision.find('.div-row__col-1').html();\r\n\t\tvar content = appProvision.find('.div-row__col-2').children().clone();\r\n\r\n\t\tAppProv.button.hide();\r\n\r\n\t\t// Update the sticky app provision container with the new content\r\n\t\tAppProv.numberPlaceholder.append(number);\r\n\t\tif (content.length > 0) {\r\n\t\t\tAppProv.contentPlaceholder.append(content);\r\n\t\t}\r\n\t\tvar contentText = AppProv.contentPlaceholder.text();\r\n\t\tif (contentText.length > AppProv.contentLength\r\n\t\t\t|| contentText.includes('\\n')) {\r\n\t\t\tAppProv.contentPlaceholder.addClass(AppProv.ellipsisClassName);\r\n\t\t\tAppProv.button.show();\r\n\t\t} else {\r\n\t\t\tAppProv.contentPlaceholder.removeClass(AppProv.ellipsisClassName);\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tinit: function () {\r\n\r\n\t\tif (!!window.IntersectionObserver\r\n\t\t\t&& AppProv.wrapper\r\n\t\t\t&& AppProv.container\r\n\t\t\t&& $(AppProv.attrDataAppProvvisionTrue).length > 0) {\r\n\r\n\t\t\t// Force first app provision to load\r\n\t\t\tAppProv.update($(AppProv.attrDataAppProvvisionTrue + ':first'));\r\n\r\n\t\t\tvar appProvisionObserver = new IntersectionObserver(function (entries, observer) {\r\n\t\t\t\tentries.forEach(function (entry) {\r\n\t\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\t\tvar appProvision = $(entry.target);\r\n\t\t\t\t\t\tif (appProvision.data('application-provision') == '1') {\r\n\t\t\t\t\t\t\t// Current app provision that is on screen and valid\r\n\t\t\t\t\t\t\tAppProv.update(appProvision);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// First Chapter OR first Part app provision\r\n\t\t\t\t\t\t\tvar chapterAppProvvision = appProvision.closest(AppProv.chapterClass).find(AppProv.attrDataAppProvvisionTrue + ':first')\r\n\t\t\t\t\t\t\tif (chapterAppProvvision.length > 0) {\r\n\t\t\t\t\t\t\t\tAppProv.update(chapterAppProvvision);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tAppProv.update($(AppProv.attrDataAppProvvisionTrue + ':first'));\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\t\t// Only kick in near middle of the page i.e reading eye level\r\n\t\t\t\trootMargin: \"-35% 0px -65% 0px\"\r\n\t\t\t});\r\n\r\n\t\t\t// Observe all app provision elements\r\n\t\t\tdocument.querySelectorAll(AppProv.attrDataAppProvvision).forEach(function (element) {\r\n\t\t\t\tappProvisionObserver.observe(element);\r\n\t\t\t});\r\n\r\n\t\t\t// Toggle the various states on app provision i.e. line clamp\r\n\t\t\tAppProv.button.on('click', function () {\r\n\t\t\t\tvar $this = $(this);\r\n\r\n\t\t\t\tvar classNameAdd = AppProv.buttonShowClassName;\r\n\t\t\t\tvar isExpanded = 'false';\r\n\t\t\t\tvar expandedText = $this.attr(AppProv.expandedShowAttr);\r\n\t\t\t\tif ($this.attr(AppProv.expandedAttr) === 'false') {\r\n\t\t\t\t\tclassNameAdd = AppProv.buttonCloseClassName;\r\n\t\t\t\t\tisExpanded = 'true';\r\n\t\t\t\t\texpandedText = $this.attr(AppProv.expandedHideAttr);\r\n\t\t\t\t}\r\n\t\t\t\t$this.removeClass(AppProv.buttonCloseClassName + ' ' + AppProv.buttonShowClassName).addClass(classNameAdd);\r\n\t\t\t\t$this.attr(AppProv.expandedAttr, isExpanded);\r\n\t\t\t\t$this.children(AppProv.expandedTextSelector).text(expandedText);\r\n\r\n\t\t\t\tif (isExpanded === 'true') {\r\n\t\t\t\t\tAppProv.contentPlaceholder.removeClass(AppProv.ellipsisClassName);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar contentText = AppProv.contentPlaceholder.text();\r\n\t\t\t\t\tif (contentText.length > AppProv.contentLength\r\n\t\t\t\t\t\t|| contentText.includes('\\n')) {\r\n\t\t\t\t\t\tAppProv.contentPlaceholder.addClass(AppProv.ellipsisClassName);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tif (AppProv.wrapper) {\r\n\t\t\t\tAppProv.wrapper.hide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n};\r\n\r\n$(document).ready(function () {\r\n\tAppProv.init();\r\n});","// use this transport for \"binary\" data type\r\n$.ajaxTransport(\"+binary\", function (options, originalOptions, jqXHR) {\r\n\t// check for conditions and support for blob / arraybuffer response type\r\n\tif (window.FormData && ((options.dataType && (options.dataType == 'binary')) || (options.data && ((window.ArrayBuffer && options.data instanceof ArrayBuffer) || (window.Blob && options.data instanceof Blob))))) {\r\n\t\treturn {\r\n\t\t\t// create new XMLHttpRequest\r\n\t\t\tsend: function (headers, callback) {\r\n\t\t\t\t// setup all variables\r\n\t\t\t\tvar xhr = new XMLHttpRequest(),\r\n\t\t\t\t\turl = options.url,\r\n\t\t\t\t\ttype = options.type,\r\n\t\t\t\t\tasync = options.async || true,\r\n\t\t\t\t\t// blob or arraybuffer. Default is blob\r\n\t\t\t\t\tdataType = options.responseType || \"blob\",\r\n\t\t\t\t\tdata = options.data || null,\r\n\t\t\t\t\tusername = options.username || null,\r\n\t\t\t\t\tpassword = options.password || null;\r\n\r\n\t\t\t\txhr.addEventListener('load', function () {\r\n\t\t\t\t\tvar data = {};\r\n\t\t\t\t\tdata[options.dataType] = xhr.response;\r\n\t\t\t\t\t// make callback and send data\r\n\t\t\t\t\tcallback(xhr.status, xhr.statusText, data, xhr.getAllResponseHeaders());\r\n\t\t\t\t});\r\n\r\n\t\t\t\txhr.open(type, url, async, username, password);\r\n\r\n\t\t\t\t// setup custom headers\r\n\t\t\t\tfor (var i in headers) {\r\n\t\t\t\t\txhr.setRequestHeader(i, headers[i]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\txhr.responseType = dataType;\r\n\t\t\t\txhr.send(data);\r\n\t\t\t},\r\n\t\t\tabort: function () {\r\n\t\t\t\tjqXHR.abort();\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n});\r\n\r\n(function ($) {\r\n\t$('form[data-type=\"makepdf\"]').each(function (index) {\r\n\t\tvar verifiedPdf = false;\r\n\t\tvar isFloating = \r\n\r\n\t\t$(this).submit(function () {\r\n\t\t\tif (typeof console !== \"undefined\" && console !== null) { console.info(\"Convert to PDF called - Verified: \" + verifiedPdf); }\r\n\r\n\t\t\tvar form = $(this);\r\n\t\t\tvar isFloating = form.parent().hasClass(\"container-download\");\r\n\r\n\t\t\tvar button = form.find('button[type=\"submit\"]');\r\n\t\t\tvar buttonClose = form.find('button[type=\"button\"]');\r\n\t\t\t\r\n\t\t\tvar hiddenAlert = button.next(\"p\");\r\n\t\t\thiddenAlert.removeClass(\"pdf-error\");\r\n\t\t\thiddenAlert.addClass(\"visually-hidden\");\r\n\t\t\t\r\n\t\t\tvar defaultHtml = button.html();\r\n\r\n\t\t\tif (!verifiedPdf) {\r\n\t\t\t\tif (isFloating) {\r\n\t\t\t\t\tbutton.addClass(\"button-download--active\");\r\n\t\t\t\t\tbuttonClose.addClass(\"button-close--active\");\r\n\t\t\t\t}\r\n\t\t\t\tbutton.attr(\"disabled\", true);\r\n\r\n\t\t\t\tvar genMsg = \"Generating PDF, please wait.\";\r\n\t\t\t\tbutton.html(\" \" + genMsg);\r\n\t\t\t\thiddenAlert.text(genMsg);\r\n\t\t\t\t\r\n\t\t\t\tvar ajaxSettings = {\r\n\t\t\t\t\ttype: 'POST',\r\n\t\t\t\t\turl: form[0].action,\r\n\t\t\t\t\tdataType:'binary',\r\n\t\t\t\t\tcontentType: 'application/x-www-form-urlencoded',\r\n\t\t\t\t\tretries: 6\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar onFail = function (jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\tif (typeof console !== \"undefined\" && console !== null) { console.log(\"PDF Check Fail - \" + jqXHR.status + \" - Retries: \" + ajaxSettings.retries); }\r\n\r\n\t\t\t\t\tif (ajaxSettings.retries-- > 0) {\r\n\t\t\t\t\t\tvar timeout = 3000;\r\n\t\t\t\t\t\tif (jqXHR.status == 429 || jqXHR.status == 503) {\r\n\t\t\t\t\t\t\ttimeout = 15000;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t$.ajax(ajaxSettings)\r\n\t\t\t\t\t\t\t\t.done(onSuccess)\r\n\t\t\t\t\t\t\t\t.fail(onFail);\r\n\t\t\t\t\t\t}, timeout);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tverifiedPdf = false;\r\n\t\t\t\t\t\tbutton.html(defaultHtml);\r\n\r\n\t\t\t\t\t\tif (!isFloating) {\r\n\t\t\t\t\t\t\thiddenAlert.addClass(\"pdf-error\");\r\n\t\t\t\t\t\t\thiddenAlert.removeClass(\"visually-hidden\");\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar title = button.find('.button-download__title');\r\n\t\t\t\t\t\t\ttitle.text(\"Error. Please try again.\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\thiddenAlert.text(\"Error generating the PDF. Please try again in a couple of minutes.\");\r\n\r\n\t\t\t\t\t\tbutton.attr(\"disabled\", false);\r\n\t\t\t\t\t\tbutton.removeClass(\"button-download--active\");\r\n\t\t\t\t\t\tbuttonClose.removeClass(\"button-close--active\");\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar onSuccess = function (data, textStatus, jqXhr) {\r\n\t\t\t\t\tif (typeof console !== \"undefined\" && console !== null) { console.info(\"PDF Check Success - \" + jqXhr.status); }\r\n\t\t\t\t\tverifiedPdf = true;\r\n\t\t\t\t\tif (isFloating) {\r\n\t\t\t\t\t\tbutton.html(\"PDF generated.\");\r\n\t\t\t\t\t\t//button.attr(\"disabled\", false);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tbutton.text(\"PDF generated.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//button.removeClass(\"button-download--active\"); \r\n\t\t\t\t\thiddenAlert.text(\"\"); // Browser should alert screenreader to the download.\r\n\t\t\t\t\tvar disposition = jqXhr.getResponseHeader(\"Content-Disposition\");\r\n\t\t\t\t\tif (null !== disposition && disposition.indexOf(\"attachment\") !== -1) {\r\n\t\t\t\t\t\tvar headerParts = disposition.split(\";\");\r\n\t\t\t\t\t\tvar keyValuePairs = {};\r\n\r\n\t\t\t\t\t\tfor (var i = 0; i < headerParts.length; i++) {\r\n\t\t\t\t\t\t\tvar keyValuePair = headerParts[i].trim().split(\"=\");\r\n\t\t\t\t\t\t\tvar key = keyValuePair[0];\r\n\t\t\t\t\t\t\tvar value = keyValuePair[1];\r\n\t\t\t\t\t\t\tkeyValuePairs[key] = value;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar blob = new Blob([data]);\r\n\t\t\t\t\t\tif (null != blob && blob instanceof Blob) {\r\n\t\t\t\t\t\t\tvar link = document.createElement('a');\r\n\t\t\t\t\t\t\tlink.href = window.URL.createObjectURL(blob);\r\n\t\t\t\t\t\t\tlink.download = keyValuePairs.filename;\r\n\t\t\t\t\t\t\tlink.click();\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\tif (typeof console !== \"undefined\" && console !== null) { console.log(\"Begin PDF Conversion Check...\"); }\r\n\t\t\t\t$.ajax(ajaxSettings)\r\n\t\t\t\t\t.done(onSuccess)\r\n\t\t\t\t\t.fail(onFail);\r\n\r\n\t\t\t}\r\n\t\t\treturn verifiedPdf;\r\n\t\t});\r\n\t});\r\n})(jQuery);","const PraFootnotes = {\r\n\r\n\tfootnoteLinks: $(document.querySelectorAll('.rulebook-content a[href^=\"#footnote\"]')),\r\n\r\n\tinit: function () {\r\n\r\n\t\tPraFootnotes.ensureBrackets();\r\n\r\n\t},\r\n\r\n\tensureBrackets: function () {\r\n\r\n\t\tPraFootnotes.footnoteLinks.each(function () {\r\n\t\t\tlet needsUpdating = false;\r\n\t\t\tlet linkText = $(this).text();\r\n\t\t\tif (!linkText.startsWith('[')) {\r\n\t\t\t\tneedsUpdating = true;\r\n\t\t\t\tlinkText = `[${linkText}`;\r\n\t\t\t}\r\n\t\t\tif (!linkText.endsWith(']')) {\r\n\t\t\t\tneedsUpdating = true;\r\n\t\t\t\tlinkText = `${linkText}]`;\r\n\t\t\t}\r\n\t\t\tif (needsUpdating) {\r\n\t\t\t\t$(this).text(linkText);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n};\r\n\r\n$(document).ready(function () {\r\n\tPraFootnotes.init();\r\n});","var printApi = {\r\n\r\n\tdocEndpoint: \"/_api/feature/rulebookexport/ExportAsWordDocument\",\r\n\tpdfEndpoint: \"/_api/feature/rulebookexportpdf/HtmlToPdf\",\r\n\r\n\tDoExportOfUrlHandler: function (event) {\r\n\t\tif (event.type === 'click' && event.currentTarget instanceof HTMLAnchorElement) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t\tvar id = event.currentTarget.getAttribute(\"data-id\");\r\n\t\t\t// Url needs to be somewhat 'basic'' due to WAF rules\r\n\t\t\tvar url = event.currentTarget.getAttribute(\"data-url\");\r\n\t\t\tvar effectiveDate = event.currentTarget.getAttribute(\"data-effective-date\");\r\n\t\t\tvar title = event.currentTarget.getAttribute(\"data-download-title\");\r\n\t\t\tvar extension = event.currentTarget.DownloadExtension;\r\n\t\t\tvar endpoint = event.currentTarget.DownloadEndpoint;\r\n\t\t\tif ((\"\" !== id || \"\" !== url) && \"\" !== title && title != null && \"\" !== extension && \"\" !== endpoint) {\r\n\t\t\t\txhttp = new XMLHttpRequest();\r\n\t\t\t\txhttp.retries = 6;\r\n\t\t\t\tvar requestBody = JSON.stringify({ id: id, url: url, effectiveDate: effectiveDate });\r\n\r\n\t\t\t\txhttp.addEventListener(\"loadstart\", function () {\r\n\t\t\t\t\tdocument.body.classList.add('server-loading');\r\n\t\t\t\t});\r\n\r\n\t\t\t\txhttp.addEventListener(\"load\", function () {\r\n\t\t\t\t\tdocument.body.classList.remove('server-loading');\r\n\r\n\t\t\t\t\tif (xhttp.status === 0 || (xhttp.status >= 200 && xhttp.status < 400)) {\r\n\t\t\t\t\t\tvar blob = new Blob([xhttp.response]);\r\n\t\t\t\t\t\tif (null != blob && blob instanceof Blob) {\r\n\t\t\t\t\t\t\tvar link = document.createElement('a');\r\n\t\t\t\t\t\t\tlink.href = window.URL.createObjectURL(blob);\r\n\t\t\t\t\t\t\tlink.download = title + \".\" + extension;\r\n\t\t\t\t\t\t\tlink.click();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (this.retries-- === 0) {\r\n\t\t\t\t\t\t\tconsole.error(\"XHR request did not complete successfully, cannot download export.\");\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tprintApi.resendXhr(this, endpoint, requestBody);\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\txhttp.addEventListener(\"error\", function () {\r\n\t\t\t\t\tdocument.body.classList.remove('server-loading');\r\n\t\t\t\t\tif (this.retries-- === 0) {\r\n\t\t\t\t\t\tconsole.error(\"XHR request did not complete successfully, cannot download export.\");\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tprintApi.resendXhr(this, endpoint, requestBody);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tprintApi.sendXhr(xhttp, endpoint, requestBody);\r\n\r\n\t\t\t} else {\r\n\t\t\t\tconsole.error(\"Not enough information to request file.\");\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tsendXhr: function (xhttp, endpoint, bodyData) {\r\n\t\txhttp.open(\"POST\", endpoint);\r\n\t\txhttp.setRequestHeader(\"Content-Type\", \"application/json\");\r\n\t\txhttp.responseType = 'blob';\r\n\t\txhttp.send(bodyData);\r\n\t},\r\n\r\n\tresendXhr: function (xhttp, endpoint, bodyData) {\r\n\t\tvar timeout = 3000;\r\n\t\tif (xhttp.status == 429 || xhttp.status == 503) {\r\n\t\t\ttimeout = 15000;\r\n\t\t}\r\n\t\tsetTimeout(function () { printApi.sendXhr(xhttp, endpoint, bodyData); }, timeout);\r\n\t},\r\n\r\n\tinit: function () {\r\n\r\n\t\t$(document).on(\"click\", \"a.icon-doc[data-download-title]\", function (event) {\r\n\t\t\tvar $element = $(this);\r\n\t\t\t$element[0].DownloadExtension = \"docx\";\r\n\t\t\t$element[0].DownloadEndpoint = printApi.docEndpoint;\r\n\t\t\tprintApi.DoExportOfUrlHandler(event);\r\n\t\t});\r\n\r\n\t\t$(document).on(\"click\", \"a.icon-pdf[data-download-title]\", function (event) {\r\n\t\t\tvar $element = $(this);\r\n\t\t\t$element[0].DownloadExtension = \"pdf\";\r\n\t\t\t$element[0].DownloadEndpoint = printApi.pdfEndpoint;\r\n\t\t\tprintApi.DoExportOfUrlHandler(event);\r\n\t\t});\r\n\t}\r\n};\r\n\r\n$(document).ready(function () {\r\n\tprintApi.init();\r\n});","// Note: Depends on datepicker.js, accordion.js, expander.js & pra-cache.js - accounted for in gulp-config.js ordering\r\n\r\nvar PraSearchListing = {\r\n\r\n\trootId: '#pra-search-listing',\r\n\trootElement: '',\r\n\tendpointAttribute: 'searchListingEndpoint',\r\n\tendpoint: '',\r\n\tpaginationClassAttribute: 'paginationClass',\r\n\tpaginationClass: '',\r\n\tcontainerId: '#search-update-container',\r\n\tloadingId: '#pra-loading',\r\n\tloadingElement: '',\r\n\terrorId: '#error-message',\r\n\terrorElement: '',\r\n\ttriggerSearchAttribute: '[data-search-trigger]',\r\n\ttriggerHiddenAttributeText: 'data-hidden-trigger',\r\n\ttriggerHiddenAttribute: '[data-hidden-trigger]',\r\n\ttriggerClearAttributeText: 'data-clear-trigger',\r\n\ttriggerClearAttribute: '[data-clear-trigger]',\r\n\ttriggerClearSkipAjaxAttribute: '[data-clear-trigger-skip-ajax]',\r\n\ttriggerClearDependencyAttributeText: 'data-dependency-clear-trigger',\r\n\textraParameterAttribute: '[data-extra-parameter]',\r\n\turlIncludeParameterAttribute: '[data-include-url]',\r\n\tstaticKeepAttribute: '[data-static-keep]',\r\n\tignoreTodayDefaultDataAttribute: 'ignoreTodayDefault',\r\n\tisAjaxAllowed: false,\r\n\tisFirstAjaxCall: true,\r\n\tlastAjaxParameters: '',\r\n\tattrType: 'type',\r\n\tattrTypeSearch: 'search',\r\n\tattrTypeCheckbox: 'checkbox',\r\n\tattrRoleTab: 'tab',\r\n\tattrActiveClass: 'data-active-class',\r\n\tattrClassDatepicker: 'js-calendar',\r\n\tdateLocale: 'en-GB',\r\n\tquerystringSymbol: '?',\r\n\r\n\tinit: function () {\r\n\t\t// Get the root element\r\n\t\tPraSearchListing.rootElement = $(PraSearchListing.rootId);\r\n\t\t// No need to init if we don't have the correct HTML\r\n\t\tif (!PraSearchListing.rootElement.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Note: we no longer store dynamic elements in variables due to the nature of the page i.e. ajax content\r\n\t\tif (!PraSearchListing.rootElement.find(PraSearchListing.containerId).length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Get the ajax endpoint\r\n\t\tPraSearchListing.endpoint = PraSearchListing.rootElement.data(PraSearchListing.endpointAttribute);\r\n\t\t// No need to init if we don't have a valid endpoint\r\n\t\tif (!PraSearchListing.endpoint.length) {\r\n\t\t\tconsole.warn('Cannot init search listing component due to an invalid endpoint.');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Get the pagination class\r\n\t\tPraSearchListing.paginationClass = PraSearchListing.rootElement.data(PraSearchListing.paginationClassAttribute);\r\n\t\t// Get loading element\r\n\t\tPraSearchListing.loadingElement = PraSearchListing.rootElement.find(PraSearchListing.loadingId);\r\n\t\t// Get error element\r\n\t\tPraSearchListing.errorElement = PraSearchListing.rootElement.find(PraSearchListing.errorId);\r\n\t\t// Initialize triggers\r\n\t\tPraSearchListing.initTriggers();\r\n\t\t// Post init setup\r\n\t\t// Slight delay, just in case (no asyncronous calls)\r\n\t\tsetTimeout(function () {\r\n\t\t\tPraSearchListing.isAjaxAllowed = true;\r\n\t\t}, 500);\r\n\t\t// Event handler for back/forward navigation via ajax\r\n\t\tPraSearchListing.initOnPopState();\r\n\t},\r\n\r\n\tinitTriggers: function () {\r\n\t\t// Note: Uses event delegation where possible\r\n\t\t// Update any hidden values\r\n\t\tPraSearchListing.rootElement.on('click', PraSearchListing.triggerHiddenAttribute, function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar $hiddenTrigger = $(this);\r\n\t\t\tvar name = $hiddenTrigger.attr(PraSearchListing.triggerHiddenAttributeText);\r\n\t\t\tif (!name || !name.length) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar $hiddenInput = PraSearchListing.rootElement.find('input[type=\"hidden\"][name=\"' + name + '\"]');\r\n\t\t\tif ($hiddenInput.length > 0) {\r\n\t\t\t\t$hiddenInput.val($hiddenTrigger.data('value'));\r\n\t\t\t}\r\n\t\t});\r\n\t\t// Set up elements to trigger a clear search update\r\n\t\tPraSearchListing.rootElement.on('click', PraSearchListing.triggerClearAttribute, function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar $clearTrigger = $(this);\r\n\t\t\t// Multiple clear triggers (selectors) allowed\r\n\t\t\t$.each($clearTrigger.attr(PraSearchListing.triggerClearAttributeText).split('||'), function (index, value) {\r\n\t\t\t\tvar $clearTriggerTargetElements = PraSearchListing.rootElement.find('[id^=\"' + value + '\"]');\r\n\t\t\t\tif ($clearTriggerTargetElements.length) {\r\n\t\t\t\t\t$clearTriggerTargetElements.each(function () {\r\n\t\t\t\t\t\tvar $this = $(this);\r\n\t\t\t\t\t\tif ($this.attr(PraSearchListing.attrType) == PraSearchListing.attrTypeCheckbox) {\r\n\t\t\t\t\t\t\t// Uncheck checkboxes\r\n\t\t\t\t\t\t\t$this.prop('checked', false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (this.tagName === 'SELECT') {\r\n\t\t\t\t\t\t\t$this.prop('selectedIndex', 0);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ($this.hasClass(PraSearchListing.attrClassDatepicker)) {\r\n\t\t\t\t\t\t\tif ($this.data(PraSearchListing.ignoreTodayDefaultDataAttribute) !== true) {\r\n\t\t\t\t\t\t\t\t// Today's date\r\n\t\t\t\t\t\t\t\t$this.datepicker('setDate', (new Date()).toLocaleDateString(PraSearchListing.dateLocale));\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$this.datepicker('setDate', '');\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\tPraSearchListing.resetPagination();\r\n\t\t\t\t\t// Can skip ajax if element is both a search and clear trigger\r\n\t\t\t\t\t// i.e. parts listing tabs clears sector checkboxes then calls ajax endpoint through its search update event handler\r\n\t\t\t\t\tif (!$clearTrigger.is(PraSearchListing.triggerClearSkipAjaxAttribute)) {\r\n\t\t\t\t\t\tPraSearchListing.initAjaxCall();\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\t// Set up elements to trigger a search update\r\n\t\tPraSearchListing.rootElement.on('submit', 'form', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tPraSearchListing.resetPagination();\r\n\t\t\tPraSearchListing.initAjaxCall();\r\n\t\t});\r\n\t\t// Special case for when the search input has been cleared (built-in browser X icon)\r\n\t\tPraSearchListing.rootElement.on('input', '[type=\"' + PraSearchListing.attrTypeSearch + '\"]', function (e) {\r\n\t\t\tif (!e.inputType && this.value == '') {\r\n\t\t\t\tPraSearchListing.resetPagination();\r\n\t\t\t\tPraSearchListing.initAjaxCall();\r\n\t\t\t}\r\n\t\t});\r\n\t\tPraSearchListing.rootElement.on('change', '[type=\"' + PraSearchListing.attrTypeCheckbox + '\"]', function () {\r\n\t\t\t// Dependency Trigger (when empty) i.e. Forms Search Listing\r\n\t\t\tvar $checkbox = $(this);\r\n\t\t\tvar $checkboxes = $checkbox.closest('.sidebar-filters').find('[type=\"' + PraSearchListing.attrTypeCheckbox + '\"]');\r\n\t\t\tif ($checkboxes.length > 0\r\n\t\t\t\t&& $checkboxes.not(':checked').length == $checkboxes.length) {\r\n\t\t\t\tvar attrValue = $checkbox.attr(PraSearchListing.triggerClearDependencyAttributeText);\r\n\t\t\t\tif (attrValue && attrValue.length > 0) {\r\n\t\t\t\t\tvar $clearDependencyTriggerSelectors = attrValue.split('||');\r\n\t\t\t\t\tif ($clearDependencyTriggerSelectors.length > 0) {\r\n\t\t\t\t\t\t$.each($clearDependencyTriggerSelectors, function (index, value) {\r\n\t\t\t\t\t\t\tvar $clearDependencyTriggerTargetElements = PraSearchListing.rootElement.find('[id^=\"' + value + '\"]');\r\n\t\t\t\t\t\t\tif ($clearDependencyTriggerTargetElements.length) {\r\n\t\t\t\t\t\t\t\t$clearDependencyTriggerTargetElements.each(function () {\r\n\t\t\t\t\t\t\t\t\tvar $this = $(this);\r\n\t\t\t\t\t\t\t\t\t// Currently only supports dropdown elements\r\n\t\t\t\t\t\t\t\t\tif (this.tagName === 'SELECT') {\r\n\t\t\t\t\t\t\t\t\t\t$this.prop('selectedIndex', 0);\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\tPraSearchListing.resetPagination();\r\n\t\t\tPraSearchListing.initAjaxCall();\r\n\t\t});\r\n\t\tPraSearchListing.rootElement.on('change', 'select', function () {\r\n\t\t\tPraSearchListing.resetPagination();\r\n\t\t\tPraSearchListing.initAjaxCall();\r\n\t\t});\r\n\t\tPraSearchListing.rootElement.on('click', `[data-role=\"${PraSearchListing.attrRoleTab}\"] a:first-child`, function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\t// Note: Custom tabs implementation, separate from tabs.js\r\n\t\t\tconst $this = $(this);\r\n\t\t\tconst $thisLi = $this.closest('li');\r\n\t\t\tif ($thisLi[0].ariaDisabled == 'true') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst $tabs = $this.closest('[role=\"tablist\"]');\r\n\t\t\tconst activeClass = $tabs.attr(PraSearchListing.attrActiveClass);\r\n\t\t\tif ($thisLi.hasClass(activeClass)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t$tabs.find('li').removeClass(activeClass);\r\n\t\t\t$tabs.find('li').each(function () {\r\n\t\t\t\tthis.dataset.ariaSelected = 'false';\r\n\t\t\t});\r\n\t\t\t$tabs.find('li a:first-child').attr('aria-selected', 'false');\r\n\t\t\t$thisLi.addClass(activeClass);\r\n\t\t\t$thisLi[0].dataset.ariaSelected = 'true';\r\n\t\t\t$this.attr('aria-selected', 'true');\r\n\t\t\t// Don't reset if we're triggering a page change\r\n\t\t\tif (!$thisLi.hasClass(PraSearchListing.paginationClass)) {\r\n\t\t\t\tPraSearchListing.resetPagination();\r\n\t\t\t}\r\n\t\t\tPraSearchListing.initAjaxCall();\r\n\t\t});\r\n\t\t// Set datepicker onSelect event\r\n\t\tPraSearchListing.initDatePickerOnSelect(PraSearchListing.rootElement.find('.' + PraSearchListing.attrClassDatepicker));\r\n\t},\r\n\r\n\tinitDatePickerOnSelect: function ($datePickerEle) {\r\n\t\t// When a date is selected ensure we call the ajax endpoint\r\n\t\tif (!$datePickerEle.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t$datePickerEle.datepicker('option', 'onSelect', function () {\r\n\t\t\t$datePickerEle.datepicker().blur();\r\n\t\t\t$datePickerEle.datepicker('hide');\r\n\t\t\tPraSearchListing.resetPagination();\r\n\t\t\tPraSearchListing.initAjaxCall();\r\n\t\t});\r\n\t},\r\n\r\n\tinitAjaxCall: function (skipPushState) {\r\n\t\t// Don't call the ajax endpoint if not allowed i.e. on initial page load\r\n\t\tif (!PraSearchListing.isAjaxAllowed) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar ajaxParameters = PraSearchListing.getAjaxParameters();\r\n\t\tif (ajaxParameters == PraSearchListing.lastAjaxParameters\r\n\t\t\t&& !PraSearchListing.isFirstAjaxCall) {\r\n\t\t\t// No need to call the API if same request as last i.e. constantly clicking a 'Clear All' button, etc\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Keep track of first ajax call state i.e. if the page is loaded with predefined filters\r\n\t\t// and then for example clears all (first ajax call) then we need to ensure results get updated\r\n\t\tPraSearchListing.isFirstAjaxCall = false;\r\n\t\t// Ensure we keep track of the last ajax call parameters used, for performance gains, etc\r\n\t\tPraSearchListing.lastAjaxParameters = ajaxParameters;\r\n\t\t// Get extra parameters i.e. specified hidden inputs\r\n\t\tvar extraParameters = PraSearchListing.getExtraAjaxParameters();\r\n\t\tvar parametersMiddle = '';\r\n\t\tif (ajaxParameters.length\r\n\t\t\t&& extraParameters.length) {\r\n\t\t\tparametersMiddle = '&';\r\n\t\t}\r\n\t\t// Ajax request\r\n\t\t$.ajax({\r\n\t\t\ttype: 'POST',\r\n\t\t\turl: PraSearchListing.endpoint,\r\n\t\t\tdata: ajaxParameters + parametersMiddle + extraParameters,\r\n\t\t\tdataType: 'html',\r\n\t\t\tbeforeSend: function () {\r\n\t\t\t\tif (PraSearchListing.loadingElement.length) {\r\n\t\t\t\t\tPraSearchListing.loadingElement.show();\r\n\t\t\t\t}\r\n\t\t\t\t$('html, body').animate({\r\n\t\t\t\t\tscrollTop: PraSearchListing.rootElement.offset().top - 50\r\n\t\t\t\t}, 500);\r\n\t\t\t},\r\n\t\t\tsuccess: function (htmlResponse) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tif (!htmlResponse.length) {\r\n\t\t\t\t\t\tPraSearchListing.onAjaxError(true);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tPraSearchListing.onAjaxError();\r\n\t\t\t\t\tvar $htmlResponse = $(htmlResponse);\r\n\t\t\t\t\t// Replace the core search listing HTML with the latest from the server (keep main root container and other elements)\r\n\t\t\t\t\t// Note: we use event delegation where we can, which ensures event handlers are not removed\r\n\t\t\t\t\tvar $staticElementsToKeep = PraSearchListing.rootElement.find(PraSearchListing.staticKeepAttribute)\r\n\t\t\t\t\t$staticElementsToKeep.each(function () {\r\n\t\t\t\t\t\tvar $this = $(this);\r\n\t\t\t\t\t\tvar id = $this.attr('id');\r\n\t\t\t\t\t\tif (id.length) {\r\n\t\t\t\t\t\t\t$htmlResponse.find('#' + id).replaceWith($this);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tPraSearchListing.rootElement.find(PraSearchListing.containerId).replaceWith($htmlResponse);\r\n\t\t\t\t\t// Don't push state on popstate\r\n\t\t\t\t\tif (!skipPushState) {\r\n\t\t\t\t\t\t// Update Ajax params i.e. search term sanitization\r\n\t\t\t\t\t\tPraSearchListing.lastAjaxParameters = PraSearchListing.getAjaxParameters();\r\n\t\t\t\t\t\tvar url = PraSearchListing.querystringSymbol + PraSearchListing.getUrlParameters();\r\n\t\t\t\t\t\tif (url == PraSearchListing.querystringSymbol) {\r\n\t\t\t\t\t\t\turl = window.location.pathname;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twindow.history.pushState({\r\n\t\t\t\t\t\t\thtml: $htmlResponse[0].outerHTML, lastAjaxParameters: PraSearchListing.lastAjaxParameters\r\n\t\t\t\t\t\t}, '', url);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tPraSearchListing.reinitComponents();\r\n\t\t\t\t}\r\n\t\t\t\tcatch (err) {\r\n\t\t\t\t\t// Intentionally not displaying error detail, can be debugged\r\n\t\t\t\t\tPraSearchListing.onAjaxError(true);\r\n\t\t\t\t\tconsole.error('Error in search listing success function.');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\terror: function (jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t// Intentionally not displaying error detail, can be debugged\r\n\t\t\t\tPraSearchListing.onAjaxError(true);\r\n\t\t\t\tconsole.error('Failed to retrieve search listing data.');\r\n\t\t\t},\r\n\t\t\tcomplete: function () {\r\n\t\t\t\tif (PraSearchListing.loadingElement.length) {\r\n\t\t\t\t\tPraSearchListing.loadingElement.hide();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tgetAjaxParameters: function () {\r\n\t\t// Ensure we only get valid elements i.e. checked checkboxes, etc\r\n\t\tvar $validSearchElements = PraSearchListing.rootElement.find(PraSearchListing.triggerSearchAttribute).filter(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar realValue = $this.data('value') || this.value;\r\n\t\t\tif (this.getAttribute(PraSearchListing.attrType) == PraSearchListing.attrTypeSearch\r\n\t\t\t\t&& realValue == '') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (this.getAttribute(PraSearchListing.attrType) == PraSearchListing.attrTypeCheckbox\r\n\t\t\t\t&& !this.checked) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (this.tagName === 'SELECT'\r\n\t\t\t\t&& this.value == $this.data('default-value')) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif ($this.data('role') == PraSearchListing.attrRoleTab\r\n\t\t\t\t&& (this.dataset.ariaSelected == 'false'\r\n\t\t\t\t\t|| $this.data('default') == true\r\n\t\t\t\t\t|| $this.data('default') == 'true')) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (this.classList.contains(PraSearchListing.attrClassDatepicker)\r\n\t\t\t\t&& (($this.data(PraSearchListing.ignoreTodayDefaultDataAttribute) !== true\r\n\t\t\t\t\t&& realValue == (new Date()).toLocaleDateString(PraSearchListing.dateLocale))\r\n\t\t\t\t\t|| realValue == '')) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t});\r\n\t\treturn PraSearchListing.elementsToKvpQueryString($validSearchElements);\r\n\t},\r\n\r\n\tgetUrlParameters: function () {\r\n\t\t// Check if any hidden inputs need including in the URL\r\n\t\tvar $includedHiddenInputs = PraSearchListing.rootElement.find('input[type=\"hidden\"]' + PraSearchListing.urlIncludeParameterAttribute);\r\n\t\tvar $includedUrlParams = PraSearchListing.elementsToKvpQueryString($includedHiddenInputs);\r\n\t\tif (!$includedUrlParams.length) {\r\n\t\t\treturn PraSearchListing.lastAjaxParameters;\r\n\t\t}\r\n\t\treturn PraSearchListing.lastAjaxParameters + '&' + $includedUrlParams;\r\n\t},\r\n\r\n\tgetExtraAjaxParameters: function () {\r\n\t\t// Get any extra params i.e. to account for Sitecore.Context.Item being null during ajax requests\r\n\t\tvar $validHiddenInputs = PraSearchListing.rootElement.find('input[type=\"hidden\"]' + PraSearchListing.extraParameterAttribute);\r\n\t\treturn PraSearchListing.elementsToKvpQueryString($validHiddenInputs);\r\n\t},\r\n\r\n\telementsToKvpQueryString: function ($elements) {\r\n\t\t// Turn elements into key value pairs - name/value\r\n\t\tif (!$elements.length) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tvar params = new Array();\r\n\t\t$elements.each(function () {\r\n\t\t\tvar key = this.getAttribute('name');\r\n\t\t\tvar realValue = $(this).data('value') || this.value;\r\n\t\t\tif (key in params) {\r\n\t\t\t\t// Multiple values i.e. checkboxes (multiple guids)\r\n\t\t\t\tparams[key] = params[key] + '|' + realValue;\r\n\t\t\t} else {\r\n\t\t\t\tif (key.includes('Date')) {\r\n\t\t\t\t\t// Special case for dates\r\n\t\t\t\t\t// Check for the correct format i.e. 2 forward slashes - ##/##/####\r\n\t\t\t\t\tif (!(/\\/.*\\//.test(realValue))) {\r\n\t\t\t\t\t\t// Reset to today if incorrect\r\n\t\t\t\t\t\tparams[key] = (new Date()).toLocaleDateString(PraSearchListing.dateLocale).replace(/\\//g, '-');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar realDate = '';\r\n\t\t\t\t\t\tvar splitDate = realValue.split('/');\r\n\t\t\t\t\t\t$(splitDate).each(function (index, element) {\r\n\t\t\t\t\t\t\t// Day & Month padding = 00\r\n\t\t\t\t\t\t\tvar pad = 2;\r\n\t\t\t\t\t\t\tif (index == 2) {\r\n\t\t\t\t\t\t\t\t// Year padding = 0000\r\n\t\t\t\t\t\t\t\tpad = 4;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\trealDate = realDate + element.padStart(pad, '0');\r\n\t\t\t\t\t\t\tif (index < 2) {\r\n\t\t\t\t\t\t\t\trealDate = realDate + '-';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tparams[key] = realDate;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if ($(this).hasClass('single-checkbox')) {\r\n\t\t\t\t\t// Special case for single checkbox\r\n\t\t\t\t\t// realValue should always be 'on' at this stage\r\n\t\t\t\t\tparams[key] = realValue === 'on' ? 'true' : 'false';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Everything else\r\n\t\t\t\t\tparams[key] = realValue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\t// Encode key and values and essentially turn array into query strings\r\n\t\treturn Object.keys(params).map(function (key) {\r\n\t\t\treturn encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\r\n\t\t}).join('&');\r\n\t},\r\n\r\n\tonAjaxError: function (show) {\r\n\t\tif (show) {\r\n\t\t\tPraSearchListing.errorElement.show();\r\n\t\t\tPraSearchListing.errorElement.attr('aria-hidden', 'false');\r\n\t\t} else {\r\n\t\t\tPraSearchListing.errorElement.hide();\r\n\t\t\tPraSearchListing.errorElement.attr('aria-hidden', 'true');\r\n\t\t}\r\n\t},\r\n\r\n\tresetPagination: function () {\r\n\t\t// Whenever a filter is selected/changed, pagination should be reset i.e. back to 1\r\n\t\tif (typeof PraSearchListing.paginationClass === 'undefined'\r\n\t\t\t|| !PraSearchListing.paginationClass.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar $paginationElements = PraSearchListing.rootElement.find('.' + PraSearchListing.paginationClass);\r\n\t\tif ($paginationElements.length) {\r\n\t\t\t$paginationElements.each(function () {\r\n\t\t\t\tthis.dataset.ariaSelected = 'false';\r\n\t\t\t\t$(this).attr('aria-selected', 'false');\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\treinitComponents: function () {\r\n\t\t// Special case components\r\n\t\t// Datepicker\r\n\t\tPraSearchListing.rootElement.find('.' + PraSearchListing.attrClassDatepicker).each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\t// datepicker.js dependency call\r\n\t\t\tDatePicker.init($this);\r\n\t\t\tPraSearchListing.initDatePickerOnSelect($this);\r\n\t\t});\r\n\t\t// Accordion\r\n\t\t// accordion.js dependency call\r\n\t\tAccordion.init();\r\n\t\t// Expander\r\n\t\t// expander.js dependency call\r\n\t\tExpander.init();\r\n\t\t// PRA Cache\r\n\t\t// pra-cache.js dependency call\r\n\t\tPraCache.init();\r\n\t},\r\n\r\n\tinitOnPopState: function () {\r\n\t\t// Create an event handler for managing navigating from/to pages, primarily used for ajax HTML\r\n\t\t$(window).on('popstate', function () {\r\n\t\t\tif (history.state) {\r\n\t\t\t\t// Navigating to a page with a state that contains an ajax HTML response\r\n\t\t\t\tif (typeof history.state.html !== 'undefined'\r\n\t\t\t\t\t&& history.state.html.length) {\r\n\t\t\t\t\tPraSearchListing.rootElement.find(PraSearchListing.containerId).replaceWith(history.state.html);\r\n\t\t\t\t\tPraSearchListing.reinitComponents();\r\n\t\t\t\t}\r\n\t\t\t\t// and the last used ajax parameters\r\n\t\t\t\tif (typeof history.state.lastAjaxParameters !== 'undefined'\r\n\t\t\t\t\t&& history.state.lastAjaxParameters.length) {\r\n\t\t\t\t\tPraSearchListing.lastAjaxParameters = history.state.lastAjaxParameters;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// Starting page\r\n\t\t\t\twindow.location.reload();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n};\r\n\r\n$(document).ready(function () {\r\n\t// Initialise\r\n\tPraSearchListing.init();\r\n});","(function ($) {\r\n\tif (jQuery().slick) {\r\n\r\n\t\t$('.time-travel-carousel').on('init', function (event, slick) {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar activeSlide = $this.find('.slick-slide.is-active');\r\n\t\t\tvar clickedIndex = activeSlide.data(\"slick-index\");\r\n\t\t\tslick.slickGoTo(clickedIndex);\r\n\r\n\t\t\t// Reset the speed after initialization\r\n\t\t\tslick.setOption('speed', 300, true);\r\n\t\t});\r\n\r\n\t\t$('.time-travel-carousel').slick({\r\n\t\t\tspeed: 0,\r\n\t\t\trows: 0,\r\n\t\t\tfocusOnChange: true,\r\n\t\t\tfocusOnSelect: true,\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 7,\r\n\t\t\tslidesToScroll: 7,\r\n\t\t\tprevArrow: $('.slick-prev'),\r\n\t\t\tnextArrow: $('.slick-next'),\r\n\t\t\tresponsive: [\r\n\t\t\t\t{\r\n\t\t\t\t\tbreakpoint: 1024,\r\n\t\t\t\t\tsettings: {\r\n\t\t\t\t\t\tslidesToShow: 5,\r\n\t\t\t\t\t\tslidesToScroll: 5\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tbreakpoint: 720,\r\n\t\t\t\t\tsettings: {\r\n\t\t\t\t\t\tslidesToShow: 3,\r\n\t\t\t\t\t\tslidesToScroll: 3\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\t$(document).ready(function () {\r\n\t\t\t$('.js-refresh-slick').on('click', function () {\r\n\t\t\t\tvar timeTravelCarousel = $(this).parent().siblings('.expander').find('.time-travel-carousel');\r\n\t\t\t\ttimeTravelCarousel.slick('reinit');\r\n\t\t\t});\r\n\r\n\t\t\t$('.time-travel-carousel .slick-slide').on('click', function (e) {\r\n\t\t\t\t$(this).find('a')[0].click();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t}\r\n})(jQuery);","(function ($) {\r\n\t$(document).on('click', '.switch-view-list', function (e) {\r\n e.preventDefault();\r\n $(this).addClass('view-active');\r\n $('.switch-view-grid').removeClass('view-active');\r\n\t\t$('.releases-items').removeClass('releases-grid').addClass('releases-list');\r\n\r\n\t\t// set aria attribute\r\n\t\t$('.switch-view-grid').attr('aria-pressed', 'false');\r\n\t\t$(this).attr('aria-pressed', 'true');\r\n\t\t\r\n\r\n CP.NEWS.initGridState();\r\n });\r\n\t$(document).on('click', '.switch-view-grid', function (e) {\r\n e.preventDefault();\r\n $(this).addClass('view-active');\r\n $('.switch-view-list').removeClass('view-active');\r\n\t\t$('.releases-items').removeClass('releases-list').addClass('releases-grid');\r\n\r\n\t\t// set aria attribute\r\n\t\t$('.switch-view-list').attr('aria-pressed', 'false');\r\n\t\t$(this).attr('aria-pressed', 'true');\r\n\t\t\r\n\r\n CP.NEWS.initGridState();\r\n });\r\n})(jQuery);","(function ($) {\r\n\t$('.scroll-to-top').click(function (e) {\r\n\t\te.preventDefault();\r\n\r\n\t\tif (!$(this).hasClass('no-animate')) {\r\n\t\t\t$(\"html, body\").animate({ scrollTop: 0 }, 1000);\r\n\t\t}\t\t\r\n\r\n\t\t// set focus to skip content link\r\n\t\t$(\".nav-bypass\").attr('tabindex', '-1').focus();\r\n\t});\r\n})(jQuery);\r\n","var CP = CP || {};\r\nCP.SEARCH = CP.SEARCH || {};\r\n\r\n(function ($, cp) {\r\n\r\n\tfunction initAutocomplete($this) {\r\n\t\t//Autocomplete\r\n\t\tvar disableTypeAhead = $this.data(\"disableTypeahead\");\r\n\t\tif (disableTypeAhead == 'True') {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar element = $this.find('.autocomplete-wrap');\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar selectorId = $this.data('id');\r\n\t\tvar id = selectorId;\r\n\t\tvar dataPlaceholder = $this.data(\"placeholder\");\r\n\t\t\r\n\t\tfunction customSuggest(query, syncResults) {\r\n\t\t\t$.ajax({\r\n\t\t\t\turl: \"/_api/Search/TypeAheadSearch\",\r\n\t\t\t\ttype: \"post\",\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tSearchTerm: query,\r\n\t\t\t\t\tId: CP.BOE.ContentPageSearchDataSourceID\r\n\t\t\t\t}\r\n\t\t\t}).done(function (results) {\r\n\t\t\t\tvar valuesFiltered = results.suggestions.filter(function (result) {\r\n\t\t\t\t\treturn result.value.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t\t\t\t});\r\n\t\t\t\tsyncResults(valuesFiltered);\r\n\t\t\t});\r\n\t\t}\r\n\t\tfunction inputValueTemplate(result) {\r\n\t\t\treturn result && result.value;\r\n\t\t}\r\n\r\n\t\tfunction suggestionTemplate(result) {\r\n\t\t\treturn result && result.value;\r\n\t\t}\r\n\r\n\t\tfunction onConfirm(result) {\r\n\t\t\twindow.location.href = result.data;\r\n\t\t}\r\n\r\n\t\taccessibleAutocomplete({\r\n\t\t\telement: element[0],\r\n\t\t\tid: id,\r\n\t\t\tsource: customSuggest,\r\n\t\t\t//autoselect: true,\r\n\t\t\tconfirmOnBlur: false,\r\n\t\t\tdisplayMenu: 'overlay',\r\n\t\t\tminLength: 3,\r\n\t\t\tplaceholder: dataPlaceholder,\r\n\t\t\tshowNoOptionsFound: false,\r\n\t\t\tonConfirm: onConfirm,\r\n\t\t\ttemplates: {\r\n\t\t\t\tinputValue: inputValueTemplate,\r\n\t\t\t\tsuggestion: suggestionTemplate\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t};\r\n\r\n\t//General Search\r\n\tif ($('.general-search').length > 0) {\r\n\t\tinitAutocomplete($('.general-search'));\r\n\t}\r\n\r\n\r\n\t//Filters Search\r\n\tif ($('#SearchResultsPage').length > 0) {\r\n\r\n\t\t$('.filter-search').each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tif ($this.data('type') != 'searchPage') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tinitAutocomplete($this);\r\n\r\n\t\t\tvar input = $this.find('#search-input');\r\n\t\t\tvar submit = $this.find('input[type=\"submit\"]');\r\n\t\t\tvar dataEmpty = $this.data(\"empty\");\r\n\t\t\tvar clear = $this.find('.search-widget-clear');\r\n\t\t\tvar error = $this.find('.search-widget-error');\r\n\t\t\tvar errorText = \"Nothing searched for. Please enter a search term.\";\r\n\t\t\tvar disableTypeAhead = $this.data(\"disableTypeahead\");\r\n\t\t\tif (!(disableTypeAhead == 'True')) {\r\n\t\t\t\tinput.attr(\"data-error\", errorText).attr('aria-labelledby', 'content-search-error').attr('aria-describedby', 'content-search-error');\r\n\t\t\t}\r\n\r\n\t\t\tinput.keyup(function (e) {\r\n\t\t\t\tif (e.which == 13) {\r\n\t\t\t\t\tif (!$(this).val()) {\r\n\t\t\t\t\t\tinput.attr(\"placeholder\", dataEmpty).attr('aria-invalid', 'true').addClass('error');\r\n\t\t\t\t\t\tif (!$.trim(error.html())) { error.append('

    ' + errorText + '

    '); }\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(this).data('value', $(this).val());\r\n\t\t\t\t\tCP.SEARCH.initFilters();\r\n\t\t\t\t}\r\n\t\t\t\tif (e.which != 13 && $(this).val()) {\r\n\t\t\t\t\t$(this).attr(\"placeholder\", dataPlaceholder).attr('aria-invalid', 'false').removeClass('error');\r\n\t\t\t\t\terror.find('p').remove();\r\n\t\t\t\t\tclear.css(\"display\", \"block\");\r\n\t\t\t\t}\r\n\t\t\t\tif (!$(this).val()) {\r\n\t\t\t\t\tclear.css(\"display\", \"none\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Clean search box\r\n\t\t\tclear.on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif (!input.data('value')) {\r\n\t\t\t\t\tinput.val(\"\");\r\n\t\t\t\t\tclear.css(\"display\", \"none\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tinput.val(\"\");\r\n\t\t\t\t\tinput.data('value', '');\r\n\t\t\t\t\tclear.css(\"display\", \"none\");\r\n\t\t\t\t\tCP.SEARCH.initFilters();\r\n\t\t\t\t}\r\n\t\t\t\tinput.attr('tabindex', '-1');\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tinput.focus();\r\n\t\t\t\t}, 100);\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\r\n\t\t\tsubmit.on('click', function () {\r\n\t\t\t\tif (!input.val()) {\r\n\t\t\t\t\tinput.attr(\"placeholder\", dataEmpty).attr('aria-invalid', 'true').addClass('error').focus();\r\n\t\t\t\t\tif (!$.trim(error.html())) { error.append('

    ' + errorText + '

    '); }\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tinput.data('value', input.val());\r\n\t\t\t\tCP.SEARCH.initFilters();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t$('.js-calendar').on('keydown', function (e) {\r\n\t\t\tif (e.keyCode === 13) {\r\n\t\t\t\tCP.SEARCH.initFilters();\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tvar search = $(\".general-search\");\r\n\tvar input = search.find('#search-input');\r\n\tvar clear = search.find('.search-widget-clear');\r\n\tvar dataEmpty = search.data(\"empty\");\r\n\tvar dataPlaceholder = search.data(\"placeholder\");\r\n\tvar error = search.find('.search-widget-error');\r\n\tvar errorText = \"Nothing searched for. Please enter a search term.\";\r\n\tvar disableTypeAhead = search.data(\"disableTypeahead\");\r\n\tif (!(disableTypeAhead == 'True')) {\r\n\t\tinput.attr(\"data-error\", errorText).attr('aria-labelledby', 'search-error').attr('aria-describedby', 'search-error');\r\n\t}\r\n\r\n\t//keypress for general search in homepage and header\r\n\tinput.keyup(function (e) {\r\n\t\tif (e.which == 13) {\r\n\t\t\tif ($(this).val()) {\r\n\t\t\t\t$(this).closest('form').submit();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (e.which != 13 && $(this).attr(\"placeholder\") == dataEmpty) {\r\n\t\t\t$(this).attr(\"placeholder\", dataPlaceholder).attr('aria-invalid', 'false').removeClass('error');\r\n\t\t\terror.find('p').remove();\r\n\t\t\tsearch.removeClass('error');\r\n\t\t\tclear.css(\"display\", \"block\");\r\n\t\t}\r\n\t\tif (e.which != 13 && !$(this).val()) {\r\n\t\t\tclear.css(\"display\", \"none\");\r\n\t\t}\r\n\t});\r\n\r\n\t// Clean search box\r\n\tclear.on('click', function (e) {\r\n\t\te.preventDefault();\r\n\t\tinput.val(\"\");\r\n\t\tclear.css(\"display\", \"none\");\r\n\t\tinput.attr('tabindex', '-1');\r\n\t\tsetTimeout(function () {\r\n\t\t\tinput.focus();\r\n\t\t}, 100);\r\n\t\treturn false;\r\n\t});\r\n\r\n\tCP.SEARCH.Submit = function (targetPage, queryParam, extraParams) {\r\n\r\n\t\tif (input.val().trim() !== \"\") {\r\n\t\t\tif (extraParams !== \"\")\r\n\t\t\t\tdocument.location = targetPage + \"?\" + queryParam + \"=\" + encodeURIComponent(input.val()) + \"&\" + extraParams;\r\n\t\t\telse\r\n\t\t\t\tdocument.location = targetPage + \"?\" + queryParam + \"=\" + encodeURIComponent(input.val());\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tinput.attr(\"placeholder\", dataEmpty).attr('aria-invalid', 'true').addClass('error').focus();\r\n\t\tif (!$.trim(error.html())) { error.append('

    ' + errorText + '

    '); }\r\n\t\tsearch.addClass('error');\r\n\t\treturn false;\r\n\t};\r\n\r\n\tCP.SEARCH.initSortedBy = function (elem) {\r\n\t\tvar $this = $(elem);\r\n\t\t$this.data('value', $this.val());\r\n\t\tCP.SEARCH.initFilters();\r\n\t};\r\n\r\n\tCP.SEARCH.initPagination = function (elem) {\r\n\t\tvar $this = $(elem);\r\n\t\tif ($this.hasClass('pagination-disabled')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar pagerDataElement = $this.closest('[data-page]');\r\n\t\tvar currentPage = pagerDataElement.data('page');\r\n\t\tvar pageCount = pagerDataElement.data('pagecount');\r\n\r\n\t\tif ($this.hasClass('list-pagination__link--page')) {\r\n\t\t\tcurrentPage = parseInt($this.data('page-link'));\r\n\t\t\tpagerDataElement.data('page', currentPage);\r\n\t\t}\r\n\r\n\t\tif ($this.hasClass('pagination-next') || $this.hasClass('list-pagination__link--next')) {\r\n\t\t\tif (pageCount > currentPage) {\r\n\t\t\t\tcurrentPage = currentPage + 1;\r\n\t\t\t\tpagerDataElement.data('page', currentPage);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif ($this.hasClass('pagination-prev') || $this.hasClass('list-pagination__link--prev')) {\r\n\t\t\tif (currentPage > 1) {\r\n\t\t\t\tcurrentPage = currentPage - 1;\r\n\t\t\t\tpagerDataElement.data('page', currentPage);\r\n\t\t\t}\r\n\t\t}\r\n\t\tpagerDataElement.data('pagination', 'true');\r\n\t\tCP.SEARCH.initFilters();\r\n\t};\r\n\r\n\tCP.SEARCH.initClearFilters = function (elem) {\r\n\t\tvar $this = $(elem);\r\n\t\tif ($this.hasClass('clear-type')) {\r\n\t\t\t$this.data('clear', 'type');\r\n\t\t}\r\n\t\tif ($this.hasClass('clear-taxonomy')) {\r\n\t\t\t$this.data('clear', 'taxonomy');\r\n\t\t}\r\n\t\tif ($this.hasClass('clear-dates')) {\r\n\t\t\t$this.data('clear', 'dates');\r\n\t\t}\r\n\t\tCP.SEARCH.initFilters();\r\n\t};\r\n\r\n\tCP.SEARCH.initGetFilters = function () {\r\n\t\tvar query = '';\r\n\t\tvar queryType = '';\r\n\t\tvar queryTypeOptions = '';\r\n\t\tvar queryTaxonomy = '';\r\n\t\tvar page = '1';\r\n\t\tvar sortBy = '1';\r\n\t\tvar dateFrom;\r\n\t\tvar dateTo;\r\n\r\n\t\t//Search\r\n\t\t$('.filter-search').each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tif (!$this.data('type') == 'searchPage') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar searchCtrl = $this.find('input[type=\"text\"].autocomplete__input');\r\n\t\t\tvar inputValue = searchCtrl.data('value') || searchCtrl.val();\r\n\r\n\t\t\tif (inputValue)\r\n\t\t\t\tquery = inputValue;\r\n\t\t});\r\n\r\n\t\t//Type\r\n\t\tvar typeValues = $('.sidebar-filters.type-filters').find('input[type=\"checkbox\"]').toArray();\r\n\t\t//queryTypeOptions = typeValues.map(function(obj) { return obj.value; });\r\n\t\tqueryTypeOptions = CP.BOE.ContentPageTypes ? CP.BOE.ContentPageTypes : queryTypeOptions;\r\n\t\ttypeValues = typeValues.filter(function (obj) { return obj.checked; });\r\n\t\tqueryType = typeValues.map(function (obj) { return obj.value; });\r\n\r\n\t\t//Taxonomies\r\n\t\tvar taxonomyValues = $('.sidebar-filters.taxonomy-filters').find('input[type=\"checkbox\"]').toArray();\r\n\t\tvar taxonomyValuesAvailable = CP.BOE.ContentPageTaxonomies ? CP.BOE.ContentPageTaxonomies : [];\r\n\t\ttaxonomyValues = taxonomyValues.filter(function (obj) { return obj.checked; });\r\n\t\tqueryTaxonomy = taxonomyValues.map(function (obj) { return obj.value; });\r\n\r\n\t\t//Sort By\r\n\t\tsortBy = $('.sort-by select').data('value');\r\n\t\tif (isUndefined(sortBy)) {\r\n\t\t\tsortBy = !isUndefined(CP.BOE.SortByParameter) ? CP.BOE.SortByParameter : '1';\r\n\t\t}\r\n\r\n\t\t//Pagination\r\n\t\tif ($('.container-list-pagination').data('pagination') == 'true') {\r\n\t\t\tvar offset = ($(window).width() >= '1024') ? '90' : '20';\r\n\t\t\tpage = $('.container-list-pagination').data('page');\r\n\t\t\t$(\"html, body\").animate({ scrollTop: $(\"#SearchResults\").offset().top - offset }, 1000);\r\n\t\t}\r\n\t\t$('.container-list-pagination').data('pagination', 'false');\r\n\r\n\t\t//Dates\r\n\t\tif ($('.date-field #cpageDateMin').length > 0) {\r\n\t\t\tvar fromVal = $('.date-field #cpageDateMin').datepicker(\"getDate\");\r\n\t\t\tif (fromVal) {\r\n\t\t\t\tdateFrom = fromVal.parseToISOString();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif ($('.date-field #cpageDateMax').length > 0) {\r\n\t\t\tvar toVal = $('.date-field #cpageDateMax').datepicker(\"getDate\");\r\n\t\t\tif (toVal) {\r\n\t\t\t\ttoVal.setDate(toVal.getDate() + 1);\r\n\t\t\t\tdateTo = toVal.parseToISOString();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//Clear buttons\r\n\t\tif ($('.clear-type').data('clear')) {\r\n\t\t\tif (typeValues.length != 0) {\r\n\t\t\t\t//clear type\r\n\t\t\t\tqueryType = [];\r\n\t\t\t\t//Uncheck inputs\r\n\t\t\t\t$.each(typeValues,\r\n\t\t\t\t\tfunction (index, value) {\r\n\t\t\t\t\t\t$(value).prop('checked', false);\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t//remove data-type\r\n\t\t\t$('.clear-type').data('clear', '');\r\n\t\t}\r\n\t\tif ($('.clear-taxonomy').data('clear')) {\r\n\t\t\tif (taxonomyValues.length != 0) {\r\n\t\t\t\t//clear taxonomy\r\n\t\t\t\tqueryTaxonomy = [];\r\n\t\t\t\t//Uncheck inputs\r\n\t\t\t\t$.each(taxonomyValues,\r\n\t\t\t\t\tfunction (index, value) {\r\n\t\t\t\t\t\t$(value).prop('checked', false);\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t//remove data-type\r\n\t\t\t$('.clear-taxonomy').data('clear', '');\r\n\t\t}\r\n\t\tif ($('.clear-dates').data('clear')) {\r\n\t\t\tif (fromVal || toVal) {\r\n\t\t\t\t//clear dates\r\n\t\t\t\tdateFrom = undefined;\r\n\t\t\t\tdateTo = undefined;\r\n\t\t\t\t//Uncheck inputs\r\n\t\t\t\t$('.date-field #cpageDateMin').datepicker(\"setDate\", '');\r\n\t\t\t\t$('.date-field #cpageDateMax').datepicker(\"setDate\", '');\r\n\t\t\t}\r\n\t\t\t//remove data-type\r\n\t\t\t$('.clear-dates').data('clear', '');\r\n\t\t}\r\n\r\n\t\tvar obj = {\r\n\t\t\tSearchTerm: query,\r\n\t\t\tId: CP.BOE.ContentPageSearchDataSourceID,\r\n\t\t\tPageSize: CP.BOE.ContentPageSize,\r\n\t\t\tReleaseTypes: queryType,\r\n\t\t\tReleaseTypesAvailable: queryTypeOptions,\r\n\t\t\tTaxonomies: queryTaxonomy,\r\n\t\t\tTaxonomiesAvailable: taxonomyValuesAvailable,\r\n\t\t\tPage: page,\r\n\t\t\tOrderBy: sortBy,\r\n\t\t\tDateFrom: dateFrom,\r\n\t\t\tDateTo: dateTo\r\n\t\t};\r\n\r\n\t\treturn obj;\r\n\t};\r\n\r\n\tCP.SEARCH.initFilters = function (reload) {\r\n\r\n\t\tvar obj = CP.SEARCH.initGetFilters();\r\n\r\n\t\tinitAjaxCall(obj, reload);\r\n\t};\r\n\r\n\tfunction initAjaxCall(obj, reload) {\r\n\r\n\t\t$(\"#SearchResults\").css('display', 'none');\r\n\t\t$('.loading').css('display', 'block');\r\n\t\t$('.loading').html('\"\"

    Content loading

    ');\r\n\r\n\t\t$.ajax({\r\n\t\t\turl: \"/_api/Search/RefreshContentPageSearchList\",\r\n\t\t\ttype: \"post\",\r\n\t\t\tdata: obj\r\n\t\t})\r\n\t\t\t.done(function (result) {\r\n\t\t\t\t$(\"#SearchResults\").hide().html(result.Results).fadeIn(600, function () {\r\n\t\t\t\t\t$('.loading').empty();\r\n\t\t\t\t\t$('.loading').css('display', 'none');\r\n\t\t\t\t});\r\n\t\t\t\t$('.sidebar-filters.taxonomy-filters').hide().html(result.Refiners).fadeIn(600);\r\n\r\n\t\t\t\t$('.search-count').html(result.NumResultsTxt);\r\n\t\t\t\t$('#searchResultCountAnnounce').html('');\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t$('#searchResultCountAnnounce').html(result.NumResultsTxt);\r\n\t\t\t\t}, 500);\r\n\r\n\t\t\t\tIEimages();\r\n\t\t\t})\r\n\t\t\t.error(function (e) {\r\n\t\t\t\t//console.log(\"error\", e)\r\n\t\t\t});\r\n\t\tif (!reload) {\r\n\t\t\thistory.pushState(obj, null, null);\r\n\t\t}\r\n\t};\r\n\r\n\tif ($('#SearchResultsPage').length > 0) {\r\n\r\n\t\tif (!$(\"body\").hasClass(\"pagemode-edit\")) {\r\n\t\t\twindow.addEventListener('popstate', function (e) {\r\n\t\t\t\tvar obj = e.state;\r\n\t\t\t\tif (obj) {\r\n\t\t\t\t\tinitAjaxCall(obj, true);\r\n\t\t\t\t\tinitRefreshTypes(obj.ReleaseTypes);\r\n\t\t\t\t\tinitRefreshTaxonomies(obj.Taxonomies);\r\n\t\t\t\t\tinitRefreshSearchbox(obj.SearchTerm);\r\n\t\t\t\t\tinitRefreshOrderBy(obj.OrderBy);\r\n\t\t\t\t\tinitRefreshDate(obj.DateFrom, obj.DateTo);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlocation.href = location.href;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (performance.navigation.type != 1 && history.state != null && history.state.Id && !$(\"body\").hasClass(\"pagemode-edit\")) {\r\n\t\t\tinitRefreshTypes(history.state.ReleaseTypes);\r\n\t\t\t//initRefreshTaxonomies(history.state.Taxonomies);\r\n\t\t\tinitRefreshSearchbox(history.state.SearchTerm);\r\n\t\t\tinitRefreshOrderBy(history.state.OrderBy);\r\n\t\t\tinitRefreshDate(history.state.DateFrom, history.state.DateTo);\r\n\r\n\t\t\tvar obj = CP.SEARCH.initGetFilters();\r\n\t\t\tobj.Taxonomies = history.state.Taxonomies;\r\n\t\t\tinitAjaxCall(obj);\r\n\r\n\t\t} else {\r\n\t\t\t//console.info(\"Initialise from page\");\r\n\t\t\t//Delay necessary due to race conditions with browser restoring page state\r\n\t\t\t//when back button has been pressed.\r\n\t\t\tvar delay = 300;\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tCP.SEARCH.initFilters(true);\r\n\t\t\t}, delay);\r\n\t\t\t//console.info(\"Delay: \" + delay);\t\r\n\t\t}\r\n\t};\r\n\r\n\tfunction initRefreshTypes(checked) {\r\n\r\n\t\tvar typeCheckboxes = $('.sidebar-filters.type-filters').find('input[type=\"checkbox\"]').toArray();\r\n\t\tvar typeCheckboxesValues = typeCheckboxes.map(function (obj) { return obj.value; });\r\n\r\n\t\tfor (var i = 0; i < typeCheckboxesValues.length; i++) {\r\n\t\t\tif (checked.indexOf(typeCheckboxesValues[i]) !== -1) {\r\n\t\t\t\t$(typeCheckboxes[i]).prop('checked', true);\r\n\t\t\t} else {\r\n\t\t\t\t$(typeCheckboxes[i]).prop('checked', false);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfunction initRefreshTaxonomies(checked) {\r\n\r\n\t\tvar typeCheckboxes = $('.sidebar-filters.taxonomy-filters').find('input[type=\"checkbox\"]').toArray();\r\n\t\tvar typeCheckboxesValues = typeCheckboxes.map(function (obj) { return obj.value; });\r\n\r\n\t\tfor (var i = 0; i < typeCheckboxesValues.length; i++) {\r\n\t\t\tif (checked.indexOf(typeCheckboxesValues[i]) !== -1) {\r\n\t\t\t\t$(typeCheckboxes[i]).prop('checked', true);\r\n\t\t\t} else {\r\n\t\t\t\t$(typeCheckboxes[i]).prop('checked', false);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfunction initRefreshSearchbox(SearchTerm) {\r\n\t\t$('.filter-search input[type=\"search\"]').val(SearchTerm);\r\n\t};\r\n\r\n\tfunction initRefreshOrderBy(OrderBy) {\r\n\t\t$('.sort-by select').val(OrderBy);\r\n\t};\r\n\r\n\tfunction initRefreshDate(DateFrom, DateTo) {\r\n\t\tif (DateFrom) {\r\n\t\t\tDateFrom = new Date(DateFrom);\r\n\t\t} else {\r\n\t\t\tDateFrom = undefined;\r\n\t\t}\r\n\t\tif (DateTo) {\r\n\t\t\tDateTo = new Date(DateTo);\r\n\t\t} else {\r\n\t\t\tDateTo = undefined;\r\n\t\t}\r\n\t\t$('.date-field #cpageDateMin').datepicker(\"setDate\", DateFrom);\r\n\t\t$('.date-field #cpageDateMax').datepicker(\"setDate\", DateTo);\r\n\t};\r\n\r\n\tfunction IEimages() {\r\n\t\tif (!Modernizr.objectfit) {\r\n\t\t\t$('.releases-items .release').each(function () {\r\n\t\t\t\tvar $imageContainer = $(this).find('.release-img'),\r\n\t\t\t\t\timgUrl = $imageContainer.find('img').prop('src');\r\n\t\t\t\tif (imgUrl) {\r\n\t\t\t\t\t$imageContainer\r\n\t\t\t\t\t\t.css('backgroundImage', 'url(' + imgUrl + ')')\r\n\t\t\t\t\t\t.addClass('object-fit');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tfunction isUndefined(value) {\r\n\t\t// Obtain `undefined` value that's guaranteed to not have been re-assigned\r\n\t\tvar undefined = void (0);\r\n\t\treturn value === undefined;\r\n\t};\r\n\r\n})(jQuery, CP.SEARCH);","// Share tooltip\r\n\r\nvar Share = {\r\n\r\n selectorContainer: '[data-share]',\r\n\tselector: '[data-share-trigger]',\r\n\tcontent: '.share-widget__list',\r\n classActive: 'active',\r\n \r\n init: function () {\r\n // return if the container share not present\r\n if (!$(this.selectorContainer).length) return;\r\n\r\n\t\tthis.setDefaultState();\r\n this.bindClickEvent();\r\n\r\n },\r\n bindClickEvent: function () {\r\n\r\n $(Share.selector).on('click', function (e) {\r\n\r\n $thisSelector = $(this),\r\n\t\t\t$thisSelectorParent = $thisSelector.parent(Share.selectorContainer),\r\n\t\t\t$thisContent = $thisSelectorParent.find(Share.content);\r\n\r\n\t\t\tShare.toggleClassActive($thisSelectorParent);\r\n\t\t\tShare.setAriaAttr($thisSelector, $thisContent);\r\n\r\n // Prevent default click behavior\r\n e.preventDefault();\r\n // stopPropagation to prevent the button click from bubbling up the DOM\r\n e.stopPropagation();\r\n\r\n });\r\n\r\n $('body').on('click', function () {\r\n\r\n if ($(Share.selectorContainer).hasClass(Share.classActive)) {\r\n $(Share.selectorContainer).removeClass(Share.classActive);\r\n }\r\n\r\n });\r\n\r\n },\r\n\tsetDefaultState: function () {\r\n\t\t$(Share.selector).attr('aria-expanded', 'false');\r\n\t\t$(Share.content).attr('aria-hidden', 'true');\r\n\t},\r\n\tsetAriaAttr: function ($thisSelector, $thisContent) {\r\n\r\n\t\t// check state and set the opposite attr\r\n\t\tvar stateLink = $thisSelector.attr('aria-expanded') === 'false' ? true : false;\r\n\t\tstateContent = $thisContent.attr('aria-hidden') === 'true' ? false : true;\r\n\r\n\t\t// set button state\r\n\t\t$thisSelector.attr('aria-expanded', stateLink);\r\n\t\t// set content state\r\n\t\t$thisContent.attr('aria-hidden', stateContent);\r\n\r\n\t},\r\n toggleClassActive: function ($thisSelectorParent) {\r\n\r\n setTimeout(function () {\r\n $thisSelectorParent.toggleClass(Share.classActive);\r\n }, 300);\r\n \r\n }\r\n\r\n};\r\n\r\n$(document).ready(function () {\r\n\r\n Share.init();\r\n\r\n});","// Table scroll\r\n\r\nvar TableScroll = {\r\n\r\n\tselector: '[data-table-scroll]',\r\n\ttableRow: '[data-table-row]',\r\n\ttableCol: '[data-table-col]',\r\n\r\n\tinit: function () {\r\n\t\tif (!$(this.selector).length) return;\r\n\t\tthis.setTheadPosition();\r\n\t\tthis.bindScrollEvent();\r\n\t},\r\n\r\n\tsetTheadPosition: function () {\r\n\r\n\t\t$(TableScroll.selector).each(function (i) {\r\n\r\n\t\t\t// get initial dimentions from relative position\r\n\t\t\tvar $thisTable = $(this),\r\n\t\t\t\tthisRow = $thisTable.find(TableScroll.tableRow),\r\n\t\t\t\tthisCol = $thisTable.find(TableScroll.tableCol),\r\n\t\t\t\tthisTdHead = thisRow.find('.table-header'),\r\n\t\t\t\tthisTh = thisRow.find('tr th'),\r\n\t\t\t\tthisTbody = $thisTable.find('tbody'),\r\n\t\t\t\tthisTd = thisTbody.find('tr td'),\r\n\t\t\t\ttHeadRowHeight = thisRow.outerHeight(),\r\n\t\t\t\tcolHeadWidth = thisCol.width();\r\n\r\n\t\t\t// set dimentions for header cells\r\n\t\t\tif (thisRow.length) {\r\n\r\n\t\t\t\tthisTd.each(function () {\r\n\t\t\t\t\tvar cellTd = $(this),\r\n\t\t\t\t\t\tcellWidth = cellTd.outerWidth();\r\n\r\n\t\t\t\t\tcellTd.css('min-width', cellWidth + 'px');\r\n\t\t\t\t\tcellTd.attr('width', cellWidth + 'px');\r\n\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthisTdHead.each(function () {\r\n\t\t\t\t\tvar cellTdHead = $(this),\r\n\t\t\t\t\t\ttdHeadWidth = cellTdHead.outerWidth();\r\n\r\n\t\t\t\t\tcellTdHead.css('min-width', tdHeadWidth + 'px');\r\n\t\t\t\t\tcellTdHead.attr('width', tdHeadWidth + 'px');\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthisTh.each(function () {\r\n\t\t\t\t\tvar cellTh = $(this),\r\n\t\t\t\t\t\tcellThWidth = cellTh.outerWidth();\r\n\r\n\t\t\t\t\tcellTh.css('min-width', cellThWidth + 'px');\r\n\t\t\t\t\tcellTh.attr('width', cellThWidth + 'px');\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\t// set Tbody position\r\n\t\t\t\tthisRow.css('height', tHeadRowHeight + 'px');\r\n\t\t\t\tthisTbody.css('margin-top', tHeadRowHeight);\r\n\r\n\t\t\t\tTableScroll.addStickyClass(thisRow, thisTbody);\r\n\r\n\t\t\t}\r\n\r\n\t\t\t// set dimention and position for header col\r\n\t\t\tif (thisCol.length) {\r\n\t\t\t\tthisCol.css('top', tHeadRowHeight);\r\n\t\t\t\tthisTbody.css('left', colHeadWidth);\r\n\t\t\t\tTableScroll.addStickyClass(thisCol, thisTbody);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\taddStickyClass: function (thisRow, thisTbody) {\r\n\r\n\t\tthisRow.addClass('is-sticky');\r\n\t\tthisTbody.addClass('has-sticky');\r\n\r\n\t},\r\n\r\n\tbindScrollEvent: function () {\r\n\r\n\t\t$(TableScroll.selector).on('scroll', function () {\r\n\r\n\t\t\tvar $thisTable = $(this),\r\n\t\t\t\tthisRow = $thisTable.find(TableScroll.tableRow),\r\n\t\t\t\tthisCol = $thisTable.find(TableScroll.tableCol),\r\n\t\t\t\tscrollLeftValue = $(this).scrollLeft() + \"px\",\r\n\t\t\t\tscrollTopValue = $(this).scrollTop() + \"px\";\r\n\r\n\t\t\tif (thisRow.length) {\r\n\t\t\t\t// move tHead row top position\r\n\t\t\t\tthisRow.css('transform', 'translate(0,' + scrollTopValue + ')');\r\n\t\t\t}\r\n\t\t\tif (thisCol.length) {\r\n\t\t\t\t// move tHead col left position\r\n\t\t\t\tthisCol.css('transform', 'translate(' + scrollLeftValue + ', 0)');\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n};\r\n\r\n\r\n$(document).ready(function () {\r\n\tTableScroll.init();\r\n});","(function ($) {\r\n\t// Tabs\r\n\t$('.tabs-wrap').each(function(){\r\n\t\tvar $this = $(this);\r\n\t\tvar $tabsWrap = $this.find('.tabs');\r\n\t\tvar $content = $this.find('.tabs-content');\r\n\r\n\t\t$tabsWrap.find('a').each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar tab_id = $this.attr('href');\r\n\t\t\tif ($this.closest('li').hasClass('tab-current')) $(tab_id).addClass('tab-current');\r\n\t\t\t$this.click(function (e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t$tabsWrap.find('li').removeClass('tab-current');\r\n\t\t\t\t$content.removeClass('tab-current');\r\n\r\n\t\t\t\t$this.closest('li').addClass('tab-current');\r\n\t\t\t\t$(tab_id).addClass('tab-current');\r\n\t\t\t})\r\n\t\t});\r\n\t\t\r\n\t});\r\n})(jQuery);\r\n","(function ($) {\r\n\t// Videos \r\n\tif ($('.btn-load-video').length) {\r\n\t\t//$('.btn-open-video').hide();\t\t\r\n\t\t//$('.btn-load-video').each(function (i, obj) {\r\n\t\t$('.btn-load-video').on('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar video = $(this).parent().data('video');\r\n\t\t\tvar iframe = '';\r\n\t\t\t$(this).parent().append(iframe);\r\n\t\t\t$(this).fadeOut();\r\n\t\t});\r\n\t};\r\n})(jQuery);"]}