{"version":3,"sources":["eventDecorator.extensions.js","services.js","redirectHelper.js","nav-detection.js","btt.js","cards.js","jump-to-links.js","subs-toggle.js","faqs.js","table-scroll.js","multi-cta--radio.js","interactive-radios.js","contact-form.js","browse-faq-page.js","sticky-cta.js","textbox-lookup.js","footer-nav.js","tabbable-content.js","cms.js","cssConstants.js"],"names":["CSSCONSTANTS","CONFUSEDCMS","eventDecorator","extensions","$","oldShow","fn","show","ret","apply","this","arguments","trigger","jQuery","oldHide","hide","services","ns","ServiceProxy","endpoint","me","invoke","options","method","Error","success","url","console","log","data","JSON","stringify","xhr","ajax","type","contentType","converters","result","msg","window","parse","parseJSON","hasOwnProperty","d","error","jqXhr","textStatus","errorThrown","MiService","proxy","pageEvent","event","settings","extend","noop","CONFUSEDCORE","HELPERS","RedirectHelper","redirect","location","href","navDetection","init","header","document","querySelector","nav","classList","add","addEventListener","backToTop","bttLink","e","preventDefault","scroll","top","left","behavior","length","owlCarousel","loop","responsiveClass","dots","responsive","items","autoWidth","singleItem","click","jumpUrl","attr","width","animate","scrollTop","offset","toggleLink","activeClass","toggleControl","toggledDiv","toggleClass","aTag","hasClass","slideToggle","question","openClass","answer","on","setTimeout","removeClass","parent","find","addClass","slideDown","accShowMore","each","accWrapper","accItems","btnShowMore","loadedItems","loadedItemsValue","parseInt","linkURL","linkCopy","destinationLink","html","tableScroll","mobileTableScroll","scrollTable","parentElement","closest","firstElementChild","style","minWidth","multiCta","multiCtaLists","querySelectorAll","Array","prototype","forEach","call","multiCtaList","inputs","button","errorMsg","input","urlVal","target","getAttribute","display","setAttribute","pointerEvents","updateButtonUrl","disableButton","interactiveRadioButtons","interactiveSections","interactiveArea","answers","radioInputs","showResults","showError","removeError","modInteractiveRadioContainer","fieldset","validationError","remove","topRadio","radioContainer","fieldGroup","contains","errorContainer","createElement","errorMessage","innerHTML","appendChild","insertBefore","formInputValidationMessages","otherInputClicked","name","message","dataset","inputInvalid","id","value","trim","inputSkipped","re","test","substring","priority","isNaN","month","year","lastDayOfMonth","Date","getDate","inputInvalidDay","inputInvalidMonth","day","currentDay","currentYear","getFullYear","enteredDay","inputInvalidYear_past","inputInvalidYear_format","inputInvalidYear_age","inputWithoutSpaces","replace","noInput","checked","yesInput","keyInputs","code","keyCode","which","String","fromCharCode","formValidator","form","getElementById","totalErrors","validateInput","handleKeyInputs","formInputs","initialise","validateOnFieldEntry","field","textInputs","clickableInputs","hasAttribute","removeErrorOnFormInput","validateOnFormSubmit","validateFieldSet","rect","getBoundingClientRect","pageYOffset","scrollTo","additionalField","inputErrorArray","returnedError","undefined","push","removeAttribute","prioritiseErrorMessage","inputArr","isArray","item","includes","topPriority","showValidationErrors","pop","fieldInput","currentFieldErrorContainer","currentFieldError","errorMessageNode","setErrorBorderColour","errorMessageContainer","label","nextElementSibling","legend","errorId","inputNode","splitInput","split","removeChild","removeInputFromFormArray","addInputToFormArray","contactUsForm","subjectSelect","issuesSelect","errorSummaryBox","loginLink","chosenSubjectOption","chosenIssuesOption","questionAnswerContainer","contactDetailsForm","contactSucessCard","showContactDetails","hideContactDetails","validateForm","jsonData","textContent","valid","updateDataLayer","submitForm","populateSubjectSelectOptions","onchange","populateIssuesSelectOptions","onclick","checkSelectChecked","populateQuestionAnswerBox","toggleQuestionAnswerContainer","toggleContactDetails","checkIfPhoneDesired","stopPropagation","createLoginLink","hasQueryString","indexOf","selectedIndex","removeIssuesSelectOptions","parseQueryString","substringIndex","selectQueryStrings","parsedValue","join","setSelectAsQuerystringValue","callback","option","i","toLowerCase","formSuccess","erroredInputs","eventErrors","errorArray","dataLayer","eventSuccess","subject","subjectValue","checkIfInsuranceOption","isInsuranceProduct","childElementCount","createIssuesSelectedOptions","phoneField","phoneConsentYes","phoneConsentNo","isAnInsuranceProduct","insuranceRadio","currentlyCheckedInput","childNodes","lastChild","selected","disabled","hidden","issues","questionValue","questionAnswerBox","span","p","selectFieldGroup","issuesFieldGroup","formValid","dobDay","dobMon","dobYear","formInformation","product","MoreInformation","Title","FirstName","Surname","EmailAddress","Postcode","DateOfBirth","ContactPhoneQuestion","ContactPhoneNumber","HasPurchased","QuerySubject","QueryDescription","HttpAttributeReturnUrl","HttpAttributePriority","HttpAttributeOrigin","HttpAttributeExternal","XMLHttpRequest","open","setRequestHeader","onload","readyState","DONE","status","response","Success","returnUrl","send","faqPage","selects","select","handleSelectOnChange","accordionGroups","selectedAccordionGroup","group","accordionRow","stickyCta","stickyCtaEl","handleStickyCtaScroll","scrollY","textboxlookup","tbl","tblContainer","btn","handleInput","handleButton","validate","postToLocation","isValid","keyed","key","param","textInput","val","encodeURIComponent","queryStringSeparator","footerNav","content","resetAccordion","section","toggle","activateAccordion","cnfsdTabbableContent","setupTabs","tabButtons","tabContents","navContainer","leftArrow","rightArrow","index","handleTabClicks","watchNavScroll","handleNavScrollButtons","removeClasses","elementGroup","classname","elem","observer","IntersectionObserver","entries","entry","isIntersecting","root","rootMargin","threshold","observe","scrollHandler","scrollNav","scrollBy","scrollWidth","tabs","pageUrl","cookiePolicyWidget","Confused","CookiePolicyWidget","run","miListener","MI","MiListener","postPageView","page","referer","referrer","wasCookiePopupShown","postEvent","providerListClass","providerListMoreLinkClass","providersClass","hiddenProvidersClass","visibleProvidersClass","providerFilterClass","providerFilterShowAllClass","transactionalLandingPageHeroClass","transactionalLandingPageHeroHeadingClass","transactionalLandingPageHeroImageClass","transactionalLandingPageHeroActionClass","transactionalLandingPageHeroSpeechClass","reminderBoxClass","heroHelpContactClass","helpContactClass","productDriverClass","productDriverImageClass","productDriverNotesClass","productDriverLinkClass","responsiveTabsWrapperClass","responsiveTabsClass","responsiveTabsEnabledClass","responsiveTabsHeadingClass","responsiveTabsHeadingActiveClass","responsiveTabsPanelClass","responsiveTabsPanelActiveClass","responsiveTabsPanelClosedAccordionOnlyClass","responsiveTabsListClass","responsiveTabsListItemClass","responsiveTabsListItemActiveClass","responsiveTabsStepsClass"],"mappings":"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","file":"cms2.min.js","sourcesContent":["var CONFUSEDCMS = CONFUSEDCMS || {},\r\n\tCSSCONSTANTS = CSSCONSTANTS || {};\r\nCONFUSEDCMS.eventDecorator = CONFUSEDCMS.eventDecorator || {};\r\nCONFUSEDCMS.eventDecorator.extensions = CONFUSEDCMS.eventDecorator.extensions || {};\r\n\r\n// Extend jQuery to add custom events\r\n(function ($) {\r\n\t'use strict';\r\n\tvar oldShow = $.fn.show;\r\n\r\n\t$.fn.show = function () {\r\n\t\tvar ret = oldShow.apply(this, arguments);\r\n\r\n\t\tthis.trigger('show');\r\n\r\n\t\treturn ret;\r\n\t};\r\n})(jQuery);\r\n\r\n(function ($) {\r\n\t'use strict';\r\n\tvar oldHide = $.fn.hide;\r\n\r\n\t$.fn.hide = function () {\r\n\t\tvar ret = oldHide.apply(this, arguments);\r\n\r\n\t\tthis.trigger('hide');\r\n\r\n\t\treturn ret;\r\n\t};\r\n})(jQuery);\r\n","var CONFUSEDCMS = CONFUSEDCMS || {},\r\n\tCSSCONSTANTS = CSSCONSTANTS || {};\r\n\r\nCONFUSEDCMS.services = CONFUSEDCMS.services || {};\r\n\r\n(function (ns, $) {\r\n\t'use strict';\r\n\r\n\tns.ServiceProxy = function (endpoint) {\r\n\t\tif (!(this instanceof ns.ServiceProxy)) {\r\n\t\t\treturn new ns.ServiceProxy(endpoint);\r\n\t\t}\r\n\r\n\t\tvar me = this;\r\n\r\n\t\tme.endpoint = endpoint;\r\n\r\n\t\t/**\r\n\t\t * invoke the service proxy using the given options\r\n\t\t *\r\n\t\t * @param {object} options the options\r\n\t\t * @param {string} options.method the method to invoke\r\n\t\t * @param {object | string} options.data data to act as parameter for the remote method\r\n\t\t * @param {function} options.success callback for successful invocation\r\n\t\t * @param {function} [options.error] callback for error on invocation\r\n\t\t * @function\r\n\t\t */\r\n\t\tme.invoke = function (options) {\r\n\t\t\tif (!options.method) {\r\n\t\t\t\tthrow new Error('method not specified for service: ' + me.endpoint);\r\n\t\t\t}\r\n\t\t\tif (!options.success) {\r\n\t\t\t\tthrow new Error('success handler not supplied for service: ' + me.endpoint);\r\n\t\t\t}\r\n\r\n\t\t\tvar url = '/' + me.endpoint + '/' + options.method; // + '?t=' + Date.now();\r\n\t\t\tconsole.log(options.data);\r\n\t\t\tvar data = typeof options.data === 'object' ? JSON.stringify(options.data) : options.data;\r\n\r\n\t\t\tme.xhr = $.ajax({\r\n\t\t\t\ttype: 'POST',\r\n\t\t\t\turl: url,\r\n\t\t\t\tdata: data,\r\n\t\t\t\tcontentType: 'json',\r\n\t\t\t\t//handles stupid MS JSON format!!\r\n\t\t\t\tconverters: {\r\n\t\t\t\t\t'text json': function (result) {\r\n\t\t\t\t\t\tvar msg =\r\n\t\t\t\t\t\t\twindow.JSON && window.JSON.parse ? JSON.parse(result) : $.parseJSON('(' + result + ')');\r\n\r\n\t\t\t\t\t\t// eslint-disable-next-line no-prototype-builtins\r\n\t\t\t\t\t\treturn msg.hasOwnProperty('d') ? msg.d : msg;\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\tif (options.error) {\r\n\t\t\t\t\t\toptions.error(jqXhr, textStatus, errorThrown);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsuccess: function (result, textStatus, jqXhr) {\r\n\t\t\t\t\toptions.success(result, textStatus, jqXhr);\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n\r\n\t/**\r\n\t * Helper for recording client-side MI events\r\n\t *\r\n\t * @constructor\r\n\t */\r\n\tns.MiService = function () {\r\n\t\tif (!(this instanceof ns.MiService)) {\r\n\t\t\treturn new ns.MiService();\r\n\t\t}\r\n\r\n\t\tvar proxy = new ns.ServiceProxy('miv2');\r\n\r\n\t\t/**\r\n\t\t * Records the given event information against the given event\r\n\t\t *\r\n\t\t * @param {object} event the event object\r\n\t\t * @param {string} event.EventType eventTye\r\n\t\t * @param {string} event.EventInfo eventInfo\r\n\t\t * @param {object} event.Context any additional data\r\n\t\t * @param {object} options any additional options\r\n\t\t * @param {function} options.success success callback\r\n\t\t * @function\r\n\t\t */\r\n\t\tthis.pageEvent = function (event, options) {\r\n\t\t\tvar settings = $.extend({}, options, {\r\n\t\t\t\tmethod: 'Event',\r\n\t\t\t\tdata: event,\r\n\t\t\t\tsuccess: $.noop, //don't care about success with MI\r\n\t\t\t});\r\n\t\t\tproxy.invoke(settings);\r\n\t\t};\r\n\t};\r\n})(CONFUSEDCMS.services, jQuery);\r\n","var CONFUSEDCORE = CONFUSEDCORE || {};\r\nCONFUSEDCORE.HELPERS = CONFUSEDCORE.HELPERS || {};\r\n\r\n/*\r\n@desc: Redirect Helper\r\n */ \r\nCONFUSEDCORE.HELPERS.RedirectHelper = (function(){\r\n\r\n\treturn {\r\n\t\tredirect: function(url){\r\n\t\t\twindow.location.href = url;\r\n\t\t}\r\n\t};\r\n\r\n})();","var navDetection = (function () {\r\n\r\n\tfunction init() {\r\n\t\tvar header = document.querySelector('header');\r\n\t\tvar nav = header.querySelector('nav');\r\n\r\n\t\tif(typeof(nav) !== 'undefined' && nav !== null){\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tif (header) {\r\n\t\t\t\theader.classList.add('global-header--without-nav');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tinit: init\t\r\n\t };\r\n})();\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\tnavDetection.init();\r\n});\r\n","var backToTop = (function () {\r\n\tfunction init() {\r\n\t\tvar bttLink = document.querySelector('.btt-arrow');\r\n\t\tif (typeof bttLink !== 'undefined' && bttLink !== null) {\r\n\t\t\tbttLink.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\twindow.scroll({\r\n\t\t\t\t\ttop: 0,\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t\tbehavior: 'smooth',\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tinit: init,\r\n\t};\r\n})();\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\tbackToTop.init();\r\n});\r\n","(function ($) {\r\n\tif ($('.owl-carousel').length > 0) {\r\n\t\t// Run owl carousel\r\n\t\t$('.owl-carousel--multiple').owlCarousel({\r\n\t\t\tloop: false,\r\n\t\t\tresponsiveClass: true,\r\n\t\t\tdots: false,\r\n\t\t\tnav: true,\r\n\t\t\tresponsive: {\r\n\t\t\t\t0: {\r\n\t\t\t\t\titems: 1,\r\n\t\t\t\t},\r\n\t\t\t\t381: {\r\n\t\t\t\t\titems: 2,\r\n\t\t\t\t\tautoWidth: true,\r\n\t\t\t\t},\r\n\t\t\t\t1281: {\r\n\t\t\t\t\titems: 4,\r\n\t\t\t\t\tautoWidth: true,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\t$('.owl-carousel--single').owlCarousel({\r\n\t\t\tloop: false,\r\n\t\t\tresponsiveClass: true,\r\n\t\t\tdots: false,\r\n\t\t\tnav: true,\r\n\t\t\tsingleItem: true,\r\n\t\t\tresponsive: {\r\n\t\t\t\t0: {\r\n\t\t\t\t\titems: 1,\r\n\t\t\t\t},\r\n\t\t\t\t381: {\r\n\t\t\t\t\titems: 1,\r\n\t\t\t\t\tautoWidth: true,\r\n\t\t\t\t},\r\n\t\t\t\t1281: {\r\n\t\t\t\t\titems: 1,\r\n\t\t\t\t\tautoWidth: true,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n})(window.jQuery);\r\n","(function ($) {\r\n\tvar jumpLink = $('.jump-links a');\r\n\r\n\tjumpLink.click(function () {\r\n\t\tvar jumpUrl = $(this).attr('href');\r\n\r\n\t\tif ($(window).width() < 980) {\r\n\t\t\t$('html, body').animate({ scrollTop: $(jumpUrl).offset().top - 75 }, 500);\r\n\t\t} else {\r\n\t\t\t$('html, body').animate({ scrollTop: $(jumpUrl).offset().top - 80 }, 500);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t});\r\n})(window.jQuery);\r\n","(function ($) {\r\n\t// Show subs toggle\r\n\tvar toggleLink = $('.toggle-link'),\r\n\t\tactiveClass = 'active',\r\n\t\ttoggleCopy = $('.toggled-copy');\r\n\r\n\ttoggleCopy.hide();\r\n\r\n\ttoggleLink.click(function () {\r\n\t\tvar toggleControl = $(this).attr('aria-controls'),\r\n\t\t\ttoggledDiv = $('div#' + toggleControl);\r\n\r\n\t\t$(this).toggleClass('open');\r\n\r\n\t\tif ($(window).width() < 840) {\r\n\t\t\tvar aTag = $(this);\r\n\t\t\t$(this).toggleClass(activeClass);\r\n\t\t\tif ($(this).hasClass(activeClass)) {\r\n\t\t\t\t$('html,body').animate({ scrollTop: aTag.offset().top - 150 }, 400);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttoggledDiv.slideToggle();\r\n\r\n\t\treturn false;\r\n\t});\r\n})(window.jQuery);\r\n","(function ($) {\r\n\t// Accordion\r\n\tvar question = $('.mod-accordion__question'),\r\n\t\tquestionContent = $('.mod-accordion__content'),\r\n\t\tactiveClass = 'active',\r\n\t\topenClass = 'open',\r\n\t\tanswer = '.mod-row';\r\n\r\n\t$('.mod-accordion__question + .mod-row').hide();\r\n\r\n\tquestion.on('click', function () {\r\n\t\t// Get position of clicked link\r\n\t\tvar aTag = $(this);\r\n\r\n\t\t// Scroll to position of clicked link\r\n\t\tsetTimeout(function () {\r\n\t\t\t$('html,body').animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollTop: aTag.offset().top - 81,\r\n\t\t\t\t},\r\n\t\t\t\t300\r\n\t\t\t);\r\n\t\t}, 20);\r\n\r\n\t\tif ($(this).hasClass(activeClass)) {\r\n\t\t\t$(this).removeClass(activeClass);\r\n\t\t\t$(this).parent().find(answer).hide();\r\n\t\t\t$(this).parent().removeClass(openClass);\r\n\t\t} else {\r\n\t\t\t$(this).parent().addClass(openClass);\r\n\t\t\t$(this).addClass(activeClass);\r\n\t\t\t$(this).parent().find(answer).slideDown(400);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t});\r\n\r\n\t/* Accordion - Show more */\r\n\tvar accShowMore = $('.mod-accordion--show-more');\r\n\r\n\taccShowMore.find($('.mod-accordion__item')).hide();\r\n\r\n\t/* Look through each accordion with --show-more class */\r\n\taccShowMore.each(function () {\r\n\t\tvar accWrapper = $(this),\r\n\t\t\taccItems = accWrapper.find('> div').length,\r\n\t\t\tbtnShowMore = $(this).find('.mod-accordion__show-more'),\r\n\t\t\tloadedItems = $(this).attr('data-items-loaded'),\r\n\t\t\tloadedItemsValue = parseInt(loadedItems),\r\n\t\t\tlinkURL = $(this).attr('data-link-destination'),\r\n\t\t\tlinkCopy = $(this).attr('data-link-copy'),\r\n\t\t\tdestinationLink = $(this).find('.destination-link');\r\n\r\n\t\t/* show the \"show more\" button if more than 4 items */\r\n\t\tif (accItems > loadedItems) {\r\n\t\t\taccWrapper.find(btnShowMore).show();\r\n\t\t\tdestinationLink.hide();\r\n\t\t}\r\n\r\n\t\t/* show first 4 items of the accordion */\r\n\t\taccWrapper.find('> div:lt(' + loadedItems + ')').show();\r\n\r\n\t\tbtnShowMore.click(function () {\r\n\t\t\tloadedItemsValue = loadedItemsValue + 2;\r\n\r\n\t\t\t/* load the next 2 items */\r\n\t\t\t$(this)\r\n\t\t\t\t.parent()\r\n\t\t\t\t.find(' > div:lt(' + loadedItemsValue + ')')\r\n\t\t\t\t.show();\r\n\r\n\t\t\t/* \tif all items are loaded add 'loaded' text and add\r\n\t\t\t\t'loaded' class */\r\n\t\t\tif (loadedItemsValue >= accItems) {\r\n\t\t\t\t$(this).hide();\r\n\t\t\t\tdestinationLink.show().attr('href', linkURL).html(linkCopy);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t});\r\n\t});\r\n})(window.jQuery);\r\n","var tableScroll = (function () {\r\n\r\n function mobileTableScroll() {\r\n var scrollTable = document.querySelector(\".mod-table--scroll\");\r\n if (!scrollTable) {\r\n return;\r\n }\r\n var scrollTableParent = scrollTable.parentElement;\r\n scrollTableParent.closest(\".mod-flex\").firstElementChild.style.minWidth = \"0\";\r\n }\r\n\r\n return {\r\n mobileTableScroll: mobileTableScroll\r\n };\r\n\r\n})();\r\n\r\nwindow.addEventListener(\"load\", tableScroll.mobileTableScroll);","var multiCta = (function () {\r\n\tfunction init() {\r\n\t\tsetupClickHandlers();\r\n\t}\r\n\r\n\tfunction setupClickHandlers() {\r\n\t\tvar multiCtaLists = document.querySelectorAll('.field-group--multi-cta');\r\n\r\n\t\tif (multiCtaLists) {\r\n\t\t\tArray.prototype.forEach.call(multiCtaLists, function (multiCtaList) {\r\n\t\t\t\tvar inputs = multiCtaList.querySelectorAll('input[type=\"radio\"]');\r\n\t\t\t\tvar button = multiCtaList.querySelector('.btn.cta-action');\r\n\t\t\t\tvar errorMsg = multiCtaList.querySelector('.field-validation-error');\r\n\r\n\t\t\t\tArray.prototype.forEach.call(inputs, function (input) {\r\n\t\t\t\t\tinput.addEventListener('change', function (e) {\r\n\t\t\t\t\t\tvar urlVal = e.target.getAttribute('data-ctaUrl');\r\n\t\t\t\t\t\tremoveErrorClass(errorMsg);\r\n\t\t\t\t\t\tupdateButtonUrl(button, urlVal);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\tbutton.addEventListener('click', function (e) {\r\n\t\t\t\t\tif (!multiCtaList.querySelector('input[type=\"radio\"]:checked')) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\taddErrorClass(errorMsg);\r\n\t\t\t\t\t\tdisableButton(button);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfunction removeErrorClass(el) {\r\n\t\tel.style.display = 'none';\r\n\t}\r\n\r\n\tfunction addErrorClass(el) {\r\n\t\tel.style.display = 'block';\r\n\t}\r\n\r\n\tfunction disableButton(button) {\r\n\t\tbutton.style.pointerEvents = 'none';\r\n\t}\r\n\r\n\tfunction updateButtonUrl(button, urlVal) {\r\n\t\tbutton.setAttribute('href', urlVal);\r\n\t\tbutton.style.pointerEvents = 'all';\r\n\t}\r\n\r\n\treturn {\r\n\t\tinit: init,\r\n\t};\r\n})();\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\tmultiCta.init();\r\n});\r\n","var interactiveRadioButtons = {\r\n\tinteractiveSections: document.querySelectorAll('.mod-interactive-radio-buttons'),\r\n\r\n\tinit: function () {\r\n\t\tArray.prototype.forEach.call(interactiveRadioButtons.interactiveSections, function (interactiveArea) {\r\n\t\t\tvar answers = interactiveArea.querySelector('.mod-interactive-radio-buttons__answer'),\r\n\t\t\t\tquestions = interactiveArea.querySelector('.mod-interactive-radio-buttons__question'),\r\n\t\t\t\tradioInputs = interactiveArea.querySelectorAll('input[type=\"radio\"]'),\r\n\t\t\t\tbutton = interactiveArea.querySelector('a.btn');\r\n\r\n\t\t\t//HIDE THE ANSWERS ON LOAD\r\n\t\t\tanswers.style.display = 'none';\r\n\r\n\t\t\t//ADD EVENT LISTENER TO BUTTON TO SHOW ANSWER\r\n\t\t\tbutton.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tif (!interactiveArea.querySelector('input[type=\"radio\"]:checked')) {\r\n\t\t\t\t\treturn interactiveRadioButtons.showError(radioInputs[0]);\r\n\t\t\t\t}\r\n\t\t\t\treturn interactiveRadioButtons.showResults(interactiveArea);\r\n\t\t\t});\r\n\r\n\t\t\t//ADD EVENT LISTENER TO REMOVE ERROR (IF EXISTS), WHEN INPUT CLICKED\r\n\t\t\tArray.prototype.forEach.call(radioInputs, function (input) {\r\n\t\t\t\tinput.addEventListener('click', function (e) {\r\n\t\t\t\t\tinteractiveRadioButtons.removeError(interactiveArea);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tremoveError: function (modInteractiveRadioContainer) {\r\n\t\tvar fieldset = modInteractiveRadioContainer.querySelector('fieldset.field-group');\r\n\t\tvar validationError = modInteractiveRadioContainer.querySelector('.field-validation-error');\r\n\r\n\t\tif (fieldset) {\r\n\t\t\tfieldset.classList.remove('field-group--error');\r\n\t\t\tvalidationError.remove();\r\n\t\t}\r\n\t\treturn;\r\n\t},\r\n\r\n\tshowError: function (topRadio) {\r\n\t\t//RECEIVES FIRST RADIO BUTTON FOR ERROR POSITION\r\n\t\tvar radioContainer = topRadio.parentElement;\r\n\t\tvar fieldGroup = radioContainer.closest('fieldset');\r\n\r\n\t\tif (fieldGroup.classList.contains('field-group--error')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tfieldGroup.classList.add('field-group--error');\r\n\t\tvar errorContainer = document.createElement('div');\r\n\t\terrorContainer.classList.add('field-validation-error');\r\n\t\tvar errorMessage = document.createElement('div');\r\n\t\terrorMessage.innerHTML = 'Choose an answer';\r\n\t\terrorContainer.appendChild(errorMessage);\r\n\r\n\t\tradioContainer.parentElement.insertBefore(errorContainer, radioContainer);\r\n\t},\r\n\r\n\tshowResults: function (modInteractiveRadioContainer) {\r\n\t\tvar question = modInteractiveRadioContainer.querySelector('.mod-interactive-radio-buttons__question');\r\n\t\tvar answer = modInteractiveRadioContainer.querySelector('.mod-interactive-radio-buttons__answer');\r\n\r\n\t\tquestion.style.display = 'none';\r\n\t\tanswer.style.display = 'block';\r\n\t},\r\n};\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\t//IF THE INTERACTIVE RADIO BUTTONS EXIST ON THE PAGE\r\n\tif (interactiveRadioButtons.interactiveSections.length) {\r\n\t\tinteractiveRadioButtons.init();\r\n\t}\r\n});\r\n","var formInputValidationMessages = function (input, otherInputClicked) {\r\n\t//CHECKS WHAT TYPE OF FIELD AND PASSES BACK THE ERROR MESSAGE & FIELD ID\r\n\r\n\tif (input.name === 'subject_select') {\r\n\t\tif (otherInputClicked) {\r\n\t\t\treturn { message: input.dataset.inputInvalid, input: input.id };\r\n\t\t}\r\n\t\tif (input.value.trim() === '') {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.name === 'issues_select') {\r\n\t\tif (input.value.trim() === '' || input.value === 'Select an issue') {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.name === 'email address') {\r\n\t\t//SANITY CHECK EMAIL FORMAT\r\n\t\tvar re = /.+\\@.+\\..+/;\r\n\t\tif (!re.test(input.value || input.value.trim() === '')) {\r\n\t\t\treturn { message: input.dataset.inputInvalid, input: input.id };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.name === 'first name') {\r\n\t\tif (input.value.trim() === '') {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id };\r\n\t\t}\r\n\t\tif (input.value.length > 20 || input.value.length < 2) {\r\n\t\t\treturn { message: input.dataset.inputInvalid, input: input.id };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.name === 'last name') {\r\n\t\tif (input.value.trim() === '') {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id };\r\n\t\t}\r\n\t\tif (input.value.length > 30 || input.value.length < 2) {\r\n\t\t\treturn { message: input.dataset.inputInvalid, input: input.id };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.id.substring(0, 3) === 'dob') {\r\n\t\tif (input.value.trim() === '') {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id, priority: 0 };\r\n\t\t}\r\n\r\n\t\tif (isNaN(input.value)) {\r\n\t\t\treturn { message: input.dataset.inputInvalid, input: input.id, priority: 2 };\r\n\t\t}\r\n\r\n\t\tif (input.name === 'day') {\r\n\t\t\tvar month = document.querySelector('#dob_month').value;\r\n\t\t\tvar year = document.querySelector('#dob_year').value;\r\n\t\t\tvar lastDayOfMonth = new Date(year, month, 0).getDate();\r\n\r\n\t\t\tif (month || year !== null) {\r\n\t\t\t\tif (parseInt(input.value, 10) > lastDayOfMonth) {\r\n\t\t\t\t\t//IF DAY ENTERED NOT IN MONTH\r\n\t\t\t\t\treturn { message: input.dataset.inputInvalidDay, input: input.id, priority: 4 };\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (input.name === 'month') {\r\n\t\t\tif (input.value > 12 || input.value === 0) {\r\n\t\t\t\treturn { message: input.dataset.inputInvalidMonth, input: input.id, priority: 5 };\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (input.name === 'year') {\r\n\t\t\tvar day = document.querySelector('#dob_day');\r\n\t\t\tvar month = document.querySelector('#dob_month');\r\n\t\t\tvar currentDay = new Date();\r\n\t\t\tvar currentYear = currentDay.getFullYear();\r\n\t\t\tvar enteredDay = new Date(month.value + '/' + day.value + '/' + input.value);\r\n\r\n\t\t\tif (Date.parse(currentDay) < Date.parse(enteredDay)) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmessage: input.dataset.inputInvalidYear_past,\r\n\t\t\t\t\tinput: [day.id, month.id, input.id],\r\n\t\t\t\t\tpriority: 1,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (input.value.length < 4 || input.value.length > 4) {\r\n\t\t\t\treturn { message: input.dataset.inputInvalidYear_format, input: input.id, priority: 3 };\r\n\t\t\t}\r\n\r\n\t\t\tif (currentYear - 130 > input.value) {\r\n\t\t\t\treturn { message: input.dataset.inputInvalidYear_age, input: input.id, priority: 6 };\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.name === 'postcode') {\r\n\t\tvar inputWithoutSpaces = input.value.replace(/\\s/g, '');\r\n\t\t//POSTCODE REGEX FROM UK GOV\r\n\t\tvar re =\r\n\t\t\t/([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z]))))[0-9][A-Za-z]{2})/;\r\n\t\tif (input.value.trim() === '') {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id };\r\n\t\t}\r\n\t\tif (!re.test(inputWithoutSpaces)) {\r\n\t\t\treturn { message: input.dataset.inputInvalid, input: input.id };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.id === 'phone_consent-yes') {\r\n\t\tvar noInput = document.querySelector('#phone_consent-no');\r\n\t\tif (!input.checked && !noInput.checked) {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id, priority: 0 };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.id === 'phone_consent-no') {\r\n\t\tvar yesInput = document.querySelector('#phone_consent-yes');\r\n\t\tif (!input.checked && !yesInput.checked) {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id, priority: 99 };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.name === 'phone number') {\r\n\t\tif (input.value.trim() === '') {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id };\r\n\t\t}\r\n\r\n\t\tif (input.value.trim().length < 10 || input.value.trim().length > 14) {\r\n\t\t\treturn { message: input.dataset.inputInvalid, input: input.id };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.id === 'insurance_bought-yes') {\r\n\t\tvar noInput = document.querySelector('#insurance_bought-no');\r\n\t\tif (!input.checked && !noInput.checked) {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id, priority: 0 };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.id === 'insurance_bought-no') {\r\n\t\tvar yesInput = document.querySelector('#insurance_bought-yes');\r\n\t\tif (!input.checked && !yesInput.checked) {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id, priority: 99 };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.id === 'message_subject') {\r\n\t\tif (input.value.trim() === '') {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id };\r\n\t\t}\r\n\r\n\t\tif (input.value.length > 255) {\r\n\t\t\treturn { message: input.dataset.inputInvalid, input: input.id };\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.id === 'message_content') {\r\n\t\tif (input.value.trim() === '') {\r\n\t\t\treturn { message: input.dataset.inputSkipped, input: input.id };\r\n\t\t}\r\n\r\n\t\tif (input.value.length > 32000) {\r\n\t\t\treturn { message: input.dataset.inputInvalid, input: input.id };\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar keyInputs = function (e, input) {\r\n\tvar code = e.keyCode || e.which;\r\n\r\n\tif (input.id.substring(0, 3) === 'dob') {\r\n\t\tif (code === 8 || code === 13 || code === 9 || code === 27 || code === 110) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (isNaN(parseInt(String.fromCharCode(code), 10))) {\r\n\t\t\te.preventDefault();\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.id === 'phone_number') {\r\n\t\tif (\r\n\t\t\tcode === 8 ||\r\n\t\t\tcode === 13 ||\r\n\t\t\tcode === 9 ||\r\n\t\t\tcode === 27 ||\r\n\t\t\tcode === 32 ||\r\n\t\t\tcode === 188 ||\r\n\t\t\tcode === 43 ||\r\n\t\t\tcode === 187\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (isNaN(parseInt(String.fromCharCode(code), 10))) {\r\n\t\t\te.preventDefault();\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar formValidator = {\r\n\tform: document.getElementById('cnfsd-contact-form'),\r\n\ttotalErrors: 0,\r\n\tvalidateInput: formInputValidationMessages,\r\n\thandleKeyInputs: keyInputs,\r\n\tformInputs: [],\r\n\r\n\tinitialise: function () {\r\n\t\tformValidator.formInputs = formValidator.form.querySelectorAll('.field-group');\r\n\t\tformValidator.validateOnFieldEntry();\r\n\t},\r\n\r\n\tvalidateOnFieldEntry: function () {\r\n\t\t//ADDS EVENT LISTENER TO EACH INPUT TO REMOVE ERRORS WHEN INTERACTED WITH\r\n\t\tArray.prototype.forEach.call(formValidator.formInputs, function (field) {\r\n\t\t\tvar textInputs = field.querySelectorAll(\r\n\t\t\t\t\"input[type='text'], input[type='email'], input[type='password'], input[type='number'], textarea\"\r\n\t\t\t);\r\n\t\t\tvar clickableInputs = field.querySelectorAll(\"input[type='radio'], input[type='checkbox'], select\");\r\n\r\n\t\t\tArray.prototype.forEach.call(textInputs, function (input) {\r\n\t\t\t\tif (!input.hasAttribute('removeErrorOnInputChange')) {\r\n\t\t\t\t\tinput.addEventListener('keypress', function (e) {\r\n\t\t\t\t\t\tformValidator.handleKeyInputs(e, input);\r\n\t\t\t\t\t\tformValidator.removeErrorOnFormInput(input);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tinput.addEventListener('change', function (e) {\r\n\t\t\t\t\t\tformValidator.removeErrorOnFormInput(input);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tinput.setAttribute('error-remove-on-change', true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t//FOR CLICK INTO INPUTS (SELECTS, RADIOS)\r\n\t\t\tArray.prototype.forEach.call(clickableInputs, function (input) {\r\n\t\t\t\tinput.addEventListener('click', function (e) {\r\n\t\t\t\t\tformValidator.removeErrorOnFormInput(input);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tvalidateOnFormSubmit: function () {\r\n\t\t//LOOP THROUGH FORM & CHECK ERRORS\r\n\t\tformValidator.totalErrors = 0;\r\n\r\n\t\tArray.prototype.forEach.call(formValidator.formInputs, function (fieldGroup) {\r\n\t\t\tformValidator.validateFieldSet(fieldGroup);\r\n\t\t});\r\n\r\n\t\t//IF NO ERRORS EXIST, RETURN FORM\r\n\t\tif (formValidator.totalErrors === 0) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tvar error = document.querySelector('.field-group--error');\r\n\t\tvar rect = error.getBoundingClientRect().top + window.pageYOffset + -140;\r\n\t\twindow.scrollTo({ behavior: 'smooth', top: rect });\r\n\t\treturn false;\r\n\t},\r\n\r\n\tvalidateFieldSet: function (field, additionalField) {\r\n\t\tvar inputs = field.querySelectorAll('input, textarea, select');\r\n\r\n\t\tvar inputErrorArray = [];\r\n\t\tArray.prototype.forEach.call(inputs, function (input) {\r\n\t\t\tvar returnedError = formValidator.validateInput(input, additionalField);\r\n\r\n\t\t\tif (returnedError !== undefined) {\r\n\t\t\t\t//if error exists in input\r\n\t\t\t\treturnedError['field'] = field;\r\n\t\t\t\tinputErrorArray.push(returnedError);\r\n\t\t\t} else {\r\n\t\t\t\tinput.removeAttribute('aria-invalid'); //sanity removal of red border if no error exists;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (inputErrorArray.length > 0) {\r\n\t\t\tformValidator.prioritiseErrorMessage(inputErrorArray);\r\n\t\t\treturn (formValidator.totalErrors += 1);\r\n\t\t}\r\n\t},\r\n\r\n\tprioritiseErrorMessage: function (inputErrorArray) {\r\n\t\t//checks if field has multiple inputs and if so, prioritises error message\r\n\t\tif (inputErrorArray[0].priority !== undefined) {\r\n\t\t\t//check if priority scoring exists\r\n\t\t\tvar inputArr = [];\r\n\t\t\t//ADD EACH UNIQUE INPUT TO AN ARRAY FROM FIELDGROUP\r\n\t\t\tArray.prototype.forEach.call(inputErrorArray, function (input) {\r\n\t\t\t\tif (Array.isArray(input.input)) {\r\n\t\t\t\t\tArray.prototype.forEach.call(input.input, function (item) {\r\n\t\t\t\t\t\tinputArr.push(item);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (!inputArr.includes(input.input)) {\r\n\t\t\t\t\t\tinputArr.push(input.input);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tvar topPriority = [];\r\n\t\t\tArray.prototype.forEach.call(inputErrorArray, function (item) {\r\n\t\t\t\tif (!topPriority.length || item.priority < topPriority[0].priority) {\r\n\t\t\t\t\ttopPriority = [];\r\n\t\t\t\t\ttopPriority.push(item);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t//send highest priority message with the input array\r\n\t\t\tformValidator.showValidationErrors({\r\n\t\t\t\tinput: inputArr,\r\n\t\t\t\tmessage: topPriority[0].message,\r\n\t\t\t\tfield: inputErrorArray[0].field,\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tformValidator.showValidationErrors(inputErrorArray.pop());\r\n\t\t}\r\n\t},\r\n\r\n\tshowValidationErrors: function (field) {\r\n\t\tvar fieldInput = field.field;\r\n\t\tvar currentFieldErrorContainer = fieldInput.querySelectorAll('div.field-validation-error');\r\n\t\tvar currentFieldError = fieldInput.querySelectorAll('div.error-message');\r\n\r\n\t\tif (currentFieldError.length > 0 && currentFieldError[0].innerHTML === field.message) {\r\n\t\t\t//if message is same as one that exists\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (currentFieldError.length > 0 && currentFieldError[0].innerHTML !== field.message) {\r\n\t\t\t//if message is different, remove current error so that highest priority can be set\r\n\t\t\tcurrentFieldErrorContainer[0].remove();\r\n\t\t}\r\n\r\n\t\tvar errorMessageNode = document.createElement('div');\r\n\t\terrorMessageNode.classList.add('error-message');\r\n\t\terrorMessageNode.innerHTML = field.message;\r\n\t\terrorMessageNode.id = formValidator.setErrorBorderColour(field.input);\r\n\r\n\t\t//error message container html\r\n\t\tvar errorMessageContainer = document.createElement('div');\r\n\t\terrorMessageContainer.classList.add('field-validation-error');\r\n\t\terrorMessageContainer.appendChild(errorMessageNode);\r\n\r\n\t\tif (fieldInput.querySelectorAll('label.label--standard').length > 0) {\r\n\t\t\t//label is main form label\r\n\t\t\tvar label = fieldInput.querySelectorAll('label.label--standard');\r\n\t\t\tfieldInput.insertBefore(errorMessageContainer, label[0].nextElementSibling);\r\n\t\t\tfieldInput.classList.add('field-group--error');\r\n\t\t} else {\r\n\t\t\tvar legend = fieldInput.querySelectorAll('legend'); //legend is main form label\r\n\t\t\tfieldInput.insertBefore(errorMessageContainer, legend[0]);\r\n\t\t\tfieldInput.classList.add('field-group--error');\r\n\t\t}\r\n\t},\r\n\r\n\tsetErrorBorderColour: function (field) {\r\n\t\tvar errorId = '';\r\n\t\tif (Array.isArray(field)) {\r\n\t\t\tArray.prototype.forEach.call(field, function (input) {\r\n\t\t\t\tvar inputNode = document.querySelector('#' + input);\r\n\t\t\t\tvar splitInput = input.split('_');\r\n\t\t\t\terrorId = splitInput[0] + '-invalid';\r\n\t\t\t\tinputNode.setAttribute('aria-invalid', true);\r\n\t\t\t\tinputNode.setAttribute('aria-errormessage', errorId);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvar inputNode = document.querySelector('#' + field);\r\n\t\t\tinputNode.setAttribute('aria-invalid', true);\r\n\t\t\terrorId = field + '-invalid';\r\n\t\t\tinputNode.setAttribute('aria-errormessage', errorId);\r\n\t\t}\r\n\t\treturn errorId;\r\n\t},\r\n\r\n\tremoveErrorOnFormInput: function (input) {\r\n\t\tif (!input.hasAttribute('aria-invalid')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tinput.removeAttribute('aria-invalid');\r\n\t\tvar fieldGroup = input.closest('.field-group');\r\n\t\tvar message = fieldGroup.querySelectorAll('div.field-validation-error')[0];\r\n\r\n\t\tfieldGroup.classList.remove('field-group--error');\r\n\t\tif (message) {\r\n\t\t\tfieldGroup.removeChild(message);\r\n\t\t}\r\n\t},\r\n\r\n\tremoveInputFromFormArray: function (input) {\r\n\t\tvar field = input.closest('.field-group');\r\n\r\n\t\tif (field && field.classList.contains('field-group')) {\r\n\t\t\tfield.classList.add('field-group-hidden');\r\n\t\t\tfield.classList.remove('field-group');\r\n\t\t\tfield.style.display = 'none';\r\n\t\t}\r\n\t\tformValidator.formInputs = formValidator.form.querySelectorAll('.field-group');\r\n\t\treturn;\r\n\t},\r\n\r\n\taddInputToFormArray: function (input) {\r\n\t\tvar field = input.closest('.field-group-hidden');\r\n\r\n\t\tif (field && field.classList.contains('field-group-hidden')) {\r\n\t\t\tfield.classList.add('field-group');\r\n\t\t\tfield.classList.remove('field-group-hidden');\r\n\t\t\tfield.style.display = '';\r\n\t\t}\r\n\r\n\t\tformValidator.formInputs = formValidator.form.querySelectorAll('.field-group');\r\n\t\treturn;\r\n\t},\r\n};\r\n\r\nvar contactUsForm = {\r\n\tform: document.getElementById('cnfsd-contact-form'),\r\n\tsubjectSelect: document.getElementById('subject_select'),\r\n\tissuesSelect: document.getElementById('issues_select'),\r\n\terrorSummaryBox: document.querySelector('.mod-error-summary'),\r\n\tloginLink: document.getElementById('Login_Link'),\r\n\tchosenSubjectOption: null,\r\n\tchosenIssuesOption: null,\r\n\tquestionAnswerContainer: document.getElementById('cfq-question-toggle'),\r\n\tcontactDetailsForm: document.getElementById('cfq-contact-details-form'),\r\n\tcontactSucessCard: document.getElementById('cfq-contact-success'),\r\n\tbutton: document.getElementById('cfq0-continue'),\r\n\tshowContactDetails: document.getElementById('q0-yes'),\r\n\thideContactDetails: document.getElementById('q0-no'),\r\n\tvalidateForm: null,\r\n\tjsonData: null,\r\n\r\n\tinitialise: function () {\r\n\t\tvar jsonData = document.getElementById('cnfsd-contact-jsonData').textContent;\r\n\t\tcontactUsForm.jsonData = JSON.parse(jsonData);\r\n\r\n\t\tcontactUsForm.form.addEventListener('submit', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar valid = formValidator.validateOnFormSubmit();\r\n\t\t\tcontactUsForm.updateDataLayer(valid);\r\n\r\n\t\t\tif (valid) {\r\n\t\t\t\treturn contactUsForm.submitForm(valid);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tformValidator.initialise();\r\n\r\n\t\tcontactUsForm.populateSubjectSelectOptions();\r\n\r\n\t\tcontactUsForm.subjectSelect.onchange = function (e) {\r\n\t\t\tcontactUsForm.populateIssuesSelectOptions(e.target);\r\n\t\t};\r\n\r\n\t\tcontactUsForm.issuesSelect.onclick = function (e) {\r\n\t\t\tcontactUsForm.checkSelectChecked(e.target);\r\n\t\t};\r\n\r\n\t\tcontactUsForm.issuesSelect.onchange = function (e) {\r\n\t\t\tcontactUsForm.populateQuestionAnswerBox(e.target);\r\n\t\t};\r\n\r\n\t\tcontactUsForm.button.onclick = function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tcontactUsForm.toggleQuestionAnswerContainer();\r\n\t\t};\r\n\r\n\t\tcontactUsForm.hideContactDetails.onchange = function (e) {\r\n\t\t\tcontactUsForm.toggleContactDetails(e.target.value);\r\n\t\t};\r\n\r\n\t\tcontactUsForm.showContactDetails.onchange = function (e) {\r\n\t\t\tcontactUsForm.toggleContactDetails(e.target.value);\r\n\t\t};\r\n\r\n\t\tcontactUsForm.checkIfPhoneDesired();\r\n\r\n\t\tif (contactUsForm.loginLink) {\r\n\t\t\tcontactUsForm.loginLink.addEventListener('click', function (e) {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tcontactUsForm.createLoginLink();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar hasQueryString = window.location.href.indexOf('?product');\r\n\r\n\t\twindow.addEventListener('load', function (e) {\r\n\t\t\t//PREVENT DEFAULT BROWSER FUNCTIONALITY SETTING SELECTS TO PREVIOUS VALUES;\r\n\t\t\tif (hasQueryString !== -1) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (contactUsForm.subjectSelect.selectedIndex === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tcontactUsForm.populateIssuesSelectOptions(contactUsForm.subjectSelect);\r\n\t\t\tcontactUsForm.removeIssuesSelectOptions();\r\n\t\t\tcontactUsForm.showContactDetails.checked = false;\r\n\t\t\tcontactUsForm.hideContactDetails.checked = false;\r\n\t\t});\r\n\r\n\t\tif (hasQueryString) {\r\n\t\t\tcontactUsForm.parseQueryString(hasQueryString);\r\n\t\t}\r\n\t},\r\n\r\n\tparseQueryString: function (substringIndex) {\r\n\t\tvar queryString = window.location.href.substring(substringIndex + 1),\r\n\t\t\tselectQueryStrings = queryString.split('&');\r\n\r\n\t\t//CONVERT CODED QUERY STRING TO NORMAL TEXT\r\n\t\tArray.prototype.forEach.call(selectQueryStrings, function (item) {\r\n\t\t\tvar selectValue = item.substring(item.indexOf('=') + 1),\r\n\t\t\t\tparsedValue = selectValue.split('%27').join(\"'\").split('%20').join(' ');\r\n\r\n\t\t\tif (item.includes('product')) {\r\n\t\t\t\tcontactUsForm.setSelectAsQuerystringValue(\r\n\t\t\t\t\tcontactUsForm.subjectSelect,\r\n\t\t\t\t\tparsedValue,\r\n\t\t\t\t\tcontactUsForm.populateIssuesSelectOptions\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (item.includes('moreInformation') && contactUsForm.chosenSubjectOption) {\r\n\t\t\t\tcontactUsForm.setSelectAsQuerystringValue(\r\n\t\t\t\t\tcontactUsForm.issuesSelect,\r\n\t\t\t\t\tparsedValue,\r\n\t\t\t\t\tcontactUsForm.populateQuestionAnswerBox\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tsetSelectAsQuerystringValue: function (input, value, callback) {\r\n\t\t//SETS VALUE OF SELECT TO QUERY STRING\r\n\t\tvar options = input.querySelectorAll('option');\r\n\r\n\t\tArray.prototype.forEach.call(options, function (option, i) {\r\n\t\t\tif (option.value.toLowerCase() === value.toLowerCase()) {\r\n\t\t\t\tinput.selectedIndex = i;\r\n\t\t\t\tcallback(input);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tcreateLoginLink: function () {\r\n\t\t//GETS CURRENT LOGIN LINK AND APPENDS SUBJECT/ISSUE SELECT VALUES\r\n\t\tvar loginLink = contactUsForm.loginLink.href;\r\n\t\tloginLink += '%3Fproduct%3D' + contactUsForm.subjectSelect.value;\r\n\r\n\t\tif (contactUsForm.issuesSelect.value) {\r\n\t\t\tloginLink += '%26moreInformation%3D' + contactUsForm.issuesSelect.value;\r\n\t\t}\r\n\r\n\t\twindow.location.href = loginLink;\r\n\t},\r\n\r\n\tupdateDataLayer: function (formSuccess) {\r\n\t\t//GET ALL ERRORS IN FORM\r\n\t\tvar erroredInputs = contactUsForm.form.querySelectorAll(\r\n\t\t\t\"input[aria-invalid='true'], textarea[aria-invalid='true']\"\r\n\t\t);\r\n\r\n\t\t//CREATE ARRAY OF ERROR NAMES\r\n\t\tvar eventErrors = [];\r\n\t\tArray.prototype.forEach.call(erroredInputs, function (input) {\r\n\t\t\teventErrors.push(input.name);\r\n\t\t});\r\n\r\n\t\t//REMOVE REPEATED ERRORS (BASICALLY A SET/ SPREAD)\r\n\t\tvar errorArray = [];\r\n\t\tArray.prototype.forEach.call(eventErrors, function (item) {\r\n\t\t\tif (!errorArray.includes(item)) {\r\n\t\t\t\terrorArray.push(item);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//PUSH TO DATA LAYER\r\n\t\tdataLayer.push({\r\n\t\t\tevent: 'Contact Us',\r\n\t\t\teventSuccess: formSuccess,\r\n\t\t\teventErrors: errorArray,\r\n\t\t});\r\n\t},\r\n\r\n\tpopulateSubjectSelectOptions: function () {\r\n\t\t//CREATE SELECT OPTIONS FROM THE JASON FOUND IN SCRIPT TAG\r\n\t\tArray.prototype.forEach.call(contactUsForm.jsonData, function (item) {\r\n\t\t\tvar option = document.createElement('option');\r\n\t\t\toption.innerHTML = item.subject;\r\n\t\t\toption.value = item.subjectValue;\r\n\t\t\tcontactUsForm.subjectSelect.appendChild(option);\r\n\t\t});\r\n\t},\r\n\r\n\tpopulateIssuesSelectOptions: function (option) {\r\n\t\t//CREATES ISSUE SELECT OPTIONS FROM THE USER'S CHOSEN SELECT\r\n\t\tArray.prototype.forEach.call(contactUsForm.jsonData, function (item) {\r\n\t\t\tif (item.subjectValue === option.value) {\r\n\t\t\t\tcontactUsForm.chosenSubjectOption = item;\r\n\r\n\t\t\t\t//CHECKS IF THE SUBJECT IS AN INSURANCE TYPE\r\n\t\t\t\tcontactUsForm.checkIfInsuranceOption(item.isInsuranceProduct);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//CALLS FUNCTION TO REMOVE PREVIOUSLY ADDED OPTIONS\r\n\t\tif (contactUsForm.issuesSelect.childElementCount > 1) {\r\n\t\t\treturn contactUsForm.removeIssuesSelectOptions();\r\n\t\t}\r\n\t\tcontactUsForm.createIssuesSelectedOptions();\r\n\t},\r\n\r\n\tcheckIfPhoneDesired: function () {\r\n\t\tvar phoneInput = document.getElementById('phone_number'),\r\n\t\t\tphoneField = phoneInput.closest('fieldset.field-group'),\r\n\t\t\tphoneConsentYes = document.getElementById('phone_consent-yes'),\r\n\t\t\tphoneConsentNo = document.getElementById('phone_consent-no');\r\n\r\n\t\t//REMOVE PHONE INPUT BY DEFAULT\r\n\t\tformValidator.removeInputFromFormArray(phoneField);\r\n\r\n\t\t//ADD EVENT LISTENERS ON PHONE CONSENT RADIO BUTTONS TO ADD/REMOVE PHONE INPUT\r\n\t\tphoneConsentYes.addEventListener('change', function (e) {\r\n\t\t\tformValidator.addInputToFormArray(phoneField);\r\n\t\t});\r\n\r\n\t\tphoneConsentNo.addEventListener('change', function (e) {\r\n\t\t\tformValidator.removeInputFromFormArray(phoneField);\r\n\t\t});\r\n\t},\r\n\r\n\tcheckIfInsuranceOption: function (isAnInsuranceProduct) {\r\n\t\t//CHECKS IF THE OPTION SPECIFIED IS AN INSURANCE OPTION\r\n\t\tvar insuranceRadioSection = document.getElementById('insurance_bought-group');\r\n\t\tvar insuranceRadio = insuranceRadioSection.querySelector('input');\r\n\r\n\t\t//IF IT ISN'T AN INSURANCE PRODUCT, CALLS FUNCTION TO REMOVE/ ADD QUESTION FROM/ TO FORM\r\n\t\tif (isAnInsuranceProduct) {\r\n\t\t\tformValidator.addInputToFormArray(insuranceRadio);\r\n\t\t} else {\r\n\t\t\tvar currentlyCheckedInput = document.querySelector(\"input[name='insurance_bought']:checked\");\r\n\t\t\tif (currentlyCheckedInput !== null) {\r\n\t\t\t\tcurrentlyCheckedInput.checked = false;\r\n\t\t\t}\r\n\t\t\tformValidator.removeInputFromFormArray(insuranceRadio);\r\n\t\t}\r\n\t},\r\n\r\n\tremoveIssuesSelectOptions: function () {\r\n\t\t//REMOVES PREVIOUSLY ADDED OPTIONS\r\n\t\twhile (contactUsForm.issuesSelect.childNodes.length > 1) {\r\n\t\t\tcontactUsForm.issuesSelect.removeChild(contactUsForm.issuesSelect.lastChild);\r\n\t\t}\r\n\r\n\t\t//RECREATES THE DEFAULT SELECT AN ISSUE OPTION\r\n\t\tvar option = document.createElement('option');\r\n\t\toption.innerHTML = 'Select an issue';\r\n\t\toption.selected = option.disabled = option.hidden = true;\r\n\t\tcontactUsForm.issuesSelect.appendChild(option);\r\n\r\n\t\t//CALLS FUNCTION TO REPOPULATE THE CHOSEN\r\n\t\tcontactUsForm.createIssuesSelectedOptions();\r\n\t},\r\n\r\n\tcreateIssuesSelectedOptions: function () {\r\n\t\t//IF THERE IS ONLY ONE DEFAULT QUESTION FOR THE CHOSEN SUBJECT\r\n\t\tif (contactUsForm.chosenSubjectOption.issues.length === 1) {\r\n\t\t\tformValidator.removeInputFromFormArray(contactUsForm.issuesSelect);\r\n\r\n\t\t\t//CREATES OPTION\r\n\t\t\tvar option = document.createElement('option');\r\n\t\t\toption.innerHTML = contactUsForm.chosenSubjectOption.issues[0].question;\r\n\t\t\toption.value = contactUsForm.chosenSubjectOption.issues[0].questionValue;\r\n\r\n\t\t\t//SETS VALUE OF ISSUES SELECT AS OPTION\r\n\t\t\tcontactUsForm.issuesSelect.appendChild(option);\r\n\t\t\tcontactUsForm.issuesSelect.value = contactUsForm.chosenSubjectOption.issues[0].questionValue;\r\n\r\n\t\t\t//CALLS FUNCTION TO USE ANSWER FOR ANSWER BOX\r\n\t\t\tcontactUsForm.populateQuestionAnswerBox(option);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//IF THERE IS MORE THAN ONE OPTION AVAILABLE:\r\n\r\n\t\tformValidator.addInputToFormArray(contactUsForm.issuesSelect);\r\n\r\n\t\t//CREATE THE OPTIONS FOR ISSUES SELECT BASED ON THE CHOSEN SUBJECT\r\n\t\tArray.prototype.forEach.call(contactUsForm.chosenSubjectOption.issues, function (item) {\r\n\t\t\tvar option = document.createElement('option');\r\n\t\t\toption.innerHTML = item.question;\r\n\t\t\toption.value = item.questionValue;\r\n\t\t\tcontactUsForm.issuesSelect.appendChild(option);\r\n\t\t});\r\n\t},\r\n\r\n\tpopulateQuestionAnswerBox: function (option) {\r\n\t\tvar questionAnswerBox = document.querySelector('.mod-info-box');\r\n\t\tvar span = questionAnswerBox.querySelector('span');\r\n\t\tvar p = questionAnswerBox.querySelector('p');\r\n\r\n\t\tArray.prototype.forEach.call(contactUsForm.chosenSubjectOption.issues, function (item) {\r\n\t\t\tif (item.questionValue === option.value) {\r\n\t\t\t\tcontactUsForm.chosenIssuesOption = item;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//POPULATE THE QUESTION/ ANSWER BOX\r\n\t\tif (contactUsForm.chosenIssuesOption) {\r\n\t\t\tspan.innerHTML = contactUsForm.chosenIssuesOption.question;\r\n\t\t\tp.innerHTML = contactUsForm.chosenIssuesOption.answer;\r\n\t\t}\r\n\r\n\t\t//HANDLES CHANGES IN SELECT OPTIONS\r\n\t\tif (contactUsForm.button.style.display === 'none') {\r\n\t\t\tif (option.value === 'other') {\r\n\t\t\t\tcontactUsForm.questionAnswerContainer.style.display = 'none';\r\n\t\t\t\tcontactUsForm.contactDetailsForm.style.display = 'block';\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tcontactUsForm.questionAnswerContainer.style.display = 'block';\r\n\r\n\t\t\tif (!contactUsForm.showContactDetails.checked) {\r\n\t\t\t\tcontactUsForm.contactDetailsForm.style.display = 'none';\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\ttoggleQuestionAnswerContainer: function () {\r\n\t\t//CONTINUE BUTTON PRESSED\r\n\t\tvar selectFieldGroup = contactUsForm.subjectSelect.closest('.field-group');\r\n\t\tvar issuesFieldGroup = contactUsForm.issuesSelect.closest('.field-group');\r\n\r\n\t\t//IF NO SUBJECT SELECTED, CALL FUNCTION TO THROW ERROR\r\n\t\tif (!contactUsForm.chosenSubjectOption) {\r\n\t\t\treturn [formValidator.validateFieldSet(selectFieldGroup), formValidator.validateFieldSet(issuesFieldGroup)];\r\n\t\t}\r\n\r\n\t\t//IF NO ISSUE SELECTED, CALL FUNCTION TO THROW ERROR\r\n\t\tif (!contactUsForm.chosenIssuesOption) {\r\n\t\t\treturn formValidator.validateFieldSet(issuesFieldGroup);\r\n\t\t}\r\n\r\n\t\t//IF USER CHOOSES OTHER FROM ISSUES SELECT INPUT FOR THAT SUBJECT\r\n\t\tif (issuesFieldGroup && contactUsForm.issuesSelect.value === 'other') {\r\n\t\t\tcontactUsForm.questionAnswerContainer.style.display = 'none';\r\n\t\t\tcontactUsForm.button.style.display = 'none';\r\n\t\t\tcontactUsForm.contactDetailsForm.style.display = 'block';\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//ELSE SHOW THE ANSWER BOX\r\n\t\tcontactUsForm.questionAnswerContainer.style.display = 'block';\r\n\t\tcontactUsForm.button.style.display = 'none';\r\n\t},\r\n\r\n\tcheckSelectChecked: function () {\r\n\t\t//ERROR IF SELECT INPUT HAS NO VALUE\r\n\t\tif (!contactUsForm.chosenSubjectOption) {\r\n\t\t\tvar fieldGroup = contactUsForm.subjectSelect.closest('.field-group');\r\n\t\t\treturn formValidator.validateFieldSet(fieldGroup, true);\r\n\t\t}\r\n\t\treturn;\r\n\t},\r\n\r\n\ttoggleContactDetails: function (input) {\r\n\t\t//SHOW/HIDE CONTACT DETAILS FORM\r\n\t\tif (input === 'Yes') {\r\n\t\t\tcontactUsForm.contactDetailsForm.style.display = 'block';\r\n\t\t\tcontactUsForm.contactSucessCard.style.display = 'none';\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (input === 'No') {\r\n\t\t\tcontactUsForm.contactDetailsForm.style.display = 'none';\r\n\t\t\tcontactUsForm.contactSucessCard.style.display = 'flex';\r\n\t\t\treturn;\r\n\t\t}\r\n\t},\r\n\r\n\tsubmitForm: function (formValid) {\r\n\t\t//IF FORM IS VALID, SUBMIT THE INPUTS VALUES\r\n\t\tvar dobDay = document.getElementById('dob_day').value;\r\n\t\tvar dobMon = document.getElementById('dob_month').value;\r\n\t\tvar dobYear = document.getElementById('dob_year').value;\r\n\r\n\t\tvar formInformation = {\r\n\t\t\tproduct: document.getElementById('subject_select').value,\r\n\t\t\tMoreInformation: document.getElementById('issues_select').value,\r\n\t\t\tTitle: null,\r\n\t\t\tFirstName: document.getElementById('first_name').value,\r\n\t\t\tSurname: document.getElementById('last_name').value,\r\n\t\t\tEmailAddress: document.getElementById('email_address').value,\r\n\t\t\tPostcode: document.getElementById('postcode').value,\r\n\t\t\tDateOfBirth: dobDay + '/' + dobMon + '/' + dobYear,\r\n\t\t\tContactPhoneQuestion: document.querySelector(\"input[name='phone_consent']:checked\").value,\r\n\t\t\tContactPhoneNumber: document.getElementById('phone_number').value,\r\n\t\t\tHasPurchased: document.querySelector(\"input[name='insurance_bought']:checked\")\r\n\t\t\t\t? document.querySelector(\"input[name='insurance_bought']:checked\").value\r\n\t\t\t\t: '1',\r\n\t\t\tQuerySubject: document.getElementById('message_subject').value,\r\n\t\t\tQueryDescription: document.getElementById('message_content').value,\r\n\t\t\tHttpAttributeReturnUrl: document.getElementById('returnUrl')\r\n\t\t\t\t? document.getElementById('returnUrl').value\r\n\t\t\t\t: '',\r\n\t\t\tHttpAttributePriority: document.getElementById('HttpAttributePriority')\r\n\t\t\t\t? document.getElementById('HttpAttributePriority').value\r\n\t\t\t\t: '',\r\n\t\t\tHttpAttributeOrigin: document.getElementById('HttpAttributeOrigin')\r\n\t\t\t\t? document.getElementById('HttpAttributeOrigin').value\r\n\t\t\t\t: '',\r\n\t\t\tHttpAttributeExternal: document.getElementById('HttpAttributeExternal')\r\n\t\t\t\t? document.getElementById('HttpAttributeExternal').value\r\n\t\t\t\t: '',\r\n\t\t};\r\n\r\n\t\tvar xhr = new XMLHttpRequest();\r\n\t\txhr.open('POST', '/api/contact-us/self-serve-submit');\r\n\r\n\t\txhr.setRequestHeader('Content-type', 'application/json');\r\n\r\n\t\txhr.onload = function () {\r\n\t\t\tif (xhr.readyState === xhr.DONE) {\r\n\t\t\t\tif (xhr.status === 200) {\r\n\t\t\t\t\tvar response = JSON.parse(xhr.response);\r\n\t\t\t\t\tif (response.Success) {\r\n\t\t\t\t\t\tvar returnUrl = document.getElementById('returnUrl').value;\r\n\t\t\t\t\t\twindow.location.href = returnUrl;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcontactUsForm.errorSummaryBox.style.display = 'block';\r\n\t\t\t\t\t\tvar rect =\r\n\t\t\t\t\t\t\tcontactUsForm.errorSummaryBox.getBoundingClientRect().top + window.pageYOffset + -140;\r\n\t\t\t\t\t\twindow.scrollTo({ behavior: 'smooth', top: rect });\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcontactUsForm.errorSummaryBox.style.display = 'block';\r\n\t\t\t\t\tvar rect = contactUsForm.errorSummaryBox.getBoundingClientRect().top + window.pageYOffset + -140;\r\n\t\t\t\t\twindow.scrollTo({ behavior: 'smooth', top: rect });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\txhr.send(JSON.stringify(formInformation));\r\n\t},\r\n};\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\tif (formValidator.form) {\r\n\t\t//HIDE UI\r\n\t\tcontactUsForm.questionAnswerContainer.style.display = 'none';\r\n\t\tcontactUsForm.contactDetailsForm.style.display = 'none';\r\n\t\tcontactUsForm.contactSucessCard.style.display = 'none';\r\n\t\tcontactUsForm.initialise();\r\n\t}\r\n});\r\n","var faqPage = {\r\n\tselects: document.querySelectorAll('[data-id=\"help-center--select\"]'),\r\n\r\n\tinit: function () {\r\n\t\tArray.prototype.forEach.call(faqPage.selects, function (select) {\r\n\t\t\tfaqPage.handleSelectOnChange(select);\r\n\r\n\t\t\tselect.addEventListener('change', function (e) {\r\n\t\t\t\tfaqPage.handleSelectOnChange(e.target);\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\thandleSelectOnChange: function (select) {\r\n\t\t//SET THE SELECTED GROUP OF ACCORDIONS DEPENDING ON THE SELECT INPUT VALUE\r\n\t\tvar helpcenter = select.closest('[data-id=\"help-center\"]');\r\n\t\tvar accordionGroups = helpcenter.querySelectorAll('.mod-accordion');\r\n\t\tvar selectedAccordionGroup = accordionGroups[select.selectedIndex];\r\n\r\n\t\tArray.prototype.forEach.call(accordionGroups, function (group) {\r\n\t\t\tvar accordionRow = group.closest('.row.row--gutters-m');\r\n\t\t\tif (group !== selectedAccordionGroup) {\r\n\t\t\t\taccordionRow.style.display = 'none';\r\n\t\t\t} else {\r\n\t\t\t\taccordionRow.style.display = 'block';\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n};\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\tvar faqSelectExists = document.querySelector('[data-id=\"help-center\"]');\r\n\tif (faqSelectExists) {\r\n\t\tfaqPage.init();\r\n\t}\r\n});\r\n","var stickyCta = (function () {\r\n\tvar stickyCtaEl = document.querySelector('.mod-sticky-cta');\r\n\r\n\tfunction handleStickyCtaScroll(addClass) {\r\n\t\tif (addClass) {\r\n\t\t\tstickyCtaEl.classList.add('is-shown');\r\n\t\t} else {\r\n\t\t\tstickyCtaEl.classList.remove('is-shown');\r\n\t\t}\r\n\t}\r\n\r\n\twindow.addEventListener('scroll', function () {\r\n\t\tif (stickyCtaEl === null) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (window.scrollY >= 200) {\r\n\t\t\thandleStickyCtaScroll(true);\r\n\t\t} else {\r\n\t\t\thandleStickyCtaScroll(false);\r\n\t\t}\r\n\t});\r\n})();\r\n","const textboxlookup = {\r\n init: function () {\r\n const tbl = document.querySelectorAll('.textboxlookup');\r\n\r\n if (tbl.length === 0) {\r\n // Check for existance of .textboxlookup and return if none on the page\r\n return;\r\n } else {\r\n Array.prototype.forEach.call(tbl, function (tblContainer) {\r\n let input = tblContainer.querySelector('.textboxlookup__input');\r\n let btn = tblContainer.querySelector('.textboxlookup__button');\r\n if (input) {\r\n textboxlookup.handleInput(input, tblContainer);\r\n }\r\n if (btn) {\r\n textboxlookup.handleButton(btn, tblContainer, input);\r\n }\r\n });\r\n }\r\n },\r\n\r\n handleInput: function (input, tblContainer) {\r\n input.addEventListener('keypress', function (event) {\r\n textboxlookup.validate(event, input, tblContainer);\r\n });\r\n },\r\n\r\n handleButton: function (btn, tblContainer, input) {\r\n btn.addEventListener('click', function (event) {\r\n event.preventDefault();\r\n textboxlookup.postToLocation(event, input, tblContainer);\r\n });\r\n },\r\n\r\n\r\n validate: function (event, input, tblContainer) {\r\n let isValid = false;\r\n let keyed = event.keyCode || event.which || event.key;\r\n\r\n // Regex testing for aplha numeric inputs\r\n let regex = /^[\\w\\s]+$/;\r\n isValid = regex.test(String.fromCharCode(keyed));\r\n\r\n if (!isValid) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n if (input.classList.contains('insurance-group-registration-input')) return;\r\n\r\n if (event.keyCode === 13 || event.key === 'Enter') {\r\n event.preventDefault();\r\n if (isValid) {\r\n textboxlookup.postToLocation(event, input, tblContainer);\r\n }\r\n }\r\n return isValid;\r\n },\r\n\r\n postToLocation: function (event, input, tblContainer) {\r\n event.preventDefault();\r\n let url = '', \r\n param ='';\r\n\r\n //Using Window.location to redirect to url as the form post element is overriding the URL params\r\n if (input.value === '') {\r\n url = tblContainer.querySelector('meta[name=\"textboxlookup__urlWithoutValue\"]').getAttribute('content');\r\n window.location = url;\r\n } else {\r\n let textInput = input.value.replace(/\\s/g, '');\r\n let val = encodeURIComponent(textInput);\r\n url = tblContainer.querySelector('meta[name=\"textboxlookup__urlWithValue\"]').getAttribute('content');\r\n param = tblContainer.querySelector('meta[name=\"textboxlookup__urlParamValue\"]').getAttribute('content');\r\n\r\n let queryStringSeparator = url.indexOf('?') > -1 ? '&' : '?';\r\n window.location = `${url}${queryStringSeparator}${param}=${val}`;\r\n }\r\n }\r\n};\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n textboxlookup.init();\r\n});","var footerNav = (function () {\r\n\tvar content;\r\n\tfunction init() {\r\n\t\tif (document.querySelectorAll('.accordion-nav-container')) {\r\n\t\t\tcontent = document.querySelectorAll('.accordion-nav-container');\r\n\t\t\tcontent.forEach(function (section) {\r\n\t\t\t\tvar title = section.querySelector('.accordion-nav__titles--primary');\r\n\t\t\t\ttitle.addEventListener('click', function (event) {\r\n\t\t\t\t\tif (!section.classList.contains('accordion-open')) {\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\tresetAccordion();\r\n\t\t\t\t\t\tactivateAccordion(section);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresetAccordion();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfunction activateAccordion(section) {\r\n\t\tsection.classList.toggle('accordion-open');\r\n\t}\r\n\tfunction resetAccordion() {\r\n\t\tcontent.forEach(function (section) {\r\n\t\t\tsection.classList.remove('accordion-open');\r\n\t\t});\r\n\t}\r\n\treturn {\r\n\t\tinit: init,\r\n\t};\r\n})();\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\tfooterNav.init();\r\n});\r\n","const cnfsdTabbableContent = {\r\n\tinit: () => {\r\n\t\tcnfsdTabbableContent.setupTabs();\r\n\t},\r\n\r\n\tsetupTabs: () => {\r\n\t \r\n\t\t// Get all tabbed sections on the page\r\n\t\tconst tabSections = document.querySelectorAll(\".mod-tabbable-content\");\r\n\t\t\r\n\t\tlet tabButtons,\r\n\t\t\ttabContents,\r\n\t\t\tnav,\r\n\t\t\tnavContainer,\r\n\t\t\tleftArrow,\r\n\t\t\trightArrow;\r\n\t\t\r\n\t\t// Iterate through each tabbed section\r\n\t\ttabSections.forEach((section) => {\r\n\t\t\t\r\n\t\t\t// Get tab buttons and tab contents within the current section\r\n\t\t\tnav = section.querySelector('.mod-tabbable-content__nav');\r\n\t\t\tnavContainer = nav.querySelector('.mod-tabbable-content__nav-list');\r\n\t\t\ttabButtons = section.querySelectorAll(\".mod-tabbable-content__nav-button\");\r\n\t\t\ttabContents = section.querySelectorAll(\"[data-tabbableContent]\"),\r\n\t\t\tleftArrow = nav.querySelector('.mobile-nav__arrow--left'),\r\n\t\t\trightArrow = nav.querySelector('.mobile-nav__arrow--right');\r\n\t\t \r\n\t\t\t// Set the first tab as active on page load\r\n\t\t\ttabButtons[0].classList.add('active');\r\n \r\n\t\t\t// Show the first tab on page load\r\n\t\t\ttabContents.forEach((content, index) => {\r\n\t\t\t\tindex === 0 ? content.classList.add(\"initialised\") : content.classList.add(\"display-none\", \"initialised\");\r\n\t\t\t});\r\n\r\n\t\t\t// Handle tab clicks and show hide content \r\n\t\t\tcnfsdTabbableContent.handleTabClicks(tabButtons, tabContents);\r\n\t\t\tcnfsdTabbableContent.watchNavScroll(tabButtons, leftArrow, rightArrow);\r\n\t\t\tcnfsdTabbableContent.handleNavScrollButtons(navContainer, leftArrow, rightArrow);\r\n\t\t\t\r\n\t\t});\r\n\t},\r\n\r\n\tremoveClasses: (elementGroup, classname) => {\r\n\t\telementGroup.forEach(elem => elem.classList.remove(classname));\r\n\t}, \r\n\r\n\thandleTabClicks: (tabButtons, tabContents) => {\r\n\t\t// Add click event listener to each tab button within the current section\r\n\t\ttabButtons.forEach((button, index) => {\r\n\t\t\tbutton.addEventListener(\"click\", (event) => {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tcnfsdTabbableContent.removeClasses(tabButtons, 'active');\r\n\t\t\t\tbutton.classList.add('active');\r\n\t\t\t\t// Hide all tab contents within the current section\r\n\t\t\t\ttabContents.forEach((content) => {\r\n\t\t\t\t\tcontent.classList.add(\"display-none\");\r\n\t\t\t\t});\r\n\t\t\t\t// Show the clicked tab content within the current section\r\n\t\t\t\ttabContents[index].classList.remove(\"display-none\");\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\twatchNavScroll: (tabButtons, leftArrow, rightArrow) => {\r\n\r\n\t\t// Options for the Intersection Observer\r\n\t\tconst options = {\r\n\t\t\troot: null, // Use the viewport as the root\r\n\t\t\trootMargin: \"0px\",\r\n\t\t\tthreshold: 1.0, // 100% of the target element must be visible\r\n\t\t};\r\n\r\n\t\tconst handleIntersection = (entries, observer) => {\r\n\t\t\tentries.forEach((entry) => {\r\n\t\t\t \tif (entry.target === tabButtons[0]) {\r\n\t\t\t\t\t// First button\r\n\t\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\t\tleftArrow.classList.add('display-none');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tleftArrow.classList.remove('display-none');\r\n\t\t\t\t\t}\r\n\t\t\t\t} \r\n\t\t\t\t\r\n\t\t\t\tif (entry.target === tabButtons[tabButtons.length - 1]) {\r\n\t\t\t\t\t// Last button\r\n\t\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\t\trightArrow.classList.add('display-none');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\trightArrow.classList.remove('display-none');\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// Create an Intersection Observer instance\r\n\t\tconst observer = new IntersectionObserver(handleIntersection, options);\r\n\t\t\r\n\t\t// Observe each button\r\n\t\ttabButtons.forEach((button) => {\r\n\t\t\tobserver.observe(button);\r\n\t\t});\r\n\t},\r\n\r\n\thandleNavScrollButtons: (navContainer, leftArrow, rightArrow) => {\r\n\r\n\t\tconst scrollHandler = (event) => {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tcnfsdTabbableContent.scrollNav(navContainer, event);\r\n\t\t};\r\n\r\n\t\tleftArrow.addEventListener('click', scrollHandler);\r\n\t\trightArrow.addEventListener('click', scrollHandler);\r\n\t}, \r\n\r\n\r\n\tscrollNav: (navContainer, event) => {\r\n\t\t\r\n\t\t if (event.target.classList.contains('mobile-nav__arrow--left')) {\r\n\t\t\tnavContainer.scrollBy({\r\n\t\t\t\tleft: (navContainer.scrollWidth * -1),\r\n\t\t\t\t behavior: 'smooth'\r\n\t\t\t})\r\n\t\t } else {\r\n\t\t\tnavContainer.scrollBy({\r\n\t\t\t\tleft: navContainer.scrollWidth,\r\n\t\t\t\t behavior: 'smooth'\r\n\t\t\t})\r\n\t\t }\r\n\t}\r\n};\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n\tconst tabs = document.querySelectorAll(\".mod-tabbable-content\");\r\n\tif (tabs && tabs.length > 0) {\r\n\t cnfsdTabbableContent.init();\r\n\t}\r\n});","var CONFUSEDCORE = CONFUSEDCORE || {};\r\n\r\n// This function runs when the page is loaded\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n const cookieWall = document.querySelector(\".cookie-wall\");\r\n if (!cookieWall) return;\r\n\r\n var pageUrl = window.location.href;\r\n\r\n\t// RUN COOKIE POPUP WIDGET\r\n\tvar cookiePolicyWidget = window.Confused.CookiePolicyWidget;\r\n\tcookiePolicyWidget.run();\r\n\r\n\t//CONFUSEDCORE.MI.MiListener.postLogSession('LogNewSession');\r\n\t// TRIGGER NEW SESSION CALL IN MI - WAIT FOR CALLBACK FROM SESSION CALL THEN TRIGGER COOKIE POPUP SHOWN EVENT\r\n\tvar miListener = CONFUSEDCORE.MI.MiListener;\r\n\tmiListener.postPageView('LogPageView', { page: pageUrl, referer: document.referrer }, function () {\r\n\t\tif (cookiePolicyWidget.wasCookiePopupShown()) {\r\n\t\t\tmiListener.postEvent('CookiePopupShown');\r\n\t\t}\r\n\t});\r\n});\r\n","var CSSCONSTANTS = CSSCONSTANTS || {};\r\n\r\n(function () {\r\n\t/* only used by providerList.js */\r\n\tCSSCONSTANTS.providerListClass = 'provider-list';\r\n\tCSSCONSTANTS.providerListMoreLinkClass = 'provider-list-more-link';\r\n\tCSSCONSTANTS.providersClass = 'provider-list__provider';\r\n\tCSSCONSTANTS.hiddenProvidersClass = 'provider-list__provider--hidden';\r\n\tCSSCONSTANTS.visibleProvidersClass = 'provider-list__provider--visible';\r\n\tCSSCONSTANTS.providerFilterClass = 'js-provider-list-filter';\r\n\tCSSCONSTANTS.providerFilterShowAllClass = 'js-provider-list-show-all';\r\n\r\n\t/* only used by transactionalLandingPageHero.js */\r\n\tCSSCONSTANTS.transactionalLandingPageHeroClass = 'hero--transactional-landing';\r\n\tCSSCONSTANTS.transactionalLandingPageHeroHeadingClass = 'hero--transactional-landing__heading';\r\n\tCSSCONSTANTS.transactionalLandingPageHeroImageClass = 'hero--transactional-landing__image';\r\n\tCSSCONSTANTS.transactionalLandingPageHeroActionClass = 'hero--transactional-landing__action';\r\n\tCSSCONSTANTS.transactionalLandingPageHeroSpeechClass = 'hero--transactional-landing__speech';\r\n\r\n\tCSSCONSTANTS.reminderBoxClass = 'box--reminder';\r\n\r\n\t/* only used by searchResultsHero.js */\r\n\tCSSCONSTANTS.heroHelpContactClass = 'hero--help__contact';\r\n\tCSSCONSTANTS.helpContactClass = 'help-contact';\r\n\r\n\t/* only used by productDrivers.js */\r\n\tCSSCONSTANTS.productDriverClass = 'product-driver';\r\n\tCSSCONSTANTS.productDriverImageClass = 'product-driver__image';\r\n\tCSSCONSTANTS.productDriverNotesClass = 'product-driver__notes';\r\n\tCSSCONSTANTS.productDriverLinkClass = 'product-driver__link';\r\n\r\n\t/* used by responsiveTabs.js */\r\n\tCSSCONSTANTS.responsiveTabsWrapperClass = 'responsive-tabs-wrapper';\r\n\tCSSCONSTANTS.responsiveTabsClass = 'responsive-tabs';\r\n\tCSSCONSTANTS.responsiveTabsEnabledClass = 'responsive-tabs--enabled';\r\n\tCSSCONSTANTS.responsiveTabsHeadingClass = 'responsive-tabs__heading';\r\n\tCSSCONSTANTS.responsiveTabsHeadingActiveClass = 'responsive-tabs__heading--active';\r\n\tCSSCONSTANTS.responsiveTabsPanelClass = 'responsive-tabs__panel';\r\n\tCSSCONSTANTS.responsiveTabsPanelActiveClass = 'responsive-tabs__panel--active';\r\n\tCSSCONSTANTS.responsiveTabsPanelClosedAccordionOnlyClass = 'responsive-tabs__panel--closed-accordion-only';\r\n\tCSSCONSTANTS.responsiveTabsListClass = 'responsive-tabs__list';\r\n\tCSSCONSTANTS.responsiveTabsListItemClass = 'responsive-tabs__list__item';\r\n\tCSSCONSTANTS.responsiveTabsListItemActiveClass = 'responsive-tabs__list__item--active';\r\n\tCSSCONSTANTS.responsiveTabsStepsClass = 'responsive-tabs--steps';\r\n})();\r\n"]}