{ "version": 3, "file": "assets/js/main.js", "mappings": "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", "sources": [ "webpack://Module/./js/modules/accordion.js", "webpack://Module/./js/modules/clear-filters-link.js", "webpack://Module/./js/modules/cookie.js", "webpack://Module/./js/modules/copy-account-number.js", "webpack://Module/./js/modules/counter.js", "webpack://Module/./js/modules/cta-tracking.js", "webpack://Module/./js/modules/donation-banner.js", "webpack://Module/./js/modules/dropdown-tabs.js", "webpack://Module/./js/modules/dropdown.js", "webpack://Module/./js/modules/error-msg.js", "webpack://Module/./js/modules/floating-button.js", "webpack://Module/./js/modules/form-validation.js", "webpack://Module/./js/modules/forms.js", "webpack://Module/./js/modules/gift-teaser.js", "webpack://Module/./js/modules/header-searchbutton.js", "webpack://Module/./js/modules/hero-video.js", "webpack://Module/./js/modules/hero.js", "webpack://Module/./js/modules/impact-slider.js", "webpack://Module/./js/modules/infinite-scroll.js", "webpack://Module/./js/modules/lazyload.js", "webpack://Module/./js/modules/multiple-gifts-notification.js", "webpack://Module/./js/modules/navigation.js", "webpack://Module/./js/modules/new-story-widget.js", "webpack://Module/./js/modules/notification-banner.js", "webpack://Module/./js/modules/one-child-filter-flow-rc-widget.js", "webpack://Module/./js/modules/one-child-filter-flow.js", "webpack://Module/./js/modules/product-config-form.js", "webpack://Module/./js/modules/quote.js", "webpack://Module/./js/modules/select-option-tabs.js", "webpack://Module/./js/modules/share.js", "webpack://Module/./js/modules/site-searchbutton.js", "webpack://Module/./js/modules/tabs.js", "webpack://Module/./js/modules/text-field.js", "webpack://Module/./js/modules/thumbnail-select-image.js", "webpack://Module/./js/modules/validate-email.js", "webpack://Module/./js/modules/validate-phone.js", "webpack://Module/./js/modules/video-ds2.js", "webpack://Module/./js/modules/wallet-payment-notification.js", "webpack://Module/./js/modules/wordcount.js", "webpack://Module/./js/modules/yt-lazyload.js", "webpack://Module/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js", "webpack://Module/./node_modules/@babel/runtime/helpers/typeof.js", "webpack://Module/./node_modules/@babel/runtime/regenerator/index.js", "webpack://Module/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js", "webpack://Module/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js", "webpack://Module/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js", "webpack://Module/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js", "webpack://Module/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js", "webpack://Module/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js", "webpack://Module/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js", "webpack://Module/webpack/bootstrap", "webpack://Module/webpack/runtime/compat get default export", "webpack://Module/webpack/runtime/define property getters", "webpack://Module/webpack/runtime/hasOwnProperty shorthand", "webpack://Module/webpack/runtime/make namespace object" ], "sourcesContent": [ "// Accordion\nconst acc = document.getElementsByClassName('list--accordion');\n\nif (acc.length > 0) {\n\tlet i;\n\tfor (i = 0; i < acc.length; i++) {\n\t\tconst accPanel = acc[i].querySelectorAll('button.list__item-header');\n\t\tlet j;\n\t\tfor (j = 0; j < accPanel.length; j++) {\n\t\t\t// close all items on load if close-on-load attibute is true\n\t\t\tconst firstPanel = accPanel[0];\n\t\t\tconst firstPanelSibling = firstPanel.nextElementSibling;\n\n\t\t\tif (!acc[i].dataset.closeOnLoad === true) {\n\t\t\t\tfirstPanel.classList.add('active');\n\t\t\t\tfirstPanel.setAttribute('aria-expanded', 'true');\n\t\t\t\tfirstPanelSibling.style.maxHeight = firstPanelSibling.scrollHeight + 16 + 'px';\n\t\t\t}\n\n\t\t\t// Panel click event\n\t\t\taccPanel[j].addEventListener('click', function(e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tconst currentAcc = this.closest('.list--accordion');\n\t\t\t\tconst activePanelLinks = currentAcc.querySelectorAll('.active');\n\t\t\t\tconst panel = this.nextElementSibling;\n\n\t\t\t\tconst allPanels = currentAcc.querySelectorAll('.list__item-body');\n\n\t\t\t\t// Allow multiple panels to be open at once if the multipleActive data attribute is true\n\t\t\t\tif (!currentAcc.dataset.multipleActive === true) {\n\t\t\t\t\t// Close other active panels so only one is open at a time\n\t\t\t\t\t// Remove active class\n\t\t\t\t\tlet k;\n\t\t\t\t\tfor (k = 0; k < activePanelLinks.length; k++) {\n\t\t\t\t\t\tactivePanelLinks[k].classList.remove('active');\n\t\t\t\t\t\tactivePanelLinks[k].setAttribute('aria-expanded', 'false');\n\t\t\t\t\t}\n\t\t\t\t\t// Close all panels\n\t\t\t\t\tlet j;\n\t\t\t\t\tfor (j = 0; j < allPanels.length; j++) {\n\t\t\t\t\t\tallPanels[j].style.maxHeight = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Toggle between adding and removing the 'active' class\n\t\t\t\tif (this.classList.contains('active')) {\n\t\t\t\t\tthis.classList.remove('active');\n\t\t\t\t\tthis.setAttribute('aria-expanded', 'false');\n\t\t\t\t} else {\n\t\t\t\t\tthis.classList.add('active');\n\t\t\t\t\tthis.setAttribute('aria-expanded', 'true');\n\t\t\t\t}\n\n\t\t\t\t// Toggle between hiding and showing the active panel\n\t\t\t\tif (parseInt(panel.style.maxHeight, 10) > 0) {\n\t\t\t\t\tpanel.style.maxHeight = null;\n\t\t\t\t} else {\n\t\t\t\t\tpanel.style.maxHeight = panel.scrollHeight + 16 + 'px';\n\t\t\t\t}\n\n\t\t\t\t/* eslint-disable */\n\t\t\t\tif (typeof dataLayer !== 'undefined' && typeof doesAnalyticalCookieExist !== 'undefined' && !this.classList.contains('nav__link--accordion')) {\n\t\t\t\t\tconst panelTitle = this.querySelector('.subtitle').innerText;\n\t\t\t\t\t// GTM tracking event\n\t\t\t\t\tdataLayer.push({\n\t\t\t\t\t 'event': 'begin_gen_ev_faq'});\n\t\t\t\t}\n\t\t\t\t/* eslint-enable */\n\t\t\t});\n\t\t}\n\t\tconst accPanelV2 = acc[i].querySelectorAll('.list--accordion-v2 button.list__item-header');\n\t\tlet k;\n\t\tfor (k = 0; k < accPanelV2.length; k++) {\n\t\t\t// close all items on load if close-on-load attibute is true\n\t\t\tconst firstPanelV2 = accPanelV2[0];\n\t\t\tconst firstPanelSiblingV2 = firstPanelV2.nextElementSibling;\n\n\t\t\tif (!acc[i].dataset.closeOnLoad === true) {\n\t\t\t\tif (firstPanelV2.classList.contains('active')) {\n\t\t\t\t\tfirstPanelV2.classList.remove('active');\n\t\t\t\t\tfirstPanelV2.setAttribute('aria-expanded', 'false');\n\t\t\t\t\tfirstPanelSiblingV2.style.maxHeight = '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n", "// Clear all filters within the assigned link's parent container\nconst clearLinks = document.querySelectorAll('.js-clear-filters-link');\n\nif (clearLinks.length > 0) {\n\tlet i;\n\tfor (i = 0; i < clearLinks.length; i++) {\n\t\t// For each cleared link get the parent container\n\t\tconst filtersContainer = clearLinks[i].closest('.filter-container');\n\n\t\tclearLinks[i].addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\n\t\t\t// Clear all checkboxes\n\t\t\tconst checkboxes = filtersContainer.querySelectorAll('.checkbox__input');\n\t\t\tif (checkboxes.length > 0) {\n\t\t\t\tlet i;\n\t\t\t\tfor (i = 0; i < checkboxes.length; i++) {\n\t\t\t\t\tcheckboxes[i].checked = false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Clear all select dropdowns\n\t\t\tconst dropdowns = filtersContainer.querySelectorAll('.dropdown select');\n\t\t\tif (dropdowns.length > 0) {\n\t\t\t\tlet i;\n\t\t\t\tfor (i = 0; i < dropdowns.length; i++) {\n\t\t\t\t\tconst dropdownParent = dropdowns[i].closest('.form__input-container');\n\t\t\t\t\tconst dropdownHiddenValue = dropdownParent.querySelector('.js-select__value');\n\t\t\t\t\tconst dropdownFirstOptionText = dropdowns[i].options[0].text;\n\t\t\t\t\tconst dropdownVisibleText = dropdownParent.querySelector('.select-selected');\n\t\t\t\t\tconst sameAsSelected = dropdownParent.querySelector('.same-as-selected');\n\n\t\t\t\t\t// Restore first option to selected option:\n\t\t\t\t\t// Set visible text to first option\n\t\t\t\t\tdropdownVisibleText.innerText = dropdownFirstOptionText;\n\t\t\t\t\t// Remove selected styling from selected option if there is one\n\t\t\t\t\tif (sameAsSelected != null) {\n\t\t\t\t\t\tsameAsSelected.classList.remove('same-as-selected');\n\t\t\t\t\t}\n\t\t\t\t\t// Clear hidden selected value input\n\t\t\t\t\tdropdownHiddenValue.value = '';\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n", "// Set cookie function\nfunction setCookie(cname, cvalue, exdays) {\n\tconst d = new Date();\n\td.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\n\tconst expires = 'expires=' + d.toUTCString();\n\tdocument.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\n}\n\nfunction getCookie(cname) {\n\tconst name = cname + '=';\n\tconst ca = document.cookie.split(';');\n\tfor (let i = 0; i < ca.length; i++) {\n\t\tlet c = ca[i];\n\t\twhile (c.charAt(0) === ' ') {\n\t\t\tc = c.substring(1);\n\t\t}\n\t\tif (c.indexOf(name) === 0) {\n\t\t\treturn c.substring(name.length, c.length);\n\t\t}\n\t}\n\treturn '';\n}\n\nfunction optimizelySendHoldEvent() {\n\t/* eslint-disable */\n\tconst optimizelyAllowDataSharing = getCookie('optimizelyAllowDataSharing') ? true : false;\n\tconst optimizelyEndUserId = getCookie('optimizelyEndUserId') ? true : false;\n\t// Initialize the Optimizely variable\n\twindow.optimizely = window.optimizely || [];\n\t// Prevent events from being send to Optimizely if the data sharing cookie is not set\n\tif (optimizelyAllowDataSharing && optimizelyEndUserId ) {\n\t\twindow.optimizely.push({\n\t\t\ttype: 'sendEvents'\n\t\t});\n\t} else {\n\t\twindow.optimizely.push({\n\t\t\ttype: 'holdEvents'\n\t\t});\n\t}\n\t/* eslint-disable */\n}\n\nconst cookieOverlay = document.querySelector('.cookie-overlay');\n\nif (!getCookie('cookieAccept') && cookieOverlay != null) {\n\tconst cookieBanner = document.querySelector('.cookie-banner');\n\tconst cookiePrimary = document.querySelector('.cookie-primary');\n\tconst cookieSecondary = document.querySelector('.cookie-secondary');\n\tconst cookieStep2 = document.querySelector('.cookie-step2');\n\tconst cookieCancel = document.querySelector('.cookie-cancel');\n\tconst cookieSave = document.querySelector('.cookie-save');\n\n\tcookieOverlay.style.display = 'block';\n\tcookieBanner.style.display = 'flex';\n\n\t// Set necessaryCookies to be disabled\n\tconst necessaryInput = document.querySelector('[data-cookie-value=\"necessaryCookie\"]');\n\n\tif (necessaryInput != null) {\n\t\tconst necessaryInputParent = necessaryInput.closest('.checkbox');\n\t\tnecessaryInputParent.classList.add('checkbox--inactive');\n\t\tnecessaryInput.checked = true;\n\t}\n\n\t// Accept all cookies\n\tdocument.querySelector('.cookie-accept-all').addEventListener('click', function(e) {\n\t\te.preventDefault();\n\n\t\t// Get all cookies\n\t\tconst allCookies = document.getElementsByClassName('cookie-switch');\n\t\tconst optimizelyEndUserId = getCookie('optimizelyEndUserId') ? true : false;\n\t\tif (allCookies.length > 0) {\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < allCookies.length; i++) {\n\t\t\t\tsetCookie(allCookies[i].dataset.cookieValue, 'true', 365);\n\t\t\t}\n\t\t\tif (optimizelyEndUserId) {\n\t\t\t\tsetCookie('optimizelyAllowDataSharing', 'true', 365);\n }\n\t\t} else {\n\t\t\tsetCookie('necessaryCookie', 'true', 365);\n\t\t\tsetCookie('analyticalCookie', 'true', 365);\n\t\t\tsetCookie('marketingCookie', 'true', 365);\n\t\t\tif (optimizelyEndUserId) {\n\t\t\t\tsetCookie('optimizelyAllowDataSharing', 'true', 365);\n\t\t\t}\n\t\t}\n\t\tsetCookie('cookieAccept', 'true', 365);\n\n\t\t// function to set/hold optimisely event.\n\t\toptimizelySendHoldEvent();\n\n\t\t/* eslint-disable */\n\t\t// Push cookie choices to GTM\n\t\tdataLayer.push({\n\t\t\t'event': 'cookieConsent',\n\t\t\t'consentMarketing': true,\n\t\t\t'consentAnalytics': true\n\t\t});\n\t\t/* eslint-enable */\n\n\t\tcookieOverlay.style.display = 'none';\n\t\tcookieBanner.style.display = 'none';\n\t});\n\n\tif (cookieStep2 != null) {\n\t\tcookieStep2.addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\tcookiePrimary.style.display = 'none';\n\t\t\tcookieSecondary.style.display = 'block';\n\t\t});\n\t}\n\n\tif (cookieCancel != null) {\n\t\tcookieCancel.addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\tcookiePrimary.style.display = 'block';\n\t\t\tcookieSecondary.style.display = 'none';\n\t\t});\n\t}\n\n\tif (cookieSave != null) {\n\t\tcookieSave.addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\n\t\t\t// Get all selected cookies\n\t\t\tconst allCookies = document.getElementsByClassName('cookie-switch');\n\n\t\t\tif (allCookies.length > 0) {\n\t\t\t\tlet i;\n\t\t\t\tfor (i = 0; i < allCookies.length; i++) {\n\t\t\t\t\tif (allCookies[i].checked === true) {\n\t\t\t\t\t\t// Only set the cookies that have been selected\n\t\t\t\t\t\tsetCookie(allCookies[i].dataset.cookieValue, 'true', 365);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* eslint-disable */\n\t\t\tconst analyticalCookieSave = getCookie('analyticalCookie') ? true : false;\n\t\t\tconst marketingCookieSave = getCookie('marketingCookie') ? true : false;\n\t\t\tconst optimizelyEndUserId = getCookie('optimizelyEndUserId') ? true : false;\n\n\t\t\tif (optimizelyEndUserId && analyticalCookieSave) {\n\t\t\t\tsetCookie('optimizelyAllowDataSharing', 'true', 365);\n\t\t\t\t// function to set/hold optimisely event.\n\t\t\t\toptimizelySendHoldEvent();\n\t\t\t}\n\n\t\t\t// Push cookie choices to GTM\n\t\t\tdataLayer.push({\n\t\t\t\t'event': 'cookieConsent',\n\t\t\t\t'consentMarketing': marketingCookieSave,\n\t\t\t\t'consentAnalytics': analyticalCookieSave\n\t\t\t});\n\t\t\t/* eslint-enable */\n\n\t\t\tsetCookie('cookieAccept', 'true', 365);\n\n\t\t\tcookieOverlay.style.display = 'none';\n\t\t\tcookieBanner.style.display = 'none';\n\t\t});\n\t}\n};\n", "const copyButton = document.getElementById('copy-account-number');\nif (copyButton != null) {\n\tcopyButton.onclick = function(e) {\n\t\tconst copyText = document.getElementById('copy-account-number').getAttribute('data-text');\n\t\tconst textarea = document.createElement('textarea');\n\t\ttextarea.textContent = copyText;\n\t\ttextarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in MS Edge.\n\t\tdocument.body.appendChild(textarea);\n\t\ttextarea.select();\n\t\tdocument.execCommand('copy');\n\t\tdocument.body.removeChild(textarea);\n\t\te.preventDefault();\n\t};\n}\n", "// How long you want the animation to take, in ms\nconst animationDuration = 1000;\n// Calculate how long each ‘frame’ should last\nconst frameDuration = 1000 / 60;\n// Calculate how many frames we need to complete the animation\nconst totalFrames = Math.round(animationDuration / frameDuration);\n// An ease-out function that slows the count as it progresses\nconst easeOutQuad = t => t * (2 - t);\n\n// The animation function, which takes an Element\nconst animateCountUp = el => {\n\tlet frame = 0;\n\tconst countTo = parseInt(el.innerHTML, 10);\n\t// Start the animation running\n\tconst counter = setInterval(() => {\n\t\tframe++;\n\n\t\tconst progress = easeOutQuad(frame / totalFrames);\n\t\t// Use the progress value to calculate the current count\n\t\tconst currentCount = Math.round(countTo * progress);\n\t\t// If the current count has changed, update the element\n\t\tif (parseInt(el.innerHTML, 10) !== currentCount) {\n\t\t\tel.innerHTML = currentCount;\n\t\t}\n\t\t// If we’ve reached our last frame, stop the animation\n\t\tif (frame === totalFrames) {\n\t\t\tclearInterval(counter);\n\t\t}\n\t}, frameDuration);\n};\n\n// Run the animation on all elements with a class of ‘countup’\nconst countupEls = document.querySelectorAll('.countup');\n\nif (countupEls.length > 0) {\n\tconst countContainer = document.querySelector('.accountability');\n\n\t/* eslint-disable */\n\tvar countObserver = new IntersectionObserver(function(entries) {\n\t\tif (entries[0].isIntersecting === true) {\n\t\t\tcountupEls.forEach(animateCountUp);\n\t\t}\n\t}, { threshold: [0.3] });\n\n\tcountObserver.observe(countContainer);\n\t/* eslint-enable */\n}\n", "// CTA tracking on button click\nconst trackedButtons = document.querySelectorAll('a.button');\n\nif (trackedButtons.length > 0) {\n\tlet i;\n\tfor (i = 0; i < trackedButtons.length; i++) {\n\t\ttrackedButtons[i].addEventListener('click', function(e) {\n\t\t\t// Get button hierarchy class\n\t\t\tconst hierarchyClasslist = this.classList;\n\t\t\tlet hierarchyClass;\n\n\t\t\tif (hierarchyClasslist.contains('button--secondary')) {\n\t\t\t\thierarchyClass = 'secondary';\n\t\t\t} else {\n\t\t\t\thierarchyClass = 'primary';\n\t\t\t}\n\n\t\t\t// Get button label text\n\t\t\tlet innerTxt = this.textContent || this.innerText;\n\t\t\tinnerTxt = innerTxt.trim();\n\n\t\t\t// Get page path\n\t\t\tconst pagePath = window.location.href;\n\n\t\t\t/* eslint-disable */\n\t\t\tif (typeof dataLayer !== 'undefined' && typeof doesAnalyticalCookieExist !== 'undefined') {\n\t\t\t\t// Push link title to datalayer\n\t\t\t\tdataLayer.push({\n\t\t\t\t\t'event': 'gen_ev_navigation',\n\t\t\t\t\t'event_category': 'navigation',\n\t\t\t\t\t'event_action': 'call to action',\n\t\t\t\t\t'event_label': hierarchyClass + ' - ' + innerTxt + ' - ' + pagePath,\n\t\t\t\t\t'non_interaction': false\n\t\t\t\t});\n\t\t\t}\n\t\t\t/* eslint-enable */\n\t\t});\n\t}\n}\n", "// JS for Product Configuration Banner\nconst productConfigBanner = document.querySelectorAll('.product-config-validate');\n\nif (productConfigBanner != null) {\n\tlet i;\n\tfor (i = 0; i < productConfigBanner.length; i++) {\n\t\tconst productConfigManualInput = productConfigBanner[i].querySelector('input[type=\"number\"]');\n\n\t\tproductConfigManualInput.addEventListener('keypress', function(e) {\n\t\t\t// Validation\n\t\t\tif (e.which < 48 || e.which > 57) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t});\n\t\tproductConfigManualInput.addEventListener('keyup', function(e) {\n\t\t\t// Restrict this from being greater than the maxlength\n\t\t\tif (this.value.length > this.maxLength) {\n\t\t\t\tthis.value = this.value.slice(0, this.maxLength);\n\t\t\t}\n\t\t});\n\t}\n}\n", "// Tabs are controlled by a select dropdown\nconst dropdownTabContainer = document.querySelector('.dropdown-tab__container');\nconst openError = document.querySelector('.payment-notification.notification-banner');\n\nif (dropdownTabContainer != null) {\n\tconst dropdownTabs = dropdownTabContainer.querySelectorAll('.dropdown-content__tab');\n\tconst tabSelect = dropdownTabContainer.querySelector('.select-selected');\n\t// Make first tab active on page load\n\tlet i;\n\tfor (i = 0; i < dropdownTabs.length; i++) {\n\t\tdropdownTabs[0].classList.add('dropdown-content__tab--active');\n\t}\n\n\tconst MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\tconst observer = new MutationObserver(showHideTabs); // Run function to show/hide tabs whenever tabSelect is changed\n\tobserver.observe(tabSelect, { // Listen to changes on tabSelect\n\t\tchildList: true\n\t});\n\n\t// Show tab that corresponds to index of selected option\n\tfunction showHideTabs() {\n\t\tconst selectedTabNumber = parseInt(tabSelect.dataset.tab);\n\n\t\tlet i;\n\t\tfor (i = 0; i < dropdownTabs.length; i++) {\n\t\t\tdropdownTabs[i].classList.remove('dropdown-content__tab--active');\n\n\t\t\tif (i === (selectedTabNumber - 1)) { // Subtract one from selected tab number to account for disabled option\n\t\t\t\tdropdownTabs[i].classList.add('dropdown-content__tab--active');\n\t\t\t}\n\t\t}\n\t}\n}\n\n// If there's an error message showing, show the corresponding tab\nif (openError != null) {\n\tconst dropdownTabs = dropdownTabContainer.querySelectorAll('.dropdown-content__tab');\n\tconst tabSelect = dropdownTabContainer.querySelector('.select-selected');\n\tlet errorID = openError.id;\n\terrorID = errorID.replace('-Dialog', '');\n\tconst dropdownPaymentMethodOption = document.querySelectorAll('.dropdown--payment-method option');\n\n\tlet i;\n\tfor (i = 0; i < dropdownTabs.length; i++) { // Make tab associated with error message active\n\t\tdropdownTabs[i].classList.remove('dropdown-content__tab--active');\n\n\t\tif (dropdownTabs[i].getAttribute('data-tab-error-id') === errorID) { // Set relevant tab to be active, update data attribute\n\t\t\tconst thisDropdownOption = dropdownPaymentMethodOption[i + 1]; // Add one to tab number to account for disabled option\n\t\t\ttabSelect.dataset.tab = i + 1;\n\t\t\ttabSelect.innerHTML = thisDropdownOption.text;\n\t\t}\n\t}\n}\n", "/* eslint-disable */\nvar x, i, j, l, ll, selElmnt, a, b, c;\n/* Look for any elements with the class \"dropdown\": */\nx = document.getElementsByClassName('dropdown');\nl = x.length;\nfor (i = 0; i < l; i++) {\n\tselElmnt = x[i].getElementsByTagName('select')[0];\n\toptGroupElmnt = x[i].getElementsByTagName('optgroup');\n\tll = selElmnt.length;\n\togl = optGroupElmnt.length;\n\t/* For each element, create a new DIV that will act as the selected item: */\n\ta = document.createElement('DIV');\n\ta.setAttribute('class', 'select-selected');\n\ta.setAttribute('data-tab', selElmnt.selectedIndex);\n\ta.innerHTML = selElmnt.options[selElmnt.selectedIndex].innerHTML;\n\tx[i].appendChild(a);\n\t/* For each element, create a new DIV that will contain the option list: */\n\tb = document.createElement('DIV');\n\tb.setAttribute('class', 'select-items select-hide');\n\t// Find hidden select value field\n\tlet hiddenSelectedValueField = x[i].parentNode.querySelector('.js-select__value');\n\tlet hiddenSelectedValue = hiddenSelectedValueField.value;\n\n\t// Retain dropdown value if it has already been selected\n\tif (hiddenSelectedValue.length > 0) {\n\t\tlet selected = x[i].querySelector('.select-selected');\n\t\tlet selectedOption = x[i].querySelector('select option[data-value=\"' + hiddenSelectedValue + '\"]');\n\t\tlet selectedOptionVal = selectedOption.value;\n\t\tlet dropdownSelect = x[i].querySelector('select');\n\n\t\tif (dropdownSelect.classList.contains('select-local-country')) {\n\t\t\tselected.innerHTML = selectedOptionVal;\n\t\t\tdocument.querySelector('.js-country__value').value = selectedOptionVal;\n\t\t} else {\n\t\t\tselected.innerHTML = selectedOption.innerHTML;\n\t\t}\n\t\tselectedOption.dataset.selected = true;\n\t\tselectedOption.selected = true;\n\t}\n\t// If any options are grouped, render them within the group\n\tif (ogl > 0) {\n\t\tfor (j = 0; j < ogl; j++) {\n\t\t\tc = document.createElement('DIV');\n\t\t\tc.setAttribute('class', 'group-element');\n\t\t\td = document.createElement('SPAN');\n\t\t\td.setAttribute('class', 'group-element__label');\n\t\t\td.innerHTML = optGroupElmnt[j].getAttribute('label');\n\t\t\tc.appendChild(d);\n\n\t\t\tlet groupChildOption;\n\n\t\t\tconst thisChildOption = optGroupElmnt[j].childNodes;\n\t\t\tconst thisChildOptionLength = optGroupElmnt[j].childNodes.length;\n\t\t\tvar index = 1;\n\t\t\tif (selElmnt.id == 'language') {\n\t\t\t\tindex = 0;\n\t\t\t}\n\t\t\tfor (k = index; k < thisChildOptionLength; k++) {\n\t\t\t\tif (thisChildOption[k].tagName === 'OPTION') {\n\t\t\t\t\tgroupChildOption = document.createElement('DIV');\n\t\t\t\t\tgroupChildOption.setAttribute('class', 'select-items__option');\n\t\t\t\t\tgroupChildOption.innerHTML = thisChildOption[k].innerHTML;\n\n\t\t\t\t\tc.appendChild(groupChildOption);\n\n\t\t\t\t\tgroupChildOption.addEventListener('click', function(e) {\n\t\t\t\t\t\t/* When an item is clicked, update the original select box,\n\t\t\t\t\t\tand the selected item: */\n\t\t\t\t\t\tlet y;\n\t\t\t\t\t\tlet i;\n\t\t\t\t\t\tlet k;\n\t\t\t\t\t\tlet s;\n\t\t\t\t\t\tlet h;\n\t\t\t\t\t\tlet sl;\n\t\t\t\t\t\tlet yl;\n\t\t\t\t\t\ts = this.parentNode.parentNode.parentNode.getElementsByTagName('select')[0];\n\t\t\t\t\t\tsl = s.length;\n\t\t\t\t\t\th = this.parentNode.parentNode.previousSibling;\n\t\t\t\t\t\tfor (i = 0; i < sl; i++) {\n\t\t\t\t\t\t\tif (s.options[i].innerHTML === this.innerHTML) {\n\t\t\t\t\t\t\t\ts.selectedIndex = i;\n\t\t\t\t\t\t\t\th.innerHTML = this.innerHTML;\n\t\t\t\t\t\t\t\ty = this.parentNode.parentNode.getElementsByClassName('same-as-selected');\n\t\t\t\t\t\t\t\tyl = y.length;\n\t\t\t\t\t\t\t\tfor (k = 0; k < yl; k++) {\n\t\t\t\t\t\t\t\t\ty[k].removeAttribute('class');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.setAttribute('class', 'same-as-selected');\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\th.click();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tb.appendChild(c);\n\t\t}\n\t} else { // Render regular select options\n\t\tvar index = 1;\n\t\tif (selElmnt.id == 'language') {\n\t\t\tindex = 0;\n }\n\t\tfor (j = index; j < ll; j++) {\n\t\t\t/* For each option in the original select element,\n\t\t\tcreate a new DIV that will act as an option item: */\n\t\t\tc = document.createElement('DIV');\n\t\t\tc.setAttribute('class', 'select-items__option');\n\t\t\tc.setAttribute('data-value', selElmnt.options[j].dataset.value);\n\t\t\tc.setAttribute('data-index', j);\n\t\t\tc.innerHTML = selElmnt.options[j].innerHTML;\n\t\t\tc.addEventListener('click', function(e) {\n\t\t\t\t/* When an item is clicked, update the original select box,\n\t\t\t\tand the selected item: */\n\t\t\t\tlet y;\n\t\t\t\tlet i;\n\t\t\t\tlet k;\n\t\t\t\tlet s;\n\t\t\t\tlet h;\n\t\t\t\tlet sl;\n\t\t\t\tlet yl;\n\t\t\t\ts = this.parentNode.parentNode.getElementsByTagName('select')[0];\n\t\t\t\tsl = s.length;\n\t\t\t\th = this.parentNode.previousSibling;\n\t\t\t\tfor (i = 0; i < sl; i++) {\n\t\t\t\t\tvar checkoutpersonaldetailsSubmit = document.getElementById('checkoutpersonaldetails-submit');\n\t\t\t\t\tif (s.options[i].innerHTML === this.innerHTML) {\n\t\t\t\t\t\ts.selectedIndex = i;\n\t\t\t\t\t\th.innerHTML = this.innerHTML;\n\t\t\t\t\t\tif (s.id == \"titledropdown\" && checkoutpersonaldetailsSubmit != null) {\n\t\t\t\t\t\t\tcheckoutpersonaldetailsSubmit.disabled = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (s.id == \"mpaybankdropdown\") {\n\t\t\t\t\t\t\tdocument.getElementById('spinny-wheel').style.visibility = \"hidden\";\n\t\t\t\t\t\t\tdocument.getElementById('internet-banking-submit').disabled = false;\n\t\t\t\t\t\t\tdocument.getElementById('internet-banking-back').classList.remove(\"disabled\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (s.classList.contains('select-local-country')) {\n\t\t\t\t\t\t\tdocument.querySelector('.js-country__value').value = this.innerHTML;\n\t\t\t\t\t\t}\n\t\t\t\t\t\th.dataset.tab = this.dataset.index;\n\t\t\t\t\t\ty = this.parentNode.getElementsByClassName('same-as-selected');\n\t\t\t\t\t\tyl = y.length;\n\t\t\t\t\t\tfor (k = 0; k < yl; k++) {\n\t\t\t\t\t\t\ty[k].classList.add('select-items__option');\n\t\t\t\t\t\t\ty[k].classList.remove('same-as-selected');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.classList.add('same-as-selected');\n\t\t\t\t\t\tif (hiddenSelectedValueField) {\n\t\t\t\t\t\t\thiddenSelectedValueField.value = this.dataset.value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\th.click();\n\t\t\t});\n\t\t\tb.appendChild(c);\n\t\t}\n\t}\n\tx[i].appendChild(b);\n\ta.addEventListener('click', function(e) {\n\t\t/* When the select box is clicked, close any other select boxes,\n\t\tand open/close the current select box: */\n\t\te.stopPropagation();\n\t\tcloseAllSelect(this);\n\t\tthis.nextSibling.classList.toggle('select-hide');\n\t\tthis.classList.toggle('select-arrow-active');\n\t});\n}\n\nfunction closeAllSelect(elmnt) {\n\t/* A function that will close all select boxes in the document,\n\texcept the current select box: */\n\tlet x;\n\tlet y;\n\tlet i;\n\tlet xl;\n\tlet yl;\n\tlet arrNo = [];\n\tx = document.getElementsByClassName('select-items');\n\ty = document.getElementsByClassName('select-selected');\n\txl = x.length;\n\tyl = y.length;\n\tfor (i = 0; i < yl; i++) {\n\t\tif (elmnt === y[i]) {\n\t\t\tarrNo.push(i);\n\t\t} else {\n\t\t\ty[i].classList.remove('select-arrow-active');\n\t\t}\n\t}\n\tfor (i = 0; i < xl; i++) {\n\t\tif (arrNo.indexOf(i)) {\n\t\t\tx[i].classList.add('select-hide');\n\t\t}\n\t}\n}\n\n/* If the user clicks anywhere outside the select box,\nthen close all select boxes: */\ndocument.addEventListener('click', closeAllSelect);\n// Auto-select local country on country select dropdown\nconst localCountrySelect = document.querySelector('.select-local-country');\n\nif (localCountrySelect != null) {\n\tconst hiddenInput = localCountrySelect.closest('.form__input-container').querySelector('.js-select__value');\n\n\t// If this is the first time the user has landed on the form\n\tif (hiddenInput.value === '') {\n\n\t\t// Get locale from meta tag\n\t\tconst metaLocale = document.head.querySelector('[http-equiv~=content-language][content]').content;\n\t\t// Trim meta tag so it matches value in select list\n\t\tconst metaLocaleTrim = metaLocale.split('-').pop();\n\t\t// Set value of hidden input field\n\t\thiddenInput.value = metaLocaleTrim;\n\n\t\t// set variable for local select option\n\t\tconst localCountryOption = localCountrySelect.querySelector('option[data-value=\"' + metaLocaleTrim + '\"]');\n\n\t\t// If local country exists in dropdown\n\t\tif (localCountryOption != null) {\n\t\t\t// get local select option text\n\t\t\t// Auto-select local country on country select dropdown for desktop\n\t\t\tlet localCountryTitle = localCountryOption.innerText;\n\t\t\tlocalCountryTitle = localCountryTitle.replace(/(\\r\\n|\\n|\\r)/gm, '');\n\t\t\t// get selected text element\n\t\t\tconst selectedText = localCountrySelect.parentNode.querySelector('.select-selected');\n\t\t\t// Populate selected text with local country title\n\t\t\tselectedText.innerText = localCountryTitle;\n\t\t\tdocument.querySelector('.js-country__value').value = localCountryTitle;\n\n\t\t\t// Auto-select local country on country select dropdown for mobile\n\t\t\tlet localCountryTitleMobile = localCountryOption.value;\n\t\t\tlocalCountrySelect.value = localCountryTitleMobile;\n\t\t}\n\t}\n}\n// If mobile select dropdown is changed reflect this in desktop select dropdown\nconst dropdownSelect = document.querySelectorAll('.dropdown select');\n\nif (dropdownSelect.length > 0) {\n\tlet i;\n\tfor (i = 0; i < dropdownSelect.length; i++) {\n\t\tdropdownSelect[i].addEventListener('change', function (e) {\n\t\t\tlet option = this.value;\n\t\t\tconst selectedOption = this.parentNode.querySelector('.select-selected');\n\t\t\tconst selectedJsValue = this.parentNode.parentNode.querySelector('.js-select__value');\n\t\t\tselectedOption.dataset.tab = this.selectedIndex;\n\t\t\tselectedOption.innerText = this.selectedOptions[0].innerText;\n\n\t\t\tif (this.id == \"titledropdown\") {\n\t\t\t\tdocument.getElementById('checkoutpersonaldetails-submit').disabled = false;\n\t\t\t}\n\t\t\tif (this.classList.contains('select-local-country')) {\n\t\t\t\tselectedJsValue.value = this.selectedOptions[0].dataset.value;\n\t\t\t\tdocument.querySelector('.js-country__value').value = option;\n\t\t\t} else {\n\t\t\t\tselectedJsValue.value = option;\n\t\t\t}\n\t\t});\n\t}\n}\n", "const errorMsgBlock = document.querySelectorAll('.donation-amount-error-block input');\nconst errorMsgSubmitButton = document.querySelectorAll('.donation-amount-error-block button');\nconst inputChip = document.querySelectorAll('.radio-button');\n\n// Display error msg on submit\nif (errorMsgSubmitButton.length > 0) {\n\tlet i;\n\tfor (i = 0; i < errorMsgSubmitButton.length; i++) {\n\t\terrorMsgSubmitButton[i].onclick = function(e) {\n\t\t\tif (errorMsgBlock.length > 0) {\n\t\t\t\tlet i;\n\t\t\t\tfor (i = 0; i < errorMsgBlock.length; i++) {\n\t\t\t\t\tconst minInputDonationAmount = errorMsgBlock[i].getAttribute('data-min-donation');\n\t\t\t\t\tconst donationAmountErrorMsg = errorMsgBlock[i].getAttribute('data-min-error');\n\t\t\t\t\tif (errorMsgBlock[i].value < Math.floor(minInputDonationAmount)) {\n\t\t\t\t\t\t// Display error msg\n\t\t\t\t\t\tthis.closest('.js-add-error-markup').querySelector('.donation-amount-error-msg').classList.remove('hidden');\n\t\t\t\t\t\t// Display input field as error\n\t\t\t\t\t\tthis.closest('.js-add-error-markup').querySelector('.text-field__icon-container').classList.add('input-error');\n\t\t\t\t\t\t// hide instruction msg\n\t\t\t\t\t\tthis.closest('.js-add-error-markup').querySelector('.donation-amount-instruction-msg').classList.add('hidden');\n\t\t\t\t\t\t// on focus\n\t\t\t\t\t\terrorMsgBlock[i].addEventListener('focus', function(e) {\n\t\t\t\t\t\t\tdocument.querySelector('.text-field--currency').classList.remove('text-field--error');\n\t\t\t\t\t\t\tthis.closest('.js-add-error-markup').querySelector('.text-field__icon-container').classList.remove('input-error');\n\t\t\t\t\t\t\tthis.closest('.js-add-error-markup').querySelector('.donation-amount-error-msg').classList.add('hidden');\n\t\t\t\t\t\t\tthis.closest('.js-add-error-markup').querySelector('.donation-amount-instruction-msg').classList.remove('hidden');\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (donationAmountErrorMsg != null) {\n\t\t\t\t\t\t\tthis.closest('.js-add-error-markup').querySelector('.donation-amount-error-msg .custom-error').innerHTML = donationAmountErrorMsg;\n\t\t\t\t\t\t}\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n}\n\nif (errorMsgBlock.length > 0) {\n\t// Hide error styles\n\tdocument.querySelector('.donation-amount-error-block input').addEventListener('keyup', function(e) {\n\t\tconst minInputDonationAmount = document.querySelector('.donation-amount-error-block input').getAttribute('data-min-donation');\n\t\tif (document.querySelector('.donation-amount-error-block input').value === '') {\n\t\t\tdocument.querySelector('.donation-amount-error-block .text-field--currency').classList.remove('text-field--error');\n\t\t\tdocument.querySelector('.donation-amount-error-msg').classList.add('hidden');\n\t\t}\n\t\tif (document.querySelector('.donation-amount-error-block input').value < Math.floor(minInputDonationAmount)) {\n\t\t\tdocument.querySelector('.donation-amount-error-block .text-field--currency').classList.remove('text-field--error');\n\t\t}\n\t});\n}\n\nif (inputChip.length > 0) {\n\tlet i;\n\tfor (i = 0; i < inputChip.length; i++) {\n\t\tinputChip[i].onclick = function(e) {\n\t\t\t// Remove error when click on radio buttons\n\t\t\tdocument.querySelector('.text-field__icon-container').classList.remove('input-error');\n\t\t\tif (document.querySelector('.donation-amount-error-msg') != null) {\n\t\t\t\tdocument.querySelector('.donation-amount-error-msg').classList.add('hidden');\n\t\t\t}\n\t\t};\n\t}\n}\n", "// Floating button functionality\n/* eslint-disable */\nconst floatingButton = document.querySelector('.floating-button__container');\nconst headerNav = document.querySelector('.header__nav');\nconst primaryCTAButton = document.querySelector('.header > .header__utility .header__primary-cta');\nconst navPrimaryCTA = document.querySelector('.nav__list .header__primary-cta');\nconst searchButton = document.querySelector('.header > .header__utility');\n\nconst showFloatingButton = () => {\n\t// Hide CTA button if floating button exists\n\tif (floatingButton != null && primaryCTAButton != null && navPrimaryCTA!= null) {\n\t\tprimaryCTAButton.classList.add('header__primary-cta--hidden');\n\t\tnavPrimaryCTA.classList.add('header__primary-cta--hidden');\n\t}\n\t// If floating button exists on the page and you're on mobile/tablet view\n\tif (floatingButton != null && window.innerWidth < 1024) {\n\t\twindow.addEventListener('scroll', function() {\n\t\t\t// If the user has scrolled past the height of the initial viewport\n\t\t\tif (window.pageYOffset > window.innerHeight) {\n\t\t\t\tfloatingButton.classList.add('floating-button__container--visible');\n\t\t\t} else {\n\t\t\t\tfloatingButton.classList.remove('floating-button__container--visible');\n\t\t\t}\n\t\t});\n\t} else {\n\t\t// Desktop behaviour\n\t\twindow.addEventListener('scroll', function() {\n\t\t\t// If the user has scrolled past the height of the initial viewport\n\t\t\tif (window.pageYOffset > window.innerHeight) {\n\t\t\t\tif (floatingButton != null) {\n\t\t\t\t\tif (!floatingButton.classList.contains('floating-button__container--visible')) {\n\t\t\t\t\t\tfloatingButton.classList.add('floating-button__container--visible');\n\t\t\t\t\t}\n\t\t\t\t\tif (headerNav != null) {\n\t\t\t\t\t\theaderNav.classList.add('header__nav--scrolled-up');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (floatingButton != null) {\n\t\t\t\t\tif (floatingButton.classList.contains('floating-button__container--visible')) {\n\t\t\t\t\t\tfloatingButton.classList.remove('floating-button__container--visible');\n\t\t\t\t\t}\n\t\t\t\t\tif (headerNav != null) {\n\t\t\t\t\t\theaderNav.classList.remove('header__nav--scrolled-up');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nshowFloatingButton();\n\n// Fire event on window resize\nif (floatingButton != null) {\n\twindow.addEventListener('resize', showFloatingButton);\n}\n\n/* eslint-enable */\n", "// Remove spaces functions\nconst removeSpacesPaste = function(e) {\n\te.preventDefault();\n\tlet noSpaceResult = '';\n\tnoSpaceResult = e.clipboardData.getData('Text');\n\tnoSpaceResult = noSpaceResult.replace(/ /g, '');\n\tthis.value = noSpaceResult;\n};\n\nconst removeSpacesKeyup = function(e) {\n\te.preventDefault();\n\tlet noSpaceResult = this.value;\n\tnoSpaceResult = noSpaceResult.replace(/ /g, '');\n\tthis.value = noSpaceResult;\n};\n\nconst inputPreventSpaces = document.querySelectorAll('.input-no-spaces');\n\nif (inputPreventSpaces.length > 0) {\n\tlet i;\n\tfor (i = 0; i < inputPreventSpaces.length; i++) {\n\t\tinputPreventSpaces[i].onpaste = removeSpacesPaste;\n\t\tinputPreventSpaces[i].onkeyup = removeSpacesKeyup;\n\t}\n}\n\n// Validate IBAN structure - a space is automatically added after every 4 characters\nconst ibanInputs = document.querySelectorAll('.iban-validate');\n\nconst addSpaceEveryFour = function(e) {\n\te.preventDefault();\n\tconst target = e.target;\n\tlet position = target.selectionEnd;\n\tconst length = target.value.length;\n\n\ttarget.value = target.value.replace(/[^\\dA-Z]/g, '').replace(/(.{4})/g, '$1 ').trim(); // Add a space every 4 chars\n\ttarget.selectionEnd = position += ((target.value.charAt(position - 1) === ' ' && target.value.charAt(length - 1) === ' ' && length !== target.value.length) ? 1 : 0); // Keep the position of the cursor if you edit a character in the middle\n};\n\nconst addSpaceEveryFourPaste = function(e) {\n\te.preventDefault();\n\tconst target = e.target;\n\n\ttarget.value = e.clipboardData.getData('Text').replace(/[^\\dA-Z]/g, '').replace(/(.{4})/g, '$1 ').trim(); // Add a space every 4 chars\n};\n\nif (ibanInputs.length > 0) {\n\tlet i;\n\tfor (i = 0; i < ibanInputs.length; i++) {\n\t\tibanInputs[i].onpaste = addSpaceEveryFourPaste;\n\t\tibanInputs[i].onkeyup = addSpaceEveryFour;\n\t}\n}\n", "// JS for Forms\n// Reveal password on click of 'reveal' icon\nconst revealIconContainer = document.querySelectorAll('.js-hide-show');\nconst focusInstruction = document.querySelectorAll('.js-focus-instruction input');\nconst textInstruction = document.querySelectorAll('.text-field__instruction');\nconst textFieldContainer = document.querySelectorAll('.text-field');\n\n// Show/hide contents of password field when you click on eye icon\nif (revealIconContainer.length > 0) {\n\tlet i;\n\tfor (i = 0; i < revealIconContainer.length; i++) {\n\t\trevealIconContainer[i].addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\tconst currentInputParent = this.parentNode;\n\t\t\tconst currentInput = currentInputParent.getElementsByTagName('input')[0];\n\t\t\tconst hideIcon = this.parentNode.querySelector('.text-field__icon--hide');\n\t\t\tconst showIcon = this.parentNode.querySelector('.text-field__icon--show');\n\n\t\t\t// Toggle between hiding and showing the password by changing the input type\n\t\t\tif (currentInput.type === 'password') {\n\t\t\t\tcurrentInput.type = 'text';\n\t\t\t\tshowIcon.classList.add('hidden');\n\t\t\t\thideIcon.classList.remove('hidden');\n\t\t\t} else {\n\t\t\t\tcurrentInput.type = 'password';\n\t\t\t\tshowIcon.classList.remove('hidden');\n\t\t\t\thideIcon.classList.add('hidden');\n\t\t\t}\n\t\t});\n\t}\n}\n\n// Show/hide instruction message when input is focused\nif (focusInstruction.length > 0) {\n\tlet i;\n\tfor (i = 0; i < focusInstruction.length; i++) {\n\t\tconst instructionMsg = focusInstruction[i].getAttribute('data-instruction-msg');\n\t\t// Show instruction message on focus\n\t\tfocusInstruction[i].addEventListener('focus', function(e) {\n\t\t\tthis.closest('.form__input-container').querySelector('.text-field__instruction').classList.remove('hidden');\n\t\t\tif (instructionMsg != null) {\n\t\t\t\tthis.closest('.js-add-error-markup').querySelector('.text-field__instruction .custom-instruction').innerHTML = instructionMsg;\n\t\t\t}\n\t\t});\n\t}\n}\n// Hide instruction msg when clicked on document\ndocument.onclick = function() {\n\tif (textInstruction.length > 0) {\n\t\tlet i;\n\t\tfor (i = 0; i < textInstruction.length; i++) {\n\t\t\ttextInstruction[i].classList.add('hidden');\n\t\t}\n\t}\n};\nif (textFieldContainer.length > 0) {\n\tlet i;\n\tfor (i = 0; i < textFieldContainer.length; i++) {\n\t\ttextFieldContainer[i].onclick = function(e) {\n\t\t\te.stopPropagation();\n\t\t};\n\t}\n}\n", "// To make the dropdown feature active\nconst handleClickOutside = (e) => {\n\tif (!(e.target.parentNode.classList.contains('rt-Country') || e.target.parentNode.parentNode.classList.contains('rt-Country'))) {\n\t\tif (e.target.classList.contains('multiselect__dropdown__selected') && e.target.parentNode.classList.contains('multiselect__dropdown')) {\n\t\t\tconst multiselectList = document.querySelectorAll('.multiselect__dropdown__selected');\n\t\t\tmultiselectList.forEach((item, index, arr) => {\n\t\t\t\tif (e.target.parentNode !== multiselectList[index].parentNode) {\n\t\t\t\t\tmultiselectList[index].parentNode.classList.remove('active');\n\t\t\t\t}\n\t\t\t});\n\t\t\te.target.parentNode.classList.toggle('active');\n\t\t} else {\n\t\t\tif (!(e.target.classList.contains('multiselect__dropdown--option') ||\n\t\t\t\te.target.classList.contains('multiselect__dropdown--option-checkbox') ||\n\t\t\t\te.target.classList.contains('select-option__icon') ||\n\t\t\t\te.target.classList.contains('dropdown__list-item'))) {\n\t\t\t\tconst multiselectList = document.querySelectorAll('.multiselect__dropdown__selected');\n\t\t\t\tmultiselectList.forEach((item, index, arr) => {\n\t\t\t\t\tmultiselectList[index].parentNode.classList.remove('active');\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n};\n\ndocument.addEventListener('click', handleClickOutside, true);\n// To handle the text within textbox\nconst setSelectedValue = (e) => {\n\tconst selectCount = e.target.parentNode.querySelectorAll('.section.allgift-section .dropdown__list-item.selected');\n\tconst defaultDropdownValue = e.target.parentNode.parentNode.querySelector('.giftcategory-alltext');\n\tconst defaultvalue = defaultDropdownValue.dataset.defaultdropdowntext;\n\tconst changedDropdownValue = e.target.parentNode.parentNode.parentNode.querySelector('.multiselect__dropdown').dataset.filtertext;\n\tif (selectCount.length === 1) {\n\t\tdefaultDropdownValue.innerHTML = [...selectCount].map((selectedOption) => {\n\t\t\treturn selectedOption?.innerText;\n\t\t});\n\t} else if (selectCount.length > 1) {\n\t\tdefaultDropdownValue.innerHTML = changedDropdownValue + ' (' + selectCount.length + ')';\n\t} else {\n\t\tdefaultDropdownValue.innerHTML = defaultvalue;\n\t}\n};\n\n// To select and deselect dropdown items\nconst selecthandler = (e) => {\n\tif (!e.target.parentNode.classList.contains('rt-Country')) {\n\t\tif (e.target.classList.contains('multiselect__dropdown--option') || e.target.parentNode.classList.contains('multiselect__dropdown--option')) {\n\t\t\tconst defaultFirstValue = e.target.parentNode.parentNode.querySelector('.giftcategory-alltext');\n\t\t\tif (defaultFirstValue) {\n\t\t\t\tconst defaultvalue = defaultFirstValue.dataset.defaultdropdowntext;\n\t\t\t\tconst multiselectList = document.querySelectorAll('.multiselect__dropdown__selected');\n\t\t\t\tif (e.target.childNodes.length > 0) {\n\t\t\t\t\t// Uncheck tick mark\n\t\t\t\t\tif (e.target.querySelector('.section.allgift-section .select-option__icon').style.display === 'block') {\n\t\t\t\t\t\te.target.querySelector('.section.allgift-section .dropdown__list-item').classList.remove('selected');\n\t\t\t\t\t\te.target.querySelector('.section.allgift-section .select-option__icon').style.display = 'none';\n\t\t\t\t\t\tsetSelectedValue(e);\n\t\t\t\t\t\t// Add tick mark\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If \"All\" option is selected, uncheck other values\n\t\t\t\t\t\tif (e.target.innerText === defaultvalue) {\n\t\t\t\t\t\t\tmultiselectList.forEach((item, index, arr) => {\n\t\t\t\t\t\t\t\tif (e.target.parentNode.parentNode === multiselectList[index].parentNode) {\n\t\t\t\t\t\t\t\t\tconst allicons = multiselectList[index].parentNode.querySelectorAll('.select-option__icon');\n\t\t\t\t\t\t\t\t\tallicons.forEach((item, index, arr) => { allicons[index].style.display = 'none'; });\n\t\t\t\t\t\t\t\t\tconst allDropdownItem = multiselectList[index].parentNode.querySelectorAll('.dropdown__list-item');\n\t\t\t\t\t\t\t\t\tallDropdownItem.forEach((item, index, arr) => { allDropdownItem[index].classList.remove('selected'); });\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Deselect \"All\" option, if other option is selected.\n\t\t\t\t\t\t\tmultiselectList.forEach((item, index, arr) => {\n\t\t\t\t\t\t\t\tif (e.target.parentNode.parentNode === multiselectList[index].parentNode && multiselectList[index].parentNode.querySelector('.dropdown__list-item').innerText === defaultvalue) {\n\t\t\t\t\t\t\t\t\tmultiselectList[index].parentNode.querySelector('.dropdown__list-item').classList.remove('selected');\n\t\t\t\t\t\t\t\t\tmultiselectList[index].parentNode.querySelector('.select-option__icon').style.display = 'none';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\te.target.querySelector('.section.allgift-section .select-option__icon').style.display = 'block';\n\t\t\t\t\t\te.target.querySelector('.section.allgift-section .dropdown__list-item').classList.toggle('selected');\n\t\t\t\t\t\tsetSelectedValue(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\ndocument.addEventListener('click', selecthandler, true);\n", "const searchButton = document.getElementById('search_icon');\nconst mobileSearchButton = document.getElementById('mobile_search_icon');\nconst searchnotification = document.getElementById('searchnotification-banner');\nconst searchMobileTextBox = document.getElementById('mobile_search-inputbox');\n\nif (searchButton != null && mobileSearchButton != null) {\n\tsearchButton.onclick = function(e) {\n\t\tsearchnotification.parentNode.classList.add('show');\n\t\te.preventDefault();\n\t\t// DataLayer push to track behaviour of search button\n\t\t// Desktop Search button\n\t\t/* eslint-disable */\n\t\tif (typeof dataLayer !== 'undefined' && typeof doesAnalyticalCookieExist !== 'undefined') {\n\t\t\tdataLayer.push({\n\t\t\t\t'event': 'gen_ev_navigation',\n\t\t\t\t'event_category': 'navigation',\n\t\t\t\t'event_action': 'site search stub test',\n\t\t\t\t'event_label': 'desktop site search'\n\t\t\t})\n\t\t}\n\t\t/* eslint-enable */\n\t};\n\tmobileSearchButton.onclick = function(e) {\n\t\tsearchnotification.parentNode.classList.add('show');\n\t\tsearchMobileTextBox.value = '';\n\t\te.preventDefault();\n\t\t// DataLayer push to track behaviour of search button\n\t\t// Mobile Search button\n\t\t/* eslint-disable */\n\t\tif (typeof dataLayer !== 'undefined' && typeof doesAnalyticalCookieExist !== 'undefined') {\n\t\t\tdataLayer.push({\n\t\t\t\t'event': 'gen_ev_navigation',\n\t\t\t\t'event_category': 'navigation',\n\t\t\t\t'event_action': 'site search stub test',\n\t\t\t\t'event_label': 'mobile site search'\n\t\t\t})\n\t\t}\n\t\t/* eslint-enable */\n\t};\n}\n", "function heroResize() {\n\tconst w = document.documentElement.clientWidth;\n\tlet i;\n\tconst videos = document.getElementsByTagName('video');\n\n\tif (w >= 1024) {\n\t\tfor (i = 0; i < videos.length; i++) {\n\t\t\tvideos[i].setAttribute('autoplay', '');\n\t\t}\n\t} else {\n\t\tfor (i = 0; i < videos.length; i++) {\n\t\t\tvideos[i].removeAttribute('autoplay');\n\t\t\tvideos[i].pause();\n\t\t}\n\t}\n}\n\nheroResize();\n// Attaching the event listener function to window's resize event\nwindow.addEventListener('resize', heroResize);\n", "// scrollBy functionality on Hero elements\ndocument.addEventListener('click', function(e) {\n\tif (e.target.tagName !== 'DIV') return;\n\tif (e.target.classList.contains('hero__scroll-link')) {\n\t\tscrollAnchors(e, e.target);\n\t}\n});\n\nfunction scrollAnchors(e, respond = null) {\n\tfunction distanceToTop(el) {\n\t\treturn Math.floor(el.getBoundingClientRect().top);\n\t}\n\te.preventDefault();\n\n\tconst targetAnchor = e.target.parentNode.parentNode.nextElementSibling;\n\tif (!targetAnchor) return;\n\tconst originalTop = distanceToTop(targetAnchor);\n\twindow.scrollBy({ top: originalTop, left: 0, behavior: 'smooth' });\n}\n", "const rangeslider = document.getElementById('range-slider');\nif (rangeslider != null) {\n\trangeslider.addEventListener('change', function() {\n\t\tdocument.getElementById('sliderdonation-amount').innerHTML = this.value;\n\t\tconst x = rangeslider.value;\n\t\tconst color = 'linear-gradient(90deg, #e7600c ' + x + '%,' + '#e6e6e6 ' + x + '%)';\n\t\trangeslider.style.background = color;\n\t\tconst watertablets = document.getElementById('water-tablets');\n\t\twatertablets.innerHTML = Math.round(this.value / 5 * 100 / 100);\n\t\tconst birthkit = document.getElementById('birth-kit');\n\t\tbirthkit.innerHTML = Math.round(this.value / 3 * 100 / 100);\n\t\tconst foodsachets = document.getElementById('food-sachets');\n\t\tfoodsachets.innerHTML = Math.round(this.value / 2 * 100 / 100);\n\t\tconst hygienekit = document.getElementById('hygiene-kits');\n\t\thygienekit.innerHTML = Math.round(this.value / 3.5 * 100 / 100);\n\t\tconst schoolbag = document.getElementById('school-bag');\n\t\tschoolbag.innerHTML = Math.round(this.value / 4.5 * 100 / 100);\n\t});\n}\n", "const infiniteScrollFeed = document.querySelector('.feed');\n\nif (infiniteScrollFeed != null) {\n\tconst feedEl = document.querySelector('.feed');\n\tconst loaderEl = document.querySelector('.loader');\n\n\t// get the feed from API\n\tconst getQuotes = async(page, limit) => {\n\t\tconst API_URL = `https://api.javascripttutorial.net/v1/quotes/?page=${page}&limit=${limit}`;\n\t\t/*eslint-disable */\n\t\tconst response = await fetch(API_URL);\n\t\t/* eslint-enable */\n\t\t// handle 404\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`An error occurred: ${response.status}`);\n\t\t}\n\t\treturn await response.json();\n\t};\n\n\t// show the feed\n\tconst showFeedItems = (feed) => {\n\t\tfeed.forEach(feedItem => {\n\t\t\tconst feedItemEl = document.createElement('div');\n\t\t\tfeedItemEl.classList.add('portal-section');\n\n\t\t\tfeedItemEl.innerHTML = `\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\"Child\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tAugust ${feedItem.id}, 2021\n\t\t\t\t\t\t${feedItem.author}\n\t\t\t\t\t\t${feedItem.quote}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tRead more\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
`;\n\n\t\t\tfeedEl.appendChild(feedItemEl);\n\t\t});\n\t};\n\n\tconst hideLoader = () => {\n\t\tloaderEl.classList.remove('show');\n\t};\n\n\tconst showLoader = () => {\n\t\tloaderEl.classList.add('show');\n\t};\n\n\tconst hasMoreQuotes = (page, limit, total) => {\n\t\tconst startIndex = (page - 1) * limit + 1;\n\t\treturn total === 0 || startIndex < total;\n\t};\n\n\t// load feed\n\tconst loadQuotes = async(page, limit) => {\n\t\t// show the loader\n\t\tshowLoader();\n\n\t\t// 0.1 second later\n\t\tsetTimeout(async() => {\n\t\t\ttry {\n\t\t\t\t// if having more feed to fetch\n\t\t\t\tif (hasMoreQuotes(page, limit, total)) {\n\t\t\t\t\t// call the API to get feed\n\t\t\t\t\tconst response = await getQuotes(page, limit);\n\t\t\t\t\t// show feed\n\t\t\t\t\tshowFeedItems(response.data);\n\t\t\t\t\t// update the total\n\t\t\t\t\ttotal = response.total;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(error.message);\n\t\t\t} finally {\n\t\t\t\thideLoader();\n\t\t\t}\n\t\t}, 500);\n\t};\n\n\t// control variables\n\tlet currentPage = 1;\n\tconst limit = 5;\n\tlet total = 0;\n\n\twindow.addEventListener('scroll', () => {\n\t\tconst {\n\t\t\tscrollTop,\n\t\t\tscrollHeight,\n\t\t\tclientHeight\n\t\t} = document.documentElement;\n\n\t\tif (scrollTop + clientHeight >= scrollHeight - 5 &&\n\t\t\thasMoreQuotes(currentPage, limit, total)) {\n\t\t\tcurrentPage++;\n\t\t\tloadQuotes(currentPage, limit);\n\t\t}\n\t}, {\n\t\tpassive: true\n\t});\n\n\t// initialize\n\tloadQuotes(currentPage, limit);\n}\n", "document.addEventListener('DOMContentLoaded', function() {\n\tlet lazyloadImages;\n\tlet i;\n\tconst lazyVideos = [].slice.call(document.querySelectorAll('video.lazy-video'));\n\t/*eslint-disable */\n\tif ('IntersectionObserver' in window) {\n\t\t/* lazy load images */\n\t\tlazyloadImages = document.querySelectorAll('.lazy');\n\t\tconst imageObserver = new IntersectionObserver(function(entries, observer) {\n\t\t\tfor (i = 0; i < entries.length; ++i) {\n\t\t\t\tif (entries[i].isIntersecting) {\n\t\t\t\t\tconst image = entries[i].target;\n\t\t\t\t\timage.src = image.dataset.src;\n\t\t\t\t\tif (image.dataset.srcset) {\n\t\t\t\t\t\timage.srcset = image.dataset.srcset;\n\t\t\t\t\t}\n\t\t\t\t\timage.classList.remove('lazy');\n\t\t\t\t\timageObserver.unobserve(image);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tfor (i = 0; i < lazyloadImages.length; ++i) {\n\t\t\timageObserver.observe(lazyloadImages[i]);\n\t\t}\n\t\t/* lazy load video with autoplay*/\n\t\tconst lazyVideoObserver = new IntersectionObserver(function (entries, observer) {\n\t\t\tentries.forEach(function (video) {\n\t\t\t\tif (video.isIntersecting) {\n\t\t\t\t\tfor (const source in video.target.children) {\n\t\t\t\t\t\tconst videoSource = video.target.children[source];\n\t\t\t\t\t\tif (typeof videoSource.tagName === 'string' && videoSource.tagName === 'SOURCE') {\n\t\t\t\t\t\t\tvideoSource.src = videoSource.dataset.src;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvideo.target.load();\n\t\t\t\t\tvideo.target.classList.remove('lazy-video');\n\t\t\t\t\tlazyVideoObserver.unobserve(video.target);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tlazyVideos.forEach(function (lazyVideo) {\n\t\t\tlazyVideoObserver.observe(lazyVideo);\n\t\t});\n\t} else {\n\t\tlet lazyloadThrottleTimeout;\n\t\tlazyloadImages = document.querySelectorAll('.lazy');\n\n\t\tfunction lazyload() {\n\t\t\tif (lazyloadThrottleTimeout) {\n\t\t\t\tclearTimeout(lazyloadThrottleTimeout);\n\t\t\t}\n\n\t\t\tlazyloadThrottleTimeout = setTimeout(function() {\n\t\t\t\tconst scrollTop = window.pageYOffset;\n\t\t\t\tfor (i = 0; i < lazyloadImages.length; ++i) {\n\t\t\t\t\tif (lazyloadImages[i].offsetTop < (window.innerHeight + scrollTop)) {\n\t\t\t\t\t\tlazyloadImages[i].src = lazyloadImages[i].dataset.src;\n\t\t\t\t\t\tif (lazyloadImages[i].dataset.srcset) {\n\t\t\t\t\t\t\tlazyloadImages[i].srcset = lazyloadImages[i].dataset.srcset;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlazyloadImages[i].classList.remove('lazy');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lazyloadImages.length === 0) {\n\t\t\t\t\tdocument.removeEventListener('scroll', lazyload);\n\t\t\t\t\twindow.removeEventListener('resize', lazyload);\n\t\t\t\t\twindow.removeEventListener('orientationChange', lazyload);\n\t\t\t\t}\n\t\t\t}, 20);\n\t\t}\n\n\t\tdocument.addEventListener('scroll', lazyload, {passive: true});\n\t\twindow.addEventListener('resize', lazyload);\n\t\twindow.addEventListener('orientationChange', lazyload);\n\t}\n});\n", "const searchButton = document.getElementById('addgift-btn-submit');\nconst searchnotification = document.getElementById('multiplegift-notification-banner');\n\nif (searchButton != null) {\n\tsearchButton.onclick = function(e) {\n\t\tsearchnotification.parentNode.classList.add('show');\n\t\te.preventDefault();\n\t\t// DataLayer push to track behaviour of multiple gift button\n\t\t/* eslint-disable */\n\t\tif (typeof dataLayer !== 'undefined' && typeof doesAnalyticalCookieExist !== 'undefined') {\n\t\t\tdataLayer.push({\n\t\t\t\t'event': 'gen_ev_navigation',\n\t\t\t\t'event_category': 'navigation',\n\t\t\t\t'event_action': 'add to cart stub test',\n\t\t\t\t'event_label': 'multiple gift stub test'\n\t\t\t});\n\t\t}\n\t\t/* eslint-enable */\n\t};\n}\n\nconst Sendphysicalcard = document.getElementById('sendphysical-card');\nconst Giftcardbanner = document.getElementById('giftcard-banner');\n\nif (Sendphysicalcard != null && Giftcardbanner != null) {\n\tSendphysicalcard.onclick = function(e) {\n\t\tGiftcardbanner.parentNode.classList.add('show');\n\t\te.preventDefault();\n\t\t// DataLayer push to track behaviour of physical gift card button\n\t\t/* eslint-disable */\n\t\tif (typeof dataLayer !== 'undefined' && typeof doesAnalyticalCookieExist !== 'undefined') {\n\t\t\tdataLayer.push({\n\t\t\t\t'event': 'physical_gift_card',\n\t\t\t\t'event_category': 'card',\n\t\t\t\t'event_action': 'physical gift card stub test',\n\t\t\t\t'event_label': 'physical gift card stub test'\n\t\t\t});\n\t\t}\n\t\t/* eslint-disable */\n\t};\n}\n\nif (document.getElementById('close-banner') != null) {\n\tdocument.getElementById('close-banner').addEventListener('click', function() {\n\t\tconst tabs = document.querySelectorAll('#tabs li');\n\t\ttabs?.[0]?.classList?.add('active');\n\t\ttabs?.[1]?.classList?.remove('active');\n\t\tdocument.querySelectorAll('#tab div.tab-content-item')?.[0].classList.add('active');\n\t\tdocument.querySelectorAll('#tab div.tab-content-item')?.[1].classList.remove('active');\n\t});\n}\n\ndocument.addEventListener('DOMContentLoaded', function() {\n\tconst tabs = document.querySelectorAll('#tabs li');\n\tif (tabs.length > 0) {\n\t\ttabs.forEach(function(tab) {\n\t\t\ttab.addEventListener('click', function(e) {\n\t\t\t\tif (!this.classList.contains('active')) {\n\t\t\t\t\tconst tabNum = Array.from(tabs).indexOf(this);\n\t\t\t\t\tconst nthChild = tabNum + 1;\n\t\t\t\t\tdocument.querySelector('#tabs li.active').classList.remove('active');\n\t\t\t\t\tthis.classList.add('active');\n\t\t\t\t\tdocument.querySelector('#tab div.tab-content-item.active').classList.remove('active');\n\t\t\t\t\tdocument.querySelector('#tab div.tab-content-item:nth-child(' + nthChild + ')').classList.add('active');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n});\n", "// Navigation\nconst nav = document.querySelector('.header__nav');\nconst burgerButton = document.querySelector('.menu__control');\nconst burgerIcon = document.querySelector('.menu__control img');\nconst header = document.querySelector('.header');\nconst overlay = document.querySelector('.overlay');\nconst headerLogo = document.querySelector('.header__logo-link--lg');\nconst navLinks = document.querySelectorAll('.nav__link');\nconst primaryLinks = document.querySelectorAll('.nav__link--primary > a');\nconst secondaryContainer = document.querySelectorAll('.nav__list--secondary-container');\nconst tertiaryContainer = document.querySelectorAll('.nav__list--tertiary-container');\nconst doc = document.documentElement;\nconst floatingButtonContainer = document.querySelector('.floating-button__container');\n\n// Show nav states\nfunction showNav() {\n\tdoc.classList.add('noscroll');\n\toverlay.classList.add('overlay--show');\n\tburgerIcon.classList.remove('fa-bars');\n\tburgerIcon.classList.add('fa-times');\n\tburgerIcon.src = '/assets/icons/times.svg';\n\theader.classList.add('header--open');\n\tnav.classList.add('header__nav--active');\n\theaderLogo.classList.add('header__logo-link--hide');\n}\n\n// Hide nav states\nfunction hideNav() {\n\tdoc.classList.remove('noscroll');\n\toverlay.classList.remove('overlay--show');\n\tburgerIcon.classList.add('fa-bars');\n\tburgerIcon.classList.remove('fa-times');\n\tburgerIcon.src = '/assets/icons/bars.svg';\n\theader.classList.remove('header--open');\n\tnav.classList.remove('header__nav--active');\n\theaderLogo.classList.remove('header__logo-link--hide');\n\t// Remove active class from any active links\n\tremoveActiveClass();\n}\n\n// Open secondary header nav\nfunction showSecondary(e) {\n\tconst currentTarget = e.target;\n\tconst currentSecondaryContainer = currentTarget.nextElementSibling;\n\tconst closeNav = document.querySelectorAll('.nav-close');\n\n\t// Add active class to current link\n\tcurrentTarget.classList.add('active');\n\n\t// Hide all secondary lists\n\tfor (let i = 0; i < secondaryContainer.length; i++) {\n\t\tsecondaryContainer[i].classList.remove('secondary--visible');\n\t}\n\n\t// Close secondary lists by clicking 'x'\n\tif (closeNav.length > 0) {\n\t\tfor (let j = 0; j < closeNav.length; j++) {\n\t\t\tcloseNav[j].addEventListener('click', function() {\n\t\t\t\tcurrentSecondaryContainer.classList.remove('secondary--visible');\n\t\t\t\t// Remove active class from any active links\n\t\t\t\tremoveActiveClass();\n\t\t\t});\n\t\t}\n\t}\n\n\t// Only run function when you click 'parent' version of primary link\n\tif (currentSecondaryContainer) {\n\t\tconst secondaryInner = currentSecondaryContainer.querySelector('.nav__list--secondary-inner');\n\t\tconst listHeight = secondaryInner.querySelector('.nav__list--full-height');\n\t\tcurrentSecondaryContainer.style.display = 'block'; // Make it visible\n\t\tconst height = listHeight.scrollHeight + 1 + 'px'; // Get its height\n\t\tcurrentSecondaryContainer.style.display = ''; // Hide it again\n\t\tcurrentSecondaryContainer.classList.add('secondary--visible');\n\t\tconst w = document.documentElement.clientWidth;\n\n\t\tif (w >= 1024) {\n\t\t\tcurrentSecondaryContainer.style.height = height; // Update the max-height\n\t\t\tsecondaryInner.style.height = height;\n\t\t\tlistHeight.style.position = 'absolute';\n\t\t}\n\n\t\t// Once the transition is complete, remove the inline max-height so the content can scale responsively\n\t\twindow.setTimeout(function() {\n\t\t\tcurrentSecondaryContainer.style.height = '';\n\t\t}, 10);\n\n\t\t// Close secondary container if you click on the page outside it\n\t\twindow.addEventListener('click', function(e) {\n\t\t\tif (!currentSecondaryContainer.contains(e.target) && (!header.contains(e.target))) {\n\t\t\t\t// Remove active class from any active links\n\t\t\t\tremoveActiveClass();\n\t\t\t\tcurrentSecondaryContainer.classList.remove('secondary--visible');\n\t\t\t}\n\t\t});\n\t}\n}\n\n// Defining toggle function\nfunction toggleNav() {\n\tif (burgerIcon.classList.contains('fa-bars')) {\n\t\tshowNav();\n\t} else {\n\t\thideNav();\n\t}\n}\n\n// On resize\n// Defining event listener function\nfunction screenResize() {\n\tconst w = document.documentElement.clientWidth;\n\n\tif (w >= 1024) {\n\t\thideNav();\n\t\tfor (let i = 0; i < tertiaryContainer.length; i++) {\n\t\t\ttertiaryContainer[i].style.maxHeight = 'none';\n\t\t}\n\t} else {\n\t\tfor (let j = 0; j < tertiaryContainer.length; j++) {\n\t\t\ttertiaryContainer[j].style.maxHeight = 0;\n\t\t}\n\t}\n}\n\n// Remove active class from any active links\nfunction removeActiveClass() {\n\tconst activeLinks = header.querySelectorAll('.active');\n\tfor (let i = 0; i < activeLinks.length; i++) {\n\t\tactiveLinks[i].classList.remove('active');\n\t}\n\t// Close all accordions\n\tconst w = document.documentElement.clientWidth;\n\n\tif (w < 1024) {\n\t\tfor (let j = 0; j < tertiaryContainer.length; j++) {\n\t\t\ttertiaryContainer[j].style.maxHeight = 0;\n\t\t}\n\t}\n}\n\nif (nav) {\n\t// Calling the function after click event occurs\n\tburgerButton.addEventListener('click', function(e) {\n\t\te.preventDefault();\n\t\ttoggleNav();\n\t});\n\n\toverlay.addEventListener('click', function() {\n\t\ttoggleNav();\n\t});\n\n\t// Show secondary nav\n\tlet i;\n\tfor (i = 0; i < primaryLinks.length; i++) {\n\t\tprimaryLinks[i].addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\t// Remove active class from other primary links\n\t\t\tremoveActiveClass();\n\t\t\tshowSecondary(e);\n\t\t});\n\t}\n\n\t// GTM navigation tracking\n\tlet j;\n\tfor (j = 0; j < navLinks.length; j++) {\n\t\tnavLinks[j].addEventListener('click', function(e) {\n\t\t\te.stopPropagation();\n\t\t\tlet linkTitle = this.classList.contains('nav__link--secondary') ? this.querySelector('.nav__link-title').innerText : this.querySelector('a').innerText;\n\t\t\tconst linkParent = this.parentNode;\n\n\t\t\t// Get link title at right depth\n\t\t\tif (this.classList.contains('nav__link--secondary')) {\n\t\t\t\t// Secondary links\n\t\t\t\tconst primaryTitle = linkParent.querySelector('.nav__link--primary > a').innerText;\n\t\t\t\tlinkTitle = primaryTitle + ' | ' + linkTitle;\n\t\t\t} else if (this.classList.contains('nav__link--tertiary')) {\n\t\t\t\t// Tertiary links\n\t\t\t\tconst primaryLabel = linkParent.parentNode.parentNode.parentNode.querySelector('.nav__link--primary > a').innerText;\n\t\t\t\tconst secondaryTitle = linkParent.parentNode.parentNode.querySelector('.nav__link-title').innerText;\n\n\t\t\t\tlinkTitle = primaryLabel + ' | ' + secondaryTitle + ' | ' + linkTitle;\n\t\t\t}\n\n\t\t\t// Clean linkTitle letiable\n\t\t\tlinkTitle = linkTitle.replace(/\\n/g, '');\n\n\t\t\t/* eslint-disable */\n\t\t\tif (typeof dataLayer !== 'undefined' && typeof doesAnalyticalCookieExist !== 'undefined') {\n\t\t\t\t// Push link title to datalayer\n\t\t\t\tdataLayer.push({\n\t\t\t\t 'event': 'gen_ev_navigation',\n\t\t\t\t 'event_category': 'navigation',\n\t\t\t\t 'event_action': 'main menu',\n\t\t\t\t 'event_label': linkTitle,\n\t\t\t\t 'event_value': 0,\n\t\t\t\t 'non_interaction': false\n\t\t\t\t});\n\t\t\t}\n\t\t\t/* eslint-enable */\n\t\t});\n\t}\n\n\tlet lastScrollTop = window.pageYOffset;\n\n\t// Hide menu when you've scrolled 1/3 of the way down the page - if nav does not contain 'header--sticky' class\n\twindow.onscroll = function(ev) {\n\t\tconst st = window.pageYOffset || document.documentElement.scrollTop;\n\n\t\tif (st > lastScrollTop) {\n\t\t\tif ((window.pageYOffset) >= document.body.offsetHeight / 3) {\n\t\t\t\t// Mobile and tablet\n\t\t\t\tif (window.innerWidth < 1024) {\n\t\t\t\t\theader.style.display = 'none';\n\t\t\t\t} else if (window.innerWidth >= 1024 && floatingButtonContainer != null) {\n\t\t\t\t\t// Desktop\n\t\t\t\t\tnav.classList.add('header__nav--scrolled-up');\n\t\t\t\t\tfloatingButtonContainer.classList.add('floating-button__container--visible');\n\t\t\t\t} else {\n\t\t\t\t\theader.style.display = 'none';\n\t\t\t\t}\n\n\t\t\t\t// Hide all secondary lists\n\t\t\t\tfor (let i = 0; i < secondaryContainer.length; i++) {\n\t\t\t\t\tsecondaryContainer[i].classList.remove('secondary--visible');\n\t\t\t\t}\n\t\t\t\t// Remove active class from any active links\n\t\t\t\tremoveActiveClass();\n\t\t\t} else {\n\t\t\t\theader.style.display = 'flex';\n\t\t\t}\n\t\t} else {\n\t\t\theader.style.display = 'flex';\n\t\t}\n\n\t\tlastScrollTop = st <= 0 ? 0 : st; // For Mobile or negative scrolling\n\t};\n\n\t// Attaching the event listener function to window's resize event\n\twindow.addEventListener('resize', screenResize);\n}\n", "const activeStory = document.querySelectorAll('.story-v2-active');\nconst storySlide = document.querySelectorAll('.story-v2-slide');\nconst storySlideActive = document.querySelectorAll('.story-v2-slide.tns-slide-active');\nconst prevStory = document.querySelectorAll('.carousel__container--story-v2 .carousel__prev');\nconst nextStory = document.querySelectorAll('.carousel__container--story-v2 .carousel__next');\nconst storyCarousel = document.getElementById('storyCarousel-UNIQUE-items');\nlet slideCount = 0;\nconst storyWidth = 90 / storySlide.length;\nconst activeStoryWidth = 120 / storySlide.length;\n// media query event handler\nconst mq = window.matchMedia('(min-width: 1024px)');\nmq.addListener(WidthChange);\nWidthChange(mq);\n\nfunction WidthChange(mq) {\n\t// desktop devices\n\tif (mq.matches) {\n\t\tif (storySlideActive.length > 0) {\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < storySlideActive.length; i++) {\n\t\t\t\t// add active class to first story on desktop\n\t\t\t\tstorySlideActive[0].classList.add('story-v2-active');\n\t\t\t}\n\t\t}\n\n\t\tif (nextStory.length > 0) {\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < nextStory.length; i++) {\n\t\t\t\t// click on next button\n\t\t\t\tnextStory[i].addEventListener('click', function(e) {\n\t\t\t\t\t// check for active class\n\t\t\t\t\tconst currentActiveStory = document.querySelectorAll('.story-v2-active');\n\t\t\t\t\tif (currentActiveStory.length > 0) {\n\t\t\t\t\t\tlet i;\n\t\t\t\t\t\tfor (i = 0; i < currentActiveStory.length; i++) {\n\t\t\t\t\t\t\t// add active class to next element\n\t\t\t\t\t\t\tcurrentActiveStory[i].nextElementSibling.classList.add('story-v2-active');\n\t\t\t\t\t\t\t// remove active class for current element\n\t\t\t\t\t\t\tcurrentActiveStory[i].classList.remove('story-v2-active');\n\t\t\t\t\t\t\tcurrentActiveStory[i].nextElementSibling.style.cssText = 'width:' + activeStoryWidth + '%';\n\t\t\t\t\t\t\tcurrentActiveStory[i].style.cssText = 'width:' + storyWidth + '%';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// custom slider\n\t\t\t\t\tif (storyCarousel != null) {\n\t\t\t\t\t\tconsole.log('ok');\n\t\t\t\t\t\tconst increment = slideCount - 30;\n\t\t\t\t\t\tstoryCarousel.style.cssText = 'left: ' + increment + '%; position: relative;';\n\t\t\t\t\t\tslideCount -= 30;\n\t\t\t\t\t\treturn slideCount;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (prevStory.length > 0) {\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < prevStory.length; i++) {\n\t\t\t\t// click on prev button\n\t\t\t\tprevStory[i].addEventListener('click', function(e) {\n\t\t\t\t\tconst currentActiveStory = document.querySelectorAll('.story-v2-active');\n\t\t\t\t\tif (currentActiveStory.length > 0) {\n\t\t\t\t\t\tlet i;\n\t\t\t\t\t\tfor (i = 0; i < currentActiveStory.length; i++) {\n\t\t\t\t\t\t\t// add active class for previous story\n\t\t\t\t\t\t\tcurrentActiveStory[i].previousElementSibling.classList.add('story-v2-active');\n\t\t\t\t\t\t\t// remove active class for current element\n\t\t\t\t\t\t\tcurrentActiveStory[i].classList.remove('story-v2-active');\n\t\t\t\t\t\t\tcurrentActiveStory[i].previousElementSibling.style.cssText = 'width:' + activeStoryWidth + '%';\n\t\t\t\t\t\t\tcurrentActiveStory[i].style.cssText = 'width:' + storyWidth + '%';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (storyCarousel != null) {\n\t\t\t\t\t\tconst decrement = slideCount + 30;\n\t\t\t\t\t\tstoryCarousel.style.cssText = 'left: ' + decrement + '%; position: relative;';\n\t\t\t\t\t\tslideCount += 30;\n\t\t\t\t\t\treturn slideCount;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (activeStory.length > 0) {\n\t\t\tif (storySlide.length > 0) {\n\t\t\t\tlet i;\n\t\t\t\tfor (i = 0; i < storySlide.length; i++) {\n\t\t\t\t\t// set width of active story\n\t\t\t\t\tif (storySlide[i].classList.contains('story-v2-active')) {\n\t\t\t\t\t\tstorySlide[i].style.cssText = 'width:' + activeStoryWidth + '%';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstorySlide[i].style.cssText = 'width:' + storyWidth + '%';\n\t\t\t\t\t}\n\t\t\t\t\t// click on story makes active\n\t\t\t\t\tstorySlide[i].onclick = function(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tthis.parentElement.querySelectorAll('.story-v2-active').forEach(e => {\n\t\t\t\t\t\t\te.classList.remove('story-v2-active');\n\t\t\t\t\t\t\te.style.cssText = 'width:' + storyWidth + '%';\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.classList.add('story-v2-active');\n\t\t\t\t\t\tthis.style.cssText = 'width:' + activeStoryWidth + '%';\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// mobile devices\n\t\tif (storySlide.length > 0) {\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < storySlide.length; i++) {\n\t\t\t\tif (storySlide[i].classList.contains('story-v2-active')) {\n\t\t\t\t\t// remove active class used for desktop\n\t\t\t\t\tstorySlide[i].classList.remove('story-v2-active');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n", "// JS for Notification Banner\nconst notificationBanner = document.querySelectorAll('.notification-banner');\n\nif (notificationBanner != null) {\n\tlet i;\n\tfor (i = 0; i < notificationBanner.length; i++) {\n\t\tconst notficiationBannerCloseDesktop = notificationBanner[i].querySelector('.notification-banner__close-desktop');\n\t\tconst notficiationBannerCloseMobile = notificationBanner[i].querySelector('.notification-banner__close-mobile');\n\n\t\t// Close associated notification banner\n\t\tnotficiationBannerCloseDesktop.addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\tconst openBanners = document.querySelectorAll('.payment-notification.notification-banner');\n\t\t\t// Hide all payment dialogs\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < openBanners.length; i++) {\n\t\t\t\topenBanners[i].parentNode.remove();\n\t\t\t}\n\t\t\tif (this.closest('.payment-error-overlay') != null) {\n\t\t\t\tthis.parentNode.parentNode.remove();\n\t\t\t} else {\n\t\t\t\tthis.parentNode.remove();\n\t\t\t}\n\t\t});\n\n\t\t// Close associated notification banner\n\t\tnotficiationBannerCloseMobile.addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\tconst openBannersMobile = document.querySelectorAll('.payment-notification.notification-banner');\n\t\t\t// Hide all payment dialogs\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < openBannersMobile.length; i++) {\n\t\t\t\topenBannersMobile[i].parentNode.remove();\n\t\t\t}\n\t\t\tif (this.closest('.payment-error-overlay') != null) {\n\t\t\t\tthis.parentNode.parentNode.remove();\n\t\t\t} else {\n\t\t\t\tthis.parentNode.remove();\n\t\t\t}\n\t\t});\n\t}\n}\n", "const Sponsormultiplechildrenrcwidget = document.getElementById('Sponsormultiplechildrenrcwidget');\nconst MultiplechildrenRCwidgetBanner = document.getElementById('MultiplechildrenRCwidgetBanner');\nif (Sponsormultiplechildrenrcwidget != null && MultiplechildrenRCwidgetBanner != null) {\n\tSponsormultiplechildrenrcwidget.onclick = function(e) {\n\t\tMultiplechildrenRCwidgetBanner.parentNode.classList.add('show');\n\t\te.preventDefault();\n\t};\n}\n", "const videoplayer = document.querySelectorAll('.img-and-video-container');\nif (videoplayer.length > 0) {\n\tlet i;\n\tfor (i = 0; i < videoplayer.length; i++) {\n\t\t// play video on image hover for desktop\n\t\tconst playOnHover = videoplayer[i].querySelectorAll('.play-video');\n\t\tvideoplayer[i].addEventListener('mouseover', function() {\n\t\t\tif (playOnHover.length > 0) {\n\t\t\t\tlet i;\n\t\t\t\tfor (i = 0; i < playOnHover.length; i++) {\n\t\t\t\t\tplayOnHover[i].play();\n\t\t\t\t\tplayOnHover[i].classList.remove('hide');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// pause video on mouse leave for desktop\n\t\tvideoplayer[i].addEventListener('mouseleave', function() {\n\t\t\tif (playOnHover.length > 0) {\n\t\t\t\tlet i;\n\t\t\t\tfor (i = 0; i < playOnHover.length; i++) {\n\t\t\t\t\tplayOnHover[i].pause();\n\t\t\t\t\tplayOnHover[i].classList.add('hide');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nconst closeFilter = document.querySelectorAll('.randomchild_Filters .lightbox-close');\nconst randomchildLightbox = document.querySelectorAll('.randomchild_Filters .lightbox');\nconst randomchildFilterButton = document.querySelectorAll('.randomchild_Filters .filterButton');\nconst randomchildOverlay = document.querySelectorAll('.randomchild_Filters .overlay--lightbox');\nif (randomchildFilterButton.length > 0) {\n\tlet i;\n\tfor (i = 0; i < randomchildFilterButton.length; i++) {\n\t\t// Display filter popup onclick filter button\n\t\trandomchildFilterButton[i].addEventListener('click', function(e) {\n\t\t\tif (randomchildLightbox.length > 0) {\n\t\t\t\tlet i;\n\t\t\t\tfor (i = 0; i < randomchildLightbox.length; i++) {\n\t\t\t\t\trandomchildLightbox[i].classList.add('lightbox--visible');\n\t\t\t\t\tif (randomchildOverlay.length > 0) {\n\t\t\t\t\t\tlet i;\n\t\t\t\t\t\tfor (i = 0; i < randomchildOverlay.length; i++) {\n\t\t\t\t\t\t\trandomchildOverlay[i].classList.add('overlay--lightbox--visible');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n// Remove filter popup onclick close button\nif (closeFilter.length > 0) {\n\tlet i;\n\tfor (i = 0; i < closeFilter.length; i++) {\n\t\tcloseFilter[i].addEventListener('click', function(e) {\n\t\t\tif (randomchildLightbox.length > 0) {\n\t\t\t\tlet i;\n\t\t\t\tfor (i = 0; i < randomchildLightbox.length; i++) {\n\t\t\t\t\trandomchildLightbox[i].classList.remove('lightbox--visible');\n\t\t\t\t\tif (randomchildOverlay.length > 0) {\n\t\t\t\t\t\tlet i;\n\t\t\t\t\t\tfor (i = 0; i < randomchildOverlay.length; i++) {\n\t\t\t\t\t\t\trandomchildOverlay[i].classList.remove('overlay--lightbox--visible');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nconst sponsormultiplechildren = document.getElementById('sponsor-multiple-children');\nconst multiplechildrennotificationbanner = document.getElementById('multiplechildren-notification-banner');\n\nif (sponsormultiplechildren != null && multiplechildrennotificationbanner != null) {\n\tsponsormultiplechildren.onclick = function(e) {\n\t\tmultiplechildrennotificationbanner.parentNode.classList.add('show');\n\t\te.preventDefault();\n\t};\n}\n\nconst birthmonthcontainer = document.getElementById('Birthday');\nconst birthmonthwrappercontainer = document.getElementById('birthmonthwrapper-banner');\n\nif (birthmonthcontainer != null && birthmonthwrappercontainer != null) {\n\tbirthmonthcontainer.onclick = function(e) {\n\t\tbirthmonthwrappercontainer.parentNode.classList.add('show');\n\t\te.preventDefault();\n\t};\n}\n", "// JS for site-wide Product Configuration Widget\nconst productConfigWidgetFull = document.querySelectorAll('.js-product-config');\nconst jsToggleDonationAmountsControl = document.querySelectorAll('.js-toggle-donation-amounts-control');\n\nfunction applyFlexColumn(chipsetPaymentContainer) {\n\tconst chipsetPaymentContainerRect = chipsetPaymentContainer?.getBoundingClientRect();\n\tconst footerAffiliates = chipsetPaymentContainer?.querySelector('.form-footer .form-footer__affiliates');\n\tconst footerAffiliatesLink = chipsetPaymentContainer?.querySelectorAll('.form-footer .form-footer__affiliates .form-footer__affiliate-link');\n\tconst requiredWidth = (footerAffiliatesLink.length < 5) ? 360 : 380;\n\tif (chipsetPaymentContainerRect?.width < requiredWidth) {\n\t\tfooterAffiliates.style.cssText = 'flex-direction: column;';\n\t} else {\n\t\tfooterAffiliates.style.cssText = 'flex-direction: row;';\n\t}\n}\n\n// Hide / show different monthly/one-off donation amounts\nif (jsToggleDonationAmountsControl != null) {\n\tlet n;\n\tfor (n = 0; n < jsToggleDonationAmountsControl.length; n++) {\n\t\tconst jsToggleDonationAmountswrapper = jsToggleDonationAmountsControl[n];\n\t\tconst controlTabs = jsToggleDonationAmountsControl[n].querySelectorAll('input[type=\"radio\"]');\n\n\t\tfunction addActivePaymentMethod(activeTabId, targetElem) {\n\t\t\tif (activeTabId.includes('Monthly')) {\n\t\t\t\tconst activeButton = targetElem?.querySelector('.payment-frequency-one-off-container.active');\n\t\t\t\tconst targetButton = targetElem?.querySelector('.payment-frequency-monthly-container');\n\n\t\t\t\tif (activeButton) {\n\t\t\t\t\tactiveButton.classList.remove('active');\n\t\t\t\t}\n\t\t\t\tif (targetButton) {\n\t\t\t\t\ttargetButton.classList.add('active');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst activeButton = targetElem?.querySelector('.payment-frequency-monthly-container.active');\n\t\t\t\tconst targetButton = targetElem?.querySelector('.payment-frequency-one-off-container');\n\t\t\t\tif (activeButton) {\n\t\t\t\t\tactiveButton.classList.remove('active');\n\t\t\t\t}\n\t\t\t\tif (targetButton) {\n\t\t\t\t\ttargetButton.classList.add('active');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction getButtonsOrder(activeTabId, targetElem) {\n\t\t\tconst existingButtons = targetElem?.querySelectorAll('.payment-frequency-monthly-container, .payment-frequency-one-off-container');\n\t\t\tconst chipsetPaymentContainer = document.querySelector('.chip-set-payment-container');\n\t\t\tconst initialElem = existingButtons?.[0];\n\t\t\tconst extraDivContainer = document.querySelector('.hidden-border-container');\n\t\t\tif (existingButtons.length === 1) {\n\t\t\t\tif (chipsetPaymentContainer) {\n\t\t\t\t\tif (extraDivContainer.classList.contains('second-order')) {\n\t\t\t\t\t\textraDivContainer?.classList.remove('second-order');\n\t\t\t\t\t}\n\t\t\t\t\tchipsetPaymentContainer.classList.add('active-left');\n\t\t\t\t\tif (chipsetPaymentContainer.classList.contains('active-right')) {\n\t\t\t\t\t\tchipsetPaymentContainer.classList.remove('active-right');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if ((existingButtons.length >= 1)) {\n\t\t\t\tif (initialElem?.classList?.contains('payment-frequency-monthly-container')) {\n\t\t\t\t\tif (chipsetPaymentContainer) {\n\t\t\t\t\t\tif (activeTabId.includes('Monthly')) {\n\t\t\t\t\t\t\tchipsetPaymentContainer.classList.add('active-left');\n\t\t\t\t\t\t\tif (extraDivContainer.classList.contains('second-order')) {\n\t\t\t\t\t\t\t\textraDivContainer?.classList.remove('second-order');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (chipsetPaymentContainer.classList.contains('active-right')) {\n\t\t\t\t\t\t\t\tchipsetPaymentContainer.classList.remove('active-right');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (extraDivContainer) {\n\t\t\t\t\t\t\t\textraDivContainer?.classList.add('second-order');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchipsetPaymentContainer.classList.add('active-right');\n\t\t\t\t\t\t\tif (chipsetPaymentContainer.classList.contains('active-left')) {\n\t\t\t\t\t\t\t\tchipsetPaymentContainer.classList.remove('active-left');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (initialElem?.classList?.contains('payment-frequency-one-off-container')) {\n\t\t\t\t\tif (chipsetPaymentContainer) {\n\t\t\t\t\t\tif (activeTabId.includes('Monthly')) {\n\t\t\t\t\t\t\tif (extraDivContainer) {\n\t\t\t\t\t\t\t\textraDivContainer?.classList.add('second-order');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchipsetPaymentContainer.classList.add('active-right');\n\t\t\t\t\t\t\tif (chipsetPaymentContainer.classList.contains('active-left')) {\n\t\t\t\t\t\t\t\tchipsetPaymentContainer.classList.remove('active-left');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (extraDivContainer.classList.contains('second-order')) {\n\t\t\t\t\t\t\t\textraDivContainer?.classList.remove('second-order');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchipsetPaymentContainer.classList.add('active-left');\n\t\t\t\t\t\t\tif (chipsetPaymentContainer.classList.contains('active-right')) {\n\t\t\t\t\t\t\t\tchipsetPaymentContainer.classList.remove('active-right');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst showHideDonationAmounts = (thiselement) => {\n\t\t\tconst activeTab = thiselement.querySelector('input[type=\"radio\"]:checked');\n\t\t\tconst controlSetsWrapper = thiselement.closest('.productconfig-wrapper');\n\t\t\tconst controlSets = controlSetsWrapper.querySelectorAll('.js-toggle-donation-amounts-set');\n\t\t\tconst activeTabControl = activeTab.id;\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < controlSets.length; i++) {\n\t\t\t\tcontrolSets[i].classList.add('js-hidden');\n\t\t\t}\n\t\t\tconst activeDonationAmountsSet = controlSetsWrapper.querySelector(\"[data-control='\" + activeTabControl + \"']\");\n\t\t\tactiveDonationAmountsSet?.classList?.remove('js-hidden');\n\t\t\tconst activeDonationAmount = activeTab?.dataset?.defaultAmount;\n\t\t\tdocument.getElementById('MinDonationAmount').value = activeTab?.dataset?.minAmount;\n\t\t\t// Check if URL contains query string parameters as this overrides default donation amount\n\t\t\tconst queryString = window.location.search;\n\t\t\tlet activeDonationAmountInput = null;\n\t\t\tif (queryString.includes('donationAmount')) {\n\t\t\t\tconst urlParams = new URLSearchParams(queryString);\n\t\t\t\tconst donationAmount = urlParams.get('donationAmount');\n\t\t\t\t// Set donation amount to be amount shown in URL, or if blank show default amount\n\t\t\t\tif (donationAmount?.length > 0) {\n\t\t\t\t\tactiveDonationAmountInput = document.querySelector(\"input[value='\" + donationAmount + \"']\");\n\t\t\t\t} else {\n\t\t\t\t\tactiveDonationAmountInput = activeDonationAmountsSet.querySelector(\"input[value='\" + activeDonationAmount + \"']\");\n\t\t\t\t}\n\t\t\t} else { // If no donation amount in URL, select donation amount using cookies\n\t\t\t\tconst selectedValue = activeDonationAmountsSet.querySelector(\"input[value='\" + activeDonationAmount + \"']\");\n\t\t\t\tif (selectedValue != null) {\n\t\t\t\t\tactiveDonationAmountInput = activeDonationAmountsSet.querySelector(\"input[value='\" + activeDonationAmount + \"']\");\n\t\t\t\t} else {\n\t\t\t\t\t// Get cookie value for donation amount\n\t\t\t\t\tconst donationAmountCookie = document.cookie.match(new RegExp('(^| )' + 'wv_donationAmount' + '=([^;]+)'));\n\t\t\t\t\tactiveDonationAmountInput = activeDonationAmountsSet.querySelector(\"input[value='\" + donationAmountCookie[2] + \"']\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Default behaviour: use default donation amount and frequency set in Umbraco\n\t\t\tconst activeDonationAmountText = activeDonationAmountInput.dataset.amountText;\n\t\t\tconst activeTabChipText = activeDonationAmountsSet.querySelector('.chip-text');\n\n\t\t\tactiveTabChipText.style.visibility = 'visible';\n\t\t\tactiveTabChipText.innerText = activeDonationAmountText;\n\n\t\t\tconst manualInputBox = controlSetsWrapper?.querySelector('.chip-set-payment-container .js-product-config-manual');\n\t\t\tif (manualInputBox) {\n\t\t\t\tmanualInputBox.placeholder = activeDonationAmount;\n\t\t\t}\n\n\t\t\tconst selectedPaymentInput = activeDonationAmountsSet.querySelector('input:checked');\n\t\t\tif (selectedPaymentInput) {\n\t\t\t\tmanualInputBox.value = selectedPaymentInput.value;\n\t\t\t} else {\n\t\t\t\tmanualInputBox.value = activeDonationAmount;\n\t\t\t}\n\n\t\t\taddActivePaymentMethod(activeTabControl, thiselement);\n\t\t\tgetButtonsOrder(activeTabControl, thiselement);\n\n\t\t\t// Changing input label dynamically based on the selected frequency\n\t\t\tconst markupLabel = controlSetsWrapper?.querySelector('.js-add-error-markup #label-id9');\n\t\t\tlet inputText = '';\n\t\t\tif (activeTabControl.includes('Monthly')) {\n\t\t\t\tinputText = 'Monthly';\n\t\t\t} else {\n\t\t\t\tinputText = 'One-Off';\n\t\t\t}\n\n\t\t\tif (markupLabel) {\n\t\t\t\tmarkupLabel.innerText = inputText ? inputText + ' amount' : 'Amount';\n\t\t\t}\n\n\t\t\t// Invoking a ResizeObserver to watch for size changes\n\t\t\tconst targetContainers = thiselement.closest('form');\n\t\t\tif ((targetContainers !== null) && window.ResizeObserver) {\n\t\t\t\tlet isMarginApplied = true;\n\n\t\t\t\tconst replacePixels = (content, needParser = true) => {\n\t\t\t\t\tlet removedData = content.replace('px', '');\n\t\t\t\t\tif (needParser) {\n\t\t\t\t\t\tremovedData = +(parseFloat(removedData).toFixed(3));\n\t\t\t\t\t}\n\t\t\t\t\treturn removedData;\n\t\t\t\t};\n\n\t\t\t\tconst getCalcAfterX = (calcAfterX, convertedAfterX) => {\n\t\t\t\t\tlet tempX = calcAfterX;\n\t\t\t\t\tif (tempX > 330) {\n\t\t\t\t\t\tif (convertedAfterX.includes('4.9') || convertedAfterX.includes('5.9') || convertedAfterX.includes('6.8')) {\n\t\t\t\t\t\t\ttempX = tempX + 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (tempX > 260) {\n\t\t\t\t\t\tif (convertedAfterX.includes('4.0') || convertedAfterX.includes('4.9') || convertedAfterX.includes('5.9')) {\n\t\t\t\t\t\t\ttempX = tempX + 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (tempX > 250) {\n\t\t\t\t\t\tif (convertedAfterX.includes('3.1') || convertedAfterX.includes('4.0') || convertedAfterX.includes('4.9') || convertedAfterX.includes('5.9')) {\n\t\t\t\t\t\t\ttempX = tempX + 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (tempX > 240) {\n\t\t\t\t\t\tif (convertedAfterX.includes('3.1') || convertedAfterX.includes('4.0') || convertedAfterX.includes('4.9')) {\n\t\t\t\t\t\t\ttempX = tempX + 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (tempX > 230) {\n\t\t\t\t\t\tif (convertedAfterX.includes('1.3') || convertedAfterX.includes('2.2')) {\n\t\t\t\t\t\t\ttempX = tempX + 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (tempX > 180) {\n\t\t\t\t\t\tif (convertedAfterX.includes('1.3') || convertedAfterX.includes('2.2') || convertedAfterX.includes('5.9') || convertedAfterX.includes('6.8')) {\n\t\t\t\t\t\t\ttempX = tempX + 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (tempX > 170) {\n\t\t\t\t\t\tif (convertedAfterX.includes('5.9') || convertedAfterX.includes('6.8')) {\n\t\t\t\t\t\t\ttempX = tempX + 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (tempX > 160) {\n\t\t\t\t\t\tif (convertedAfterX.includes('1.3') || convertedAfterX.includes('2.2') || convertedAfterX.includes('5.9') || convertedAfterX.includes('6.8')) {\n\t\t\t\t\t\t\ttempX = tempX + 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (tempX > 150) {\n\t\t\t\t\t\tif (convertedAfterX.includes('1.3') || convertedAfterX.includes('5.9') || convertedAfterX.includes('6.8')) {\n\t\t\t\t\t\t\ttempX = tempX + 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn tempX;\n\t\t\t\t};\n\n\t\t\t\tconst resizeObserver = new window.ResizeObserver((entries) => {\n\t\t\t\t\tconst hiddenBorderContainer = thiselement.closest('.transaction-form').querySelector('.hidden-border-container');\n\t\t\t\t\tconst hiddenBorderBeforeStyles = window.getComputedStyle(hiddenBorderContainer, '::before');\n\t\t\t\t\tconst beforeBorderLeftWidth = hiddenBorderBeforeStyles?.borderLeftWidth;\n\t\t\t\t\tif (beforeBorderLeftWidth) {\n\t\t\t\t\t\thiddenBorderContainer.style.setProperty('--beforeBorderX', `-${beforeBorderLeftWidth}`);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst hiddenBorderAfterStyles = window.getComputedStyle(hiddenBorderContainer, '::after');\n\t\t\t\t\tconst hiddenAfterWidth = replacePixels(hiddenBorderAfterStyles?.width);\n\t\t\t\t\tconst afterBorderWidth = replacePixels(hiddenBorderAfterStyles?.borderRightWidth, false);\n\t\t\t\t\tconst convertedAfterBorderWidth = +afterBorderWidth;\n\t\t\t\t\tconst afterWidthWithoutBorder = hiddenAfterWidth - convertedAfterBorderWidth;\n\t\t\t\t\tconst availableButtons = thiselement?.querySelectorAll('.payment-frequency-monthly-container, .payment-frequency-one-off-container');\n\t\t\t\t\tconst convertedWidth = afterWidthWithoutBorder.toString();\n\n\t\t\t\t\tif (availableButtons?.length > 1) {\n\t\t\t\t\t\t// After Y\n\t\t\t\t\t\tlet afterBorderY = hiddenAfterWidth;\n\t\t\t\t\t\tif ((convertedAfterBorderWidth === 3) && (afterWidthWithoutBorder < 17) && (convertedWidth.includes('.'))) {\n\t\t\t\t\t\t\tif (convertedWidth.includes('.99')) {\n\t\t\t\t\t\t\t\tafterBorderY -= 0.5;\n\t\t\t\t\t\t\t} else if (convertedWidth.includes('.96')) {\n\t\t\t\t\t\t\t\tafterBorderY += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// After X\n\t\t\t\t\t\tconst targetButton = availableButtons?.[1];\n\t\t\t\t\t\tif (targetButton) {\n\t\t\t\t\t\t\tconst targetLeft = targetButton.getBoundingClientRect().left;\n\t\t\t\t\t\t\tlet calcAfterX = targetLeft - hiddenAfterWidth + convertedAfterBorderWidth;\n\t\t\t\t\t\t\tconst convertedAfterX = calcAfterX.toString();\n\t\t\t\t\t\t\tif (convertedAfterBorderWidth < 3) {\n\t\t\t\t\t\t\t\tcalcAfterX = getCalcAfterX(calcAfterX, convertedAfterX);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thiddenBorderContainer.style.setProperty('--afterBorderX', `${calcAfterX}px`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\thiddenBorderContainer.style.setProperty('--afterBorderY', `-${afterBorderY}px`);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst beforeStyleWidth = replacePixels(hiddenBorderBeforeStyles?.width);\n\t\t\t\t\tconst withoutBorderWidth = beforeStyleWidth - replacePixels(beforeBorderLeftWidth);\n\t\t\t\t\tconst replacedBeforeWidth = replacePixels(beforeBorderLeftWidth, false);\n\t\t\t\t\tconst convertedResponse = withoutBorderWidth.toString();\n\t\t\t\t\thiddenBorderContainer.style.setProperty('--beforeBorderY', `-${beforeStyleWidth}px`);\n\t\t\t\t\tif ((replacedBeforeWidth === '3') && (withoutBorderWidth < 17) && (convertedResponse.includes('.'))) {\n\t\t\t\t\t\tif (convertedResponse.includes('.99')) {\n\t\t\t\t\t\t\thiddenBorderContainer.style.setProperty('--beforeBorderY', `-${beforeStyleWidth - 0.5}px`);\n\t\t\t\t\t\t} else if (convertedResponse.includes('.96')) {\n\t\t\t\t\t\t\thiddenBorderContainer.style.setProperty('--beforeBorderY', `-${beforeStyleWidth + 1}px`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst chipsetPaymentContainer = thiselement.closest('.transaction-form').querySelector('.chip-set-payment-container');\n\t\t\t\t\tapplyFlexColumn(chipsetPaymentContainer);\n\n\t\t\t\t\tconst markupLabelHeight = markupLabel?.getBoundingClientRect()?.height;\n\t\t\t\t\tconst submitButton = chipsetPaymentContainer?.querySelector('#js-submit');\n\t\t\t\t\tconst computedStyle = window.getComputedStyle(submitButton);\n\t\t\t\t\tif (markupLabelHeight > 24) {\n\t\t\t\t\t\tconst buttonMarginTop = computedStyle.marginTop;\n\n\t\t\t\t\t\tif (buttonMarginTop !== '0px') {\n\t\t\t\t\t\t\tisMarginApplied = true;\n\t\t\t\t\t\t\tsubmitButton.style.marginTop = (markupLabelHeight < 60) ? '3.7rem' : '5.1rem';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst buttonMarginTop = computedStyle.marginTop;\n\t\t\t\t\t\tif (isMarginApplied && buttonMarginTop !== '0px') {\n\t\t\t\t\t\t\tsubmitButton.style.marginTop = '2.1rem';\n\t\t\t\t\t\t} else if (buttonMarginTop) {\n\t\t\t\t\t\t\tsubmitButton.style.marginTop = '2.1rem';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresizeObserver?.observe(targetContainers);\n\t\t\t\tconst hiddenBorderContainer = thiselement.closest('.transaction-form').querySelector('.hidden-border-container');\n\t\t\t\tresizeObserver?.observe(hiddenBorderContainer);\n\t\t\t}\n\t\t};\n\t\tshowHideDonationAmounts(jsToggleDonationAmountswrapper);\n\n\t\tlet i;\n\t\tfor (i = 0; i < controlTabs.length; i++) {\n\t\t\tconst thisControl = controlTabs[i];\n\t\t\tthisControl.addEventListener('click', function(event) {\n\t\t\t\tconst thisElement = event.target;\n\t\t\t\tconst targetId = thisElement.id;\n\t\t\t\t// Changing active payment frequency dynamically when clicking on the button.\n\t\t\t\tconst parentForm = thisElement.closest('.transaction-form');\n\t\t\t\taddActivePaymentMethod(targetId, parentForm);\n\t\t\t\tgetButtonsOrder(targetId, parentForm);\n\t\t\t\tcontrolTabs.forEach(tab => tab.classList.remove('checked'));\n\t\t\t\tif (thisElement.checked) {\n\t\t\t\t\tthisElement.classList.add('checked');\n\t\t\t\t}\n\t\t\t\tshowHideDonationAmounts(jsToggleDonationAmountswrapper);\n\t\t\t});\n\t\t}\n\t}\n}\n\nif (productConfigWidgetFull != null) {\n\tlet k;\n\tfor (k = 0; k < productConfigWidgetFull.length; k++) {\n\t\tlet captionInput = productConfigWidgetFull[k].querySelectorAll('.chip-set-container:not(.js-hidden) .chip-input');\n\t\tconst productConfigCaptionChips = productConfigWidgetFull[k].querySelectorAll('.chip-set--caption .radio-button--chip');\n\t\tconst donationAmountInputs = productConfigWidgetFull[k].querySelectorAll('.js-toggle-donation-amounts-control input[type=\"radio\"]');\n\t\tconst productConfigInput = productConfigWidgetFull[k].querySelector('.js-product-config-manual');\n\t\tlet captionInputValues = [];\n\t\tconst productConfigForm = productConfigWidgetFull[k].closest('.transaction-form');\n\t\tconst childIDInput = productConfigWidgetFull[k].querySelector('.js-child-id-validate');\n\n\t\tconst formFooter = productConfigWidgetFull[k].querySelector('.form-footer');\n\t\tconst tempFooter = productConfigWidgetFull[k].querySelector('.chip-set-payment-container .replaceable-form-footer');\n\t\tif (formFooter != null) {\n\t\t\tconst tempDiv = document.createElement('div');\n\t\t\ttempDiv.appendChild(formFooter.cloneNode(true));\n\t\t\tif (tempFooter != null) {\n\t\t\t\ttempFooter.outerHTML = tempDiv.innerHTML;\n\t\t\t\ttempDiv.remove(); // Prevention for memory leak\n\t\t\t\tformFooter.remove();\n\t\t\t}\n\t\t} else {\n\t\t\ttempFooter?.remove();\n\t\t}\n\n\t\t// Adding border top if buttons are not exist\n\t\tconst chipsetContainer = productConfigWidgetFull[k].querySelector('.chip-set-container.js-toggle-donation-amounts-control');\n\t\tconst chipsetPaymentContainer = productConfigWidgetFull[k].querySelector('.chip-set-payment-container');\n\t\tif (chipsetContainer === null || chipsetContainer === undefined) {\n\t\t\tchipsetPaymentContainer.style.cssText = 'border-top: 3px solid #0C6699; border-radius: 10px;';\n\n\t\t\tif ((chipsetPaymentContainer) && window.ResizeObserver) {\n\t\t\t\tlet isMarginApplied = true;\n\t\t\t\tconst resizeObserver = new window.ResizeObserver((entries) => {\n\t\t\t\t\tapplyFlexColumn(chipsetPaymentContainer);\n\t\t\t\t\tconst markupLabel = chipsetPaymentContainer?.querySelector('#label-id9');\n\t\t\t\t\tconst markupLabelHeight = markupLabel?.getBoundingClientRect()?.height;\n\t\t\t\t\tconst submitButton = chipsetPaymentContainer?.querySelector('#js-submit');\n\t\t\t\t\tconst computedStyle = window.getComputedStyle(submitButton);\n\t\t\t\t\tif (markupLabelHeight > 24) {\n\t\t\t\t\t\tconst buttonMarginTop = computedStyle.marginTop;\n\n\t\t\t\t\t\tif (buttonMarginTop !== '0px') {\n\t\t\t\t\t\t\tisMarginApplied = true;\n\t\t\t\t\t\t\tsubmitButton.style.marginTop = (markupLabelHeight < 60) ? '3.7rem' : '5.1rem';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst buttonMarginTop = computedStyle.marginTop;\n\t\t\t\t\t\tif (isMarginApplied && buttonMarginTop !== '0px') {\n\t\t\t\t\t\t\tsubmitButton.style.marginTop = '2.1rem';\n\t\t\t\t\t\t} else if (buttonMarginTop) {\n\t\t\t\t\t\t\tsubmitButton.style.marginTop = '0px';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresizeObserver?.observe(chipsetPaymentContainer);\n\t\t\t}\n\t\t}\n\n\t\t// Add caption input values to donation values array\n\t\tif (captionInput.length > 0) {\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < captionInput.length; i++) {\n\t\t\t\tcaptionInputValues.push(captionInput[i].value);\n\t\t\t}\n\t\t}\n\n\t\t// Add click event to donation amount inputs\n\t\tif (donationAmountInputs.length > 0) {\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < donationAmountInputs.length; i++) {\n\t\t\t\tif (donationAmountInputs[i].checked === true) {\n\t\t\t\t\tconst checkedChipText = donationAmountInputs[i].dataset.amountText;\n\t\t\t\t\tconst checkedChipId = donationAmountInputs[i].id;\n\t\t\t\t\tconst controlSetsWrapper = donationAmountInputs[i].closest('.productconfig-wrapper');\n\t\t\t\t\tconst checkedChipContainer = controlSetsWrapper.querySelector(\"[data-control='\" + checkedChipId + \"']\");\n\t\t\t\t\tconst chipTextContainer = checkedChipContainer.querySelector('.chip-text');\n\t\t\t\t\tchipTextContainer.style.visibility = 'visible';\n\t\t\t\t\t// Set chip information text\n\t\t\t\t\tif (chipTextContainer != null) {\n\t\t\t\t\t\tchipTextContainer.innerHTML = checkedChipText;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdonationAmountInputs[i].addEventListener('click', (event) => {\n\t\t\t\t\tconst thisElement = event.target;\n\t\t\t\t\tconst thisDefaultAmount = thisElement.dataset.defaultAmount;\n\t\t\t\t\tconst defaultSelectedInput = thisElement.closest('.js-product-config').querySelector('.chip-set-container:not(.js-hidden) input[value=\"' + thisDefaultAmount + '\"]');\n\t\t\t\t\tconst checkedChipText = thisElement.dataset.amountText;\n\t\t\t\t\tconst chipTextContainer = thisElement.closest('.productconfig-wrapper').querySelector('.chip-text');\n\t\t\t\t\tchipTextContainer.style.visibility = 'visible';\n\t\t\t\t\t// Set chip information text\n\t\t\t\t\tif (chipTextContainer != null) {\n\t\t\t\t\t\tchipTextContainer.innerHTML = checkedChipText;\n\t\t\t\t\t}\n\t\t\t\t\t// Check the relevant input\n\t\t\t\t\tif (defaultSelectedInput != null) {\n\t\t\t\t\t\tdefaultSelectedInput.checked = true;\n\t\t\t\t\t}\n\t\t\t\t\tselectCaptionChipProductConfig(event);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Add click event to product config chips\n\t\tif (productConfigCaptionChips.length > 0) {\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < productConfigCaptionChips.length; i++) {\n\t\t\t\tproductConfigCaptionChips[i].addEventListener('input', (event) => {\n\t\t\t\t\tselectCaptionChipProductConfig(event);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Get Cookie function\n\t\tfunction getCookie(cname) {\n\t\t\tconst name = cname + '=';\n\t\t\tconst ca = document.cookie.split(';');\n\t\t\tfor (let i = 0; i < ca.length; i++) {\n\t\t\t\tlet c = ca[i];\n\t\t\t\twhile (c.charAt(0) === ' ') {\n\t\t\t\t\tc = c.substring(1);\n\t\t\t\t}\n\t\t\t\tif (c.indexOf(name) === 0) {\n\t\t\t\t\treturn c.substring(name.length, c.length);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\n\t\t// Function to Show or hide error message\n\t\tconst showHideError = (manualDonationValue, manualInputLabel, errorMessage, errorMessageMax, chipTextContainer) => {\n\t\t\tconst productconfigcontainer = chipTextContainer.closest('.js-product-config');\n\t\t\tconst paymentFreqInput = productconfigcontainer.querySelector('.js-toggle-donation-amounts-control input:checked');\n\t\t\tconst errorMessageText = productconfigcontainer.querySelector('#manual-error .input__msg-text');\n\t\t\tconst errorMessageMaxText = productconfigcontainer.querySelector('#manual-error-max .input__msg-text');\n\n\t\t\t// Check min amount\n\t\t\tlet paymentFreqInputMinAmount = 0;\n\t\t\tlet paymentFreqInputMaxAmount = 0;\n\n\t\t\t// If no min amount is set by product config, use min amount set on manual input\n\t\t\tif (paymentFreqInput != null) {\n\t\t\t\tpaymentFreqInputMinAmount = parseInt(paymentFreqInput.dataset.minAmount) || 0;\n\t\t\t\terrorMessageText.innerText = paymentFreqInput.dataset.minError;\n\t\t\t\tpaymentFreqInputMaxAmount = parseInt(paymentFreqInput.dataset.maxAmount) || 0;\n\t\t\t\tif (errorMessageMaxText) {\n\t\t\t\t\terrorMessageMaxText.innerText = paymentFreqInput.dataset.maxError;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpaymentFreqInputMinAmount = parseInt(productConfigInput.dataset.minDonation) || 0;\n\t\t\t\tpaymentFreqInputMaxAmount = parseInt(productConfigInput.dataset.maxDonation) || 0;\n\t\t\t}\n\n\t\t\tif (manualDonationValue < paymentFreqInputMinAmount) {\n\t\t\t\tmanualInputLabel.classList.add('text-field--error');\n\t\t\t\terrorMessage.classList.remove('js-hidden');\n\t\t\t} else {\n\t\t\t\terrorMessage.classList.add('js-hidden');\n\t\t\t\tif (paymentFreqInputMaxAmount > 0 && manualDonationValue > paymentFreqInputMaxAmount) {\n\t\t\t\t\tmanualInputLabel.classList.add('text-field--error');\n\t\t\t\t\terrorMessageMax.classList.remove('js-hidden');\n\t\t\t\t} else {\n\t\t\t\t\tmanualInputLabel.classList.remove('text-field--error');\n\t\t\t\t\terrorMessageMax.classList.add('js-hidden');\n\t\t\t\t\tchipTextContainer.innerHTML = '';\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Highlight donation chip if manual input is the same as chip value, validate manual input based on minimum amount\n\t\tif (productConfigCaptionChips.length > 0) {\n\t\t\tconst manualInputLabel = productConfigWidgetFull[k].querySelector('.text-field--currency');\n\t\t\tconst errorMessage = productConfigWidgetFull[k].querySelector('#manual-error');\n\t\t\tconst errorMessageMax = productConfigWidgetFull[k].querySelector('#manual-error-max');\n\t\t\tconst chipTextContainer = productConfigWidgetFull[k].querySelector('.chip-set-container:not(.js-hidden) .chip-text');\n\t\t\tconst currentSelectedValue = productConfigWidgetFull[k].querySelector('.js-toggle-donation-amounts-set input:checked');\n\n\t\t\t// On page load validate cookie value if it exists\n\t\t\tlet cookieDonationAmount = getCookie('wv_donationAmount');\n\t\t\tif (cookieDonationAmount || productConfigInput.classList.contains('input-validation-error')) {\n\t\t\t\tcookieDonationAmount = cookieDonationAmount === '' ? 0 : (parseInt(cookieDonationAmount) || 0);\n\t\t\t\tshowHideError(cookieDonationAmount, manualInputLabel, errorMessage, errorMessageMax, chipTextContainer);\n\t\t\t}\n\n\t\t\t// Validate any manual input value\n\t\t\tproductConfigInput.addEventListener('keyup', function(e) {\n\t\t\t\tconst manualDonationValue = this.value === '' ? 0 : parseInt(this.value);\n\n\t\t\t\t// Hide any associated chip text if the value of the input is 0\n\t\t\t\tif (currentSelectedValue != null) {\n\t\t\t\t\tthis.closest('.transaction-form').querySelector('.chip-set-container:not(.js-hidden) .chip-text').innerHTML = '';\n\t\t\t\t}\n\n\t\t\t\t// See if typed value exists in donations array\n\t\t\t\tif (captionInputValues.indexOf(this.value) > -1) {\n\t\t\t\t\tconst typedInput = this.closest('.transaction-form').querySelector('.chip-set-container:not(.js-hidden) input[value=\"' + manualDonationValue + '\"]');\n\n\t\t\t\t\t// Uncheck all other inputs\n\t\t\t\t\tif (captionInput.length > 0) {\n\t\t\t\t\t\tlet i;\n\t\t\t\t\t\tfor (i = 0; i < captionInput.length; i++) {\n\t\t\t\t\t\t\tcaptionInput[i].checked = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tshowHideError(manualDonationValue, manualInputLabel, errorMessage, errorMessageMax, chipTextContainer);\n\t\t\t\t\t// Check the relevant input\n\t\t\t\t\ttypedInput.checked = true;\n\t\t\t\t\tselectCaptionChipProductConfig();\n\t\t\t\t} else {\n\t\t\t\t\tshowHideError(manualDonationValue, manualInputLabel, errorMessage, errorMessageMax, chipTextContainer);\n\n\t\t\t\t\t// Uncheck all other inputs\n\t\t\t\t\tif (captionInput.length > 0) {\n\t\t\t\t\t\tlet i;\n\t\t\t\t\t\tfor (i = 0; i < captionInput.length; i++) {\n\t\t\t\t\t\t\tcaptionInput[i].checked = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (currentSelectedValue != null) {\n\t\t\t\t\t\t// Remove selected class\n\t\t\t\t\t\tcurrentSelectedValue.checked = false;\n\t\t\t\t\t\t// Hide donation text\n\t\t\t\t\t\tchipTextContainer.innerHTML = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (captionInput.length > 0) {\n\t\t\tif (parseInt(productConfigInput.value) >= parseInt(productConfigInput.dataset.minDonation)) {\n\t\t\t\tconst manualInputLabel = productConfigWidgetFull[k].querySelector('.text-field--currency');\n\t\t\t\tconst errorMessages = productConfigWidgetFull[k].querySelectorAll('.input__msg--error');\n\t\t\t\t// Remove any error state\n\t\t\t\tmanualInputLabel.classList.remove('text-field--error');\n\t\t\t\tproductConfigInput.classList.remove('input-validation-error');\n\t\t\t\tlet j;\n\t\t\t\tfor (j = 0; j < errorMessages.length; j++) {\n\t\t\t\t\terrorMessages[j].classList.add('js-hidden');\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < captionInput.length; i++) {\n\t\t\t\tif (captionInput[i].checked === true && captionInput[i].value === productConfigInput.value) {\n\t\t\t\t\tconst checkedChipText = captionInput[i].dataset.amountText;\n\t\t\t\t\tconst chipTextContainer = captionInput[i].closest('.chip-set-container').querySelector('.chip-text');\n\t\t\t\t\tchipTextContainer.style.display = 'block';\n\n\t\t\t\t\t// Set chip information text\n\t\t\t\t\tif (chipTextContainer != null) {\n\t\t\t\t\t\tchipTextContainer.innerHTML = checkedChipText;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcaptionInput[i].checked = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Select caption function\n\t\tfunction selectCaptionChipProductConfig(event) {\n\t\t\tconst newproductConfigWidgetFull = event.target.closest('.js-product-config');\n\t\t\tcaptionInput = newproductConfigWidgetFull.querySelectorAll('.chip-set-container:not(.js-hidden) .chip-input');\n\t\t\tcaptionInputValues = [];\n\t\t\t// Add caption input values to donation values array\n\t\t\tif (captionInput.length > 0) {\n\t\t\t\tlet i;\n\t\t\t\tfor (i = 0; i < captionInput.length; i++) {\n\t\t\t\t\tcaptionInputValues.push(captionInput[i].value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst manualInputLabel = newproductConfigWidgetFull.querySelector('.text-field--currency');\n\t\t\tconst errorMessages = newproductConfigWidgetFull.querySelectorAll('.input__msg--error');\n\n\t\t\tif (captionInput.length > 0) {\n\t\t\t\tlet i;\n\t\t\t\tfor (i = 0; i < captionInput.length; i++) {\n\t\t\t\t\tif (captionInput[i].checked === true) {\n\t\t\t\t\t\tconst checkedChipText = captionInput[i].dataset.amountText;\n\t\t\t\t\t\tconst checkedChipValue = captionInput[i].value;\n\t\t\t\t\t\tconst chipTextContainer = captionInput[i].closest('.chip-set-container').querySelector('.chip-text');\n\n\t\t\t\t\t\t// Remove any error state\n\t\t\t\t\t\tmanualInputLabel.classList.remove('text-field--error');\n\t\t\t\t\t\tproductConfigInput.classList.remove('input-validation-error');\n\t\t\t\t\t\tlet j;\n\t\t\t\t\t\tfor (j = 0; j < errorMessages.length; j++) {\n\t\t\t\t\t\t\terrorMessages[j].classList.add('js-hidden');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tproductConfigInput.value = checkedChipValue;\n\t\t\t\t\t\tchipTextContainer.style.display = 'block';\n\n\t\t\t\t\t\t// Set chip information text\n\t\t\t\t\t\tif (chipTextContainer != null) {\n\t\t\t\t\t\t\tchipTextContainer.innerHTML = checkedChipText;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcaptionInput[i].checked = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Function to check child ID against regex\n\t\tconst checkChildID = function(childID, input, event) {\n\t\t\tconst childIDRegex = /^([A-Z]{3}[-][0-9]{6}[-][0-9]{4})$/;\n\t\t\tconst parentDiv = input.closest('.form__input-container');\n\t\t\tconst inputLabel = input.closest('.text-field');\n\t\t\tconst inputError = parentDiv.querySelector('.input__msg');\n\t\t\tif (childIDRegex.test(childID) !== false) {\n\t\t\t\t// If child ID input value does not match regex\n\t\t\t\tinputError.classList.remove('js-hidden');\n\t\t\t\tinputError.classList.remove('field-validation-valid');\n\t\t\t\tinputError.classList.add('field-validation-invalid');\n\t\t\t\tinputLabel.classList.add('text-field--error');\n\t\t\t\t// event.preventDefault();\n\t\t\t} else { // If child ID input value does match regex\n\t\t\t\tinputError.classList.remove('field-validation-invalid');\n\t\t\t\tinputError.classList.add('field-validation-valid');\n\t\t\t\tinputLabel.classList.remove('text-field--error');\n\t\t\t}\n\t\t};\n\n\t\t// Custom validation for when form is submitted\n\t\tif (productConfigForm != null) {\n\t\t\tproductConfigForm.addEventListener('submit', function(event) {\n\t\t\t\t// Validation on Child ID input field - 'XXX-123456-1234' (hyphens required)\n\t\t\t\tif (childIDInput != null) {\n\t\t\t\t\tcheckChildID(childIDInput.value, childIDInput, event);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n}\n", "// Changing tabs hide/show content\nconst quote = document.querySelectorAll('.quote');\n\nif (quote.length > 0) {\n\tlet i;\n\tfor (i = 0; i < quote.length; i++) {\n\t\tscreenResize(quote[i]);\n\t}\n}\n\nfunction screenResize(quoteContainer) {\n\tconst w = document.documentElement.clientWidth;\n\n\tif (w <= 1024 && w >= 720) {\n\t\tconst quoteString = quoteContainer.querySelector('.quote__text');\n\t\tconst quoteLength = quoteString.textContent.length;\n\n\t\tif (quoteLength >= 100) {\n\t\t\tquoteContainer.classList.add('quote--reduced');\n\t\t}\n\t} else {\n\t\tquoteContainer.classList.remove('quote--reduced');\n\t}\n}\n", "// Select options hide and show corresponding tabs\nconst selectOptionTabsContainer = document.querySelector('.select-option__tabs');\nconst openDialog = document.querySelector('.payment-notification.notification-banner');\n\nif (selectOptionTabsContainer != null) {\n\t// Get select options within this container\n\tconst selectOptions = selectOptionTabsContainer.querySelectorAll('.select-option');\n\tconst paymentOptionForms = selectOptionTabsContainer.querySelectorAll('.payment-option__content');\n\tconst selectOptionContainer = selectOptionTabsContainer.querySelector('.select-option__container');\n\n\tlet pairedTab;\n\t// Click a select option to show the corresponding form\n\tlet j;\n\tfor (j = 0; j < selectOptions.length; j++) {\n\t\tselectOptions[j].addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\t// Get corresponding tab\n\t\t\tpairedTab = this.dataset.po;\n\t\t\t// Get this form tab\n\t\t\tconst thisFormTab = document.getElementById(pairedTab);\n\t\t\t// Hide select options\n\t\t\tselectOptionContainer.style.display = 'none';\n\t\t\t// Show corresponding form tab\n\t\t\tthisFormTab.style.display = 'block';\n\t\t});\n\t}\n\t// Click back button to return to select options page\n\tconst selectOptionsBackButtons = document.querySelectorAll('.payment-option__content .js-button-back');\n\n\tlet k;\n\tfor (k = 0; k < selectOptionsBackButtons.length; k++) {\n\t\tselectOptionsBackButtons[k].addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\t// Show select options\n\t\t\tselectOptionContainer.style.display = 'block';\n\t\t\t// Hide all payment forms\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < paymentOptionForms.length; i++) {\n\t\t\t\tpaymentOptionForms[i].style.display = 'none';\n\t\t\t}\n\t\t});\n\t}\n\n\t// If error dialog is showing on payment details form, show the tab it's on by default\n\tif (openDialog != null) {\n\t\tconst selectOptionContainer = document.querySelector('.select-option__container');\n\t\tlet errorID = openDialog.id;\n\t\terrorID = errorID.replace('-Dialog', '');\n\t\tconst errorTabContent = document.getElementById(errorID);\n\n\t\t// Hide select options\n\t\tselectOptionContainer.style.display = 'none';\n\t\t// Show corresponding form tab\n\t\terrorTabContent.style.display = 'block';\n\t}\n}\n", "// Open share lightbox when share buttons are clicked if one exists on the page\nconst shareLightbox = document.querySelector('.lightbox--share');\nconst shareLightboxOverlay = document.querySelector('.overlay--lightbox');\nconst shareButtons = document.querySelectorAll('.js-share-link');\n\nif (shareLightbox != null && shareButtons.length > 0) {\n\tlet i;\n\tfor (i = 0; i < shareButtons.length; i++) {\n\t\tshareButtons[i].addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\tconst shareLightboxInner = shareLightbox.querySelector('.lightbox-inner');\n\t\t\tconst shareLightboxInnerMarkupTemplate = shareLightbox.querySelector('.lightbox-inner').innerHTML;\n\t\t\tlet shareLightboxInnerMarkup = shareLightbox.querySelector('.lightbox-inner').innerHTML;\n\t\t\t// Variables that hold the information to be shared\n\t\t\tconst shareURL = this.dataset.link;\n\t\t\tconst shareMessage = this.dataset.message;\n\n\t\t\t// Replace variables in share lightbox markup with relevant share URL and message\n\t\t\tconst newLightbox = document.createElement('div');\n\t\t\tnewLightbox.classList.add('lightbox-inner');\n\t\t\tshareLightboxInnerMarkup = shareLightboxInnerMarkup.replaceAll('{SHARE_URL}', shareURL);\n\t\t\tshareLightboxInnerMarkup = shareLightboxInnerMarkup.replaceAll('{SHARE_MESSAGE}', shareMessage);\n\t\t\tnewLightbox.innerHTML = shareLightboxInnerMarkup;\n\t\t\tshareLightbox.replaceChild(newLightbox, shareLightboxInner, function() {\n\t\t\t\t/*eslint-disable */\n\t\t\t\tFB.XFBML.parse(); // Re-initialise Facebook\n\t\t\t\ttwttr.widgets.load(document.getElementById(\"twitterShare\")); // Re-initialise Twitter\n\t\t\t\t/* eslint-enable */\n\t\t\t});\n\n\t\t\t// Show lightbox and overlay\n\t\t\tshareLightbox.classList.add('lightbox--visible');\n\t\t\tshareLightboxOverlay.classList.add('overlay--lightbox--visible');\n\n\t\t\t// Close lightbox button\n\t\t\tconst lightboxClose = document.querySelector('.lightbox-close');\n\n\t\t\t// Close lightbox\n\t\t\tlightboxClose.addEventListener('click', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst currentShareLightbox = document.querySelector('.lightbox--share .lightbox-inner');\n\t\t\t\t// Create new node containing base lightbox\n\t\t\t\tconst baseLightbox = document.createElement('div');\n\t\t\t\tbaseLightbox.classList.add('lightbox-inner');\n\t\t\t\tbaseLightbox.innerHTML = shareLightboxInnerMarkupTemplate;\n\t\t\t\t// Close current lightbox and overlay\n\t\t\t\tthis.parentNode.parentNode.classList.remove('lightbox--visible');\n\t\t\t\tshareLightboxOverlay.classList.remove('overlay--lightbox--visible');\n\t\t\t\t// Restore lightbox to default position\n\t\t\t\tshareLightbox.replaceChild(baseLightbox, currentShareLightbox);\n\t\t\t});\n\n\t\t\t// Copy data attribute on same link\n\t\t\tconst copyAttribute = document.querySelector('.js-copy-attr');\n\n\t\t\tif (copyAttribute != null) {\n\t\t\t\tcopyAttribute.addEventListener('click', function(e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t// Create new element\n\t\t\t\t\tconst el = document.createElement('textarea');\n\t\t\t\t\t// Set value (string to be copied)\n\t\t\t\t\tel.value = shareURL;\n\t\t\t\t\t// Set non-editable to avoid focus and move outside of view\n\t\t\t\t\tel.setAttribute('readonly', '');\n\t\t\t\t\tel.style = { position: 'absolute', left: '-9999px' };\n\t\t\t\t\tdocument.body.appendChild(el);\n\t\t\t\t\t// Select text inside element\n\t\t\t\t\tel.select();\n\t\t\t\t\t// Copy text to clipboard\n\t\t\t\t\tdocument.execCommand('copy');\n\t\t\t\t\t// Remove temporary element\n\t\t\t\t\tdocument.body.removeChild(el);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n", "const handleClickOutsideSearchbtn = (e) => {\n\tconst searchIcon = document.getElementById('sitesearch-iconwrapper');\n\tconst searchPanel = document.querySelector('.search-panel');\n\tif (searchIcon !== undefined && searchIcon !== null) {\n\t\tsearchIcon.addEventListener('click', function() {\n\t\t\tthis.classList.toggle('borderactive');\n\t\t\tsearchPanel.classList.toggle('show');\n\t\t\tsetTimeout(function() {\n\t\t\t\tdocument.getElementById('sitesearchinput').focus();\n\t\t\t}, 100);\n\t\t});\n\n\t\tconst siteSearchinputbox = document.querySelector('.sitesearch-input');\n\n\t\tif (e.target !== searchIcon && e.target !== siteSearchinputbox) {\n\t\t\tsearchPanel.classList.remove('show');\n\t\t\tsearchIcon.classList.remove('borderactive');\n\t\t}\n\t}\n};\n\ndocument.addEventListener('click', handleClickOutsideSearchbtn, true);\n", "// Changing tabs hide/show content\nconst openError = document.querySelector('.payment-notification.notification-banner');\n\n// Tab bar with pure Javascript\nconst tabs = document.querySelectorAll('[data-tab-value]');\nconst tabInfos = document.querySelectorAll('[data-tab-info]');\nconst tabCheck = document.getElementById('tabs');\n\nif (tabCheck != null) {\n\ttabs.forEach((tab, index) => {\n\t\t// Load first available tab on initial page load\n\t\tif (index === 0) {\n\t\t\ttab.classList.add('tab-active');\n\n\t\t\tconst thisTabTarget = tab.dataset.tabValue;\n\t\t\tdocument.querySelector(thisTabTarget).classList.add('active');\n\t\t}\n\n\t\ttab.addEventListener('click', () => {\n\t\t\ttab.classList.add('tab-active');\n\t\t\tconst getSiblings = function(e) {\n\t\t\t\t// for collecting siblings\n\t\t\t\tconst siblings = [];\n\t\t\t\t// if no parent, return no sibling\n\t\t\t\tif (!e.parentNode) {\n\t\t\t\t\treturn siblings;\n\t\t\t\t}\n\t\t\t\t// first child of the parent node\n\t\t\t\tlet sibling = e.parentNode.firstChild;\n\t\t\t\t// collecting siblings\n\t\t\t\twhile (sibling) {\n\t\t\t\t\tif (sibling.nodeType === 1 && sibling !== e) {\n\t\t\t\t\t\tsiblings.push(sibling);\n\t\t\t\t\t}\n\t\t\t\t\tsibling = sibling.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn siblings;\n\t\t\t};\n\n\t\t\tconst siblings = getSiblings(tab);\n\t\t\tsiblings.map(e => e.classList.remove('tab-active'));\n\t\t\tconst target = document.querySelector(tab.dataset.tabValue);\n\n\t\t\ttabInfos.forEach(tabInfo => {\n\t\t\t\ttabInfo.classList.remove('active');\n\t\t\t});\n\t\t\ttarget.classList.add('active');\n\t\t});\n\t});\n\n\t// scroll tab bar If there are more tabs\n\tconst tabsContent = document.querySelectorAll('.tabs .tabs-content');\n\tconst tabsCount = document.querySelectorAll('.tabs .tabs-content').length;\n\tconst visibletabs = tabsCount * 110;\n\tconst tabBlockWidth = document.getElementById('tabs').offsetWidth;\n\tif (visibletabs > tabBlockWidth) {\n\t\tconst noOfVisibleItems = Math.floor(tabBlockWidth / 120);\n\t\tif (tabsContent.length > 0) {\n\t\t\tlet i;\n\t\t\tfor (i = noOfVisibleItems; i < tabsContent.length; i++) {\n\t\t\t\ttabsContent[i].classList.add('scrollTab');\n\t\t\t}\n\t\t}\n\t\tconst scrollTabs = document.querySelectorAll('.scrollTab');\n\t\tconst tabContentWidth = document.querySelector('.tabs .tabs-content').offsetWidth;\n\t\tconst list = [...document.querySelectorAll('.tabs .tabs-content')];\n\t\tconst active = document.querySelector('.tabs .tabs-content.tab-active');\n\t\tlet activeIndex = list.indexOf(active);\n\t\tif (scrollTabs != null) {\n\t\t\tscrollTabs.forEach(scrollTab => {\n\t\t\t\tscrollTab.addEventListener('click', () => {\n\t\t\t\t\tif (tabsContent.length > 0) {\n\t\t\t\t\t\tlet i;\n\t\t\t\t\t\tfor (i = 0; i < tabsContent.length; i++) {\n\t\t\t\t\t\t\tif (!tabsContent[i].classList.contains('scrollTab')) {\n\t\t\t\t\t\t\t\ttabsContent[i].classList.add('scrollTab');\n\t\t\t\t\t\t\t\tconst scrollTabs = document.querySelectorAll('.scrollTab');\n\t\t\t\t\t\t\t\tif (scrollTabs != null) {\n\t\t\t\t\t\t\t\t\tscrollTabs.forEach(scrollTab => {\n\t\t\t\t\t\t\t\t\t\tscrollTab.addEventListener('click', () => {\n\t\t\t\t\t\t\t\t\t\t\tconst clickedIndex = list.indexOf(scrollTab);\n\t\t\t\t\t\t\t\t\t\t\tconst parentTabBar = scrollTab.parentNode;\n\t\t\t\t\t\t\t\t\t\t\tif (clickedIndex > activeIndex) {\n\t\t\t\t\t\t\t\t\t\t\t\tparentTabBar.scrollLeft += tabContentWidth;\n\t\t\t\t\t\t\t\t\t\t\t} else if (activeIndex > clickedIndex) {\n\t\t\t\t\t\t\t\t\t\t\t\tparentTabBar.scrollLeft -= tabContentWidth;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tactiveIndex = clickedIndex;\n\t\t\t\t\t\t\t\t\t\t\treturn activeIndex;\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst clickedIndex = list.indexOf(scrollTab);\n\t\t\t\t\tconst parentTabBar = scrollTab.parentNode;\n\t\t\t\t\tif (clickedIndex > activeIndex) {\n\t\t\t\t\t\tparentTabBar.scrollLeft += tabContentWidth;\n\t\t\t\t\t} else if (activeIndex > clickedIndex) {\n\t\t\t\t\t\tparentTabBar.scrollLeft -= tabContentWidth;\n\t\t\t\t\t}\n\t\t\t\t\tactiveIndex = clickedIndex;\n\t\t\t\t\treturn activeIndex;\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\t// If error dialog is showing on payment details form, show the tab it's on by default\n\tif (openError) {\n\t\tconst listOfTabContents = document.querySelectorAll('.tab-content .tabs__tab');\n\t\tconst listOfTabLabels = document.querySelectorAll('.tabs .tabs-content');\n\t\tlet errorID = openError.id;\n\t\terrorID = errorID.replace('-Dialog', '');\n\n\t\tconst errorTabContent = document.getElementById(errorID);\n\t\tconst errorclickableTab = document.querySelector('[data-tab-value=\"#' + errorID + '\"]');\n\n\t\t// Remove any active state from tabs\n\t\tlet i;\n\t\tfor (i = 0; i < listOfTabContents.length; i++) {\n\t\t\tlistOfTabContents[i].classList.remove('active');\n\t\t\tlistOfTabLabels[i].classList.remove('tab-active');\n\t\t}\n\n\t\t// Add active state to tab with associated error message open\n\t\terrorclickableTab.classList.add('tab-active');\n\t\terrorTabContent.classList.add('active');\n\t}\n}\n", "// Styling classes for text fields\nconst textFields = document.querySelectorAll('.text-field');\n\n// Style pre-filled inputs\nif (textFields.length > 0) {\n\t// Loop through each text field\n\tlet i;\n\tfor (i = 0; i < textFields.length; i++) {\n\t\tconst thisInput = textFields[i].getElementsByTagName('input')[0];\n\n\t\t// if it is populated, add class\n\t\tif (thisInput.value.length > 0) {\n\t\t\ttextFields[i].classList.add('text-field--populated');\n\t\t}\n\n\t\tthisInput.addEventListener('blur', (event) => {\n\t\t\t// if it is populated, add class\n\t\t\tif (thisInput.value.length > 0) {\n\t\t\t\tthisInput.closest('.text-field').classList.add('text-field--populated');\n\t\t\t} else {\n\t\t\t\tthisInput.closest('.text-field').classList.remove('text-field--populated');\n\t\t\t}\n\t\t});\n\n\t\t// Calculate padding on currency inputs to allow space around currency character\n\t\tif (textFields[i].classList.contains('text-field--currency')) {\n\t\t\t// calculate width of icon element\n\t\t\tconst iconEle = textFields[i].querySelector('.text-field__icon');\n\t\t\tconst iconInfo = iconEle.getBoundingClientRect();\n\t\t\tlet iconWidth = iconInfo.width;\n\n\t\t\ticonWidth = Math.floor(iconWidth + 20);\n\n\t\t\t// Set the padding on the manual input to accommodate for the character's width\n\t\t\tconst manualInput = textFields[i].querySelector('.js-product-config-manual');\n\t\t\tmanualInput.style.paddingLeft = iconWidth + 'px';\n\t\t}\n\t}\n}\n", "// Clicking on thumbnails to control main image\nconst imageContainer = document.querySelector('.js-thumbnail-select-image');\n\nif (imageContainer != null) {\n\tconst primaryImage = imageContainer.querySelector('.js-primary-image');\n\tconst thumbnailLinks = imageContainer.querySelectorAll('.thumbnail-link');\n\n\tlet i;\n\tfor (i = 0; i < thumbnailLinks.length; i++) {\n\t\tthumbnailLinks[i].addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\tconst dataImg = this.querySelector('.image__src').dataset.img;\n\t\t\tconst currentActiveImage = imageContainer.querySelector('.thumbnail-link--active');\n\t\t\t// Set selected image to be active, replace primary message image source with selected image source\n\t\t\tcurrentActiveImage.classList.remove('thumbnail-link--active');\n\t\t\tthis.classList.add('thumbnail-link--active');\n\t\t\tprimaryImage.src = dataImg;\n\t\t});\n\t}\n}\n", "// Validate email on frontend\nconst validateEmailInput = document.querySelectorAll('.js-validate-email');\n\n// Validate email function with regex\nfunction validateEmail(email) {\n\t/*eslint-disable */\n\tconst re = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\n\t/* eslint-enable */\n\treturn re.test(email);\n}\n\nif (validateEmailInput.length > 0) {\n\tlet i;\n\tfor (i = 0; i < validateEmailInput.length; i++) {\n\t\tvalidateEmailInput[i].addEventListener('blur', function(e) {\n\t\t\tconst emailInputValue = this.value;\n\t\t\t// Show/hide error/success messages depending on whether or not email is valid\n\t\t\tif (validateEmail(emailInputValue) === true) {\n\t\t\t\tthis.parentNode.classList.remove('text-field--error');\n\t\t\t\tthis.parentNode.classList.add('text-field--success');\n\t\t\t} else {\n\t\t\t\tthis.parentNode.classList.add('text-field--error');\n\t\t\t\tthis.parentNode.classList.remove('text-field--success');\n\t\t\t}\n\t\t});\n\t}\n}\n", "const validatePhoneInput = document.getElementsByClassName('js-validate-phone');\nconst phoneErrormessage = document.querySelector('#phone-error');\nif (validatePhoneInput.length > 0) {\n\tconst minimumlength = validatePhoneInput[0].dataset.minlength;\n\tlet i;\n\tfor (i = 0; i < validatePhoneInput.length; i++) {\n\t\tvalidatePhoneInput[i].addEventListener('blur', showErrormsg, false);\n\t}\n\tfunction showErrormsg() {\n\t\tif (this.value.length >= minimumlength || this.value.length === 0) {\n\t\t\tphoneErrormessage.classList.add('js-hidden');\n\t\t\tthis.classList.remove('js-minimum-valid');\n\t\t} else {\n\t\t\tphoneErrormessage.classList.remove('js-hidden');\n\t\t\tthis.classList.add('js-minimum-valid');\n\t\t}\n\t}\n}\n", "// Select video widgets if they exist on page\nconst videoWidget = document.querySelectorAll('.video-ds2');\n\nif (videoWidget.length > 0) {\n\tlet i;\n\tfor (i = 0; i < videoWidget.length; i++) {\n\t\tconst videoOverlayLink = videoWidget[i].querySelector('.video-ds2__overlay');\n\t\tconst videoWidgetSrc = videoWidget[i].querySelector('.video__src');\n\n\t\t// If video widget has html5 embedded video, pause it on page load\n\t\tif (videoOverlayLink != null && videoWidgetSrc != null) {\n\t\t\tvideoWidgetSrc.pause();\n\n\t\t\tconst videoOverlay = videoWidget[i].querySelector('.video-ds2__overlay');\n\t\t\tconst videoOverlayLink = videoOverlay.querySelector('.video-ds2__overlay-link');\n\n\t\t\tvideoOverlayLink.addEventListener('click', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvideoOverlay.remove();\n\t\t\t\tvideoWidgetSrc.play();\n\t\t\t});\n\t\t}\n\t}\n}\n", "const paymentappleButton = document.getElementById('applepay-btn-submit');\nconst paymentgpayButton = document.getElementById('gpay-btn-submit');\nconst walletpaymentnotification = document.getElementById('walletpaymentnotification-banner');\nconst walletpaymentnotificationBanner = document.querySelectorAll('.walletpaymentnotification-banner');\n\nif (paymentappleButton != null) {\n\tpaymentappleButton.onclick = function(e) {\n\t\twalletpaymentnotification.parentNode.classList.add('show');\n\t\te.preventDefault();\n\n\t\t// DataLayer push to track behaviour of wallet payment buttons\n\t\t// Apple pay\n\t\t/* eslint-disable */\n\t\tif (typeof dataLayer !== 'undefined' && typeof doesAnalyticalCookieExist !== 'undefined') {\n\t\t\tdataLayer.push({\n\t\t\t\t'event': 'checkout_button_test',\n\t\t\t\t'event_category': 'navigation',\n\t\t\t\t'event_action': 'call to action',\n\t\t\t\t'event_label': 'apple pay'\n\t\t\t})\n\t\t}\n\t\t/* eslint-enable */\n\t};\n}\nif (paymentgpayButton != null) {\n\tpaymentgpayButton.onclick = function(e) {\n\t\twalletpaymentnotification.parentNode.classList.add('show');\n\t\te.preventDefault();\n\n\t\t// DataLayer push to track behaviour of wallet payment buttons\n\t\t// Google pay\n\t\t/* eslint-disable */\n\t\tif (typeof dataLayer !== 'undefined' && typeof doesAnalyticalCookieExist !== 'undefined') {\n\t\t\tdataLayer.push({\n\t\t\t\t'event': 'checkout_button_test',\n\t\t\t\t'event_category': 'navigation',\n\t\t\t\t'event_action': 'call to action',\n\t\t\t\t'event_label': 'google pay'\n\t\t\t})\n\t\t}\n\t};\n}\n\nif (walletpaymentnotificationBanner != null) {\n\tlet i;\n\tfor (i = 0; i < walletpaymentnotificationBanner.length; i++) {\n\t\tconst notficiationBannerCloseDesktop = walletpaymentnotificationBanner[i].querySelector('.notification-banner__close-desktop');\n\t\tconst notficiationBannerCloseMobile = walletpaymentnotificationBanner[i].querySelector('.notification-banner__close-mobile');\n\n\t\t// Close associated notification banner\n\t\tnotficiationBannerCloseDesktop.addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\tconst openBanners = document.querySelectorAll('.walletpaymentnotification-banner');\n\t\t\t// Hide all payment dialogs\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < openBanners.length; i++) {\n\t\t\t\topenBanners[i].parentNode.classList.remove('show');\n\t\t\t}\n\t\t\tif (this.closest('.payment-error-overlay') != null) {\n\t\t\t\tthis.parentNode.parentNode.classList.remove('show');\n\t\t\t} else {\n\t\t\t\tthis.parentNode.classList.remove('show');\n\t\t\t}\n\t\t});\n\n\t\t// Close associated notification banner\n\t\tnotficiationBannerCloseMobile.addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\tconst openBannersMobile = document.querySelectorAll('.walletpaymentnotification-banner');\n\t\t\t// Hide all payment dialogs\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < openBannersMobile.length; i++) {\n\t\t\t\topenBannersMobile[i].parentNode.classList.remove('show');\n\t\t\t}\n\t\t\tif (this.closest('.payment-error-overlay') != null) {\n\t\t\t\tthis.parentNode.parentNode.classList.remove('show');\n\t\t\t} else {\n\t\t\t\tthis.parentNode.classList.remove('show');\n\t\t\t}\n\t\t});\n\t}\n}\n", "// Count words on a page if\nconst wordcountEl = document.querySelectorAll('.js-wordcount');\n\n// strip out script tags\nfunction noscript(strCode) {\n\treturn strCode.replace(/.*?<\\/script>/igm, '');\n}\n\nif (wordcountEl.length > 0) {\n\tconst body = document.body;\n\tconst readingTimeEl = document.querySelector('.js-readingTime');\n\tif (body) {\n\t\tlet words = document.body[('innerText' in document.body) ? 'innerText' : 'textContent'];\n\t\twords = noscript(words);\n\t\twords = words.match(/\\S+/g).length;\n\n\t\t// Calculate page reading time in minutes\n\t\tlet readingTime = words / 200;\n\t\treadingTime = Math.ceil(readingTime);\n\n\t\treadingTimeEl.innerText = readingTime;\n\t}\n}\n", "/* eslint-disable */\nconst videoContainers = document.querySelectorAll('.video__container');\n\nif (videoContainers.length > 0) {\n\n\tfunction debounce(fn, ms) {\n\t\tvar time = null;\n\t\treturn function() {\n\t\t\tvar a = arguments, t = this;\n\t\t\tclearTimeout(time);\n\t\t\ttime = setTimeout(function() { fn.apply(t, a); }, ms);\n\t\t}\n\t}\n\n\tfunction throttle(fn, ms) {\n\t\tvar time, last = 0;\n\t\treturn function() {\n\t\t\tvar a = arguments, t = this, now = + (new Date), exe = function() { last = now; fn.apply(t, a); };\n\t\t\tclearTimeout(time);\n\t\t\t(now >= last + ms) ? exe() : time = setTimeout(exe, ms);\n\t\t}\n\t}\n\n\tfunction hasClass(el, cls) {\n\t\tif (el.className.match('(?:^|\\\\s)' + cls + '(?!\\\\S)')) { return true; }\n\t}\n\n\tfunction addClass(el, cls) {\n\t\tif (!el.className.match('(?:^|\\\\s)' + cls + '(?!\\\\S)')) { el.className += ' '+cls; }\n\t}\n\n\tfunction delClass(el, cls) {\n\t\tel.className = el.className.replace(new RegExp('(?:^|\\\\s)' + cls + '(?!\\\\S)'),'');\n\t}\n\n\tfunction stripYouTubeEmbed() {\n\t\tvar embed = document.querySelectorAll('iframe[src^=\"https://www.youtube.com/embed/\"]'), length = embed.length, i, url, id;\n\t\tfor (i = 0; i < length; ++i) {\n\t\t\turl = embed[i].getAttribute('src');\n\t\t\tid = url.substr(url.lastIndexOf('/') + 1); // get video id from youtube embed url\n\t\t\tembed[i].outerHTML = '
<\\/div><\\/div><\\/div>';\n\t\t}\n\t}\n\n\tstripYouTubeEmbed();\n\n\tfunction LazyLoadYouTubeEmbed() {\n\t\tvar yt = document.querySelectorAll('.yt-load:not(.yt-loaded)'), // '.yt-load' class added via js elementFromTop() function\n\t\tlength = yt.length, i;\n\n\t\tfor (i = 0; i < length; ++i) {\n\t\t\tvar iframe = document.createElement('iframe');\n\t\t\tiframe.setAttribute('frameborder', '0');\n\t\t\tiframe.setAttribute('allowfullscreen', '');\n\t\t\tiframe.setAttribute('src', 'https://www.youtube.com/embed/' + yt[i].dataset.embed);\n\t\t\tyt[i].innerHTML = '';\n\t\t\tyt[i].appendChild(iframe);\n\n\t\t\taddClass(yt[i], 'yt-loaded'); // remove elem from next querySelectAll() array when function fires again\n\t\t}\n\t}\n\n\tfunction elementFromTop(elemTrigger, elemTarget, classToAdd, distanceFromTop, unit) {\n\t\tvar winY = window.innerHeight || document.documentElement.clientHeight,\n\t\t\telTriggerLength = elemTrigger.length,\n\t\t\telTargetLength, distTop, distPercent, distPixels, distUnit, elTarget, i, j;\n\n\t\tfor (i = 0; i < elTriggerLength; ++i) {\n\t\t\telTarget = document.querySelectorAll('.' + elemTarget);\n\t\t\telTargetLength = elTarget.length;\n\t\t\tdistTop = elemTrigger[i].getBoundingClientRect().top;\n\t\t\tdistPercent = Math.round((distTop / winY) * 100);\n\t\t\tdistPixels = Math.round(distTop);\n\t\t\tdistUnit = unit == 'percent' ? distPercent : distPixels;\n\t\t\tif (distUnit <= distanceFromTop) {\n\t\t\t\tif (!hasClass(elemTrigger[i], elemTarget)) {\n\t\t\t\t\tfor (j = 0; j < elTargetLength; ++j) {\n\t\t\t\t\t\tif (!hasClass(elTarget[j], classToAdd)) { addClass(elTarget[j], classToAdd); }\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!hasClass(elemTrigger[i], classToAdd)) { addClass(elemTrigger[i], classToAdd); }\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdelClass(elemTrigger[i], classToAdd);\n\t\t\t\tif (!hasClass(elemTrigger[i], elemTarget)) {\n\t\t\t\t\tfor (j = 0; j < elTargetLength; ++j) { delClass(elTarget[j], classToAdd); }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// params: trigger element, target element class, classes to add to target element, trigger element distance from top, unit ('percent' or 'pixels')\n\t// usage: elementFromTop(elemTrigger, elemTarget, classToAdd, distanceFromTop, unit);\n\n\twindow.addEventListener('scroll', throttle(function() {\n\t\telementFromTop(document.querySelectorAll('.youtube'), 'youtube', 'yt-load', 150, 'percent'); // half a screen below the fold\n\t\tLazyLoadYouTubeEmbed();\n\t}, 100), false);\n\n\twindow.addEventListener('resize', debounce(function() {\n\t\telementFromTop(document.querySelectorAll('.youtube'), 'youtube', 'yt-load', 150, 'percent'); // half a screen below the fold\n\t\tLazyLoadYouTubeEmbed();\n\t}, 100), false);\n\n\twindow.addEventListener('load', function() {\n\t\telementFromTop(document.querySelectorAll('.youtube'), 'youtube', 'yt-load', 150, 'percent'); // half a screen below the fold\n\t\tLazyLoadYouTubeEmbed();\n\t}, false);\n};\n", "var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n", "function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };", "import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };", "function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };", "function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };", "function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };", "import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };", "import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };", "// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n", "// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};", "// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};", "__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))", "// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};" ], "names": [ "i", "acc", "document", "getElementsByClassName", "length", "accPanel", "querySelectorAll", "j", "firstPanel", "firstPanelSibling", "nextElementSibling", "dataset", "closeOnLoad", "classList", "add", "setAttribute", "style", "maxHeight", "scrollHeight", "addEventListener", "e", "preventDefault", "currentAcc", "this", "closest", "activePanelLinks", "panel", "allPanels", "multipleActive", "k", "remove", "contains", "parseInt", "dataLayer", "doesAnalyticalCookieExist", "panelTitle", "querySelector", "innerText", "push", "accPanelV2", "firstPanelV2", "firstPanelSiblingV2", "clearLinks", "_loop", "filtersContainer", "checkboxes", "checked", "dropdowns", "dropdownParent", "dropdownHiddenValue", "dropdownFirstOptionText", "options", "text", "dropdownVisibleText", "sameAsSelected", "value", "setCookie", "cname", "cvalue", "exdays", "d", "Date", "setTime", "getTime", "expires", "toUTCString", "cookie", "getCookie", "name", "ca", "split", "c", "charAt", "substring", "indexOf", "optimizelySendHoldEvent", "optimizelyAllowDataSharing", "optimizelyEndUserId", "window", "optimizely", "type", "cookieOverlay", "cookieBanner", "cookiePrimary", "cookieSecondary", "cookieStep2", "cookieCancel", "cookieSave", "display", "necessaryInput", "allCookies", "cookieValue", "analyticalCookieSave", "marketingCookieSave", "copyButton", "getElementById", "onclick", "copyText", "getAttribute", "textarea", "createElement", "textContent", "position", "body", "appendChild", "select", "execCommand", "removeChild", "frameDuration", "totalFrames", "Math", "round", "animationDuration", "animateCountUp", "el", "frame", "countTo", "innerHTML", "counter", "setInterval", "t", "progress", "currentCount", "clearInterval", "countupEls", "countContainer", "IntersectionObserver", "entries", "isIntersecting", "forEach", "threshold", "observe", "trackedButtons", "hierarchyClass", "innerTxt", "trim", "pagePath", "location", "href", "productConfigBanner", "productConfigManualInput", "which", "maxLength", "slice", "dropdownTabContainer", "openError", "dropdownTabs", "tabSelect", "observer", "MutationObserver", "WebKitMutationObserver", "MozMutationObserver", "selectedTabNumber", "tab", "childList", "errorID", "id", "replace", "dropdownPaymentMethodOption", "thisDropdownOption", "x", "l", "ll", "selElmnt", "a", "b", "index", "getElementsByTagName", "optGroupElmnt", "ogl", "selectedIndex", "hiddenSelectedValueField", "parentNode", "hiddenSelectedValue", "selected", "selectedOption", "selectedOptionVal", "groupChildOption", "thisChildOption", "childNodes", "thisChildOptionLength", "tagName", "y", "s", "h", "sl", "yl", "previousSibling", "removeAttribute", "click", "checkoutpersonaldetailsSubmit", "disabled", "visibility", "stopPropagation", "closeAllSelect", "nextSibling", "toggle", "elmnt", "xl", "arrNo", "localCountrySelect", "hiddenInput", "metaLocaleTrim", "head", "content", "pop", "localCountryOption", "localCountryTitle", "localCountryTitleMobile", "dropdownSelect", "option", "selectedJsValue", "selectedOptions", "errorMsgBlock", "errorMsgSubmitButton", "inputChip", "minInputDonationAmount", "donationAmountErrorMsg", "floor", "floatingButton", "headerNav", "primaryCTAButton", "navPrimaryCTA", "showFloatingButton", "innerWidth", "pageYOffset", "innerHeight", "removeSpacesPaste", "noSpaceResult", "clipboardData", "getData", "removeSpacesKeyup", "inputPreventSpaces", "onpaste", "onkeyup", "ibanInputs", "addSpaceEveryFour", "target", "selectionEnd", "addSpaceEveryFourPaste", "revealIconContainer", "focusInstruction", "textInstruction", "textFieldContainer", "currentInput", "hideIcon", "showIcon", "instructionMsg", "multiselectList", "item", "arr", "setSelectedValue", "selectCount", "defaultDropdownValue", "defaultvalue", "defaultdropdowntext", "changedDropdownValue", "filtertext", "_toConsumableArray", "map", "defaultFirstValue", "allicons", "allDropdownItem", "searchButton", "mobileSearchButton", "searchnotification", "searchMobileTextBox", "heroResize", "w", "documentElement", "clientWidth", "videos", "pause", "distanceToTop", "getBoundingClientRect", "top", "targetAnchor", "originalTop", "scrollBy", "left", "behavior", "scrollAnchors", "rangeslider", "color", "background", "feedEl", "loaderEl", "getQuotes", "_ref", "_asyncToGenerator", "_regeneratorRuntime", "_callee", "page", "limit", "API_URL", "response", "_context", "prev", "next", "concat", "fetch", "sent", "ok", "Error", "status", "json", "abrupt", "stop", "_x", "_x2", "apply", "arguments", "hasMoreQuotes", "total", "loadQuotes", "_ref2", "_callee3", "_context3", "setTimeout", "_callee2", "_context2", "data", "feedItem", "feedItemEl", "author", "quote", "t0", "console", "log", "message", "finish", "_x3", "_x4", "currentPage", "_document$documentEle", "scrollTop", "clientHeight", "passive", "lazyloadImages", "lazyVideos", "call", "imageObserver", "image", "src", "srcset", "unobserve", "lazyVideoObserver", "video", "source", "children", "videoSource", "load", "lazyVideo", "lazyloadThrottleTimeout", "lazyload", "clearTimeout", "offsetTop", "removeEventListener", "Sendphysicalcard", "Giftcardbanner", "_tabs$", "_tabs$2", "_document$querySelect", "_document$querySelect2", "tabs", "nthChild", "Array", "from", "nav", "burgerButton", "burgerIcon", "header", "overlay", "headerLogo", "navLinks", "primaryLinks", "secondaryContainer", "tertiaryContainer", "doc", "floatingButtonContainer", "hideNav", "removeActiveClass", "showSecondary", "currentTarget", "currentSecondaryContainer", "closeNav", "secondaryInner", "listHeight", "height", "toggleNav", "activeLinks", "linkTitle", "linkParent", "lastScrollTop", "onscroll", "ev", "st", "offsetHeight", "activeStory", "storySlide", "storySlideActive", "prevStory", "nextStory", "storyCarousel", "slideCount", "storyWidth", "activeStoryWidth", "mq", "matchMedia", "WidthChange", "matches", "currentActiveStory", "cssText", "increment", "previousElementSibling", "decrement", "parentElement", "addListener", "notificationBanner", "notficiationBannerCloseDesktop", "notficiationBannerCloseMobile", "openBanners", "openBannersMobile", "Sponsormultiplechildrenrcwidget", "MultiplechildrenRCwidgetBanner", "videoplayer", "playOnHover", "play", "closeFilter", "randomchildLightbox", "randomchildFilterButton", "randomchildOverlay", "sponsormultiplechildren", "multiplechildrennotificationbanner", "birthmonthcontainer", "birthmonthwrappercontainer", "productConfigWidgetFull", "jsToggleDonationAmountsControl", "applyFlexColumn", "chipsetPaymentContainer", "chipsetPaymentContainerRect", "footerAffiliates", "requiredWidth", "width", "n", "jsToggleDonationAmountswrapper", "controlTabs", "addActivePaymentMethod", "activeTabId", "targetElem", "includes", "activeButton", "targetButton", "getButtonsOrder", "existingButtons", "initialElem", "extraDivContainer", "_initialElem$classLis", "_initialElem$classLis2", "showHideDonationAmounts", "thiselement", "_activeDonationAmount", "_activeTab$dataset", "_activeTab$dataset2", "activeTab", "controlSetsWrapper", "controlSets", "activeTabControl", "activeDonationAmountsSet", "activeDonationAmount", "defaultAmount", "minAmount", "queryString", "search", "activeDonationAmountInput", "donationAmount", "URLSearchParams", "get", "donationAmountCookie", "match", "RegExp", "activeDonationAmountText", "amountText", "activeTabChipText", "manualInputBox", "placeholder", "selectedPaymentInput", "markupLabel", "inputText", "targetContainers", "ResizeObserver", "isMarginApplied", "replacePixels", "needParser", "undefined", "removedData", "parseFloat", "toFixed", "resizeObserver", "_markupLabel$getBound", "hiddenBorderContainer", "hiddenBorderBeforeStyles", "getComputedStyle", "beforeBorderLeftWidth", "borderLeftWidth", "setProperty", "hiddenBorderAfterStyles", "hiddenAfterWidth", "convertedAfterBorderWidth", "borderRightWidth", "afterWidthWithoutBorder", "availableButtons", "convertedWidth", "toString", "afterBorderY", "calcAfterX", "convertedAfterX", "tempX", "getCalcAfterX", "beforeStyleWidth", "withoutBorderWidth", "replacedBeforeWidth", "convertedResponse", "markupLabelHeight", "submitButton", "computedStyle", "marginTop", "buttonMarginTop", "event", "thisElement", "targetId", "parentForm", "_loop2", "captionInput", "productConfigCaptionChips", "donationAmountInputs", "productConfigInput", "captionInputValues", "productConfigForm", "childIDInput", "formFooter", "tempFooter", "tempDiv", "cloneNode", "outerHTML", "chipsetContainer", "_markupLabel$getBound2", "checkedChipText", "checkedChipId", "chipTextContainer", "thisDefaultAmount", "defaultSelectedInput", "selectCaptionChipProductConfig", "showHideError", "manualDonationValue", "manualInputLabel", "errorMessage", "errorMessageMax", "productconfigcontainer", "paymentFreqInput", "errorMessageText", "errorMessageMaxText", "paymentFreqInputMinAmount", "paymentFreqInputMaxAmount", "minError", "maxAmount", "maxError", "minDonation", "maxDonation", "currentSelectedValue", "cookieDonationAmount", "typedInput", "errorMessages", "newproductConfigWidgetFull", "checkedChipValue", "childID", "input", "parentDiv", "inputLabel", "inputError", "test", "screenResize", "quoteContainer", "selectOptionTabsContainer", "openDialog", "pairedTab", "selectOptions", "paymentOptionForms", "selectOptionContainer", "po", "thisFormTab", "selectOptionsBackButtons", "errorTabContent", "shareLightbox", "shareLightboxOverlay", "shareButtons", "shareLightboxInner", "shareLightboxInnerMarkupTemplate", "shareLightboxInnerMarkup", "shareURL", "link", "shareMessage", "newLightbox", "replaceAll", "replaceChild", "FB", "XFBML", "parse", "twttr", "widgets", "currentShareLightbox", "baseLightbox", "copyAttribute", "searchIcon", "searchPanel", "focus", "siteSearchinputbox", "tabInfos", "thisTabTarget", "tabValue", "siblings", "sibling", "firstChild", "nodeType", "getSiblings", "tabInfo", "tabsContent", "visibletabs", "tabBlockWidth", "offsetWidth", "noOfVisibleItems", "scrollTabs", "tabContentWidth", "list", "active", "activeIndex", "scrollTab", "clickedIndex", "parentTabBar", "scrollLeft", "listOfTabContents", "listOfTabLabels", "errorclickableTab", "textFields", "thisInput", "iconWidth", "paddingLeft", "imageContainer", "primaryImage", "thumbnailLinks", "dataImg", "img", "validateEmailInput", "emailInputValue", "validatePhoneInput", "phoneErrormessage", "showErrormsg", "minimumlength", "minlength", "videoWidget", "videoOverlayLink", "videoWidgetSrc", "videoOverlay", "paymentappleButton", "paymentgpayButton", "walletpaymentnotification", "walletpaymentnotificationBanner", "readingTimeEl", "words", "readingTime", "ceil", "fn", "ms", "time", "last", "hasClass", "cls", "className", "addClass", "delClass", "LazyLoadYouTubeEmbed", "yt", "iframe", "embed", "elementFromTop", "elemTrigger", "elemTarget", "classToAdd", "distanceFromTop", "unit", "elTargetLength", "distTop", "distPercent", "distPixels", "elTarget", "winY", "elTriggerLength", "url", "substr", "lastIndexOf", "stripYouTubeEmbed", "now", "exe", "debounce", "_typeof", "module", "exports", "__esModule", "r", "Object", "prototype", "hasOwnProperty", "o", "defineProperty", "Symbol", "iterator", "asyncIterator", "u", "toStringTag", "define", "enumerable", "configurable", "writable", "wrap", "Generator", "create", "Context", "makeInvokeMethod", "tryCatch", "arg", "f", "GeneratorFunction", "GeneratorFunctionPrototype", "p", "getPrototypeOf", "v", "values", "g", "defineIteratorMethods", "_invoke", "AsyncIterator", "invoke", "resolve", "__await", "then", "callInvokeWithMethodAndArg", "done", "method", "delegate", "maybeInvokeDelegate", "_sent", "dispatchException", "TypeError", "resultName", "nextLoc", "pushTryEntry", "tryLoc", "catchLoc", "finallyLoc", "afterLoc", "tryEntries", "resetTryEntry", "completion", "reset", "isNaN", "displayName", "isGeneratorFunction", "constructor", "mark", "setPrototypeOf", "__proto__", "awrap", "async", "Promise", "keys", "reverse", "rval", "handle", "complete", "delegateYield", "runtime", "regeneratorRuntime", "accidentalStrictMode", "globalThis", "Function", "_arrayLikeToArray", "_arrayWithoutHoles", "isArray", "asyncGeneratorStep", "_next", "_throw", "_iterableToArray", "_nonIterableSpread", "_unsupportedIterableToArray", "__webpack_module_cache__", "__webpack_require__", "moduleId", "cachedModule", "__webpack_modules__", "getter", "definition", "key", "obj", "prop" ], "sourceRoot": "" }