{"version":3,"sources":["_appius.carousel.js","_appius.equalise.js","_appius.backToTop.js","_appius.mobileNav.js","_appius.parallaxBg.js","_appius.professionalsModal.js","_appius.activeNavigation.js","_appius.responsiveTabs.js","_appius.search.js","_appius.deepAnchors.js","_appius.languageSelector.js","_appius.videoBanner.js","_appius.bsTabEqualise.js","_recaptcha.js","vendor/polyfill/url-polyfill.min.js","vendor/jquery-match-height/matchHeight.min.js","vendor/_jquery.cookie.js","_appius.modal.js","_appius.lightbox.js","_appius.jobSearch.js"],"names":["CAROUSEL_SELECTOR","loadDiscoverCarouselResponsiveImage","loadFirstItemOnly","DATA_SELECTOR","isMobile","$","each","$this","this","imgURL","attr","css","window","outerWidth","document","ready","slick","lazyLoad","slidesToShow","slidesToScroll","touchThreshold","draggable","autoplay","speed","lazyLoadBuffer","dots","on","$slick","next","hasClass","removeClass","addClass","liveRegion","createElement","updateSliderArrowVisibility","event","nextSlide","$elem","slideCount","options","find","setAttribute","append","removeAttr","eq","currentSlide","length","slickInstance","newContent","text","updateAriaElements","e","load","querySelectorAll","selectors","element","style","elements","documentElement","firstChild","appendChild","_qsa","styleSheet","cssText","scrollBy","parentNode","removeChild","shift","removeAttribute","push","readyList","readyFired","readyEventHandlersInstalled","i","call","docReady","callback","setTimeout","readyState","attachEvent","addEventListener","equalise","func","timeout","module","ATTR","init","nodeList","priorityNodes","Array","nodes","node","isVisible","offsetWidth","offsetHeight","height","getAttribute","processRow","offset","group","row","maxHeight","nextNode","thisOffset","getOffset","getGroup","findNextNode","splice","getBoundingClientRect","top","onresize","obj","args","arguments","clearTimeout","apply","ITEM_SELECTOR","debounce","wait","immediate","context","later","callNow","oldScrollPosition","scrollBounce","newPosition","scrollTop","fadeIn","fadeOut","scroll","preventDefault","tooltip","animate","touchMoved","stopPropagation","updateNavHeight","innerWidth","$submenu","closest","closeNav","heightOnLoad","innerHeight","newFullHeight","newHeight","visibleHeight","currentOpenSubmenus","children","index","ELEMENT_SELECTOR","STARTING_POSITION","STRENGTH","elementArray","parallaxDisabled","checkIfDisabled","parallaxWindowLoad","createElementArrayCache","runParallax","resize","resizeBounce","updateBanners","item","elem","elemTop","elemBottom","outerHeight","elemMid","elemHeight","isInView","scrollPos","calculateBackgroundOffset","windowHeight","mapped","updateBackgroundOffset","y","coords","toPrecision","backgroundPosition","sectionId","$item","pageId","$link","navigator","userAgent","includes","activeLink","primaryLinkList","forEach","link","target","handleTouchDevices","checkPrimaryNav","$firstAnchor","checkTertiaryNav","checkLeftNav","jQuery","TAB_DROPDOWN_SELECT","TAB_CONTAINER_SELECTOR","TAB_ITEM_SELECTOR","TAB_ITEM_LINK_SELECTOR","MOBILE_THRESHOLD","onTabDropdownChange","tab","onTabSelect","val","parent","responsiveTabs","maxTabCount","$tabContainer","$tabItems","$dropDown","calculateMaxItems","createExcessDropdown","tabContainerWidth","width","tabIndex","$tab","countIndex","$excessTabs","opts","$anchor","txt","html","scrollTimer","DESKTOP_SEARCH_BTN","DESKTOP_SEARCH_FIELD","TABLET_SEARCH_BTN","TABLET_SEARCH_FIELD","MOBILE_SEARCH_BTN","MOBILE_SEARCH_FIELD","searchRecords","fieldSelector","searchText","trim","newLocation","getSearchResultsPath","encodeURIComponent","searchKey","location","path","resultsPageUrl","Error","checkForSearchText","toggleClass","focus","keypress","which","LANGUAGE_SELECTOR","LANGUAGE_SELECTOR_ACTIVE","onLanguageClick","onBodyClick","appius","deepAnchors","hash","$container","parents","id","findParentComponent","scrollToElement","$tabpanel","collapse","initVideoBanner","youtubePlayer","VIDEO_BANNER_ID","tag","src","firstScriptTag","getElementsByTagName","insertBefore","onYouTubeIframeAPIReady","videoID","YT","Player","videoId","playerVars","controls","rel","showinfo","events","onStateChange","onPlayerStateChange","data","PlayerState","ENDED","playVideo","TAB_SELECTOR","EQUALISE_SELECTOR","TAB_EVENT_TRIGGER","targetID","$targetContent","hasErrors","onloadCallback","grecaptcha","render","sitekey","reCaptchaSiteKey","responseData","sendInfo","response","ajax","type","url","reCaptchaUrlEndPoint","JSON","stringify","contentType","dataType","success","r","captchaResponse","parseJSON","Response","error","console","log","validateRecaptcha","getResponse","show","hide","freezeframeGifs","prefersReducedMotion","matchMedia","$img","alt","ff","freezeframe","non_touch_device_trigger_event","$button","play","trigger","pause","release","checkInterval","setInterval","matches","clearInterval","handleCerosSubmit","container","form","querySelector","formFields","submitBtn","field","fieldKey","key","value","click","postCerosResponse","endpoint","contentWindow","postMessage","formSubmitStatus","statusDescription","initCookieBar","cookieBarText","cookieBar","message","acceptButton","t","a","Symbol","iterator","n","done","replace","o","decodeURIComponent","String","URLSearchParams","toString","prototype","set","entries","s","Object","defineProperty","writable","_fromString","TypeError","hasOwnProperty","_entries","delete","get","getAll","slice","has","keys","values","join","c","sort","enumerable","configurable","split","global","self","u","URL","pathname","href","searchParams","implementation","createHTMLDocument","head","indexOf","body","protocol","test","checkValidity","search","f","h","_anchorElement","_updateSearchParams","defineProperties","origin","http:","https:","ftp:","port","hostname","password","username","createObjectURL","revokeObjectURL","define","amd","exports","require","parseFloat","Math","floor","abs","add","byRow","property","remove","extend","fn","matchHeight","_groups","not","_apply","version","_throttle","_maintainScroll","_beforeUpdate","_afterUpdate","_rows","_parse","_parseOptions","l","p","filter","display","padding-top","padding-bottom","margin-top","margin-bottom","border-top-width","border-bottom-width","overflow","is","_applyDataApi","_update","factory","registeredInModuleLoader","OldCookies","Cookies","api","noConflict","result","attributes","converter","defaults","expires","Date","setMilliseconds","getMilliseconds","toUTCString","write","escape","stringifiedAttributes","attributeName","cookie","cookies","rdecode","parts","charAt","name","read","json","parse","getJSON","withConverter","INFORMATION_COOKIE_NAME","INFORMATION_MODAL_SELECTOR","INFORMATION_MODAL_ALWAYS_ATTRIBUTE","CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME","CUSTOM_EXPIRY_DURATION_ATTRIBUTE","dateNow","expiryDurationHoursLeft","date","expiryDurationMilliseconds","utcDate","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","alwaysShowModal","checkCookieExists","isCustomExpiryCookie","showModal","htmlContents","undefined","modal","hideModal","isEpiserverEditMode","setCookie","cookieName","dropCookie","hasAttribute","initialiseModal","LIGHTBOX_MODAL","onLightboxImageClick","imgSrc","open","$copy","position","left","scrollLeft","max-width","max-height","$altText","appendTo","urlDepartment","urlLocation","urlParam","results","RegExp","exec","decodeURI","updateQueryStringParameter","uri","re","match","separator","currentURL","currentValue","currentLocation","newURL","dataLayer","cachedLocation","cachedAudience","modalWindowType","professionalsBarDetached","COOKIE_DISCLAIMER","COOKIE_PROFESSIONALS_LOCATION","COOKIE_WMUK_LOCATION","COOKIE_AUDIENCE_TYPE","dropdownOpen","dropdownDetached","locationCookie","audienceTypeCookie","pageVisitorGroupArray","disclaimerCookie","$document","audienceId","rememberSelection","setInitValues","change","prop","selections","getSelections","audienceTypeValue","gtmTrackOpenClose","toggleDropDown","targetURL","getElementById","dataset","defaultProfessionalsLandingPage","audienceTypeUrl","prependTo","populateSelectedDisplayValues","label","pushToDataLayer","audienceTypeLabel","redirectUrl","matchesVisitorGroup","reload","reloadWithNewSelections","validation","requiredFieldsValid","valid","stepNo","gtmTrackSelection","writeCookies","errorMsgs","el","cookieAudienceValue","getCookies","disclaimer","audienceType","audienceUrl","wmukLocation","locationString","textContent","audienceTypeField","persistent","$radioGroups","$checkboxes","errorMsg","checked","action","modal_type","modal_action","professionals_location","professionals_type","$professionalsModal","$professionalsBar","$modalTrigger","$mobileNav","pageVisitorGroup","pageHasModalTrigger","isoCodes","option","audienceTypeCookieObj","detach","prepend","$stickyNav","stickyThreshold","$stickyTarget","offsetTop","pageYOffset","currentTarget","scrollY","preventObserver","root","rootMargin","threshold","entry","prev","$navItem","isIntersecting","observer","IntersectionObserver","targetElement","observe","SectionInViewTrackingInit","TRANSACTION_NAMESPACE_OLD","TRANSACTION_NAMESPACE_NEW","TRANSACTION_SECTOR_SELECTOR","TRANSACTION_SUBSECTOR_SELECTOR","TRANSACTION_SUBSECTOR_API","TRANSACTION_SECTOR_FOLDER_SELECTOR","onSectorChange","NAMESPACE","apiCall","selectedSector","sectorText","sectorFolder","empty","Results","Value","Text","async","crossDomain","xhr","err","status","selectedSort","params","onSortChange","hashPos","substr","hrefNoHash","destination","stickyLink","doReturn","declineButton","declineText","policyButton","policyText","policyURL","acceptText","autoEnable","expireDays","forceShow","effect","fixed","zindex","redirect","domain","expireDate","setTime","getTime","aCookie","cookieEntry","toGMTString","cookieValue","aCookies","slideUp","deleteDate","imgBGs","updateStyle","lazyBackgroundObserver","unobserve","lazyBackground","sendGAEvent","eventCategory","eventAction","eventLabel","eventValue","$el","title","first","cta","gaEventCategory","gaEventAction","gaEventLabel","chip","selected","filters","map","filterVal","toArray","hrefLink","linkText","innerText","ariaLabel","classList","contains","button","formName","addToDataLayer","dataObj","$form","formClean","$inputs","$selects","$textareas","evt","targetForm","targetFormType","targetFormName","$validationFields","validationFailedFieldNames","errorsObj","labelText","assign","form_type","form_name","userFormType","captureInput","isIntermediary","accordionTitle","timer","createInfoBox","contentId","content","offsetRight","maxWidth","mouseenter","mouseleave","cerosContainers","cerosFormData","cgFormData","endPoint","$$epiforms","isValid"],"mappings":"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","file":"main.min.js","sourcesContent":["var CAROUSEL_SELECTOR = '.carousel__slick';\r\n\r\n$(document).ready(function() {\r\n $(CAROUSEL_SELECTOR).slick({\r\n lazyLoad: 'ondemand',\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n touchThreshold: 10,\r\n draggable: true,\r\n autoplay: false,\r\n speed: 1200,\r\n lazyLoadBuffer: 1,\r\n dots: true\r\n });\r\n\r\n $('.carousel__toggle').on('click', onCarouselToggle);\r\n\r\n function onCarouselToggle() {\r\n var $this = $(this);\r\n var $slick = $this.next('.carousel__slick');\r\n var isToggled = $this.hasClass('is-toggled');\r\n\r\n if (isToggled) {\r\n $this.removeClass('is-toggled');\r\n //$this.text('Pause carousel');\r\n $this.attr('aria-pressed', 'false')\r\n $slick.slick('slickPlay');\r\n } else {\r\n $this.addClass('is-toggled');\r\n $this.attr('aria-pressed', 'true')\r\n //$this.text('Start carousel');\r\n $slick.slick('slickPause');\r\n }\r\n }\r\n\r\n\t// Create Live region to populate content of active slide\r\n\tvar liveRegion = document.createElement('div');\r\n\tliveRegion.setAttribute('aria-live', 'polite');\r\n\tliveRegion.setAttribute('aria-atomic', 'true');\r\n\tliveRegion.setAttribute('class', 'liveRegion sr-only');\r\n\r\n\t$('.carousel').append(liveRegion);\r\n\r\n // Remove the automatic announcements built-in by Slick\r\n\t$('.carousel .slick-list').removeAttr('aria-live');\r\n\r\n // Allow all dots to be read on hover\r\n $('.slick-dots li').removeAttr('aria-hidden').removeAttr('aria-label');\r\n\r\n // Set the first dot item to be the current\r\n $('.slick-dots li').eq(0).find('button').attr('aria-label', '(1) Current')\r\n\r\n $(CAROUSEL_SELECTOR).on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n updateSliderArrowVisibility(event, slick, nextSlide, $(this));\r\n });\r\n\r\n $(CAROUSEL_SELECTOR).on('afterChange', function (event, slick, currentSlide, nextSlide) {\r\n updateSliderArrowVisibility(event, slick, nextSlide, $(this));\r\n updateAriaElements($(this));\r\n });\r\n\r\n $(CAROUSEL_SELECTOR).on('focusin', function (e) {\r\n $(CAROUSEL_SELECTOR).slick('slickPause');\r\n });\r\n\r\n $(CAROUSEL_SELECTOR).on('focusout', function (e) {\r\n $(CAROUSEL_SELECTOR).slick('slickPlay');\r\n });\r\n\r\n $(CAROUSEL_SELECTOR).on('click', '.slick-next, .slick-prev', function () {\r\n $(CAROUSEL_SELECTOR).slick('slickPause');\r\n });\r\n\r\n $(CAROUSEL_SELECTOR).on('swipe', function () {\r\n $(CAROUSEL_SELECTOR).slick('slickPause');\r\n });\r\n\r\n function updateAriaElements($slick) {\r\n\r\n if ($slick.length === 0) return false;\r\n\r\n var slickInstance = $slick[0].slick;\r\n var currentSlide = slickInstance.currentSlide\r\n\r\n var newContent = 'Slide ' + (currentSlide + 1) + ' of ' + slickInstance.slideCount;\r\n\r\n // Update Live Region with new text\r\n if ($('.carousel .liveRegion').length > 0) {\r\n $('.carousel .liveRegion').text(newContent);\r\n }\r\n\r\n // Update current dot\r\n $('.slick-dots li').removeAttr('aria-hidden').find('button').removeAttr('aria-label');\r\n $('.slick-dots li').eq(currentSlide).find('button').attr('aria-label', '(' + (currentSlide + 1) + ') Current')\r\n }\r\n\r\n function setCarouselInteracted($elem, isToggled) {\r\n $elem.attr('data-interacted', isToggled);\r\n }\r\n\r\n function isCarouselInteracted($elem) {\r\n return ($elem.attr('data-interacted') === true);\r\n }\r\n\r\n function updateSliderArrowVisibility(event, slick, nextSlide, $elem) {\r\n if (nextSlide === (slick.slideCount - slick.options.slidesToShow)) $elem.find('.slick-next').addClass('hidden')\r\n else $elem.find('.slick-next').removeClass('hidden');\r\n\r\n if (nextSlide === 0) $elem.find('.slick-prev').addClass('hidden');\r\n else $elem.find('.slick-prev').removeClass('hidden');\r\n }\r\n\r\n function hideCarouselArrows($elem) {\r\n $elem.find('.slick-arrow').addClass('hidden').attr('aria-disabled', 'true');\r\n }\r\n});\r\nfunction loadDiscoverCarouselResponsiveImage(loadFirstItemOnly) {\r\n var DATA_SELECTOR = \"data-img-mobile\";\r\n var CAROUSEL_RESPONSIVE_SELECTOR = \".hero-banner.hero-banner--uk\";\r\n\r\n // If non-mobile\r\n if (isMobile() === false) {\r\n DATA_SELECTOR = \"data-img-non-mobile\";\r\n }\r\n\r\n $(CAROUSEL_RESPONSIVE_SELECTOR).each(function () {\r\n var $this = $(this);\r\n var imgURL = $this.attr(DATA_SELECTOR);\r\n\r\n if (imgURL === null || imgURL === \"none\") return false;\r\n\r\n $this.css('background-image', 'url(' + imgURL + ')');\r\n\r\n // If the first item is being loaded, break out the loop\r\n if (loadFirstItemOnly) return false;\r\n });\r\n}\r\n\r\n$(document).ready(function () {\r\n loadDiscoverCarouselResponsiveImage(true);\r\n});\r\n\r\n$(window).load(function () {\r\n loadDiscoverCarouselResponsiveImage(false);\r\n});\r\n\r\nfunction isMobile() {\r\n return ($(window).outerWidth() < 768);\r\n}\r\n","/** querySelectorAll polyfill (IE6/7) */\r\nif (!document.querySelectorAll) {\r\n document.querySelectorAll = function (selectors) {\r\n var style = document.createElement('style'), elements = [], element;\r\n document.documentElement.firstChild.appendChild(style);\r\n document._qsa = [];\r\n\r\n style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}';\r\n window.scrollBy(0, 0);\r\n style.parentNode.removeChild(style);\r\n\r\n while (document._qsa.length) {\r\n element = document._qsa.shift();\r\n element.style.removeAttribute('x-qsa');\r\n elements.push(element);\r\n }\r\n document._qsa = null;\r\n return elements;\r\n };\r\n}\r\n\r\n/** Cross-browser document.ready handler */\r\n(function () {\r\n 'use strict';\r\n var readyList = [],\r\n readyFired = false,\r\n readyEventHandlersInstalled = false;\r\n\r\n function ready() {\r\n if (readyFired) return null;\r\n\r\n readyFired = true;\r\n for (var i = 0; i < readyList.length; i++) readyList[i].call(window);\r\n readyList = [];\r\n }\r\n\r\n window.docReady = function (callback) {\r\n if (readyFired) return setTimeout(callback, 1), null;\r\n\r\n readyList.push(callback);\r\n\r\n if (document.readyState === 'complete' || (!document.attachEvent && document.readyState === 'interactive'))\r\n return setTimeout(ready, 1), null;\r\n\r\n if (!readyEventHandlersInstalled) {\r\n if (document.addEventListener) {\r\n document.addEventListener('DOMContentLoaded', ready, false);\r\n window.addEventListener('load', ready, false);\r\n } else {\r\n document.attachEvent('onreadystatechange', function () {\r\n if (document.readyState == 'complete') ready();\r\n });\r\n window.attachEvent('onload', ready);\r\n }\r\n readyEventHandlersInstalled = true;\r\n }\r\n };\r\n})();\r\n\r\n\r\n/**\r\n* @fileOverview Provides support for the equal-height helper attribute \"data-equal\"\r\n* Use different values to creating unique \"groupings\" of elements. Layout is\r\n* adjusted automatically on resize based on element offsets, not source order.\r\n* Call init() to resize after markup changes (e.g. on accordions).\r\n* @author Phil Hazelton [phil@appius.com]\r\n* @version 1.1.1\r\n*/\r\nvar equalise = (function () {\r\n var module = {};\r\n var ATTR = 'data-equalise';\r\n\r\n // Simplified debouncing function from John Hann\r\n // http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/\r\n var debounce = function (func) {\r\n var timeout;\r\n\r\n return function debounced() {\r\n var obj = this, args = arguments;\r\n function delayed() {\r\n func.apply(obj, args);\r\n timeout = null;\r\n }\r\n\r\n if (timeout)\r\n clearTimeout(timeout);\r\n\r\n timeout = setTimeout(delayed, 100);\r\n };\r\n };\r\n\r\n window.onresize = debounce(init);\r\n\r\n /** Run on start and resize, should also be triggeres on DOM changes. */\r\n function init() {\r\n var nodeList = document.querySelectorAll(\"[\" + ATTR + \"], .equalise\");\r\n var priorityNodes = new Array();\r\n var nodes = new Array();\r\n\r\n for (var i = nodeList.length >>> 0; i--;) {\r\n var node = nodeList[i];\r\n var isVisible = (node.offsetWidth > 0 || node.offsetHeight > 0);\r\n\r\n node.style.height = 'auto';\r\n if (isVisible) {\r\n if (node.getAttribute(\"data-equalise-prio\") !== null)\r\n priorityNodes.push(node);\r\n else {\r\n nodes.push(node);\r\n }\r\n }\r\n }\r\n\r\n processRow(priorityNodes);\r\n processRow(nodes);\r\n }\r\n\r\n /** Finds and resizes the next row (recursive). */\r\n function processRow(nodes) {\r\n if (nodes.length < 1) return null;\r\n\r\n var row = [];\r\n var maxHeight = 0;\r\n var nextNode = findNextNode(nodes);\r\n\r\n var offset, node, group;\r\n\r\n for (var i = nodes.length >>> 0; i--;) {\r\n offset = getOffset(nodes[i]);\r\n group = getGroup(nodes[i]);\r\n\r\n if (offset == nextNode.offset && group == nextNode.group) {\r\n node = nodes.splice(i, 1)[0];\r\n row.push(node);\r\n if (node.offsetHeight > maxHeight)\r\n maxHeight = node.offsetHeight;\r\n }\r\n }\r\n\r\n if (row.length > 1)\r\n for (var i = row.length >>> 0; i--;)\r\n row[i].style.height = maxHeight + 'px';\r\n\r\n if (nodes.length > 0)\r\n processRow(nodes);\r\n }\r\n\r\n /** Searches an array of nodes for the uppermost element offset. */\r\n function findNextNode(nodes) {\r\n if (nodes.length < 1) return null;\r\n var offset = getOffset(nodes[0]);\r\n var group = getGroup(nodes[0]);\r\n var thisOffset;\r\n\r\n for (var i = nodes.length >>> 0; i--;) {\r\n thisOffset = getOffset(nodes[i]);\r\n if (thisOffset < offset) {\r\n offset = thisOffset;\r\n group = getGroup(nodes[i]);\r\n }\r\n }\r\n\r\n return {\r\n offset: offset,\r\n group: group\r\n };\r\n }\r\n\r\n /** Get the upper offset of an individual node (for checking alignment) */\r\n function getOffset(node) {\r\n return node.getBoundingClientRect().top;\r\n }\r\n\r\n /** Get the group of a node */\r\n function getGroup(node) {\r\n return node.getAttribute(ATTR);\r\n }\r\n\r\n window.docReady(init);\r\n\r\n module.init = init;\r\n return module;\r\n}());\r\n\r\n// Reinitialise on window load, used to recalculate heights once images are loaded.\r\nwindow.addEventListener('load', window.equalise.init, false);\r\n","var ITEM_SELECTOR = '#back-to-top';\r\n\r\n$(document).ready(function() {\r\n var oldScrollPosition = 0;\r\n\r\n var scrollBounce = debounce(function() {\r\n var newPosition = $(window).scrollTop();\r\n if (newPosition > oldScrollPosition && newPosition > 50)\r\n $(ITEM_SELECTOR).fadeIn();\r\n else\r\n $(ITEM_SELECTOR).fadeOut();\r\n\r\n oldScrollPosition = $(window).scrollTop();\r\n }, 250);\r\n\r\n $(window).scroll(function () {\r\n scrollBounce();\r\n });\r\n\r\n $(ITEM_SELECTOR).on('click', function (e) {\r\n e.preventDefault();\r\n $(ITEM_SELECTOR).tooltip('hide');\r\n $('body,html').animate({\r\n scrollTop: 0\r\n }, 800);\r\n return false;\r\n });\r\n});\r\n\r\nfunction debounce(func, wait, immediate) {\r\n\tvar timeout;\r\n\treturn function() {\r\n\t\tvar context = this, args = arguments;\r\n\t\tvar later = function() {\r\n\t\t\ttimeout = null;\r\n\t\t\tif (!immediate) func.apply(context, args);\r\n\t\t};\r\n\t\tvar callNow = immediate && !timeout;\r\n\t\tclearTimeout(timeout);\r\n\t\ttimeout = setTimeout(later, wait);\r\n\t\tif (callNow) func.apply(context, args);\r\n\t};\r\n}\r\n","$(document).ready(function() {\r\n var touchMoved;\r\n\r\n $('.mobile-nav__toggle').on('click', function (e) {\r\n $('.primary-nav').addClass('is-active');\r\n $('body').addClass('mobile-nav-open');\r\n e.stopPropagation();\r\n\r\n updateNavHeight();\r\n });\r\n\r\n $('.primary-nav').on('click tap', '.primary-nav__item.dropdown > .primary-nav__link', function (e) {\r\n if ($(window).innerWidth() < 768) {\r\n e.preventDefault();\r\n if (touchMoved === true) return; // If scrolling\r\n\r\n var $submenu = $(this).closest('.primary-nav__item.dropdown');\r\n\r\n if ($submenu.hasClass('is-active')) {\r\n var openItemCount = $('.primary-nav__item.dropdown.is-active').length;\r\n if (openItemCount <= 1) {\r\n closeNav();\r\n }\r\n } else {\r\n $('.primary-nav').addClass('is-active');\r\n $('body').addClass('mobile-nav-open');\r\n $submenu.addClass('is-active');\r\n }\r\n updateNavHeight();\r\n }\r\n }).on('touchmove', function() { touchMoved = true; }).on('touchstart', function() { touchMoved = false; });\r\n\r\n $('.primary-nav_back').on('click', function() {\r\n $(this).closest('.primary-nav__item.dropdown.is-active').removeClass('is-active');\r\n updateNavHeight()\r\n });\r\n\r\n $('.primary-nav_btn-close, .primary-nav_overlay').on('click', function() {\r\n closeNav();\r\n });\r\n});\r\nvar heightOnLoad = $(\".primary-nav__list\").innerHeight();\r\nfunction updateNavHeight() {\r\n var newFullHeight = $(\"body\").innerHeight()\r\n var newHeight = newFullHeight - $(\".primary-nav_mobile-header\").innerHeight();\r\n var visibleHeight = heightOnLoad > 100 ? heightOnLoad : $(\".primary-nav__list\").innerHeight();\r\n var currentOpenSubmenus = $('.primary-nav__item.dropdown.is-active').children('.primary-nav__panel').children('.primary-nav__item');\r\n currentOpenSubmenus.length && currentOpenSubmenus.each(function(index){\r\n $(currentOpenSubmenus[index]).css({ 'height': \"auto\"})\r\n visibleHeight = $(currentOpenSubmenus[currentOpenSubmenus.length-1]).innerHeight();\r\n $(currentOpenSubmenus[index]).css({ 'height': visibleHeight })\r\n });\r\n \r\n\t$('.mobile-nav__fullheight').css({ 'height': newHeight });\r\n\t$('.primary-nav_overlay').css({ 'height': newFullHeight });\r\n $('.primary-nav__list').css({ 'height': visibleHeight });\r\n}\r\n\r\nfunction closeNav() {\r\n $('.primary-nav, .primary-nav__item.dropdown').removeClass('is-active');\r\n setTimeout(function() {\r\n $('body').removeClass('mobile-nav-open');\r\n }, 600);\r\n}\r\n","// Appius parallax background scrolling works by calculating using the maximum potential of each image to move in the provided area.\r\n// To increase the speed movement a larger sized image will be required.\r\n\r\n// 1440 x 600 // use size\r\nvar ELEMENT_SELECTOR = '.full-width--bg, .hero-banner';\r\nvar STARTING_POSITION = 60; // A value in % of where the image should be vertically positioned \"at rest\"\r\nvar STRENGTH = 20; // A value in % of how far the background should move off-centre (not to exceed 1 - starting position)\r\nvar elementArray = [];\r\nvar parallaxDisabled = false;\r\n\r\n$(document).ready(function () {\r\n parallaxDisabled = checkIfDisabled();\r\n\r\n // Create element array cache on page load rather than per scroll\r\n if (parallaxDisabled === false) {\r\n createElementArrayCache();\r\n runParallax();\r\n }\r\n});\r\n\r\n$(window).resize(function () { if (parallaxDisabled === false) { resizeBounce(); }});\r\n$(window).scroll(function () { if (parallaxDisabled === false) { runParallax(); }});\r\n\r\nfunction checkIfDisabled() {\r\n return (typeof $('body').attr('data-parallax') !== \"undefined\" && $('body').attr('data-parallax') === \"disabled\" && $('body').hasClass('homepage'));\r\n}\r\n\r\nfunction parallaxWindowLoad() {\r\n if (parallaxDisabled === false) {\r\n createElementArrayCache();\r\n runParallax();\r\n }\r\n}\r\n\r\nwindow.addEventListener('load', parallaxWindowLoad, false);\r\n\r\n// Debounce the resize viewport event to prevent performance hits.\r\nvar resizeBounce = debounce(function() {\r\n createElementArrayCache();\r\n runParallax();\r\n}, 200);\r\n\r\nfunction runParallax() {\r\n var scrollPos = $(window).scrollTop();\r\n updateBanners(scrollPos);\r\n}\r\n\r\nfunction createElementArrayCache() {\r\n elementArray = [];\r\n\r\n $(ELEMENT_SELECTOR).each(function () {\r\n var $this = $(this);\r\n\r\n var item = {\r\n elem : $this,\r\n elemTop : $this.offset().top,\r\n elemBottom : $this.outerHeight() + ($this.offset().top),\r\n elemMid : ($this.outerHeight() / 2) + ($this.offset().top),\r\n elemHeight : $this.outerHeight()\r\n };\r\n elementArray.push(item);\r\n });\r\n}\r\n\r\n// Check if the bottom of the banner is below the top of the screen,\r\n// and the top of the banner is above the bottom of the screen\r\nfunction isInView(elem, scrollPos) {\r\n return (scrollPos + $(window).height() > elem.elemTop && scrollPos <= elem.elemBottom);\r\n}\r\n\r\n// Using the centre-line of the screen as the 50% point, set a % offset\r\n// on the background image y position based on its relative viewport position\r\nfunction calculateBackgroundOffset(elem, scrollPos) {\r\n var windowHeight = $(window).height();\r\n var startPosition = elem.elemTop - windowHeight;\r\n var mapped = ((scrollPos - startPosition) / (elem.elemHeight + windowHeight)) * -2 + 1; // Convert from 0 to 1, to -1 to +1\r\n var offset = STARTING_POSITION + mapped * STRENGTH;\r\n\r\n return offset;\r\n}\r\n\r\n// Update or transition the background image\r\nfunction updateBackgroundOffset(elem, y) {\r\n var coords = '50% ' + y.toPrecision(2) + '%';\r\n elem.elem.css({ backgroundPosition: coords});\r\n}\r\n\r\n// Update the elements using element array as a store\r\nfunction updateBanners(scrollPos) {\r\n for (var i = 0; i < elementArray.length; i++ ){\r\n var y = 0;\r\n if (isInView(elementArray[i], scrollPos)) {\r\n y = calculateBackgroundOffset(elementArray[i], scrollPos);\r\n updateBackgroundOffset(elementArray[i], y);\r\n }\r\n }\r\n}\r\n\r\nfunction debounce(func, wait, immediate) {\r\n\tvar timeout;\r\n\treturn function() {\r\n\t\tvar context = this, args = arguments;\r\n\t\tvar later = function() {\r\n\t\t\ttimeout = null;\r\n\t\t\tif (!immediate) func.apply(context, args);\r\n\t\t};\r\n\t\tvar callNow = immediate && !timeout;\r\n\t\tclearTimeout(timeout);\r\n\t\ttimeout = setTimeout(later, wait);\r\n\t\tif (callNow) func.apply(context, args);\r\n\t};\r\n}\r\n","(function($) {\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n\r\n var COOKIE_DISCLAIMER = 'professionals-disclaimer';\r\n var COOKIE_PROFESSIONALS_LOCATION = 'professionals-location';\r\n var COOKIE_WMUK_LOCATION = 'Location';\r\n var COOKIE_AUDIENCE_TYPE = 'professionals-audience-type';\r\n var COOKIE_AUDIENCE_URL = 'professionals-audience-url';\r\n var cachedLocation;\r\n var cachedAudience;\r\n var modalWindowType;\r\n var dropdownOpen = false;\r\n var dropdownDetached = false;\r\n var professionalsBarDetached;\r\n \r\n $(document).ready(function() {\r\n\r\n var $professionalsModal = $('[data-professionals-modal]');\r\n var $professionalsBar = $('[data-professionals-bar]');\r\n var $modalTrigger = $('[data-professionals-page-link]');\r\n var $mobileNav = $('.mobile-nav__fullheight');\r\n var pageVisitorGroup = $('[data-visitor-group]').data('visitor-group');\r\n var pageVisitorGroupArray = pageVisitorGroup ? pageVisitorGroup.split('|') : [];\r\n var pageHasModalTrigger = $modalTrigger.length > 0;\r\n var isoCodes = [];\r\n\r\n this.querySelectorAll('#location-selector option').forEach(function (option){\r\n isoCodes.push(option.value);\r\n })\r\n\r\n // If the professionals modal markup is in page\r\n if ($professionalsModal.length > 0) {\r\n\r\n var mobileNavBarHTML = \"
\"; \r\n var cookies = getCookies();\r\n\r\n //check for pre-existing cookies that don't match the new ISO format, set the cookies based on users WMUK location then update the stored variable\r\n if (isoCodes.indexOf(cookies.location) < 0) {\r\n Cookies.set( COOKIE_PROFESSIONALS_LOCATION, cookies.wmukLocation, undefined);\r\n Cookies.set(COOKIE_DISCLAIMER, 'declined', undefined);\r\n cookies = getCookies();\r\n }\r\n \r\n if (!cookies.disclaimer) {\r\n if ($professionalsBar.length > 0) {\r\n $professionalsBar.remove();\r\n }\r\n\r\n modalWindowType = 'Modal';\r\n\r\n if (!pageHasModalTrigger) {\r\n $(document).trigger('triggerShowModalWindow');\r\n }\r\n } \r\n else {\r\n var audienceTypeCookieObj = JSON.parse(cookies.audienceType);\r\n\r\n // show modal with alert\r\n if (pageVisitorGroup && !matchesVisitorGroup(audienceTypeCookieObj.value, pageVisitorGroupArray)) { \r\n if ($professionalsBar.length > 0) {\r\n professionalsBarDetached = $professionalsBar.detach();\r\n dropdownDetached = true;\r\n }\r\n modalWindowType = 'Modal';\r\n \r\n populateSelectedDisplayValues(cookies.location, audienceTypeCookieObj.label);\r\n $('[data-professionals-modal-step=\"1\"]').removeClass('active');\r\n $('[data-professionals-modal-step=\"0\"]').addClass('active');\r\n if (!pageHasModalTrigger) {\r\n $(document).trigger('triggerShowModalWindow');\r\n }\r\n \r\n } else { //show top bar\r\n\r\n if (!pageHasModalTrigger) {\r\n if ($mobileNav.length > 0) {\r\n $mobileNav.prepend(mobileNavBarHTML);\r\n }\r\n modalWindowType = 'Dropdown';\r\n populateSelectedDisplayValues(cookies.location, audienceTypeCookieObj.label);\r\n $(document).trigger('triggerCloseModalWindow');\r\n } else {\r\n if ($professionalsBar.length > 0) {\r\n $professionalsBar.remove();\r\n }\r\n modalWindowType = 'Modal';\r\n }\r\n }\r\n }\r\n\r\n if (!pageHasModalTrigger) { // Init on page load\r\n\r\n init(cookies.location, cookies.audienceType, pageVisitorGroupArray, cookies.disclaimer);\r\n\r\n } else { // add event listener to modal trigger and init on page load\r\n\r\n $modalTrigger.on('click', function(e) {\r\n e.preventDefault();\r\n\r\n if (cookies.disclaimer) {\r\n var url = $('[data-audience-type-selector]').find('input[type=\"radio\"][value=\"' + JSON.parse(cookies.audienceType).value + '\"]').data('audience-url');\r\n if (url) {\r\n window.location.href = url;\r\n }\r\n } else {\r\n $(document).trigger('triggerShowModalWindow');\r\n gtmTrackOpenClose('Open');\r\n }\r\n })\r\n init(cookies.location, cookies.audienceType, pageVisitorGroupArray, cookies.disclaimer);\r\n }\r\n }\r\n });\r\n\r\n function init(locationCookie, audienceTypeCookie, pageVisitorGroupArray, disclaimerCookie) {\r\n\r\n \r\n var $document = $(document);\r\n var audienceId = '1';\r\n var rememberSelection = false;\r\n\r\n function setInitValues() {\r\n if (locationCookie) {\r\n $('[data-location-selector]').val(locationCookie).change();\r\n }\r\n \r\n if (audienceTypeCookie) {\r\n $('[data-audience-type-selector]').find('input[type=\"radio\"][name=\"audience-group-' + audienceId + '\"]').filter('[value=\"' + JSON.parse(audienceTypeCookie).value + '\"]').prop('checked', true);\r\n }\r\n };\r\n\r\n // Accessibility - 'enter' key to trigger click on label to check/uncheck input\r\n $document.on('keypress', 'label', function(e) {\r\n if(e.which == 13) {\r\n $(this).trigger('click');\r\n }\r\n });\r\n \r\n $document.on('click', '[data-professionals-bar-container], [data-close-dropdown-mobile], [data-bar-mobile]', function() {\r\n toggleDropDown(audienceId);\r\n });\r\n\r\n function handleClose() {\r\n var selections = getSelections(audienceId);\r\n var targetURL = document.getElementById('professionalsModal').dataset.defaultProfessionalsLandingPage;\r\n gtmTrackOpenClose('Close');\r\n if (document.location.href.indexOf('/professionals/') === -1){\r\n $(document).trigger('triggerCloseModalWindow');\r\n return;\r\n }\r\n \r\n if (audienceTypeCookie && disclaimerCookie === true){\r\n targetURL = selections.audienceTypeUrl;\r\n }\r\n window.location.href = targetURL;\r\n }\r\n\r\n $document.on('click', '[data-close-modal]', function() {\r\n handleClose()\r\n if (dropdownDetached) {\r\n $('[data-professionals-modal]').remove();\r\n $(professionalsBarDetached).prependTo('.main-content');\r\n populateSelectedDisplayValues(locationCookie, JSON.parse(audienceTypeCookie).label);\r\n modalWindowType = 'Dropdown';\r\n setInitValues();\r\n }\r\n });\r\n\r\n $document.on('click', '[data-decline-cta]', function() {\r\n Cookies.set(COOKIE_DISCLAIMER, 'declined', rememberSelection ? { expires: 730 } : undefined);\r\n $(document).trigger('triggerCloseModalWindow');\r\n\r\n // GTM Tracking //\r\n gtmTrackDeclineDisclaimer(audienceId);\r\n //////////////////\r\n\r\n var redirectUrl = $(this).data('decline-cta');\r\n window.location.href = redirectUrl;\r\n \r\n });\r\n\r\n $document.on('click', '[data-accept-cta]', function() {\r\n Cookies.set(COOKIE_DISCLAIMER, 'accepted', rememberSelection ? { expires: 730 } : undefined);\r\n $(document).trigger('triggerCloseModalWindow');\r\n\r\n // GTM Tracking //\r\n gtmTrackAcceptDisclaimer(audienceId);\r\n //////////////////\r\n\r\n var selections = getSelections(audienceId);\r\n\r\n if (matchesVisitorGroup(selections.audienceTypeValue, pageVisitorGroupArray)) {\r\n location.reload();\r\n } else {\r\n var redirectUrl = selections.audienceTypeUrl;\r\n window.location.href = redirectUrl;\r\n }\r\n });\r\n\r\n $document.on('change', '[data-remember-selector]', function() {\r\n rememberSelection = $(this).is(':checked');\r\n })\r\n\r\n $document.on('change', '[data-location-selector]', function() {\r\n audienceId = $(this).find(':selected').data('audience-id');\r\n $('[data-audience-type-selector]').removeClass('active');\r\n $('[data-audience-type-selector=\"' + audienceId + '\"]').addClass('active');\r\n\r\n if (modalWindowType === 'Dropdown' && dropdownOpen) {\r\n reloadWithNewSelections(audienceId, rememberSelection);\r\n }\r\n });\r\n\r\n $document.on('change', '[data-audience-type-selector] input[type=\"radio\"]', function(e) {\r\n if (modalWindowType === 'Dropdown') {\r\n reloadWithNewSelections(audienceId, rememberSelection);\r\n }\r\n });\r\n\r\n $document.on('click', '[data-step-cta]', function(e) {\r\n\r\n e.preventDefault();\r\n var $this = $(this);\r\n var validation = requiredFieldsValid();\r\n\r\n // Clear any previous error msgs\r\n clearErrorMsgs();\r\n\r\n if (validation.valid) {\r\n var stepNo = $this.data('step-cta');\r\n if (stepNo === 2){\r\n gtmTrackSelection(audienceId);\r\n }\r\n $('[data-professionals-modal-step]').removeClass('active');\r\n $('[data-professionals-modal-step=\"' + stepNo + '\"]').addClass('active');\r\n\r\n if ($this[0].hasAttribute('data-set-cookie')) {\r\n var selections = getSelections(audienceId); \r\n writeCookies(selections.location, selections.audienceTypeValue, selections.audienceTypeLabel, rememberSelection);\r\n }\r\n } \r\n else {\r\n validation.errorMsgs.forEach(function(el) {\r\n $(el).addClass('show');\r\n })\r\n }\r\n });\r\n\r\n setInitValues();\r\n };\r\n\r\n function matchesVisitorGroup(cookieAudienceValue, pageVisitorGroupArray) {\r\n var match = false;\r\n pageVisitorGroupArray.forEach(function(group) {\r\n if(group === cookieAudienceValue) {\r\n match = true;\r\n }\r\n });\r\n return match;\r\n };\r\n\r\n function getCookies() {\r\n var disclaimerCookie = Cookies.get(COOKIE_DISCLAIMER) === 'accepted';\r\n var locationCookie = Cookies.get(COOKIE_PROFESSIONALS_LOCATION);\r\n var audienceTypeCookie = Cookies.get(COOKIE_AUDIENCE_TYPE);\r\n var audienceUrlCookie = Cookies.get(COOKIE_AUDIENCE_URL);\r\n var wmukLocationCookie = Cookies.get(COOKIE_WMUK_LOCATION);\r\n\r\n return {\r\n disclaimer: disclaimerCookie,\r\n location: locationCookie,\r\n audienceType: audienceTypeCookie,\r\n audienceUrl: audienceUrlCookie,\r\n wmukLocation: wmukLocationCookie\r\n }\r\n };\r\n\r\n function populateSelectedDisplayValues(location, audienceType) {\r\n var locationString = document.querySelector('#location-selector [value=\"' + location + '\"]').textContent;\r\n $('[data-professionals-selected-location]').text(locationString);\r\n $('[data-professionals-selected-audience-type]').text(audienceType);\r\n };\r\n\r\n function toggleDropDown(audienceId) {\r\n var $this = $('[data-professionals-bar-container]');\r\n \r\n if ($this.hasClass('active')) {\r\n dropdownOpen = false;\r\n } else {\r\n var selections = getSelections(audienceId); \r\n cachedLocation = selections.location;\r\n cachedAudience = selections.audienceTypeValue;\r\n dropdownOpen = true;\r\n gtmTrackOpenClose('Open');\r\n }\r\n\r\n $this.toggleClass('active');\r\n };\r\n\r\n function reloadWithNewSelections(audienceId, rememberSelection) {\r\n var validation = requiredFieldsValid();\r\n\r\n if (validation.valid) {\r\n var selections = getSelections(audienceId); \r\n if (selections.location !== cachedLocation || selections.audienceTypeValue !== cachedAudience) {\r\n writeCookies(selections.location, selections.audienceTypeValue, selections.audienceTypeLabel, rememberSelection);\r\n gtmTrackSelection(audienceId);\r\n location.reload();\r\n } \r\n } \r\n else {\r\n validation.errorMsgs.forEach(function(el) {\r\n $(el).addClass('show');\r\n })\r\n }\r\n };\r\n\r\n function clearErrorMsgs() {\r\n $('[data-validation-error]').each(function() {\r\n $(this).removeClass('show');\r\n })\r\n };\r\n\r\n function getSelections(audienceId) {\r\n var location = $('[data-location-selector]').find(':selected').val();\r\n var audienceTypeField = $('[data-audience-type-selector]').find('input[type=\"radio\"][name=\"audience-group-' + audienceId + '\"]:checked');\r\n\r\n return {\r\n location: location,\r\n audienceTypeValue: audienceTypeField.val(),\r\n audienceTypeLabel: audienceTypeField.data('audience-value'),\r\n audienceTypeUrl: audienceTypeField.data('audience-url')\r\n };\r\n };\r\n\r\n function writeCookies(location, audienceTypeValue, audienceTypeLabel, persistent) {\r\n Cookies.set(COOKIE_PROFESSIONALS_LOCATION, location, persistent ? { expires: 730 } : undefined);\r\n Cookies.set(COOKIE_AUDIENCE_TYPE, { value : audienceTypeValue, label: audienceTypeLabel }, persistent ? { expires: 730 } : undefined);\r\n if(location === 'GB' || location === 'JE' || location === 'IM' || location === 'GG') {\r\n Cookies.set(COOKIE_WMUK_LOCATION, location, persistent ? { expires: 730 } : undefined)\r\n }\r\n };\r\n\r\n function requiredFieldsValid() {\r\n var valid = true;\r\n var $radioGroups = $('[data-validate-radio-group]:visible');\r\n var $checkboxes = $('[data-validate-checkbox]:visible');\r\n var errorMsgs = [];\r\n\r\n // validate radio groups\r\n $radioGroups.each(function() {\r\n var $this = $(this);\r\n var name = $this.find('input').attr('name');\r\n var errorMsg = $this.find('[data-validation-error]');\r\n var checked = $('input:radio[name=\"' + name + '\"]').is(':checked');\r\n if(!checked) {\r\n valid = false;\r\n errorMsgs.push(errorMsg);\r\n } \r\n })\r\n\r\n $checkboxes.each(function() {\r\n var $this = $(this);\r\n var checked = $this.find('input:checkbox').is(':checked');\r\n var errorMsg = $this.find('[data-validation-error]');\r\n if(!checked) {\r\n valid = false;\r\n errorMsgs.push(errorMsg);\r\n } \r\n })\r\n\r\n return {\r\n valid: valid,\r\n errorMsgs: errorMsgs\r\n }\r\n };\r\n\r\n function pushToDataLayer(action, location, type) {\r\n window.dataLayer.push({\r\n 'event': 'modal_interaction',\r\n 'modal_type': 'Intermediaries ' + modalWindowType,\r\n 'modal_action': action,\r\n 'professionals_location': location || undefined,\r\n 'professionals_type': type ||undefined\r\n });\r\n };\r\n\r\n function gtmTrackSelection(audienceId) {\r\n var selections = getSelections(audienceId);\r\n var modalAction = modalWindowType === 'Modal' ? 'details selected' : 'details updated';\r\n pushToDataLayer(modalAction, selections.location, selections.audienceTypeLabel);\r\n };\r\n\r\n function gtmTrackAcceptDisclaimer(audienceId) {\r\n var selections = getSelections(audienceId);\r\n pushToDataLayer('accept_selection', selections.location, selections.audienceTypeLabel);\r\n };\r\n\r\n function gtmTrackDeclineDisclaimer(audienceId) {\r\n var selections = getSelections(audienceId);\r\n pushToDataLayer('decline_selection', selections.location, selections.audienceTypeLabel);\r\n };\r\n\r\n function gtmTrackOpenClose(action) {\r\n pushToDataLayer(action);\r\n }\r\n\r\n})(jQuery);\r\n","(function($) {\r\n $(document).ready(function() {\r\n if (typeof window.sectionId !== \"undefined\") {\r\n checkPrimaryNav();\r\n checkTertiaryNav();\r\n checkLeftNav();\r\n }\r\n });\r\n\r\n function checkTertiaryNav() {\r\n var $item = $('.tertiary').find('#tertiary-' + window.pageId);\r\n\r\n if ($item !== null) {\r\n var $firstAnchor = $item.find(\"a\");\r\n if ($firstAnchor !== null) {\r\n $firstAnchor.addClass(\"tertiary__link--active\");\r\n }\r\n }\r\n }\r\n\r\n function checkPrimaryNav() {\r\n var $item = $('.primary-nav').find('#primary-nav-' + window.sectionId + ', #primary-nav-' + window.pageId);\r\n\r\n if ($item !== null) {\r\n var $link = $item.find(\"> a.primary-nav__link\");\r\n if ($link !== null) {\r\n $link.addClass(\"primary-nav__link--active\");\r\n\r\n // Check for parents\r\n //$link.parents(\".primary-nav__item\").find(\"> .primary-nav__link\").addClass(\"primary-nav__link--active\");\r\n }\r\n\r\n handleTouchDevices()\r\n }\r\n }\r\n\r\n function handleTouchDevices() {\r\n\r\n \r\n if (\"ontouchstart\" in document.documentElement)\r\n {\r\n //early escape if iOS device\r\n if(window.navigator.userAgent.includes('Mac')){\r\n return;\r\n }\r\n var primaryLinkList = document.querySelectorAll('.primary-nav__list >.primary-nav__item.dropdown >.primary-nav__link.hidden-xs');\r\n var activeLink;\r\n primaryLinkList.forEach(function(link){\r\n link.addEventListener('click', function(event){\r\n if(activeLink != link){\r\n event.preventDefault();\r\n activeLink=link;\r\n }\r\n })\r\n })\r\n document.addEventListener(\"click\", function(event){\r\n if (event.target != activeLink){\r\n activeLink = null;\r\n }\r\n })\r\n }\r\n }\r\n\r\n function checkLeftNav() {\r\n var $item = $('.left-nav').find('#left-nav' + window.sectionId + ', #left-nav-' + window.pageId);\r\n\r\n if ($item !== null) {\r\n var $link = $item.find(\"> a.left-nav__link\");\r\n if ($link !== null) {\r\n $link.addClass(\"left-nav__link--active\");\r\n //\r\n // // Check for parents\r\n // $link.parents(\".left-nav__item\").find(\"> .left-nav__link:not(.left-nav__link--active)\").addClass(\"left-nav__link--selected\");\r\n }\r\n }\r\n }\r\n})(jQuery);\r\n","var TAB_DROPDOWN_SELECT = '[name=\"tabs__dropdown-select\"]';\r\nvar TAB_CONTAINER_SELECTOR = '.tabs__container';\r\nvar TAB_ITEM_SELECTOR = '.nav-pills li.item';\r\nvar TAB_ITEM_LINK_SELECTOR = TAB_ITEM_SELECTOR + \" > a\";\r\nvar MOBILE_THRESHOLD = 768;\r\n\r\n$(document).ready(function() {\r\n responsiveTabs();\r\n\r\n $('body').on('change', TAB_DROPDOWN_SELECT, onTabDropdownChange);\r\n $('body').on('click', TAB_ITEM_LINK_SELECTOR, onTabSelect);\r\n});\r\n\r\n// Setup the resize event handler and debounce using a timer.\r\n$(window).on('resize', function () {\r\n if (window.scrollTimer) { clearTimeout(window.scrollTimer); }\r\n window.scrollTimer = setTimeout(function () {\r\n responsiveTabs();\r\n }, 100);\r\n});\r\n\r\n// Grab the selected item and show its relevant tab.\r\nfunction onTabDropdownChange() {\r\n var $this = $(this);\r\n var $selectedOpt = $this.find(':selected');\r\n $selectedOpt.tab('show');\r\n}\r\n\r\nfunction onTabSelect() {\r\n $(TAB_DROPDOWN_SELECT).val(\"\").parent('li.active').removeClass('active');\r\n}\r\n\r\nfunction responsiveTabs() {\r\n\r\n // Loop through each tab container on the page\r\n $(TAB_CONTAINER_SELECTOR).each(function() {\r\n var $tabContainer = $(this);\r\n var $tabItems = $tabContainer.find(TAB_ITEM_SELECTOR);\r\n var $dropDown = $tabContainer.find(TAB_DROPDOWN_SELECT);\r\n\r\n var maxTabCount = 0;\r\n\r\n maxTabCount = calculateMaxItems($tabContainer);\r\n\r\n // If we can show all of the tabs, skip more processing\r\n if (maxTabCount === $tabItems.length) {\r\n $dropDown.addClass('hide');\r\n $dropDown.parent('.tabs-selector__wrapper').addClass('hide');\r\n return true;\r\n } else {\r\n $dropDown.removeClass('hide');\r\n $dropDown.parent('.tabs-selector__wrapper').removeClass('hide');\r\n createExcessDropdown($tabContainer, maxTabCount);\r\n }\r\n });\r\n}\r\n\r\nfunction isMobile() {\r\n return ($(\"body\").innerWidth() < MOBILE_THRESHOLD);\r\n}\r\n\r\n// Calculate the maximum number of items that can be comforatablly shown without kicking onto another line\r\nfunction calculateMaxItems($tabContainer) {\r\n var $tabItems = $tabContainer.find(TAB_ITEM_SELECTOR);\r\n var tabContainerWidth = $tabContainer.width();\r\n var $dropDown = $tabContainer.find(TAB_DROPDOWN_SELECT);\r\n\r\n // Remove select dropdown width as that needs to stay on one line too\r\n tabContainerWidth -= $dropDown.outerWidth(true);\r\n\r\n if (isMobile()) { return -1; } // If mobile we want to hide them all\r\n\r\n var tabIndex = 0;\r\n\r\n // Loop through each tab item\r\n $tabItems.each(function() {\r\n var $tab = $(this);\r\n\r\n $tab.removeClass('hide');\r\n\r\n tabContainerWidth -= $tab.outerWidth(true);\r\n\r\n // If we have used up the available space stop.\r\n if (tabContainerWidth <= 0) { return false; }\r\n else { tabIndex++; }\r\n });\r\n\r\n return tabIndex;\r\n}\r\n\r\n// Dynamically create the dropdown options using the excess tabs\r\nfunction createExcessDropdown($tabContainer, countIndex) {\r\n var $excessTabs;\r\n\r\n // If we want to hide ALL items\r\n if (countIndex === -1) {\r\n $excessTabs = $tabContainer.find(TAB_ITEM_SELECTOR);\r\n } else {\r\n $excessTabs = $tabContainer.find(TAB_ITEM_SELECTOR + ':gt(' + (countIndex - 1) + ')'); // Remove one as it is zero index based\r\n }\r\n\r\n // If there are no excess tabs stop processing.\r\n if ($excessTabs.length <= 0) return;\r\n\r\n var opts = '';\r\n \r\n // If not on mobile, add select as an option\r\n if (countIndex !== -1) {\r\n opts += '';\r\n }\r\n\r\n $excessTabs.each(function() {\r\n var $anchor = $(this).find(\"a\");\r\n var val = $anchor.attr('href');\r\n var txt = $anchor.text();\r\n\r\n // HTML to create the dropdown item\r\n opts += '';\r\n $(this).addClass('hide');\r\n });\r\n\r\n // Clear the current markup and add in the new options\r\n $('[name=\"tabs__dropdown-select\"]').html(\"\");\r\n $('[name=\"tabs__dropdown-select\"]').html(opts);\r\n}\r\n","var DESKTOP_SEARCH_BTN = '.header-bottom .site-search__btn';\r\nvar DESKTOP_SEARCH_FIELD = '.header-bottom .site-search__input';\r\n\r\nvar TABLET_SEARCH_BTN = '.header-top .site-search__btn';\r\nvar TABLET_SEARCH_FIELD = '.header-top .site-search__input';\r\n\r\nvar MOBILE_SEARCH_BTN = '.primary-nav__search-wrapper .primary-nav__search-btn';\r\nvar MOBILE_SEARCH_FIELD = '.primary-nav__search-wrapper .primary-nav__search';\r\n\r\nfunction searchRecords(fieldSelector) {\r\n var searchText = $(fieldSelector).val().trim();\r\n if (searchText) {\r\n var newLocation = getSearchResultsPath() + '?searchterm=' + encodeURIComponent(searchText);\r\n var searchKey = window.searchKey;\r\n if (searchKey) newLocation += '&searchkey=' + searchKey;\r\n window.location = newLocation;\r\n }\r\n}\r\n\r\nfunction getSearchResultsPath() {\r\n var path = window.resultsPageUrl;\r\n if (typeof path !== \"undefined\") return path;\r\n else throw new Error(\"Couldn't get search results page location\");\r\n}\r\n\r\nfunction checkForSearchText($elem) {\r\n return ($(DESKTOP_SEARCH_FIELD).val().length > 0 && $(DESKTOP_SEARCH_FIELD).val() !== \"\");\r\n}\r\n\r\n$(document).ready(function () {\r\n $(DESKTOP_SEARCH_FIELD).on('blur', function (e) {\r\n var hasSearchText = checkForSearchText(DESKTOP_SEARCH_FIELD);\r\n\r\n if (!hasSearchText) {\r\n $('.main-content .header-bottom .site-search').removeClass('is-active');\r\n }\r\n });\r\n $(DESKTOP_SEARCH_BTN).on('click', function (e) {\r\n e.preventDefault();\r\n\r\n if ($(window).innerWidth() > 767) {\r\n var hasSearchText = checkForSearchText(DESKTOP_SEARCH_FIELD);\r\n\r\n if (hasSearchText) {\r\n searchRecords(DESKTOP_SEARCH_FIELD);\r\n } else {\r\n $('.main-content .header-bottom .site-search').toggleClass('is-active');\r\n $(DESKTOP_SEARCH_FIELD).focus();\r\n }\r\n } else {\r\n searchRecords(DESKTOP_SEARCH_FIELD);\r\n }\r\n });\r\n $(DESKTOP_SEARCH_FIELD).keypress(function (e) {\r\n var key = e.which;\r\n if (key === 13) {\r\n searchRecords(DESKTOP_SEARCH_FIELD);\r\n return false;\r\n }\r\n });\r\n\r\n $(TABLET_SEARCH_BTN).on('click', function (e) {\r\n e.preventDefault();\r\n searchRecords(TABLET_SEARCH_FIELD);\r\n });\r\n $(TABLET_SEARCH_FIELD).keypress(function (e) {\r\n var key = e.which;\r\n if (key === 13) {\r\n searchRecords(TABLET_SEARCH_FIELD);\r\n return false;\r\n }\r\n });\r\n\r\n $(MOBILE_SEARCH_BTN).on('click', function (e) {\r\n e.preventDefault();\r\n searchRecords(MOBILE_SEARCH_FIELD);\r\n });\r\n $(MOBILE_SEARCH_FIELD).keypress(function (e) {\r\n var key = e.which;\r\n if (key === 13) {\r\n searchRecords(MOBILE_SEARCH_FIELD);\r\n return false;\r\n }\r\n });\r\n});\r\n","/**\r\n * @fileOverview Allows deep linking to content within Bootstrap components using #links\r\n * @author Phil Hazelton [phil@appius.com]\r\n * @version 1.1.0\r\n */\r\nvar appius = window.appius || {};\r\n\r\nappius.deepAnchors = (function ($) {\r\n 'use strict';\r\n var module = {};\r\n\r\n $(window).on('hashchange', function () {\r\n init();\r\n });\r\n\r\n function init() {\r\n var hash = location.hash;\r\n if (!hash) return false;\r\n\r\n var $elem = $(hash);\r\n if ($elem.length == 0) return false;\r\n\r\n var $container = findParentComponent($elem);\r\n if (!$container) return false;\r\n\r\n $container.on('shown.bs.tab', function () {\r\n scrollToElement($elem);\r\n }).tab('show');\r\n\r\n var $tabpanel = $container.next('[role=\"tabpanel\"]');\r\n\r\n if ($tabpanel.length > 0) {\r\n $tabpanel.on('shown.bs.collapse', function () {\r\n scrollToElement($elem);\r\n }).collapse('show');\r\n }\r\n }\r\n\r\n /**\r\n * Find the component wrapping a particular element.\r\n * @param {object} $elem - The element to begin searching upwards from.\r\n * @returns {?object} - The wrapping component, or null if no component is found.\r\n */\r\n function findParentComponent($elem) {\r\n var $container = $elem.parents('[role=\"tab\"]');\r\n if ($container.length > 0) return $container;\r\n\r\n var $tabpanel = $elem.closest('[role=\"tabpanel\"]');\r\n var id = $tabpanel.attr('id');\r\n\r\n $container = $('[role=\"tab\"][href=\"#' + id + '\"]');\r\n if ($container.length > 0) return $container;\r\n\r\n $container = $('[data-toggle=\"collapse\"][href=\"#' + id + '\"]');\r\n if ($container.length > 0) return $container;\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Immediately scroll the window to a given element.\r\n * @param {object} $elem - The element to scroll to.\r\n * @returns {void}\r\n */\r\n function scrollToElement($elem) {\r\n var offset = $elem.offset().top;\r\n $('html').scrollTop(offset);\r\n }\r\n\r\n $(document).ready(init);\r\n return module;\r\n}(jQuery));\r\n","var LANGUAGE_SELECTOR = '.language-selector';\r\nvar LANGUAGE_SELECTOR_ACTIVE = 'is-active';\r\n\r\n$(document).ready(function() {\r\n $('body').on('click', '.language-selector', onLanguageClick);\r\n $('body').on('click', onBodyClick);\r\n});\r\n\r\nfunction onLanguageClick(e) {\r\n $(this).toggleClass('is-active');\r\n e.stopPropagation();\r\n}\r\n\r\nfunction onBodyClick(e) {\r\n if (e.target !== LANGUAGE_SELECTOR) {\r\n if ($(LANGUAGE_SELECTOR + '.' + LANGUAGE_SELECTOR_ACTIVE).length > 0) {\r\n $(LANGUAGE_SELECTOR).removeClass(LANGUAGE_SELECTOR_ACTIVE);\r\n }\r\n }\r\n}","$(document).ready(function () {\r\n initVideoBanner();\r\n})\r\n\r\nvar VIDEO_BANNER_ID = '.video-banner > #YTplayer';\r\nvar youtubePlayer;\r\n\r\nfunction initVideoBanner() {\r\n if ($(VIDEO_BANNER_ID).length > 0) {\r\n\r\n // Pull in YouTubeAPI Script\r\n var tag = document.createElement('script');\r\n tag.id = 'youtubeAPI';\r\n tag.src = 'https://www.youtube.com/iframe_api';\r\n var firstScriptTag = document.getElementsByTagName('script')[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n }\r\n}\r\n\r\nfunction onYouTubeIframeAPIReady() {\r\n var videoID = $(VIDEO_BANNER_ID).attr('data-video-id');\r\n\r\n // If no id, return\r\n if (typeof videoID === \"undefined\") return false;\r\n\r\n youtubePlayer = new YT.Player('YTplayer', {\r\n videoId: videoID,\r\n width: \"100%\",\r\n height: \"100%\",\r\n playerVars: {\r\n \"autoplay\": 1,\r\n \"controls\": 0,\r\n \"rel\": 0,\r\n \"showinfo\": 0\r\n },\r\n events: {\r\n 'onStateChange': onPlayerStateChange\r\n }\r\n });\r\n}\r\n\r\n\r\nfunction onPlayerStateChange(e) {\r\n // If the video has ended restart it.\r\n if (e.data === YT.PlayerState.ENDED) {\r\n youtubePlayer.playVideo(); \r\n }\r\n}\r\n","\r\n// Plugin that runs on a tab change, this checks the new tab content and \r\n// if it finds equalised items it will run the equalise plugin\r\nvar TAB_SELECTOR = '.tabs a[data-toggle]';\r\nvar EQUALISE_SELECTOR = '[data-equalise]';\r\nvar TAB_EVENT_TRIGGER = 'shown.bs.tab';\r\n\r\n$(document).ready(function () {\r\n\r\n $(TAB_SELECTOR).on(TAB_EVENT_TRIGGER, function (e) {\r\n\r\n var targetID = $(e.target).attr('href');\r\n var $targetContent = $(targetID);\r\n if (typeof $targetContent == \"undefined\" || $targetContent.length <= 0) return;\r\n\r\n // Check whether new tab has any equalise items\r\n if ($targetContent.find(EQUALISE_SELECTOR).length > 0) {\r\n if (typeof window.equalise === \"object\" && typeof window.equalise.init === \"function\") {\r\n window.equalise.init();\r\n }\r\n } \r\n })\r\n});","var hasErrors = true;\r\nvar onloadCallback = function () {\r\n\tgrecaptcha.render('dvCaptcha', {\r\n\t\t'sitekey': reCaptchaSiteKey,\r\n\t\t'callback': function (responseData) {\r\n\t\t\tvar sendInfo = { response: responseData };\r\n\t\t\t$.ajax({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\turl: reCaptchaUrlEndPoint,\r\n\t\t\t\tdata: JSON.stringify(sendInfo),\r\n\t\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\t\tdataType: \"json\",\r\n\t\t\t\tsuccess: function (r) {\r\n\t\t\t\t\tvar captchaResponse = jQuery.parseJSON(r.Response);\r\n\t\t\t\t\tif (captchaResponse.success) {\r\n\t\t\t\t\t\thasErrors = false;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\thasErrors = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror: function (e) {\r\n\t\t\t\t\tconsole.log(e);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n};\r\n\r\nfunction validateRecaptcha() {\r\n\tvar response = grecaptcha.getResponse();\r\n\thasErrors = false;\r\n\r\n\tif (response.length == 0) {\r\n\t\thasErrors = true;\r\n\t}\r\n\r\n\tif (hasErrors) {\r\n\t\t$(\"#captchaError\").show();\r\n\t} else {\r\n\t\t$(\"#captchaError\").hide();\r\n\t}\r\n}\r\n","(function(t){var e=function(){try{return!!Symbol.iterator}catch(e){return false}};var r=e();var n=function(t){var e={next:function(){var e=t.shift();return{done:e===void 0,value:e}}};if(r){e[Symbol.iterator]=function(){return e}}return e};var i=function(e){return encodeURIComponent(e).replace(/%20/g,\"+\")};var o=function(e){return decodeURIComponent(String(e).replace(/\\+/g,\" \"))};var a=function(){var a=function(e){Object.defineProperty(this,\"_entries\",{writable:true,value:{}});var t=typeof e;if(t===\"undefined\"){}else if(t===\"string\"){if(e!==\"\"){this._fromString(e)}}else if(e instanceof a){var r=this;e.forEach(function(e,t){r.append(t,e)})}else if(e!==null&&t===\"object\"){if(Object.prototype.toString.call(e)===\"[object Array]\"){for(var n=0;nt[0]){return+1}else{return 0}});if(r._entries){r._entries={}}for(var e=0;e1?o(i[1]):\"\")}}})}})(typeof global!==\"undefined\"?global:typeof window!==\"undefined\"?window:typeof self!==\"undefined\"?self:this);(function(u){var e=function(){try{var e=new u.URL(\"b\",\"http://a\");e.pathname=\"c d\";return e.href===\"http://a/c%20d\"&&e.searchParams}catch(e){return false}};var t=function(){var t=u.URL;var e=function(e,t){if(typeof e!==\"string\")e=String(e);var r=document,n;if(t&&(u.location===void 0||t!==u.location.href)){r=document.implementation.createHTMLDocument(\"\");n=r.createElement(\"base\");n.href=t;r.head.appendChild(n);try{if(n.href.indexOf(t)!==0)throw new Error(n.href)}catch(e){throw new Error(\"URL unable to set base \"+t+\" due to \"+e)}}var i=r.createElement(\"a\");i.href=e;if(n){r.body.appendChild(i);i.href=i.href}var o=r.createElement(\"input\");o.type=\"url\";o.value=e;if(i.protocol===\":\"||!/:/.test(i.href)||!o.checkValidity()&&!t){throw new TypeError(\"Invalid URL\")}Object.defineProperty(this,\"_anchorElement\",{value:i});var a=new u.URLSearchParams(this.search);var s=true;var c=true;var f=this;[\"append\",\"delete\",\"set\"].forEach(function(e){var t=a[e];a[e]=function(){t.apply(a,arguments);if(s){c=false;f.search=a.toString();c=true}}});Object.defineProperty(this,\"searchParams\",{value:a,enumerable:true});var h=void 0;Object.defineProperty(this,\"_updateSearchParams\",{enumerable:false,configurable:false,writable:false,value:function(){if(this.search!==h){h=this.search;if(c){s=false;this.searchParams._fromString(this.search);s=true}}}})};var r=e.prototype;var n=function(t){Object.defineProperty(r,t,{get:function(){return this._anchorElement[t]},set:function(e){this._anchorElement[t]=e},enumerable:true})};[\"hash\",\"host\",\"hostname\",\"port\",\"protocol\"].forEach(function(e){n(e)});Object.defineProperty(r,\"search\",{get:function(){return this._anchorElement[\"search\"]},set:function(e){this._anchorElement[\"search\"]=e;this._updateSearchParams()},enumerable:true});Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\\?$/,\"\")},set:function(e){this._anchorElement.href=e;this._updateSearchParams()},enumerable:true},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\\/?)/,\"/\")},set:function(e){this._anchorElement.pathname=e},enumerable:true},origin:{get:function(){var e={\"http:\":80,\"https:\":443,\"ftp:\":21}[this._anchorElement.protocol];var t=this._anchorElement.port!=e&&this._anchorElement.port!==\"\";return this._anchorElement.protocol+\"//\"+this._anchorElement.hostname+(t?\":\"+this._anchorElement.port:\"\")},enumerable:true},password:{get:function(){return\"\"},set:function(e){},enumerable:true},username:{get:function(){return\"\"},set:function(e){},enumerable:true}});e.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)};e.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)};u.URL=e};if(!e()){t()}if(u.location!==void 0&&!(\"origin\"in u.location)){var r=function(){return u.location.protocol+\"//\"+u.location.hostname+(u.location.port?\":\"+u.location.port:\"\")};try{Object.defineProperty(u.location,\"origin\",{get:r,enumerable:true})}catch(e){setInterval(function(){u.location.origin=r()},100)}}})(typeof global!==\"undefined\"?global:typeof window!==\"undefined\"?window:typeof self!==\"undefined\"?self:this);\r\n","/*\r\n* jquery-match-height 0.7.2 by @liabru\r\n* http://brm.io/jquery-match-height/\r\n* License MIT\r\n*/\r\n!function(t){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\"],t):\"undefined\"!=typeof module&&module.exports?module.exports=t(require(\"jquery\")):t(jQuery)}(function(t){var e=-1,o=-1,n=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),i=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-n(e.css(\"margin-top\")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(i-a))<=o?r[r.length-1]=s.add(e):r.push(e),i=a}),r},i=function(e){var o={\r\n\tbyRow:!0,property:\"height\",target:null,remove:!1};return\"object\"==typeof e?t.extend(o,e):(\"boolean\"==typeof e?o.byRow=e:\"remove\"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=i(e);if(o.remove){var n=this;return this.css(o.property,\"\"),t.each(r._groups,function(t,e){e.elements=e.elements.not(n)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version=\"0.7.2\",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,\r\n\tr._afterUpdate=null,r._rows=a,r._parse=n,r._parseOptions=i,r._apply=function(e,o){var s=i(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t(\"html\").outerHeight(!0),u=h.parents().filter(\":hidden\");return u.each(function(){var e=t(this);e.data(\"style-cache\",e.attr(\"style\"))}),u.css(\"display\",\"block\"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css(\"display\");\"inline-block\"!==o&&\"flex\"!==o&&\"inline-flex\"!==o&&(o=\"block\"),e.data(\"style-cache\",e.attr(\"style\")),e.css({display:o,\"padding-top\":\"0\",\r\n\t\"padding-bottom\":\"0\",\"margin-top\":\"0\",\"margin-bottom\":\"0\",\"border-top-width\":\"0\",\"border-bottom-width\":\"0\",height:\"100px\",overflow:\"hidden\"})}),l=a(h),h.each(function(){var e=t(this);e.attr(\"style\",e.data(\"style-cache\")||\"\")})),t.each(l,function(e,o){var a=t(o),i=0;if(s.target)i=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,\"\");a.each(function(){var e=t(this),o=e.attr(\"style\"),n=e.css(\"display\");\"inline-block\"!==n&&\"flex\"!==n&&\"inline-flex\"!==n&&(n=\"block\");var a={\r\n\tdisplay:n};a[s.property]=\"\",e.css(a),e.outerHeight(!1)>i&&(i=e.outerHeight(!1)),o?e.attr(\"style\",o):e.css(\"display\",\"\")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||(\"border-box\"!==e.css(\"box-sizing\")&&(o+=n(e.css(\"border-top-width\"))+n(e.css(\"border-bottom-width\")),o+=n(e.css(\"padding-top\"))+n(e.css(\"padding-bottom\"))),e.css(s.property,i-o+\"px\"))})}),u.each(function(){var e=t(this);e.attr(\"style\",e.data(\"style-cache\")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t(\"html\").outerHeight(!0)),\r\n\tthis},r._applyDataApi=function(){var e={};t(\"[data-match-height], [data-mh]\").each(function(){var o=t(this),n=o.attr(\"data-mh\")||o.attr(\"data-match-height\");n in e?e[n]=e[n].add(o):e[n]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(n,a){if(a&&\"resize\"===a.type){var i=t(window).width();if(i===e)return;e=i;\r\n\t}n?o===-1&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi);var h=t.fn.on?\"on\":\"bind\";t(window)[h](\"load\",function(t){r._update(!1,t)}),t(window)[h](\"resize orientationchange\",function(t){r._update(!0,t)})});\r\n","/*!\r\n * JavaScript Cookie v2.1.4\r\n * https://github.com/js-cookie/js-cookie\r\n *\r\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\r\n * Released under the MIT license\r\n */\r\n;(function (factory) {\r\n\tvar registeredInModuleLoader = false;\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(factory);\r\n\t\tregisteredInModuleLoader = true;\r\n\t}\r\n\tif (typeof exports === 'object') {\r\n\t\tmodule.exports = factory();\r\n\t\tregisteredInModuleLoader = true;\r\n\t}\r\n\tif (!registeredInModuleLoader) {\r\n\t\tvar OldCookies = window.Cookies;\r\n\t\tvar api = window.Cookies = factory();\r\n\t\tapi.noConflict = function () {\r\n\t\t\twindow.Cookies = OldCookies;\r\n\t\t\treturn api;\r\n\t\t};\r\n\t}\r\n}(function () {\r\n\tfunction extend () {\r\n\t\tvar i = 0;\r\n\t\tvar result = {};\r\n\t\tfor (; i < arguments.length; i++) {\r\n\t\t\tvar attributes = arguments[ i ];\r\n\t\t\tfor (var key in attributes) {\r\n\t\t\t\tresult[key] = attributes[key];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tfunction init (converter) {\r\n\t\tfunction api (key, value, attributes) {\r\n\t\t\tvar result;\r\n\t\t\tif (typeof document === 'undefined') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Write\r\n\r\n\t\t\tif (arguments.length > 1) {\r\n\t\t\t\tattributes = extend({\r\n\t\t\t\t\tpath: '/'\r\n\t\t\t\t}, api.defaults, attributes);\r\n\r\n\t\t\t\tif (typeof attributes.expires === 'number') {\r\n\t\t\t\t\tvar expires = new Date();\r\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\r\n\t\t\t\t\tattributes.expires = expires;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\r\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tresult = JSON.stringify(value);\r\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\r\n\t\t\t\t\t\tvalue = result;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {}\r\n\r\n\t\t\t\tif (!converter.write) {\r\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\r\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalue = converter.write(value, key);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tkey = encodeURIComponent(String(key));\r\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\r\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\r\n\r\n\t\t\t\tvar stringifiedAttributes = '';\r\n\r\n\t\t\t\tfor (var attributeName in attributes) {\r\n\t\t\t\t\tif (!attributes[attributeName]) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\r\n\t\t\t\t\tif (attributes[attributeName] === true) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\r\n\t\t\t\t}\r\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\r\n\t\t\t}\r\n\r\n\t\t\t// Read\r\n\r\n\t\t\tif (!key) {\r\n\t\t\t\tresult = {};\r\n\t\t\t}\r\n\r\n\t\t\t// To prevent the for loop in the first place assign an empty array\r\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\r\n\t\t\t// calling \"get()\"\r\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\r\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\tfor (; i < cookies.length; i++) {\r\n\t\t\t\tvar parts = cookies[i].split('=');\r\n\t\t\t\tvar cookie = parts.slice(1).join('=');\r\n\r\n\t\t\t\tif (cookie.charAt(0) === '\"') {\r\n\t\t\t\t\tcookie = cookie.slice(1, -1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\r\n\t\t\t\t\tcookie = converter.read ?\r\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\r\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\r\n\r\n\t\t\t\t\tif (this.json) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\r\n\t\t\t\t\t\t} catch (e) {}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (key === name) {\r\n\t\t\t\t\t\tresult = cookie;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!key) {\r\n\t\t\t\t\t\tresult[name] = cookie;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\tapi.set = api;\r\n\t\tapi.get = function (key) {\r\n\t\t\treturn api.call(api, key);\r\n\t\t};\r\n\t\tapi.getJSON = function () {\r\n\t\t\treturn api.apply({\r\n\t\t\t\tjson: true\r\n\t\t\t}, [].slice.call(arguments));\r\n\t\t};\r\n\t\tapi.defaults = {};\r\n\r\n\t\tapi.remove = function (key, attributes) {\r\n\t\t\tapi(key, '', extend(attributes, {\r\n\t\t\t\texpires: -1\r\n\t\t\t}));\r\n\t\t};\r\n\r\n\t\tapi.withConverter = init;\r\n\r\n\t\treturn api;\r\n\t}\r\n\r\n\treturn init(function () {});\r\n}));\r\n","(function ($) {\r\n\tvar INFORMATION_COOKIE_NAME = \"information-modal\";\r\n\tvar INFORMATION_MODAL_SELECTOR = '.information-modal';\r\n\tvar INFORMATION_MODAL_ALWAYS_ATTRIBUTE = \"always-show\";\r\n\tvar CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME = \"custom-expiry-information-modal\";\r\n\tvar CUSTOM_EXPIRY_DURATION_ATTRIBUTE = \"custom-expiry-duration-in-hours\";\r\n\tvar EXPIRY_DURATION_CHANGED = \"expiry-duration-changed\";\r\n\tvar dateNow = new Date();\r\n\t// custom-expiry\r\n\t$(document).ready(function () {\r\n\t\t// If the modal markup is in page\r\n\t\tif ($(INFORMATION_MODAL_SELECTOR).length > 0) {\r\n\r\n\t\t\tif (!$(INFORMATION_MODAL_SELECTOR)[0].hasAttribute('data-override-default')) {\r\n\t\t\t\tinitialiseModal();\r\n\t\t\t}\r\n\r\n\t\t\t$('.modal').on('click', '.accept', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tacceptModal();\r\n\t\t\t\t$('.information-modal').remove();\r\n\t\t\t});\r\n\r\n\t\t\t$(document).on('triggerCloseModalWindow', function () {\r\n\t\t\t\t$('.information-modal').remove();\r\n\t\t\t\thideModal();\r\n\t\t\t});\r\n\r\n\t\t\t$(document).on('triggerShowModalWindow', function () {\r\n\t\t\t\tshowModal();\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\tfunction initialiseModal() {\r\n\t\t// Check if cookie exists, if so do nothing\r\n\t\tif (isEpiserverEditMode() === false && (alwaysShowModal() || checkCookieExists() === false)) {\r\n\t\t\tdropCookie(INFORMATION_COOKIE_NAME);\r\n\t\t\tdropCookie(CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME);\r\n\t\t\tshowModal();\r\n\t\t} else if (\r\n\t\t\t// set custom expiry cookie\r\n\t\t\tisEpiserverEditMode() === false && alwaysShowModal() === false && checkCookieExists() === true\r\n\t\t\t&& expiryDurationHoursLeft() < dateNow\r\n\t\t\t// update existing cookie to custom expiry cookie\r\n\t\t\t|| (isEpiserverEditMode() === false && Cookies.get(INFORMATION_COOKIE_NAME) === \"accepted\" && isCustomExpiryCookie())) {\r\n\r\n\t\t\tdropCookie(INFORMATION_COOKIE_NAME);\r\n\t\t\tdropCookie(CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME);\r\n\t\t\tshowModal();\r\n\t\t} else if (isEpiserverEditMode() === false && alwaysShowModal() === false && isCustomExpiryCookie()\r\n\t\t\t&& checkCookieExists() === true && Cookies.get(CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME) === \"accepted\" &&\r\n\t\t\t$(INFORMATION_MODAL_SELECTOR).data(EXPIRY_DURATION_CHANGED) === 'True') {\r\n\t\t\t// update custom expiry cookie expiry duration hours left, if we already have accepted custom expiry cookie\r\n\t\t\tdropCookie(CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME);\r\n\t\t\tsetCookie(CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME, expiryDurationHoursLeft());\r\n\t\t\t$('.information-modal').remove();\r\n\t\t\thideModal();\r\n\t\t\treturn;\r\n\t\t} else if (isEpiserverEditMode() === false && alwaysShowModal() === false && isCustomExpiryCookie() === false\r\n\t\t\t&& checkCookieExists() === true && Cookies.get(CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME) === \"accepted\") {\r\n\t\t\t// drop custom expiry cookie when expiry duration hours left = 0\r\n\t\t\tdropCookie(CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME);\r\n\t\t\tshowModal();\r\n\t\t} else {\r\n\t\t\t$('.information-modal').remove();\r\n\t\t\thideModal();\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction expiryDurationHoursLeft() {\r\n\t\tvar date = new Date(dateNow);\r\n\t\tvar expiryDuration = $(INFORMATION_MODAL_SELECTOR).data(CUSTOM_EXPIRY_DURATION_ATTRIBUTE);\r\n\t\tvar expiryDurationMilliseconds = expiryDuration * 3600 * 1000;\r\n\t\tvar utcDate = Date.UTC(\r\n\t\t\tdate.getUTCFullYear(),\r\n\t\t\tdate.getUTCMonth(),\r\n\t\t\tdate.getUTCDate(),\r\n\t\t\tdate.getUTCHours(),\r\n\t\t\tdate.getUTCMinutes(),\r\n\t\t\tdate.getUTCSeconds(),\r\n\t\t\tdate.getUTCMilliseconds()\r\n\t\t);\r\n\t\tvar expiryUtcMilliseconds = utcDate + expiryDurationMilliseconds;\r\n\t\treturn new Date(expiryUtcMilliseconds);\r\n\t}\r\n\r\n\tfunction alwaysShowModal() {\r\n\t\treturn $(INFORMATION_MODAL_SELECTOR).data(INFORMATION_MODAL_ALWAYS_ATTRIBUTE) === \"True\";\r\n\t}\r\n\r\n\t// Read the cookie data and return if value set\r\n\tfunction checkCookieExists() {\r\n\t\treturn (Cookies.get(INFORMATION_COOKIE_NAME) === \"accepted\") || (Cookies.get(CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME) === \"accepted\");\r\n\t}\r\n\r\n\tfunction isCustomExpiryCookie() {\r\n\t\treturn (alwaysShowModal() === false && expiryDurationHoursLeft() > dateNow);\r\n\t}\r\n\r\n\tfunction writeCookie() {\r\n\t\tif (isCustomExpiryCookie() === false) {\r\n\t\t\tsetCookie(INFORMATION_COOKIE_NAME, 730);\r\n\t\t\tdropCookie(CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME);\r\n\t\t} else {\r\n\t\t\tsetCookie(CUSTOM_EXPIRY_INFORMATION_COOKIE_NAME, expiryDurationHoursLeft());\r\n\t\t\tdropCookie(INFORMATION_COOKIE_NAME);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction acceptModal() {\r\n\t\twriteCookie();\r\n\t\thideModal();\r\n\t}\r\n\r\n\tfunction showModal() {\r\n\t\tvar htmlContents = $(\".information-modal__inner\").html();\r\n\t\tif ($(\".information-modal\").data(\"always-show\") === undefined) {\r\n\t\t\t$('.information-modal').remove();\r\n\t\t}\r\n\t\t// $(\"body\").addClass(\"modal--active\");\r\n\t\t$(\"body .modal__inner\").eq(0).html(htmlContents);\r\n\t\t$(\"body .modal\").modal('show');\r\n\t}\r\n\r\n\tfunction hideModal() {\r\n\t\t$(\"body .modal\").modal('hide');\r\n\t}\r\n\r\n\tfunction isEpiserverEditMode() {\r\n\t\treturn (window.location.href.indexOf('EPiServer') !== -1);\r\n\t}\r\n\r\n\tfunction setCookie(cookieName, expires) {\r\n\t\tCookies.set(cookieName, \"accepted\", { expires: expires, path: '/' });\r\n\t}\r\n\r\n\tfunction dropCookie(cookieName) {\r\n\t\tCookies.set(cookieName, \"declined\", { expires: 0, path: '/' });\r\n\t}\r\n})(jQuery);\r\n","(function($) {\r\n var LIGHTBOX_CLASS = 'img.lightbox';\r\n var LIGHTBOX_MODAL = '#modal';\r\n\r\n $(document).ready(function() {\r\n $('body').on('click', LIGHTBOX_CLASS, onLightboxImageClick);\r\n });\r\n\r\n function showModal() {\r\n $(\"body .modal\").addClass('lightbox-container');\r\n window.setTimeout(function () {\r\n $(\"body .modal\").addClass('is-active');\r\n }, 0);\r\n }\r\n\r\n function hideModal() {\r\n $(\"body .modal\").removeClass('lightbox-container').removeClass('is-active');\r\n }\r\n\r\n function isEpiserverEditMode() {\r\n return (window.location.href.indexOf('EPiServer') !== -1);\r\n }\r\n\r\n function isTouchDevice() {\r\n return 'ontouchstart' in document.documentElement;\r\n }\r\n\r\n function onLightboxImageClick(e) {\r\n // Ensure we are not viewing when in CMS\r\n if (isEpiserverEditMode()) { return; }\r\n\r\n // Grab image data\r\n var $img = $(this);\r\n var imgAlt = $img.attr('alt');\r\n var imgSrc = $img.attr('src');\r\n\r\n // Check to see if we are a touch device, if so open in a new tab\r\n if (isTouchDevice()) {\r\n // Open in a new tab\r\n window.open(imgSrc, this.target, \"resizable,scrollbars,status\");\r\n return;\r\n }\r\n\r\n // Create a clone of the image\r\n var $copy = $('');\r\n $copy.attr('title', $img.attr('title'));\r\n $copy.attr('src', $img.attr('src'));\r\n $copy.attr('alt', $img.attr('alt'));\r\n $copy.removeClass('lightbox');\r\n\r\n // position the image in the center of the screen\r\n $copy.css({\r\n 'position': 'absolute',\r\n 'top': $img.offset().top - $(window).scrollTop() + $img.innerHeight() / 2,\r\n 'left': $img.offset().left - $(window).scrollLeft() + $img.innerWidth() / 2,\r\n 'max-width': $img.innerWidth(),\r\n 'max-height': $img.innerHeight()\r\n });\r\n\r\n var $altText = $('(view full size image)');\r\n\r\n $(LIGHTBOX_MODAL).html('');\r\n $altText.appendTo(LIGHTBOX_MODAL);\r\n $copy.appendTo(LIGHTBOX_MODAL);\r\n\r\n $(LIGHTBOX_MODAL).on('click', function () {\r\n var $that = $(this);\r\n // $(this).addClass('is-closing');\r\n window.setTimeout(function () {\r\n hideModal();\r\n }, 200);\r\n });\r\n\r\n showModal();\r\n }\r\n})(jQuery);\r\n","$(document).ready(function () {\r\n $(\".jqChangeFilters\").on(\"click\", performFilter);\r\n\r\n if (urlParam(\"department\") !== null && urlParam(\"location\") !== null) {\r\n updateFilterDropdownWithParam();\r\n }\r\n\r\n function performFilter() {\r\n var currentURL = window.location.href; //CURRENT LOCATION\r\n var currentValue = $(\".jqDepartmentFilter\").val(); //SELECT DROPDOWN VALUE FOR DEPARTMENT\r\n var currentLocation = $(\".jqLocationFilter\").val(); //SELECT DROPDOWN VALUE FOR LOCATION\r\n if (typeof currentValue && currentLocation === 'undefined') return;\r\n \r\n var newURL = updateQueryStringParameter(currentURL, 'department', currentValue); //UPDATING ONLY DEPARTMENT WITH NEWLY SELECTED VALUE\r\n newURL = updateQueryStringParameter(newURL, 'location', currentLocation); //UPDATING ONLY LOCATION WITH NEWLY SELECTED VALUE\r\n \r\n //console.log('currentURL = ', currentURL);\r\n //console.log('newURL = ', newURL);\r\n\r\n if (typeof newURL !== 'undefined' && newURL !== currentURL) {\r\n window.location.href = newURL;\r\n } \r\n }\r\n\r\n function updateFilterDropdownWithParam() {\r\n\r\n var urlDepartment = urlParam(\"department\");\r\n var urlLocation = urlParam(\"location\");\r\n\r\n urlDepartment = urlDepartment.replace(/\\+/g,' ');\r\n urlLocation = urlLocation.replace(/\\+/g,' ');\r\n\r\n urlDepartment = decodeURIComponent(urlDepartment);\r\n urlLocation = decodeURIComponent(urlLocation);\r\n\r\n //console.log('urlDepartment = ', urlDepartment);\r\n //console.log('urlLocation = ', urlLocation);\r\n\r\n if (urlDepartment || urlLocation !== null && $(\".jqDepartmentFilter,.jqLocationFilter\").length > 0) {\r\n\r\n //console.log('setting jqDepartmentFilter to ', urlDepartment);\r\n //console.log('setting jqLocationFilter to ', urlLocation);\r\n\r\n $(\".jqDepartmentFilter\").val(urlDepartment);\r\n $(\".jqLocationFilter\").val(urlLocation);\r\n }\r\n }\r\n \r\n function urlParam(name) {\r\n var reg = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\");\r\n var results = reg.exec(window.location.search);\r\n if (results) return decodeURI(results[1]) || null;\r\n else return null;\r\n }\r\n\r\n function updateQueryStringParameter(uri, key, value) {\r\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|#|$)\", \"i\");\r\n if (value === undefined) {\r\n if (uri.match(re)) {\r\n return uri.replace(re, '$1$2');\r\n } else {\r\n return uri;\r\n }\r\n } else {\r\n if (uri.match(re)) {\r\n return uri.replace(re, '$1' + key + \"=\" + value + '$2');\r\n } else {\r\n var hash = '';\r\n if (uri.indexOf('#') !== -1) {\r\n hash = uri.replace(/.*#/, '#');\r\n uri = uri.replace(/#.*/, '');\r\n }\r\n var separator = uri.indexOf('?') !== -1 ? \"&\" : \"?\";\r\n return uri + separator + key + \"=\" + value + hash;\r\n }\r\n }\r\n }\r\n});\r\n"]}