1"use strict";function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e43){throw _e43},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e44){didErr=true;err=_e44},f:function f(){try{if(!normalCompletion&&it.return!=null)it.return()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function isVisible(e){return e.offsetWidth||e.offsetHeight||e.getClientRects().length}function docReady(e){"complete"===document.readyState||"interactive"===document.readyState?setTimeout(e,1):document.addEventListener("DOMContentLoaded",e)}function serializeArray(e){var t=new FormData(e),o=[];var _iterator=_createForOfIteratorHelper(t),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var _step$value=_slicedToArray(_step.value,2),_e=_step$value[0],a=_step$value[1];o.push({name:_e,value:a})}}catch(err){_iterator.e(err)}finally{_iterator.f()}return o}function forEach(e,t,o){for(var a=0;a<e.length;a++){t.call(o,a,e[a])}}function winLoad(e){"complete"===document.readyState?e():window.addEventListener("load",e)}function deepMerge(e,t){for(var o in t){t[o]&&"object"==_typeof(t[o])?(e[o]||(e[o]={}),deepMerge(e[o],t[o])):e[o]=t[o]}return e}function chunkArray(e,t){var o=[];for(var a=0;a<e.length;a+=t){var r=e.slice(a,a+t);o.push(r)}return o}function _autoload(){for(var e in ACC){if(Array.isArray(ACC[e]._autoload))for(var t in ACC[e]._autoload){var o=ACC[e]._autoload[t];Array.isArray(o)?o[1]?ACC[e][o[0]]():o[2]&&ACC[e][o[2]]():ACC[e][o]()}}}window.onload=function(){_autoload()},ACC.accordion={_autoload:["bindAccordions","initTabIndex"],classes:{trigger:"js-accordion-toggle",content:"js-accordion-content",opened:"accordion-toggle__content--opened"},bindAccordions:function bindAccordions(){events.on("click","."+ACC.accordion.classes.content,function(e){var t=e.target.closest("."+ACC.accordion.classes.content);t.classList.contains(ACC.accordion.classes.opened)?t.classList.remove(ACC.accordion.classes.opened):t.classList.add(ACC.accordion.classes.opened)})},initTabIndex:function initTabIndex(){var e=window.matchMedia("(min-width: 992px)");ACC.accordion.updateTabIndex(e.matches),e.addEventListener("change",function(e){ACC.accordion.updateTabIndex(e.matches)})},updateTabIndex:function updateTabIndex(e){document.querySelectorAll(".accordion--xs ."+ACC.accordion.classes.content).forEach(function(t){e?t.setAttribute("tabindex","-1"):t.removeAttribute("tabindex")})}},ACC.account=function(e){return{_autoload:[["invoiceSearch",!!e.querySelector(".js-invoice-search")],["orderSearch",!!e.querySelector(".js-order-search")],["removeAddressModal",!!e.querySelector(".js-remove-address")],["waysToPay",!!e.querySelector(".js-ways-to-pay")],["deleteCard",!!e.querySelector(".js-delete-card")],["addNe
1wCard",!!e.querySelector(".js-add-card")],["bindPasscodeReminderAction",!!e.querySelector(".js-passcode-reminder-action")],["basicPayForm",!!e.querySelector(".js-basic-pay-form")],["chooseBusinessType",!!e.querySelector(".js-select-business-type")],["creditPaymentAmountOptions",!!e.querySelector(".js-credit-payment-amount-options")],["fetchAdobeSignIframe",!!e.querySelector(".js-embed-adobe-sign")],["resetAdobeSignErrorCount",!!e.querySelector(".js-credit-application-step-0")]],invoiceSearch:function invoiceSearch(){var t={endpoint:"/my-account/invoice-history/search/autocomplete/SearchBox",query:"/my-account/invoice-history/search?text="};e.querySelectorAll(".js-invoice-search").forEach(function(e,o){new ACC.account.module(e,t).bindSearch()})},orderSearch:function orderSearch(){var t={endpoint:"/my-account/orders/search/autocomplete/SearchBox",query:"/my-account/orders/search?text="};e.querySelectorAll(".js-order-search").forEach(function(e,o){new ACC.account.module(e,t).bindSearch()})},module:function module(e,t){this.config=Object.assign({minCharactersBeforeRequest:3,waitTimeBeforeRequest:500,displayProductImages:!0,cache:[],wrapper:e.closest(".search"),form:e.closest("form"),input:e,submit:e.closest("form").querySelector("button[type=submit]"),errorMessage:ACC.accountError||"Auto suggestion is not available at the moment"},t)},addNewCard:function addNewCard(){events.on("click",".js-add-card",function(t){e.getElementById("addCardButtonSection").remove(),e.getElementById("addCardSection").classList.add("payment-cards__col--revealed"),e.getElementById("addCardAddressSection").classList.remove("d-none")})},removeAddressModal:function removeAddressModal(){events.on("click",".js-remove-address",function(t){var o=e.getElementById("modal-remove-address");if(o){t.preventDefault();var a=t.target.href;o.querySelector("#modal-remove-address-link").href=a,MicroModal.show("modal-remove-address",{disableFocus:!0})}})},waysToPay:function waysToPay(){events.on("click",".js-ways-to-pay",function(t){e.getElementById("modal-ways-to-pay")&&(t.preventDefault(),MicroModal.show("modal-ways-to-pay",{disableFocus:!0}))})},deleteCard:function deleteCard(){events.on("click",".js-delete-card",function(t){var o=e.getElementById("modal-delete-card");if(o){t.preventDefault();var a=t.target.href;o.querySelector("#modal-delete-card-link").href=a,MicroModal.show("modal-delete-card",{disableFocus:!0})}})},bindPasscodeReminderAction:function bindPasscodeReminderAction(){events.on("click",".js-passcode-reminder-action",function(e){e.preventDefault();var t=e.target.closest("form"),o=t.querySelector("input[name='linkAccount']"),a=e.target.dataset.reminderAction;o.value="link"===a?"true":"false",t.submit()})},basicPayForm:function basicPayForm(){var e=[".js-basic-pay-form .form-control"],t=function t(e){ACC.validation.inlineValidation(e.target)};events.off("focusout",e[0],t),events.on("focusout",e[0],t),events.on("submit",".js-basic-pay-form",function(e){e.preventDefault(),e.stopPropagation();var t=e.target,o=!1;ACC.validation.validateAllRequired(t),o=ACC.validation.isFormValid(t);var a=ACC.form.checkInputTypeCurrency(t.querySelector(".js-input-type-currency"));if(!o||!a)return ACC.validation.goToError(t,!1),!1;t.submit()})},creditPaymentAmountOptions:function creditPaymentAmountOptions(){var t=e.getElementById("creditPaymentAmountForm"),o=e.getElementById("creditPaymentAmount"),a=e.getElementById("credit-payment-amount-section"),r=e.querySelector("#credit-payment-amount-section .js-currency-input-tooltip"),n=parseFloat(a.dataset.balanceAmount)||0,s=parseFloat(a.dataset.maxCreditPaymentAmount)||0;events.on("click",".js-credit-payment-amount-option",function(i){"credit-payment-other"===i.target.id?(t.action=t.dataset.otherUrl,o.value="",o.readOnly=!1,o.setAttribute("required","true"),r.innerHTML=a.dataset.otherTooltip,e.getElementById("credit-payment-details-section").classList.remove("d-none"),n>s&&(e.getElementById("credit-payment-section").classList.remove("d-none"),e.getElementById("threshold-amount-info-message").classList.add("d-none"))):(t.action=t.dataset.balanceUrl,o.value=a.dataset.balanceAmount,o.readOnly=!0,o.setAttribute("required","false"),r.innerHTML=a.dataset.balanceTooltip,ACC.validation.removeFieldStates("creditPaymentAmount"),e.getElementById("credit-payment-details-section").classList.add("d-none"),n>s&&(e.getElementById("credit-payment-section").classList.add("d-none"),e.getElementById("threshold-amount-info-message").classList.remove("d-none")))})}
1,chooseBusinessType:function chooseBusinessType(t){events.on("change",".js-select-business-type",function(e){var t=e.target.value,o=e.target.closest("form").querySelector(".form-group.radio"),a=o.dataset.validationMessage;"Self_Builder"===t||""===t?(o.classList.add("hide"),delete ACC.data.validation["creditApplicationStep0Form.businessOwner"]):(o.classList.remove("hide"),ACC.data.validation["creditApplicationStep0Form.businessOwner"]={type:"String",constraints:[{type:"javax.validation.constraints.NotNull",message:a}]})}),e.querySelector(".js-select-business-type").dispatchEvent(new Event("change"))},fetchAdobeSignIframe:function fetchAdobeSignIframe(){ACC.account.renderAdobeSignIframe(0)},renderAdobeSignIframe:function renderAdobeSignIframe(t){var o={adobeSignFetchingMessage:e.querySelector(".js-embed-adobe-sign-message"),adobeSignIframe:e.querySelector(".js-embed-adobe-sign-iframe"),adobeSignSection:e.querySelector(".js-embed-adobe-sign"),adobeSignError:e.querySelector(".js-embed-adobe-sign-error"),adobeSignErrorContact:e.querySelector(".js-embed-adobe-sign-error-contact")};setTimeout(function(){fetch("/my-account/apply-credit/6/get-signing-url",{method:"GET"}).then(function(e){if(e.ok)return e.json()}).then(function(e){if(e.signingUrl)o.adobeSignFetchingMessage.classList.add("d-none"),o.adobeSignSection.classList.remove("loading"),o.adobeSignIframe.src=e.signingUrl,o.adobeSignIframe.classList.remove("d-none"),o.adobeSignIframe.scrollIntoView();else if(t>=2){o.adobeSignSection.classList.add("d-none"),o.adobeSignSection.classList.remove("loading");var _e2=parseInt(ACC.global.manageSessionState.getState("adobeSignErrorCount"))||0;_e2<2?o.adobeSignError.classList.remove("d-none"):o.adobeSignErrorContact.classList.remove("d-none"),ACC.global.manageSessionState.setState("adobeSignErrorCount",_e2+1)}else ACC.account.renderAdobeSignIframe(t+1)})},3e3)},resetAdobeSignErrorCount:function resetAdobeSignErrorCount(){ACC.global.manageSessionState.removeState("adobeSignErrorCount")}}}(document),ACC.account.module.prototype.bindSearch=function(){var e=this;function t(t){t.length>=e.config.minCharactersBeforeRequest&&e.runSearch(t),0===t.length&&e.removeSearch()}events.on("keyup",e.config.input,ACC.common.debounce(function(e){9!==e.keyCode&&t(e.target.value)},e.config.waitTimeBeforeRequest)),events.on("focus",e.config.input,function(o){t(o.target.value),e.config.form.classList.add("search__form--active"),e.config.form.querySelectorAll(".form-group").forEach(function(e,t){e.classList.add("form-group--search-active")})}),events.on("blur",e.config.input,function(t){e.config.form.classList.remove("search__form--active"),e.config.form.querySelectorAll(".form-group").forEach(function(e,t){e.classList.remove("form-group--search-active")}),e.hideSearch()}),events.on("blur",e.config.wrapper,function(t){"A"===t.target.tagName&&e.hideSearch()})},ACC.account.module.prototype.runSearch=function(e){var t=this;this.config.submit.classList.add("loading"),this.source(e).then(function(o){var a=o.data;if(a&&a.length){var r="<div class=\"search__container\">";r+="<ul class=\"search__results\">",r+="<ul class=\"search__results-list search__results-list--invoices\">",a.forEach(function(o){r+=t.renderItem(o,e)}),r+="</ul>",r+="</ul>",t.removeSearch(),t.renderResult(r)}else t.removeSearch()}).catch(function(){var e="<div class=\"search__container\"><div class=\"search__error p-1\">"+t.config.errorMessage+"</div></div>";t.renderResult(e)}).finally(function(){t.config.submit.classList.remove("loading")})},ACC.account.module.prototype.renderResult=function(e){this.config.form.insertAdjacentHTML("beforeend",e)},ACC.account.module.prototype.removeSearch=function(){var e=this.config.form.querySelector(".search__container");e&&e.remove()},ACC.account.module.prototype.hideSearch=function(){var e=this;setTimeout(function(){if(!document.activeElement.closest(".search__container")&&"INPUT"!==document.activeElement.tagName){var t=e.config.form.querySelector(".search__container");t&&ACC.global.fadeOutEffect(t,50)}},250)},ACC.account.module.prototype.renderItem=function(e,t){var o;return o=void 0===e.documentNumber?e.code:""===e.customerOrderNo?e.documentNumber:e.customerOrderNo+" - "+e.documentNumber,"<li class=\"search__results-item\">"+"<a href=\"".concat(this.config.query+o,"\" class=\"search__results-link\">\n <div class=\"search__results-name\">").concat((e.customerOrderReference&&-1!==e.customerOrderReference.toLowerCase().indexOf(t.toLowerCase())?e.customerOrderReference:null)||o,"</div>\n </a>")+"</li>"},ACC.account.module.prototype.source=function(e){var t=this;return e=e.toLowerCase(),new Promise(function(o,a){e in t.config.cache?o({data:t.config.cache[e]}
1):fetch("".concat(t.config.endpoint,"?")+new URLSearchParams({term:e}),{method:"GET"}).then(function(e){return e.ok||a(),e.json()}).then(function(a){var r=[];var n=a.invoices||a.orders;null!==n&&(r=r.concat(n)),t.config.cache[e]=r,o({data:r})})})},ACC.addressHistory=function(e){return{_autoload:[["init",!!e.querySelector(".js-address-history")]],init:function init(){e.querySelectorAll(".js-address-history").forEach(function(e){new ACC.addressHistory.historyModule(e).init()})},historyModule:function historyModule(e){if(!e)return!1;this.config={wrapper:e,maxAdditionalAddresses:1,addressHTML:"<div class='address-group'><hr class='hr--default' /><h2 class='mb-1'>Previous address</h2>"+e.querySelectorAll(".address-group")[0].innerHTML+"</div>"},events.on("blur",".form-group--duration input",this.checkTotalDuration.bind(this))}}}(document),ACC.addressHistory.historyModule.prototype.init=function(){this.config.durationInputs=this.config.wrapper.querySelectorAll(".form-group--duration input");var e=_toConsumableArray(this.config.wrapper.querySelectorAll(".address-group"));this.config.currentIndex=e.length-1},ACC.addressHistory.historyModule.prototype.countTotalDuration=function(){var e=0,t=0;return Array.prototype.map.call(this.config.durationInputs,function(o){t=parseInt(o.value)||0,o.id.indexOf("Years")>0?e+=12*t:e+=t}),e},ACC.addressHistory.historyModule.prototype.getTotalDurationThresholdIndex=function(){for(var e=0,t=0,o=!1,a=this.config.durationInputs,r=0;r<a.length;r++){if(t=parseInt(a[r].value)||0,a[r].id.indexOf("Years")>0?e+=12*t:e+=t,e>=36){o=Math.floor(r/2);break}}return o},ACC.addressHistory.historyModule.prototype.checkTotalDuration=function(){this.countTotalDuration()<36&&this.checkAllInputsHaveValue()&&this.config.currentIndex<this.config.maxAdditionalAddresses?this.cloneAddressSection():this.checkRedundantGroups(this.getTotalDurationThresholdIndex())},ACC.addressHistory.historyModule.prototype.checkAllInputsHaveValue=function(){for(var e=!0,t=this.config.durationInputs,o=0;o<t.length;o++){if(!t[o].value){e=!1;break}}return e},ACC.addressHistory.historyModule.prototype.checkRedundantGroups=function(e){if(!1===e)return!1;if(e<this.config.wrapper.querySelectorAll(".address-group").length-1){var o=this.config.wrapper.querySelectorAll(".address-group");if(o){var a=Array.prototype.slice.call(o,e+1);if(a)for(var t=0;t<a.length;t++){this.config.wrapper.removeChild(a[t])}}this.config.currentIndex=e,this.config.durationInputs=this.config.wrapper.querySelectorAll(".form-group--duration input")}},ACC.addressHistory.historyModule.prototype.cloneAddressSection=function(){this.config.currentIndex++;var e=this.config.addressHTML;e=e.replace("${i}",this.config.currentIndex),(e=this.changeIdNumberOnElementAndChildren(e,this.config.currentIndex)).querySelectorAll("input").forEach(function(e){e.value=""}),this.config.wrapper.appendChild(e),ACC.postcodeLookup.init(),ACC.validation.formValidation(),this.init()},ACC.addressHistory.historyModule.prototype.changeIdNumberOnElementAndChildren=function(e,t){var o=document.createElement("div"),a=e;"string"==typeof a&&(o.innerHTML=a,a=o.children[0]);var r=a.children,n=a.id,s=n?n.replace(/\_.+?/,"_"+t):null,i=a.name,c=i?i.replace(/\[.+?\]/,"["+t+"]"):null;if(s&&(a.id=s),c&&(a.name=c),"LABEL"===a.tagName){var l=a.htmlFor,d=l?l.replace(/\_.+?/,"_"+t):null;d&&(a.htmlFor=d)}if(r.length>0)for(var u=0;u<r.length;u++){this.changeIdNumberOnElementAndChildren(r[u],t)}return a},ACC.adobe={track:function track(e,t){return"undefined"!=typeof _satellite&&void 0!==_satellite.track?(_satellite.track(e,t),JSON.parse(localStorage.getItem("adobeDebug"))&&console.log(e,t," | ",JSON.stringify(t)),!0):(console.warn("_satellite.track is unavailable."),!1)},debug:function debug(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:!1;return localStorage.setItem("adobeDebug",e),"Adobe debugging "+(e?"on":"off")}},ACC.applepay=function(e){return{_autoload:[["enableApplePay",!!e.querySelector("#applepaybutton")],["enableApplePayOnTrolley",!!e.querySelector(".trolley-applepay")],["bindOtherPaymentCheckoutButton",!!e.querySelector(".js-other-payment")]],enableApplePay:function enableApplePay(){ACC.applepay.isAvailable()&&(ACC.applepay.displayApplePayPaymentOption(),events.on("click","apple-pay-button",function(t){var o=e.querySelector("#applepaybutton").dataset.paymentrequesturl;ACC.applepay.fetchPaymentRequestData(o);var a=t.target.closest("form");ACC.validation.validateAllRequired(a),ACC.validation.isFormValid(a)&&ACC.applepay.startSession()}))},isAvailable:function isAvailable(){return window.ApplePaySession},displayApplePayPaymentOption:function displayApplePayPaymentOption(){e.getElementById("payment-methods-section").classList.remove("payment-method--single"),e.getElementById("apple-pay-payment-method-group").classList.remove("d-none"),e.getElementById("delivery-address-section").dataset.toggle="paymentMethod_card",e.getElementById("checkout-button-section").classList.add("hide-apple-pay"),e.getElementById("paymentMethod_applepay").checked=!0},fetchPaymentRequestData:function fetchPaymentRequestData(e){var t=new XMLHttpRequest;t.open("GET",e,!1),t.send(),200===t.status&&(ACC.applepay.requestData=JSON.parse(t.response))},startSession:function startSession(){var t=new ApplePaySession(3,ACC.applepay.requestData);t.onvalidatemerchant=function(e){ACC.applepay.validateMerchant(e,t,"/checkout/apple-pay/merchant-verification?gatewayUrl=")},t.onpaymentauthorized=function(o){var a=ACC.applepay.getCompletePaymentFormData(o),r
1=e.querySelector("#applepaybutton").dataset.completeurl;ACC.applepay.completePayment(a,t,r)},t.begin()},validateMerchant:function validateMerchant(e,t,o){fetch(o+e.validationURL).then(function(e){return e.json()}).then(function(e){t.completeMerchantValidation(e)}).catch(function(e){console.error("Unable to verify merchant for Apple Pay",e)})},completePayment:function completePayment(e,t,o){fetch(o,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(e).toString()}).then(function(e){return e.json()}).then(function(e){e.successful?(t.completePayment({status:ApplePaySession.STATUS_SUCCESS}),window.location.replace(e.redirection)):t.completePayment({status:ApplePaySession.STATUS_FAILURE,errors:[new ApplePayError("unknown")]})}).catch(function(e){console.error("Unable to complete Apple Pay transaction",e)})},getCompletePaymentFormData:function getCompletePaymentFormData(e){var t=new FormData;return t.append("paymentToken",JSON.stringify(e.payment.token)),ACC.applepay.collectPaymentAddress(t,e),ACC.applepay.collectAdditionalFormData(t),t.append("CSRFToken",ACC.config.CSRFToken),t},collectPaymentAddress:function collectPaymentAddress(e,t){e.append("givenName",t.payment.billingContact.givenName||""),e.append("familyName",t.payment.billingContact.familyName||""),e.append("line1",t.payment.billingContact.addressLines[0]||""),e.append("line2",t.payment.billingContact.addressLines[1]||""),e.append("locality",t.payment.billingContact.locality||""),e.append("postalCode",t.payment.billingContact.postalCode||""),e.append("countryCode",t.payment.billingContact.countryCode||"")},collectAdditionalFormData:function collectAdditionalFormData(t){var o=e.getElementById("extendedPlaceOrderForm.customerOrderReference"),a=e.getElementById("mobileNumber"),r=e.getElementById("sendSMSNotification");o&&t.append("customerOrderReference",o.value),a&&t.append("mobileNumber",a.value),r&&t.append("sendSMSNotification",r.value)},enableApplePayOnTrolley:function enableApplePayOnTrolley(){ACC.global.manageSessionState.setState("preselect_terms","false"),ACC.applepay.isAvailable()&&(ACC.applepay.displayApplePayOptionOnTrolley(),events.on("click","apple-pay-button",function(e){ACC.applepay.fetchPaymentRequestData("/trolley/apple-pay/payment-request");var t=e.target.closest("form");ACC.validation.validateAllRequired(t),ACC.validation.isFormValid(t)&&ACC.applepay.startSessionForTrolleyCheckout()}))},startSessionForTrolleyCheckout:function startSessionForTrolleyCheckout(){var t=new ApplePaySession(3,ACC.applepay.requestData);t.onvalidatemerchant=function(e){ACC.applepay.validateMerchant(e,t,"/trolley/apple-pay/merchant-verification?gatewayUrl=")},t.onpaymentauthorized=function(o){var a=ACC.applepay.getCompletePaymentFormDataForTrolleyCheckout(o),r=e.querySelector(".trolley-applepay"),n="true"===(r&&r.dataset.guest?r.dataset.guest:"false")?"/trolley/apple-pay/complete-payment/guest":"/trolley/apple-pay/complete-payment";ACC.applepay.completePayment(a,t,n)},t.begin()},getCompletePaymentFormDataForTrolleyCheckout:function getCompletePaymentFormDataForTrolleyCheckout(e){var t=new FormData;return t.append("paymentToken",JSON.stringify(e.payment.token)),ACC.applepay.collectPaymentAddress(t,e),e.payment.shippingContact&&ACC.applepay.collectContactFields(t,e),t.append("sendSMSNotification","true"),t.append("CSRFToken",ACC.config.CSRFToken),t},collectContactFields:function collectContactFields(e,t){e.append("contactDetails.givenName",t.payment.shippingContact.givenName||""),e.append("contactDetails.familyName",t.payment.shippingContact.familyName||""),e.append("contactDetails.emailAddress",t.payment.shippingContact.emailAddress||""),e.append("contactDetails.phoneNumber",t.payment.shippingContact.phoneNumber||"")},displayApplePayOptionOnTrolley:function displayApplePayOptionOnTrolley(){e.querySelector(".js-apple-pay-collection-button-section")&&(forEach(e.querySelectorAll(".js-apple-pay-collection-button-section"),function(e,t){t.classList.remove("d-none")}),forEach(e.querySelectorAll(".js-standard-collection-button-section"),function(e,t){t.classList.add("d-none")}))},bindOtherPaymentCheckoutButton:function bindOtherPaymentCheckoutButton(){events.on("click",".js-other-payment",function(e){e.preventDefault(),e.target.closest("form").querySelector(".js-apple-pay-terms-check").checked&&ACC.global.manageSessionState.setState("preselect_terms","true"),window.location=e.target.dataset.checkoutUrl})}}}(document),ACC.bal=function(e){return{_autoload:[["initBal",!!e.querySelector(".js-bal-calculator-inputs")],["submitBalInputs",!!e.querySelector(".js-bal-calculator-inputs")],["resetBalCalculator",!!e.querySelector(".js-reset-bal-calculator")],["balAddToTrolley",!!e.querySelector(".js-bal-calculator-inputs")],["confirmBalAddToTrolley",!!e.querySelector(".js-bal-calculator-inputs")],["changeBalProductDropdown",!!e.querySelector(".js-bal-calculator-inputs")],["changeBalQuantity",!!e.querySelector(".js-bal-calculator-inputs")],["toggleRecommendedItems",!!e.querySelector(".js-bal-calculator-inputs")],["balAddItemToTotal",!!e.querySelector(".js-bal-calculator-inputs")],["balAddAllToTotal",!!e.querySelector(".js-bal-calculator-inputs")],["changeBalEstimateLabourMeasure",!!e.querySelector(".js-bal-calculator-inputs")],["submitBalEstimateForm",!!e.querySelector(".js-bal-calculator-inputs")],["downloadBalEstimateDocument",!!e.querySelector(".js-bal-calculator-inputs")],["balStockCheck",!!e.querySelector(".js-bal-calculator-inputs")],["submitBalStockPostcode",!!e.querySelector(".js-bal-calculator-inputs")],["balStockLoadMore",!!e.querySelector(".js-bal-calculator-inputs")],["selectBalCollection",!!e.querySelector(".js-bal-calculator-inputs")],["selectBalDelivery",!!e.querySelector(".js-bal-calculator-inputs")],"balShowMoreInfo"],config:{},initBal:function initBal(){var t=e.querySelector(".js-bal-calculator-inputs").dataset.validationMessage;ACC.data.validation["balCalculatorInputsForm.inputs"]={type:"String",constraints:[{type:"de.hybris.platform.validation.annotations.NotBlank",message:t},{type:"javax.validation.constraints.Pattern",message:t,regexp:"^\\d*\\.?\\d*$"}]},ACC.bal.config.balTitle=e.querySelector("#balCalculatorSection").dataset.title},submitBalInputs:function submitBalInputs(){events.on("submit",".js-bal-calculator-inputs",function(t){t.preventDefault();var o=e.querySelector(".js-bal-calculator-inputs");if(ACC.validation.validateAllRequired(o),ACC.validation.isFormValid(o)){o.querySelector("button[type=submit]").disabled=!0,o.querySelector(".js-reset-bal-calculator").disabled=!0,e.querySelector(".js-bal-results-section").classList.add("loading");var _t=e.querySelector(".js-bal-estimate-section"),a=_t&&""!==_t.innerHTML.trim();a&&_t.classList.add("d-none");var r=o.getAttribute("action"),n=new URLSearchParams(new FormData(o)).toString();fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n}).then(function(e){if(e.ok)return e.json()}
1).then(function(o){if(e.querySelector(".js-bal-inputs-section").innerHTML=o.inputsHtml,o.noResultErrors){if(e.querySelector(".js-bal-results-body").innerHTML=o.resultsBodyHtml,a){_t.classList.remove("d-none");var _a=e.querySelector(".js-bal-create-estimate");_a&&(o.addToCartEnabled?_a.removeAttribute("disabled"):_a.disabled=!0)}else _t&&(_t.innerHTML=o.estimateHtml);e.querySelector(".js-bal-totals-section").innerHTML=o.totalsHtml,ACC.tooltip.init(),e.querySelector(".js-bal-results-body").scrollIntoView(),ACC.adobe.track("bal - calculate this job",{type:ACC.bal.config.balTitle,location:"PDP"})}else e.querySelector(".js-bal-results-section").innerHTML=""}).catch(function(e){console.info("Error ",e)}).finally(function(){o.querySelector("button[type=submit]").disabled=!1,o.querySelector(".js-reset-bal-calculator").disabled=!1,e.querySelector(".js-bal-results-section").classList.remove("loading"),ACC.validation.inlineValidationInit()})}}),events.on("input",".js-bal-calculator-inputs input",function(e){ACC.validation.removeFieldStates(e.target.id)})},resetBalCalculator:function resetBalCalculator(){events.on("click",".js-reset-bal-calculator",function(t){t.preventDefault();var o=t.target.dataset.url,a=t.target.closest(".js-bal-calculator-inputs");a.querySelector("button[type=submit]").disabled=!0,a.querySelector(".js-reset-bal-calculator").disabled=!0,e.querySelector(".js-bal-results-body").innerHTML="",e.querySelector(".js-bal-estimate-section")&&(e.querySelector(".js-bal-estimate-section").innerHTML="");var r=o,n=new URLSearchParams(new FormData(a)).toString();fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n}).then(function(e){if(e.ok)return e.json()}).then(function(t){t&&t.inputsHtml&&(e.querySelector(".js-bal-inputs-section").innerHTML=t.inputsHtml,ACC.tooltip.init())}).catch(function(e){console.info("Error ",e)}).finally(function(){a.querySelector("button[type=submit]").disabled=!1,a.querySelector(".js-reset-bal-calculator").disabled=!1})})},balAddToTrolley:function balAddToTrolley(){events.on("click",".js-bal-add-all-trolley",function(t){t.preventDefault();var o=e.querySelector("#balAddToCartForm");if(ACC.validation.isFormValid(o)){if(e.querySelector(".js-mini-basket-entry")){var _t2=0;return e.querySelectorAll(".js-bal-quantity").forEach(function(e,o){e.value>0&&_t2++}),e.querySelector(".js-bal-trolley-lines-amount").innerHTML=_t2,void MicroModal.show("modal-bal-add-trolley",{disableFocus:!0})}ACC.bal.addBalProductsToTrolley(o)}})},confirmBalAddToTrolley:function confirmBalAddToTrolley(){events.on("click",".js-bal-confirm-add-to-trolley",function(t){var o=e.querySelector("#balAddToCartForm");ACC.bal.addBalProductsToTrolley(o),ACC.adobe.track("bal - confirm",{type:ACC.bal.config.balTitle,location:"PDP"})}),events.on("click",".js-bal-cancel-add-to-trolley",function(){ACC.adobe.track("bal - cancel",{type:ACC.bal.config.balTitle,location:"PDP"}),MicroModal.close("modal-bal-add-trolley")})},addBalProductsToTrolley:function addBalProductsToTrolley(e){var t=e.querySelectorAll(".js-result-line"),o=[];t.forEach(function(e){var t=e.dataset,a=e.querySelector(".js-bal-quantity");if(a){var _e3=parseInt(a.value);if(_e3>0){var _a2={category:t.category,method:"Build Aviator Light",price:t.price,priceExVAT:t.priceExVat,productID:t.id,productName:t.name,quantity:_e3,transactionType:"sale",unitOfSale:t.unit};o.push(_a2)}}}),o.length&&ACC.adobe.track("trolley add",{product:o}),e.submit()},changeBalProductDropdown:function changeBalProductDropdown(){var e=null,t=null;events.on("focus",".js-bal-product-dropdown",function(o){e=o.target.querySelector("option:checked").value,t=o.target.querySelector("option:checked").innerText}),events.on("change",".js-bal-product-dropdown",function(o){var a=o.target.closest(".js-result-line"),r=o.target.value,n=a.querySelector(".js-bal-quantity").value;e&&t&&ACC.adobe.track("bal - update product",{type:ACC.bal.config.balTitle,location:"PDP",product:[{productID:e,productName:t}]});var s=o.target.closest("form").dataset.changeUrl;ACC.bal.submitChangeBalResults(o.target,a,r,n,s)})},changeBalQuantity:function changeBalQuantity(){events.on("change",".js-bal-quantity",ACC.common.debounce(function(e){var t=e.target.closest(".
1js-result-line"),o=e.target.value,a=t.querySelector(".js-bal-product-dropdown").value;ACC.validation.inlineValidation(e.target);var r=e.target.closest("form").dataset.changeQtyUrl;ACC.bal.submitChangeBalResults(e.target,t,a,o,r)},2e3)),events.on("click",".js-bal-exclude",function(e){e.preventDefault();var t=e.target.closest(".js-result-line"),o=e.target.dataset.qty,a=t.dataset.id,r=e.target.closest("form").dataset.changeQtyUrl;ACC.bal.submitChangeBalResults(e.target,t,a,o,r)})},balAddItemToTotal:function balAddItemToTotal(){events.on("click",".js-bal-update-total",function(e){e.preventDefault();var t=e.target.closest(".js-result-line"),o=t.querySelector(".js-bal-quantity").value,a=t.querySelector(".js-bal-product-dropdown").value,r=e.target.closest("form").dataset.updateRecommendedUrl;ACC.bal.submitChangeBalResults(e.target,t,a,o,r)})},balAddAllToTotal:function balAddAllToTotal(){events.on("click",".js-bal-update-all-total",function(e){e.preventDefault();var t=e.target.closest("form").dataset.updateAllRecommendedUrl;ACC.bal.submitChangeBalResults(e.target,null,null,null,t)})},clickRecommendedItems:function clickRecommendedItems(t){var o=e.querySelectorAll(".js-toggle-recommended");if(o.length>0){var a=e.getElementById("recommendedItemsTotalSection");o.forEach(function(e){var o=ACC.global.manageSessionState.getState(e.id+"-"+t);o&&"open"===o&&(e.click(),a.classList.remove("d-none"))})}},toggleRecommendedItems:function toggleRecommendedItems(){events.on("click",".js-toggle-recommended",function(t){var o=e.getElementById("recommendedItemsTotalSection"),a=t.target.id,r=e.querySelector(".js-main-product-code").value;if(t.target.closest(".js-accordion-content").classList.contains("accordion-toggle__content--opened"))ACC.global.manageSessionState.setState(a+"-"+r,"open"),o.classList.remove("d-none");else{ACC.global.manageSessionState.removeState(a+"-"+r);var _t3=e.querySelectorAll(".js-toggle-recommended"),n=!1;_t3.forEach(function(e){var t=e.closest(".js-accordion-content");t&&t.classList.contains("accordion-toggle__content--opened")&&(n=!0)}),n||o.classList.add("d-none")}});var t=e.querySelector(".js-main-product-code");t&&ACC.bal.clickRecommendedItems(t.value)},submitChangeBalResults:function submitChangeBalResults(t,o,a,r,n){var s=e.querySelector("#balAddToCartForm"),i=ACC.validation.isFormValid(s);if(!i)return ACC.validation.goToError(s,i),!1;var c=t.dataset.rowid,l=o?o.querySelector(".js-main-product-code").value:e.querySelector(".js-main-product-code").value,d=o?o.querySelector(".js-calculator-id").value:e.querySelector(".js-calculator-id").value;e.querySelectorAll(".js-bal-product-dropdown, .js-bal-quantity-modifier input, .js-bal-quantity-modifier button, .js-bal-update-total, .js-bal-update-all-total").forEach(function(e){e.disabled=!0});var u=e.querySelector(".js-bal-estimate-section"),p=u&&""!==u.innerHTML.trim();p&&(e.querySelector(".js-bal-create-estimate").disabled=!0);var m=e.querySelector(".js-bal-calculator-inputs");m.querySelector("button[type=submit]").disabled=!0,m.querySelector(".js-reset-bal-calculator").disabled=!0,e.querySelector(".js-bal-add-all-trolley").disabled=!0,e.querySelector(".js-bal-check-stock").disabled=!0;var h={mainProductCode:l,calculatorId:d,product:a,quantity:-1===r?0:r,excluded:-1===r,rowId:c,CSRFToken:ACC.config.CSRFToken};t.hasAttribute("data-add-to-total")&&(h.addedToTotal="true"===t.dataset.addToTotal,delete h.excluded),t.hasAttribute("data-add-all-to-total")&&(h.addedToTotal="true"===t.dataset.addAllToTotal,delete h.excluded,delete h.product,delete h.quantity,delete h.rowId),fetch(n,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"},body:new URLSearchParams(h)}).then(function(e){if(e.ok)return e.json()}).then(function(t){e.querySelector(".js-bal-inputs-section").innerHTML=t.inputsHtml,t.noResultErrors?(e.querySelector(".js-bal-results-body").innerHTML=t.resultsBodyHtml,p&&t.addToCartEnabled&&(e.querySelector(".js-bal-create-estimate").disabled=!1),e.querySelector(".js-bal-totals-section").innerHTML=t.totalsHtml,ACC.bal.clickRecommendedItems(l)):e.querySelector(".js-bal-results-section").innerHTML="";var o=e.querySelector(".js-change-results-error"),a=o?o.getBoundingClientRect().top+window.scrollY:0;a&&window.scroll(0,a)}).catch(function(e){console.info("Error ",e)}).finally(function(){m.querySelector("button[type=submit]").disabled=!1,m.querySelector(".js-reset-bal-calculator").disabled=!1})},changeBalEstimateLabourMeasure:function changeBalEstimateLabourMeasure(){events.on("change",".js-estimate-labour-measure",function(t){var o=t.target.value;if("TOTAL"===o)e.querySelector(".js-labour-length-section").classList.add("d-none");else{var _t4=e.querySelector(".js-estimate-labour-measure option[value='"+o+"']").dataset.unitText;e.querySelector(".js-estimate-unit-text").innerHTML=_t4,e.querySelector(".js-labour-length-section").classList.remove("d-none")}ACC.bal.checkLabourGroup()}),events.on("focusout",".js-bal-estimate-form input",function(e){ACC.bal.checkLabourGroup(e)})},checkLabourGroup:function checkLabourGroup(t){var o,a,r=e.querySelector(".js-bal-estimate-form"),n=isVisible(r.querySelector("input[name='estimateForm.labourCost']")),s=isVisible(r.querySelector("input[name='estimateForm.labourLength']"));if(!n||!s)return ACC.validation.toggleError("balEstimateForm-estimateForm-labourCost",null,null,!1),!0;if(n&&(o=r.querySelector("input[name='estimateForm.labourCost']").value),s&&(a=r.querySelector("input[name='estimateForm.labourLength']").value),o&&!a||!o&&a){t&&t.stopPropagation();var _e4=r.dataset.labourBothValuesMsg||"Please enter a value for both fields";return ACC.validation.toggleError("balEstimateForm-estimateForm-labourCost",null,_e4,!0),!1}return!0},submitBalEstimateForm:function submitBalEstimateForm(){events.on("submit",".js-bal-estimate-form",function(t){t.preventDefault(),e.querySelector(".js-estimate-form-error").innerHTML="";var o=t.target,a=ACC.validation.isFormValid(o),r=ACC.bal.checkLabourGroup();if(!a||!r)return ACC.validation.goToError(o,!1),!1;e.querySelector(".js-bal-create-estimate").disabled=!0,ACC.adobe.track("bal - create estimate",{type:ACC.bal.config.balTitle,location:"PDP",estimate:e.querySelector("#balEstimateForm-estimateForm-showMaterialMarkup").checked});var n=o.getAttribute("action"),s=new URLSearchParams(new FormData(e.querySelector("#balAddToCartForm"))).toString()+"&"+new URLSearchParams(new FormData(o)).toString()+"&"+new URLSearchParams({CSRFToken:ACC.config.CSRFToken}).toString();fetch(n,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:s}).then(function(e){if(e.ok)return e.json()}).then(function(t){t.balEstimateError?e.querySelector(".js-estimate-form-error").innerHTML=t.balEstimateErrorHtml:(e.querySelector("#modal
1-fence-estimate-content").innerHTML=t.balEstimateModalHtml,MicroModal.show("modal-fence-estimate",{disableFocus:!0}),ACC.validation.inlineValidationInit())}).catch(function(e){console.info("Error ",e)}).finally(function(){e.querySelector(".js-bal-create-estimate").removeAttribute("disabled")})})},downloadBalEstimateDocument:function downloadBalEstimateDocument(){events.on("click",".js-download-estimate-document",function(t){e.querySelector(".js-generate-estimate-document-error").classList.add("d-none");var o=e.querySelector("#balGenerateEstimateDocumentForm"),a=ACC.validation.isFormValid(o);if(!a)return ACC.validation.goToError(o,a),!1;e.querySelector(".js-download-estimate-document").disabled=!0,ACC.adobe.track("bal - save estimate",{type:ACC.bal.config.balTitle,location:"PDP"});var r=o.getAttribute("action"),n=new URLSearchParams(new FormData(e.querySelector("#balAddToCartForm"))).toString()+"&"+new URLSearchParams(new FormData(e.querySelector("#balEstimateForm"))).toString()+"&"+new URLSearchParams(new FormData(o)).toString();fetch(r,{method:"POST",cache:"no-store",headers:{"X-Requested-With":"XMLHttpRequest","Content-Type":"application/x-www-form-urlencoded"},body:n}).then(function(e){if(e.ok)return e.blob()}).then(function(t){if(t&&t.size){var _a3=new Blob([t],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}),_r=(o.dataset.documentFilename||"estimate")+".docx";if(navigator&&navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(_a3,_r);else{var _t5=window.URL||window.webkitURL;if(!_t5.createObjectURL)return!1;var _o=_t5.createObjectURL(_a3),_n2=e.createElement("a");_n2.setAttribute("download",_r),_n2.setAttribute("href",_o),e.body.appendChild(_n2),_n2.click(),_n2.remove()}MicroModal.close("modal-fence-estimate",{disableFocus:!0})}else e.querySelector(".js-generate-estimate-document-error").classList.remove("d-none")}).catch(function(e){console.info("Error ",e)}).finally(function(){e.querySelector(".js-download-estimate-document").removeAttribute("disabled")})})},balStockCheck:function balStockCheck(){events.on("click",".js-bal-check-stock",function(t){MicroModal.show("modal-bal-stock",{disableFocus:!0}),ACC.bal.hideBalStockCheckErrors(),e.querySelector(".js-bal-stock-check-results").innerHTML="",e.querySelector(".js-bal-stock-check-page-number").value=0,ACC.bal.setBalStockCheckLoadingState();var o=t.target.dataset.url,a=new URLSearchParams(new FormData(e.querySelector("#balAddToCartForm"))).toString()+"&"+new URLSearchParams(new FormData(e.querySelector("#balStockCheckForm"))).toString();fetch(o,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:a}).then(function(e){if(e.ok)return e.json()}).then(function(t){t.error?t.postcodeError?e.querySelector(".js-bal-stock-postcode-error").classList.remove("d-none"):e.querySelector(".js-bal-stock-error").classList.remove("d-none"):(e.querySelector(".js-bal-stock-check-results").innerHTML=t.balStockCheckResultHtml,e.querySelector(".js-bal-stock-check-postcode").value=t.postcode,e.querySelector(".js-bal-stock-check-last-postcode").value=t.postcode,"DELIVERY"===t.deliveryOption&&e.querySelector(".js-bal-stock-check-results a[data-pdp-select='delivery-bal']").click())}).catch(function(e){console.info("Error ",e)}).finally(function(){ACC.bal.removeBalStockCheckLoadingState()}),ACC.adobe.track("bal - check availability",{type:ACC.bal.config.balTitle,location:"PDP"})})},submitBalStockPostcode:function submitBalStockPostcode(){events.on("submit","#balStockCheckForm",function(t){t.preventDefault(),ACC.bal.hideBalStockCheckErrors(),e.querySelector(".js-bal-stock-check-results").innerHTML="",e.querySelector(".js-bal-stock-check-page-number").value=0,ACC.bal.setBalStockCheckLoadingState();var o=t.target,a=e.querySelector(".js-bal-stock-check-postcode").value;if(a){var _t6=a.trim();e.querySelector(".js-bal-stock-check-postcode").value=_t6}var r=o.getAttribute("action"),n=new URLSearchParams(new FormData(e.querySelector("#balAddToCartForm"))).toString()+"&"+new URLSearchParams(new FormData(o)).toString();fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n}).then(function(e){if(e.ok)return e.json()}).then(function(t){t.error?t.postcodeError?e.querySelector(".js-bal-stock-postcode-error").classList.remove("d-none"):e.querySelector(".js-bal-stock-error").classList.remove("d-none"):(e.querySelector(".js-bal-stock-check-postcode").value=t.postcode,e.querySelector(".js-bal-stock-check-results").innerHTML=t.balStockCheckResultHtml,e.querySelector(".js-bal-stock-check-last-postcode").value=t.postcode)}).catch(function(t){e.querySelector(".js-bal-stock-error").classList.remove("d-none"),console.info("Error ",t)}).finally(function(){ACC.bal.removeBalStockCheckLoadingState()}),ACC.adobe.track("bal - search",{type:ACC.bal.config.balTitle,location:"PDP"})}),events.on("click",".js-bal-back-to-calc",function(){ACC.adobe.track("bal - back to calculator",{type:ACC.bal.config.balTitle,location:"PDP"}),MicroModal.close("modal-bal-stock")})},balStockLoadMore:function balStockLoadMore(){events.on("click",".js-bal-collection-load-more",function(t){ACC.bal.hideBalStockCheckErrors();var o=parseInt(e.querySelector(".js-bal-stock-check-page-number").value||-1);if(-1===o)return e.querySelector(".js-bal-stock-error").classList.remove("d-none"),!1;var a=o+1;e.querySelector(".js-bal-stock-check-page-number").value=a,e.querySelector(".js-bal-collection-load-more").classList.add("d-none"),e.querySelector(".js-bal-collection-load-more-section").classList.add("loading");var r=t.target.dataset.url,n=new URLSearchParams(new FormData(e.querySelector("#balAddToCartForm"))).toString()+"&"+new URLSearchParams(new FormData(e.querySelector("#balStockCheckForm"))).toString();fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n}).then(function(e){if(e.ok)return e.json()}).then(function(t){t.error?(e.querySelector(".js-bal-stock-check-page-number").value=o,t.postcodeError?e.querySelector(".js-bal-stock-postcode-error").classList.remove("d-none"):e.querySelector(".js-bal-stock-error").classList.remove("d-none")):(e.querySelector(".js-bal-collection-no-of-stores").innerHTML=t.numberOfResults,e.querySelector(".js-bal-collection-results").insertAdjacentHTML("beforeend",t.balStockCheckLoadMoreHtml),t.lastPage&&(e.querySelector(".js-bal-collection-load-more-section").innerHTML=""))}).catch(function(t){e.querySelector(".js-bal-stock-error").classList.remove("d-none"),console.info("Error ",t)}).finally(function(){e.querySelector(".js-bal-collection-load-more-section").classList.remove("loading"),e.querySelector(".js-bal-collection-load-more")&&e.querySelector(".js-bal-collection-load-more").classList.remove("d-none")})})},selectBalCollection:function selectBalCollection(){events.on("click",".js-bal-select-collection",function(t){var o=t.target.dataset.storeName,a=t.target.dataset.location;if(!o)return!1;var r=new FormData;r.append("storeName",o),r.append("location",a),r.append("CSRFToken",ACC.config.CSRFToken),fetch("/fulfillment/options/collection",{method:"POST",body:r}).then(e.location.reload())})},selectBalDelivery:function selectBalDelivery(){events.on("click",".js-bal-select-delivery",function(t){var o=t.target.dataset.postcode;if(!o)return!1;var a=new FormData;a.append("postCode",o),a.append("CSRFToken",ACC.config.CSRFToken),fetch("/fulfillment/options/delivery",{method:"POST",body:a}).then(e.location.reload())})},hideBalStockCheckErrors:function hideBalStockCheckErrors(){e.querySelector(".js-bal-stock-error").classList.add("d-none"),e.querySelector(".js-bal-stock-postcode-error").classList.add("d-none")},setBalStockCheckLoadingState:function setBalStockCheckLoadingState(){clearTimeout(this.loading),this.loading=setTimeout(function(){e.querySelector(".js-bal-stock-check-results").classList.add("loading")},2e3)},removeBalStockCheckLoadingState:function removeBalStockCheckLoadingState(){clearTimeout(this.loading),e.querySelector(".js-bal-stock-check-results").classList.remove("loading")},balShowMoreInfo:function balShowMoreInfo(){events.on("click",".js-bal-more-info-link",function(e){e.preventDefault();
1var t=e.target,o=t.closest(".js-bal-more-info").querySelector(".js-bal-more-info-content"),a=t.dataset.showMore,r=t.dataset.showLess;t.classList.contains("opened")?(t.classList.remove("opened"),t.innerText=a,o.classList.add("d-none")):(t.classList.add("opened"),t.innerText=r,o.classList.remove("d-none"))})}}}(document),ACC.carousel=function(e){return{_autoload:[["glider",!!e.querySelector(".js-glider-slider")],["productGlider",!!e.querySelector(".glider")]],cacheForTracking:{revealed:{}},homePageGlider:e.querySelector(".js-homepage-glider"),productGenericGlider:e.querySelectorAll(".js-product-generic-glider"),gliderSliderConfig:{hero:{slidesToShow:1,draggable:!1,responsive:[{breakpoint:767,settings:{rewind:!0,dots:".js-dots",arrows:{prev:".js-glider-prev",next:".js-glider-next"}}}]},generic:{slidesToShow:1,slidesToScroll:1,draggable:!0,responsive:[{breakpoint:576,settings:{slidesToShow:2,slidesToScroll:2}},{breakpoint:992,settings:{slidesToShow:4,slidesToScroll:4,rewind:!0}}]}},glider:function glider(){if(events.on("glider-loaded, glider-refresh",".js-glider-slider",function(e){setTimeout(function(){var t=e.target._glider,o=t.ele.parentElement&&t.ele.parentElement.querySelector(".controls");if(!o)return!1;t.ele.querySelectorAll(".visible").length===t.slides.length?o.style.display="none":o.style.display="flex"},50)}),events.on("glider-slide-visible",".js-product-carousel .glider",ACC.carousel.carouselTracking),ACC.carousel.homePageGlider){var _e5=new Glider(ACC.carousel.homePageGlider,ACC.carousel.glider
1SliderConfig.hero),t="true"===ACC.carousel.homePageGlider.parentElement.dataset.autoplay,o=ACC.carousel.homePageGlider.parentElement.dataset.autoplaySpeed;ACC.carousel.gliderAutoPlay(_e5,o,t)}ACC.carousel.productGenericGlider.length&&forEach(ACC.carousel.productGenericGlider,function(e){var t=ACC.carousel.productGenericGlider[e],o=Object.assign(ACC.carousel.gliderSliderConfig.generic,{dots:t.parentElement.querySelector(".js-product-glider-dots")});new Glider(t,o)})},gliderAutoPlay:function gliderAutoPlay(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:3600;var o=arguments.length>2&&arguments[2]!==undefined?arguments[2]:!1;var a=e.track.childElementCount;var r=!1,n=null,s=1;function i(){n=setInterval(function(){s>=a&&(s=0),e.scrollItem(s++)},t)}function c(){clearInterval(n),n=null}o&&i(),events.on("click",".js-glider-toggle",function(e){"play"===e.target.dataset.state?(e.target.dataset.state="pause",c()):(e.target.dataset.state="play",i())}),events.on("mouseover, mouseout, focus, blur",".js-glider-slider--hero",function(e){var t=e.target.closest(".js-glider-slider").querySelector(".js-glider-toggle").dataset.state;switch(e.type){case"mouseover":n&&c();break;case"mouseout":"play"!==t||r||n||i();break;case"focus":r=!0;break;case"blur":"play"!==t||n||i(),r=!1;}})},carouselTracking:function carouselTracking(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!0;var o=ACC.carousel.cacheForTracking.revealed,a=e.target.querySelectorAll(".glider-slide.visible"),r=[];a.forEach(function(e,t){var a=e.dataset.productId,n=e.dataset.pageReferrerLabel,s=n?n.replace(/\s/g,"").charAt(0).toLowerCase()+n.replace(/\s/g,"").slice(1):null;if(!s)return!1;if(o.hasOwnProperty(s)||(o[s]=[]),-1===o[s].indexOf(a)){var i={category:e.dataset.productCategory,productID:a,price:e.dataset.productPrice,priceExVAT:e.dataset.productPricenet||"",location:n};r.push(i),o[s].push(a)}}),r.length&&t&&ACC.adobe.track("product view",{product:r})},productGlider:function productGlider(){e.querySelectorAll(".glider").forEach(function(e){var t=function(e){var t=e.offsetParent,o=parseInt(e.dataset.slideCount)||4;return{slidesToShow:"auto",slidesToScroll:"auto",draggable:!0,itemWidth:240,exactWidth:!0,dots:t.querySelector(".dots"),arrows:void 0,responsive:[{breakpoint:775,settings:{slidesToShow:"auto",slidesToScroll:"auto",dots:t.querySelector(".dots"),arrows:{prev:t.querySelector(".glider-prev"),next:t.querySelector(".glider-next")},itemWidth:260,duration:.25}},{breakpoint:1024,settings:{slidesToShow:o,slidesToScroll:1,dots:t.querySelector(".dots"),arrows:{prev:t.querySelector(".glider-prev"),next:t.querySelector(".glider-next")},itemWidth:t.clientWidth/o,duration:.25}}]}}(e);new Glider(e,t)}),events.on("glider-slide-visible",".glider",function(e){var t=e.target.closest(".glider-contain");if(!t)return!1;e.detail.slide===e.target._glider.slides.length-1?t.classList.add("end"):t.classList.remove("end")}),events.on("click",".glider-contain .glider-arrow",function(e){var t=e.target,o=t.closest(".glider-contain").parentElement,a=t.closest("[data-component]"),r=a&&a.dataset.component?a.dataset.component:null,n=o.querySelector("h2")?o.querySelector("h2").innerText:null;ACC.adobe.track("carousel scroll",{componentName:r,componentTitle:n})}),events.on("click",".glider-contain .link-header",function(e){var t=e.target.closest(".item");t&&(t=t.dataset,ACC.adobe.track("product select",{product:[{category:t.productCategory?t.productCategory:null,productID:t.productId,productName:t.productName,transactionType:"sale",unitOfSale:"EA",location:t.pageReferrerLabel?t.pageReferrerLabel:null}]}))})},replaceProductPrices:function replaceProductPrices(){var t=".product-recommendations-carousel",o=".js-recommendations-price-loading",a=".js-recommendations-price-hidden",r=".js-recommendations-price",n=".js-recommendations-cta",s=e.querySelectorAll(t);if(!s.length)return;var i=!!ACC.config&&ACC.config.isHidePriceBehindPostcode;s.forEach(function(e){i?(e.querySelectorAll(a).forEach(function(e){return e.classList.remove("d-none")}
1),e.querySelectorAll("".concat(r,", ").concat(n)).forEach(function(e){return e.classList.add("d-none")})):(e.querySelectorAll("".concat(r,", ").concat(n)).forEach(function(e){return e.classList.remove("d-none")}),e.querySelectorAll(a).forEach(function(e){return e.classList.add("d-none")})),e.querySelectorAll(o).forEach(function(e){return e.classList.add("d-none")})})}}}(document),ACC.basket=function(e){var t={id:"storeSearch",basketContainer:e.querySelector(".js-basket-container"),basketTabs:e.querySelector(".js-basket-tabs"),basketTabsContent:{collection:e.querySelector(".js-collection-tab-content"),delivery:e.querySelector(".js-delivery-tab-content")},basketStoreSearch:e.querySelectorAll(".js-store-search"),basketStoreSearchType:e.querySelector("#searchType"),basketChangePostcode:".js-change-postcode",basketChangePostcodeForm:"basket__panel-form-inner",basketPostcodeGeolocate:".js-postcode-geolocate",basketTypes:{collection:"basket-selection--collection",delivery:"basket-selection--delivery"},strings:{errorMessage:ACC.basketStrings&&ACC.basketStrings.postcodeErrorMessage||"Please enter your postcode to proceed",deliveryErrorMessage:ACC.basketStrings&&ACC.basketStrings.deliveryErrorMessage||"Delivery is only available in London"}};return{_autoload:["init","loadAdobeBasketRecommendations"],init:function init(){events.on("click",t.basketChangePostcode,function(e){e.preventDefault();var o=t.basketContainer.querySelector("."+t.basketChangePostcodeForm);o&&o.classList.add(t.basketChangePostcodeForm+"--active"),ACC.basket.isElementInViewport(o)||window.scrollTo(0,t.basketContainer.offsetTop)}),events.on("click",t.basketPostcodeGeolocate,function(e){e.preventDefault(),ACC.basket.updateFormType("geolocation"),ACC.basket.geolocate()}),events.on("change",".js-store-search input[name='locationQuery']",function(){ACC.storeLocator.searchType="free text"}),events.on("input",".js-store-search input[name='locationQuery']",function(){ACC.basket.clearNoBranchResults()}),events.on("submit",".js-store-search",function(e){var t=e.target,o=t.querySelector("input[name='locationQuery']").value;if(o){var _e6=o.trim();t.querySelector("input[name='locationQuery']").value=_e6,ACC.adobe.track("branch search",{searchTerm:_e6,searchType:ACC.storeLocator.searchType,searchMethod:"basket"})}ACC.storeLocator.searchType="free text"}),(t.basketContainer&&!t.basketContainer.classList.contains(t.basketTypes.collection)||t.basketContainer&&!t.basketContainer.classList.contains(t.basketTypes.delivery))&&(t.basketTabsContent.delivery&&t.basketTabsContent.delivery.classList.contains("active")?t.basketContainer.classList.add(t.basketTypes.delivery):t.basketContainer.classList.add(t.basketTypes.collection)),t.basketTabs&&docReady(function(){"delivery"===localStorage.getItem("fulfillment")&&t.basketTabs.querySelector("a[data-basket-select='delivery']").click()}),events.on("click",".js-basket-tabs [data-tabs-head]",function(e){var o=e.target.dataset.basketSelect;if(!o)return!1;if("delivery"===o)t.basketContainer.classList.remove(t.basketTypes.collection),t.basketContainer.classList.add(t.basketTypes.delivery);else t.basketContainer.classList.remove(t.basketTypes.delivery),t.basketContainer.classList.add(t.basketTypes.collection)})},clearResults:function clearResults(){ACC.validation.removeFieldStates(t.id,null)},clearNoBranchResults:function clearNoBranchResults(){e.querySelectorAll(".js-no-branch-results").forEach(function(e){e.remove()}),e.querySelectorAll(".js-store-search .form-group__postcode-element.form-group--error").forEach(function(e){e.classList.remove("form-group--error")})},triggerError:function triggerError(e){this.clearResults();var o=e?t.strings.deliveryErrorMessage:t.strings.errorMessage;ACC.validation.toggleError(t.id,null,o,!0)},isElementInViewport:function isElementInViewport(t){var o=t.getBoundingClientRect();return o.top>=0&&o.left>=0&&o.bottom<=(window.innerHeight||e.documentElement.clientHeight)&&o.right<=(window.innerWidth||e.documentElement.clientWidth)},geolocate:function geolocate(){ACC.storeLocator.geolocateHelper().then(function(e){t.basketStoreSearch.forEac
1h(function(t){t.querySelector("input[name='locationQuery']").value=e}),ACC.storeLocator.searchType="geolocation",ACC.adobe.track("branch search",{searchTerm:e,searchType:ACC.storeLocator.searchType,searchMethod:"basket"}),t.basketStoreSearch[0].submit()},function(t){ACC.validation.toggleError("storeSearch",null,t,!0,e.getElementById("storeSearch"))})},updateFormType:function updateFormType(e){t.basketStoreSearchType&&(t.basketStoreSearchType.value=e||"text")},loadAdobeBasketRecommendations:function loadAdobeBasketRecommendations(){if("undefined"==typeof adobe||void 0===adobe.target)return;var t=window.matchMedia("(max-width: 991px)").matches,o=t?"basket-recommendations-mobile":"basket-recommendations-desktop",a=t?"#mbox-basket-recommendations-mobile":"#mbox-basket-recommendations-desktop";e.querySelector(a)&&adobe.target.getOffer({mbox:o,success:function success(e){adobe.target.applyOffer({mbox:o,selector:a,offer:e})},error:function error(){console.error("Adobe Target recommendations failed")}})}}}(document),ACC.cartItem=function(e){return{_autoload:["bindCartItem",["toolhireUpdate",!!e.querySelector(".js-basket-product")]],bindCartItem:function bindCartItem(){events.on("click",".js-remove-entry-button",function(t){t.preventDefault();var o=t.target.dataset.id;e.getElementById("removeCartEntry"+o).submit()})},toolhireUpdate:function toolhireUpdate(){forEach(e.querySelectorAll(".js-basket-product"),function(e,t){var o,a,r=t.querySelector(".js-update-cart-form"),n=r.querySelector(".js-input-quantity"),s=r.querySelector(".js-calendar"),i=r.querySelector(".js-confirm-qty"),c=!1,l=!1,d=!1;n&&s&&(o=n.value,a=s.value,events.on("change",n,function(){c=!!r.hasAttribute("data-qty-changed")&&"true"===r.dataset.qtyChanged,l=n.value!==o,r.dataset.daysChanged=l,ACC.cartItem.showConfirmQty(i,l||d||c)}),events.on("change",s,function(){c=!!r.hasAttribute("data-qty-changed")&&"true"===r.dataset.qtyChanged,d=s.value!==a,r.dataset.dateChanged=d,ACC.cartItem.showConfirmQty(i,d||l||c)}))})},showConfirmQty:function showConfirmQty(e,t){if(!e&&!e.classList)return!1;t?e.classList.remove("hide"):e.classList.add("hide")}}}(document),ACC.checkout=function(e){var t={loginForm:e.getElementById("loginForm"),guestForm:e.getElementById("guestForm"),checkoutDeliveryAddress:e.querySelector(".js-checkout-delivery-address")};return{_autoload:["populateAddress","bindCheckO","bindForms",["bindLoginForm",!!e.querySelector(".js-checkout-login")],["loginFormToggle",!!e.querySelector(".js-toggle-checkout-login")],["blockPayOnAccountIfNotAllowed",!!e.querySelector(".js-pay-on-account")],["triggerBlockPayOnAccountIfNotAllowed",!!e.querySelector(".js-pay-on-account")],["preselectAddressTab",!!e.querySelector(".js-checkout-delivery-address")],["bindNewAddressTrolleyButton",!!e.querySelector(".js-new-address-trolley")],["bindContinueWithOriginalPostcode",!!e.querySelector(".js-address-original-postcode")],["postCheckoutGuest",!!e.querySelector(".js-guest-register")],["paymentTypeSelection",!!e.querySelector(".payment-method")],["hopSubmit",!!e.querySelector("#hostedOrderPagePostForm")],["preselectTerms",!!e.querySelector("#placeOrderForm1")]],hopSubmit:function hopSubmit(){var t=e.querySelector("#hopDebugMode"),o=!(!t||"true"!==t.dataset.hopDebugMode),a=e.querySelector("#showDebugPage"),r=!(!a||"true"!==a.value),n=e.querySelector("form#hostedOrderPagePostForm");o||r||!n||n.submit()},preselectAddressTab:function preselectAddressTab(){if(!t.checkoutDeliveryAddress.querySelector("#saved input[type='radio']:checked")){var _e7=t.checkoutDeliveryAddress.querySelectorAll("#saved input[type='radio']");_e7.length&&(_e7[0].checked=!0),t.checkoutDeliveryAddress.querySelector("label[for='deliveryAddressMethodNew']").click()}},populateAddress:function populateAddress(){function t(){var e=this.closest("input[type=checkbox]");if(e){var t=e.id,o=this.closest("form").querySelector("[data-toggle='"+t+"']");if(o.querySelectorAll("input[type='text'], input[type='email']").forEach(function(e,t){e.value=""}),e.checked&&o)return o.querySelectorAll("input").forEach(function(t,o){var a=t.name.split(".")[1].toLowerCase(),r=e.dataset[a];r&&(t.value=r)}),!0}}events.on("click",".js-populate-address",function(e){e.target.type&&t.apply(e.target)}),e.querySelectorAll(".js-populate-address input[type=checkbox]").forEach(function(e){t.apply(e)})},bindForms:function bindForms(){events.on("click","#addressSubmit",function(t){t.preventDefault();var o=e.getElementById("new");if(o&&o.classList.contains("active")){var _t7=e.querySelector("input[name='addressId']:checked");_t7&&(_t7.checked=!1),e.querySelector("input[name='sendSMSNotification']").value=e.querySelector("#addSMSNotification").checked}ACC.checkout.performAddressStockCheck()}),events.on("click","#deliveryMethodSubmit",function(t){t.preventDefault(),e.querySelector("#selectDeliveryMethodForm").submit()})},bindCheckO:function bindCheckO(){events.on("click",".checkoutButton",function(e){e.preventDefault(),window.location=e.target.dataset.checkoutUrl})},bindLoginForm:function bindLoginForm(){ACC.config.isOktaHostedLogin||events.on("blur",".js-checkout-login input[type=email]",function(e){t.loginForm.querySelector("input[name=username]").value=e.target.value})},loginFormToggle:function loginFormToggle(){var o="d-none";window.addEventListener("pageshow",function(t){var _e$querySelectorAll=e.querySelectorAll(".js-toggle-checkout-login input"),_e$querySelectorAll2=_slicedToArray(_e$querySelectorAll,2),o=_e$querySelectorAll2[0],a=_e$querySelectorAll2[1];o.checked=!0,a.checked=!1,o.dispatchEvent(new Event("click",{bubbles:!0}))}),events.on("click",".js-toggle-checkout-login input",function(a){var r=a.target.value;if(ACC.config.isOktaHostedLogin)switch(r){case"no":t.guestForm.classList.remove(o),e.querySelector(".js-okta-login-cta").classList.add(o);break;case"yes":t.guestForm.classList.add(o),e.querySelector(".js-okta-login-cta").classList.remove(o);}else switch(r){case"no":t.guestForm.classList.remove(o),t.loginForm.classList.add(o);break;case"yes":t.guestForm.classList.add(o),t.loginForm.classList.remove(o);}})},blockPayOnAccountIfNotAllowed:function blockPayOnAccountIfNotAllowed(){!1===e.querySelector(".js-pay-on-account").dataset.payOnAccountAllowed&&(e.getElementById("paymentMethod_account").checked||"account"===e.querySelector(".js-payment-method-input").value?e.querySelector(".js-
1hide-if-pay-on-account-not-allowed").style.display="none":e.querySelector(".js-hide-if-pay-on-account-not-allowed").style.display="block")},triggerBlockPayOnAccountIfNotAllowed:function triggerBlockPayOnAccountIfNotAllowed(){events.on("change","input[type=radio][name=paymentMethod]",function(){ACC.checkout.blockPayOnAccountIfNotAllowed()})},bindNewAddressTrolleyButton:function bindNewAddressTrolleyButton(){events.on("click",".js-new-address-trolley",function(t){var o=t.target.dataset.newAddressTrolleyUrl,a=e.getElementById("extendedAddressForm"),r=e.querySelector(".js-new-address-error-type").value;a.action=o+"?errorType="+encodeURIComponent(r),a.submit()})},bindContinueWithOriginalPostcode:function bindContinueWithOriginalPostcode(){events.on("click",".js-address-original-postcode",function(){var o=e.querySelector(".js-original-postcode").value;t.checkoutDeliveryAddress&&t.checkoutDeliveryAddress.querySelector("label[for='deliveryAddressMethodNew']").click();var a=e.getElementById("extendedAddressForm");a.querySelector("input[id='address.companyName']").value="",a.querySelector("input[id=line1]").value="",a.querySelector("input[id=line2]").value="",a.querySelector("input[id=townCity]").value="",a.querySelector("input[id=postcode]").value=o,MicroModal.close("modal-address-stock")})},performAddressStockCheck:function performAddressStockCheck(){var t=e.getElementById("extendedAddressForm");e.getElementById("addressSubmit").disabled=!0,fetch(t.dataset.stockCheckUrl,{method:"POST",body:new FormData(t)}).then(function(e){if(!e.ok)throw Error(e.statusText);return e.json()}).then(function(o){"success"===o.result?t.submit():(MicroModal.show("modal-address-stock",{disableFocus:!0}),e.querySelector(".js-original-postcode").value=o.originalPostcode,e.querySelector(".js-new-address-error-type").value=o.result),e.getElementById("addressSubmit").disabled=!1}).catch(function(e){t.submit()})},postCheckoutGuest:function postCheckoutGuest(){if(ACC.config.dontAskTradeDIY&&(!ACC.config.dontAskTradeDIY.enabled||!ACC.config.dontAskTradeDIY.lastUpdatedDate))return!1;var t="modal-guest-checkout",o="guestCheckoutDontAsk";var a=ACC.cookie.get(o),r=new Date(a).getTime(),n=new Date(ACC.config.dontAskTradeDIY.lastUpdatedDate).getTime(),s=parseInt(ACC.config.dontAskTradeDIY.expiryDays||30);if(a&&r>n)return!1;!function(){var o="\n <div class=\"modal modal--medium micromodal-slide\" id=\"".concat(t,"\" aria-hidden=\"true\">\n <div class=\"modal__overlay\" tabindex=\"-1\" data-micromodal-close>\n <div class=\"modal__container\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"modal-guest-checkout-title\">\n <header class=\"modal__header\">\n <h2 class=\"modal__title\" id=\"modal-guest-checkout-title\">").concat(ACC.modalStrings.confirmationModalHeader,"</h2>\n <button class=\"modal__close\" aria-label=\"").concat(ACC.modalStrings.close,"\" data-micromodal-close>").concat(ACC.modalStrings.close,"</button>\n </header>\n <div class=\"modal__content\" id=\"modal-guest-checkout-content\">\n <p>").concat(ACC.modalStrings.confirmationModalText,"</p>\n <div class=\"d-md-flex\">\n <button class=\"btn btn-secondary w-100 mr-md-1 mb-2\" data-option=\"trade\" data-micromodal-close>").concat(ACC.modalStrings.confirmationModalTradeButton,"</button>\n <button class=\"btn btn-secondary w-100 ml-md-1 mb-2\" data-option=\"diy\" data-micromodal-close>").concat(ACC.modalStrings.confirmationModalSelfButton,"</button>\n </div>\n <div>\n <div class=\"checkbox\">\n <input id=\"dontAskAgain\" required=\"false\" name=\"dontAskAgain\" class=\"checkbox__input sr-only\" type=\"checkbox\" value=\"dontAskAgain\" />\n <label class=\"checkbox__label mb-0 js-dont-ask-checkbox\" for=\"dontAskAgain\" data-micromodal-close>").concat(ACC.modalStrings.confirmationModalAskAgain,"</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n ");e.querySelector("body").insertAdjacentHTML("beforeend",o),MicroModal.show(t,{disableFocus:!0})}(),e.addEventListener("click",function(t){if(t.target.classList.contains("js-dont-ask-checkbox")&&ACC.cookie.set(o,new Date().toString(),s),t.target.classList.contains("btn-secondary")){var _o2,_a4="Guest Order Confirmation Modal";switch(t.target.dataset.option){case"trade":ACC.adobe.track(_a4,{customerType:"Trader"}),_o2=e.getElementById("js-guest-customer-trade");break;case"diy":ACC.adobe.track(_a4,{customerType:"DIYer"}),_o2=e.getElementById("js-guest-customer-diy");}_o2&&(e.getElementById("js-guest-customer-default").classList.add("hide"),_o2.classList.remove("hide"))}})},paymentTypeSelection:function paymentTypeSelection(){events.on("click",".js-payment-saved-card",function(t){var o=t.target.closest("label").dataset.card;e.querySelector("#paymentMethodSaved").checked=!0,e.getElementById(o).checked=!0}),events.on("click",".js-payment-new-card",function(){e.querySelector("#paymentMethodNew").checked=!0}),events.on("click","#payment-methods-section label",function(t){var o=t.target.closest("label"),a=e.getElementById("checkout-button-section"),r=e.getElementById("applepaybutton");a&&r&&("paymentMethod_applepay"===o.getAttribute("for")?(a.classList.add("hide-apple-pay"),r.classList.remove("hide-apple-pay")):(a.classList.remove("hide-apple-pay"),r.classList.add("hide-apple-pay")))})},preselectTerms:function preselectTerms(){"true"===ACC.global.manageSessionState.getState("preselect_terms")&&(e.querySelector("#termsCheck").checked=!0)}}}(document),ACC.checkStock=function(e){return{_autoload:[["nearestStockCheck",!!e.querySelector(".js-modal-nearest-stock")]],loading:!1,hasAltStockMessaging:!1,stockCheckModal:e.querySelector(".check-stock-modal"),stockCheckModalContainer:e.querySelector(".check-stock-modal__container"),altStockMessaging:e.querySelector(".js-alt-stock-messaging"),resultsLoadedClass:"check-stock-modal__results--listed",stockCheckResults:e.querySelector(".js-stock-check-results"),stockCheckForm:e.querySelector(".js-stock-check-form"),storeSearchError:e.querySelector(".js-store-search-error"),nearestStockCheck:function nearestStockCheck(){var t=".js-store-search input[name='locationQuery']";ACC.global.scrollToAlternativeProductsComponent(),ACC.global.addGoogleMapsApi("ACC.storeLocator.myMap"),events.on("change",t,function(e){ACC.storeLocator.searchType="free text"}),events.on("keypress",t,function(e){13===e.keyCode&&(e.preventDefault(),e.target.blur(),e.target.closest(".
1js-store-search").querySelector(".js-modal-nearest-stock, .js-modal-nearest-stock-modal").click())}),events.on("click",".js-open-modal-pdp-stock",function(t){t.preventDefault();var o=t.target.classList.contains("change-to-collection");var a=serializeArray(t.target.closest(".js-store-search")?t.target.closest(".js-store-search"):e.querySelector(".js-store-search")),_a$reduce=a.reduce(function(e,t){return e[t.name]=t.value,e},{}),r=_a$reduce.collectionLastPostcode;o&&r?ACC.checkStock.mirrorPostcodeInput(r):(ACC.checkStock.mirrorPostcodeInput(""),ACC.checkStock.stockCheckResults.classList.remove(ACC.checkStock.resultsLoadedClass)),MicroModal.show("modal-pdp-stock",{disableFocus:!0})}),events.on("click",".js-modal-nearest-stock, .js-modal-nearest-stock-modal",function(o){o.preventDefault(),ACC.checkStock.storeSearchError.innerHTML="";var a=o.target.classList.contains("change-to-delivery"),r=o.target.classList.contains("change-to-collection"),n=o.target.closest(".js-store-search")?o.target.closest(".js-store-search"):e.querySelector(".js-store-search"),s=serializeArray(n),i=n.querySelector("input[name=inStock]").checked;var _s$reduce=s.reduce(function(e,t){return e[t.name]=t.value,e},{}),c=_s$reduce.locationQuery,l=_s$reduce.productCode,d=_s$reduce.currentPage,u=_s$reduce.collectionLastPostcode;a?ACC.checkStock.changeFocusToDeliveryTab():r&&(ACC.checkStock.changeFocusToCollectionTab(),u&&(c=u)),e.querySelectorAll("input[name=inStock]").forEach(function(e,t){e.checked=i});var p=parseInt(d||0),m=e.querySelector("#loadMoreSection");if("loadMoreButton"===o.target.id?(p++,n.querySelector("input[name=currentPage]").value=p,p>1?m.classList.add("d-none"):m.classList.remove("d-none")):(p=0,e.querySelectorAll("input[name=currentPage]").forEach(function(e,t){e.value=p}),m.classList.remove("d-none")),!e.querySelector(t).value){var _e8="<p class=\"error my-2 strong text-red\">\n ".concat(ACC.checkStock.getMessage("notBlankProductStockCheckFormProductCode"),"\n </p>");return ACC.checkStock.storeSearchError.innerHTML=_e8,!1}if(!c||!l)return!1;c&&(ACC.adobe.track("branch search",{searchTerm:c,searchType:ACC.storeLocator.searchType,searchMethod:"pdp"}),ACC.checkStock.mirrorPostcodeInput(c),ACC.checkStock.getData(c,l,i,p)),ACC.storeLocator.searchType="free text"}),events.on("click",".js-store-search [data-modal-geolocate]",function(t){t.preventDefault(),ACC.storeLocator.geolocateHelper().then(function(t){ACC.checkStock.mirrorPostcodeInput(t),ACC.storeLocator.searchType="geolocation",e.querySelector(".js-modal-nearest-stock").click()},function(e){ACC.checkStock.showError(e)})}),events.on("click","#modal-pdp-stock .js-select-collection",function(e){var t=e.target.dataset.storeName,o=e.target.dataset.location;if(!t)return!1;ACC.checkStock.chooseCollection(t,o)}),events.on("click","#modal-pdp-stock .js-select-delivery",function(e){var t=e.target.dataset.postcode;if(!t)return!1;ACC.checkStock.chooseDelivery(t)}),events.on("change","#modal-pdp-stock .js-checkbox-stock",function(){e.querySelectorAll(".js-modal-nearest-stock-modal")[0].click()})},fetchData:function fetchData(e,t){return fetch(e,{method:"POST",body:t})},chooseCollection:function chooseCollection(e,t){var o=new FormData;o.append("storeName",e),o.append("location",t),o.append("CSRFToken",ACC.config.CSRFToken),this.fetchData("/fulfillment/options/collection",o).then(function(){return window.location.reload(!0)})},chooseDelivery:function chooseDelivery(e){var t=new FormData;t.append("postCode",e),t.append("CSRFToken",ACC.config.CSRFToken),this.fetchData("/fulfillment/options/delivery",t).then(function(){return window.location.reload(!0)})},mirrorPostcodeInput:function mirrorPostcodeInput(t){e.querySelectorAll(".js-store-search input[name='locationQuery']").forEach(function(e,o){e.value=t})},getData:function getData(t,o,a,r){if(!t||!o)return!1;var n=new FormData;n.append("locationQuery",t),n.append("productCode",o),n.append("inStockCheck",a),n.append("currentPage",r),n.append("CSRFToken",ACC.config.CSRFToken);ACC.checkStock.stockCheckForm.querySelector(".error")&&ACC.checkStock.stockCheckForm.querySelector(".error").remove();var s=this;
1s.setLoadingState(),s.hasAltStockMessaging=!1,this.fetchData("/ajax/product/stock/check/fulfillmentOption",n).then(function(e){if(e.ok)return e.json();throw e}).then(function(o){var a=o.collectionData,n=o.deliveryData,i=o.productDeliveryMode,c=a.collectionStockAvailabilityData,l=n.deliveryStockAvailabilityData,d=a.error,u=n.error;if(MicroModal.show("modal-pdp-stock",{disableFocus:!0}),a.validStock){var _o3="<p class=\"check-stock-modal__nearest d-none d-md-block\">".concat("".concat(ACC.checkStock.getMessage("nearestStoreMessage1")," ").concat(c.results.length," ").concat(ACC.checkStock.getMessage("nearestStoreMessage2")),"</p>");c.pagination.totalNumberOfResults>10&&0===r||c.pagination.totalNumberOfResults>20&&1===r||e.querySelector("#loadMoreSection").classList.add("d-none"),c.results.forEach(function(e,a){_o3+=ACC.checkStock.renderCollectionResults(e,a,t)}),e.querySelector("#modal-pdp-stock .tabs__content #collection .tabs__content-panel-results").innerHTML=_o3}else if(null!=d){ACC.checkStock.changeFocusToDeliveryTab();var _t8="<p class=\"error my-2 strong text-red\">".concat(d,"</p>");e.querySelector("#modal-pdp-stock .tabs__content #collection .tabs__content-panel-results").innerHTML=_t8}if(n.validStock){var _t9=ACC.checkStock.renderDeliveryResults(l);e.querySelector("#modal-pdp-stock .tabs__content #delivery .tabs__content-panel-results").innerHTML=_t9}else if(null!=u){var _t10="<p class=\"error my-2 strong text-red\">".concat(u,"</p>");e.querySelector("#modal-pdp-stock .tabs__content #delivery .tabs__content-panel-results").innerHTML=_t10}s.hasAltStockMessaging?s.altStockMessaging.classList.remove("d-none"):s.altStockMessaging.classList.add("d-none"),ACC.checkStock.stockCheckResults.classList.add(s.resultsLoadedClass),s.removeLoadingState(),"DROPSHIP"!==i&&"DELIVERYONLY"!==i||ACC.checkStock.changeFocusToDeliveryTab()}).catch(function(e){e.json().then(function(e){Array.isArray(e.locationQuery)&&ACC.checkStock.showError(e.locationQuery[0])})}).finally(function(){s.removeLoadingState()})},changeFocusToDeliveryTab:function changeFocusToDeliveryTab(){e.querySelector(".js-stock-check-results a[data-pdp-select='delivery']").click()},changeFocusToCollectionTab:function changeFocusToCollectionTab(){e.querySelector(".js-stock-check-results a[data-pdp-select='collection']").click()},setLoadingState:function setLoadingState(){var e=this;clearTimeout(e.loading),e.loading=setTimeout(function(){e.stockCheckModalContainer.classList.add("loading")},1e3|ACC.config.waitTimeBeforeLoadingAnim)},removeLoadingState:function removeLoadingState(){clearTimeout(this.loading),this.stockCheckModalContainer.classList.remove("loading")},showError:function showError(e){ACC.checkStock.stockCheckResults.classList.remove(this.resultsLoadedClass);var t="<p class=\"error my-2 strong text-red\">".concat(e,"</p>");ACC.checkStock.stockCheckForm.insertAdjacentHTML("beforeend",t),ACC.checkStock.storeSearchError.innerHTML=t},renderCollectionResults:function renderCollectionResults(e,t,o){var a=ACC.checkStock.getMessage("selectThisStoreButton"),r="inStock"===e.productStock.stockLevelStatus.code||e.productStock.supplierChallengeActive||null!==e.productStock.averageSupplierLeadTime?"<div class=\"block-store-card__button\">\n <button type=\"button\" class=\"btn btn-primary btn--product-store-card js-select-collection\" data-store-name=\"".concat(e.name,"\" data-result-number=\"").concat(t+1,"\" data-location=\"").concat(o,"\">").concat(a,"</button>\n </div>"):"",n=ACC.checkStock.getMessage("stockShowFullDetailsLink"),s=e.address.phone?"\n <div class=\"d-flex glyph glyph--phone mb-1\">\n <a href=\"tel:".concat(e.address.phone,"\" class=\"text-wrap ml-1\">").concat(e.address.phone,"</a>\n </div>"):"",i=e.branchEmail?"\n <div class=\"d-flex mb-1\">\n <span class=\"glyph glyph--email mr-1\"></span>\n <a href=\"mailto:".concat(e.branchEmail,"\" class=\"text-wrap\">").concat(e.branchEmail,"</a>\n </div>"):"";return"\n <div class=\"block block--no-shadow block-store-card\" data-tracking-block=\"StockCheckModal\">\n <div class=\"d-flex justify-content-between align-items-start\">\n <div class=\"block-store-card__store-info\">\n <div class=\"block__name block-store-card__name mb-xs-5\">".concat(e.displayName,"</div>\n <strong class=\"d-md-none\">").concat(e.formattedDistance,"</strong>\n <div class=\"block-store-card__address\">").concat(e.address.formattedAddress,"</div>\n </div>\n <div class=\"block-store-card__distance ml-1\">\n <strong class=\"d-none d-md-block mr-1\">").concat(e.formattedDistance,"</strong>
1\n <span class=\"glyph glyph--location-marker\"></span>\n </div>\n </div>\n\n <div class=\"accordion accordion--all js-accordion\">\n <div class=\"accordion-toggle__content mb-0 js-accordion-content\">\n <div class=\"accordion-toggle accordion-toggle--plain js-accordion-toggle block-store-card__link-details mb-2\">\n <a href=\"#\" class=\"block-store-card__link-details-trigger d-flex align-items-center\">").concat(n," <span class=\"glyph glyph--chevron glyph--rotate-90 glyph--small ml-1\"></span></a>\n </div>\n <div class=\"accordion-toggle__inner\">\n <div class=\"block__section block-store-card__branch-info\">\n <div class=\"block-store-card__branch-address\">\n ").concat(ACC.checkStock.renderOpeningHours(e.openingHours.weekDayOpeningList),"\n <p>").concat(e.address.formattedAddress,"</p>\n ").concat(s,"\n ").concat(i,"\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"block__section block-store-card__stock-info\">\n ").concat(ACC.checkStock.renderCollectionProductAvailability(e),"\n ").concat(r,"\n </div>\n ").concat(ACC.checkStock.renderAvailableAlternatives(e),"\n </div>")},renderOpeningHours:function renderOpeningHours(e){if(!e||!Array.isArray(e))return!1;var t=e.find(function(e){return!0===e.isToday});var o;return o=t.closed?ACC.checkStock.getMessage("stockClosedMessage"):ACC.checkStock.getMessage("stockOpenMessage").concat(" ",t.openingTime&&t.openingTime.formattedHour||""," - ",t.closingTime&&t.closingTime.formattedHour||""," ",ACC.checkStock.getMessage("stockTodayMessage")),"\n <strong class=\"block-store-card__branch-".concat(t.closed?"closed":"opened","\">\n ").concat(o,"\n </strong>")},renderDeliveryResults:function renderDeliveryResults(e){var t=ACC.checkStock.getMessage("selectDeliveryButton"),o=ACC.checkStock.getMessage("stockDeliveryToMessage").concat(" ",e.address.postalCode),a="inStock"===e.productStock.stockLevelStatus.code||e.productStock.supplierChallengeActive||null!==e.productStock.averageSupplierLeadTime?"<div class=\"block-store-card__button\">\n <button type=\"button\" class=\"btn btn-primary btn--product-store-card js-select-delivery\" data-postcode=\"".concat(e.address.postalCode,"\">").concat(t,"</button>\n </div>"):"";return"\n <div class=\"block block--no-shadow block-store-card\">\n <div class=\"d-flex justify-content-between align-items-start\">\n <div class=\"block-store-card__store-info\">\n <div class=\"block__name block-store-card__name mb-2\">".concat(o,"</div>\n </div>\n </div>\n <div class=\"block__section block-store-card__stock-info\">\n ").concat(ACC.checkStock.renderProductAvailabilityForDelivery(e),"\n ").concat(a,"\n </div>\n </div>")},renderCollectionProductAvailability:function renderCollectionProductAvailability(e){var t=e.productStock,o=ACC.checkStock.getStockEmptyMessage(t.product),a="inStock"===t.stockLevelStatus.code||null!==t.averageSupplierLeadTime?"block__icon--check glyph glyph--tick glyph--light":"block__icon--exclamation block__icon--red glyph glyph--exclamation-mark glyph--light",r="inStock"===t.stockLevelStatus.code||null!==t.averageSupplierLeadTime?ACC.checkStock.getMessage("stockAvailableMessage"):o,n=o;return"inStock"===t.stockLevelStatus.code?n="TOMMOROW_AFTER_OPENING"===e.leadTimeInfo.option?ACC.checkStock.getMessage("stockCollectTomorrowMessage").concat(" ",e.leadTimeInfo.formattedDeliveryTime):"TODAY"===e.leadTimeInfo.option?ACC.checkStock.getMessage("stockCollectTodayMessage").concat(" ",e.leadTimeInfo.formattedDeliveryTime):"AFTER_OPENING"===e.leadTimeInfo.option?ACC.checkStock.getMessage("stockCollectTodayAfterOpeningMessage").concat(" ",e.leadTimeInfo.formattedDeliveryTime):ACC.checkStock.getMessage("stockCollectFromMessage").concat(" ",e.leadTimeInfo.formattedDeliveryDate):t.supplierChallengeActive?(a="block__icon--exclamation glyph glyph--exclamation-mark glyph--light",n=ACC.checkStock.getMessage("supplierChallengeLeadTimeMessage")):null!==t.averageSupplierLeadTime&&(n=ACC.checkStock.getMessage("collectionAverageSupplierLeadTimeMessage".concat(t.averageSupplierLeadTime))),"\n <div class=\"d-flex align-items-center flex-grow-1\">
1\n <span class=\"block__icon ".concat(a," mr-1\">\n <span class=\"sr-only\">").concat(r,"</span>\n </span>\n <strong class=\"block__section--fill\">").concat(n,"</strong>\n </div>")},renderAvailableAlternatives:function renderAvailableAlternatives(e){if(void 0===e||void 0===e.productStock||void 0===e.productStock.stockLevelStatus||void 0===e.productStock.averageSupplierLeadTime)return"";var t="";if("inStock"!==e.productStock.stockLevelStatus.code&&null===e.productStock.averageSupplierLeadTime&&e.productStock.availableAlternatives){ACC.checkStock.hasAltStockMessaging=!0;var o=e.productStock.availableAlternatives,a=o.length;if(1===a){t="\n <div class=\"block__section block__section--middle\">\n <strong class=\"block__section--fill\">".concat(ACC.checkStock.getMessage("alternativeMessageSingle"),"</strong>\n </div>\n ").concat(ACC.checkStock.renderAlternativeProduct(o[0],0),"\n ")}else if(a<4){var _e9=ACC.checkStock.getMessage("alternativeMessage2To3"),r=ACC.checkStock.getMessage("alternativesMessageSuffix"),n="";o.forEach(function(e,t){n+="<div class=\"px-xs-20\">".concat(ACC.checkStock.renderAlternativeProduct(e,t),"</div>")}),t="\n <div class=\"block__section block__section--end p-0\">\n <div class=\"accordion accordion--all js-accordion\">\n <div class=\"accordion-toggle__content js-accordion-content\">\n <div class=\"align-items-center px-xs-20 py-1 accordion-toggle--handle js-accordion-toggle\">\n <strong class=\"block__section--fill\">".concat(_e9," ").concat(a," ").concat(r,"</strong>\n <span class=\"accordion-toggle__trigger\"></span>\n </div>\n <div class=\"accordion-toggle__inner\">\n ").concat(n,"\n </div>\n </div>\n </div>\n </div>")}else{var _e10=ACC.checkStock.getMessage("alternativesViewAll");t="\n <div class=\"block__section block__section--middle\">\n <strong class=\"block__section--fill flex-grow-1 mr-1\">".concat(ACC.checkStock.getMessage("alternativeMessage4More")," ").concat(a," ").concat(ACC.checkStock.getMessage("alternativesMessageSuffix"),"</strong>\n <div class=\"flex-grow-1 flex-md-grow-0\">\n <a href=\"#\" class=\"scroll-to-alternative-products btn btn-primary no-wrap\">").concat(_e10,"</a>\n </div>\n </div>")}}return t},renderAlternativeProduct:function renderAlternativeProduct(e,t){var o=ACC.checkStock.getMessage("alternativesMoreDetails"),a=e.target.name,r=ACC.checkStock.getFormattedPrice(e.target),n=e.target.url,s=ACC.checkStock.getProductThumbnail(e.target);return"\n <div class=\"block__section block__section--middle d-block d-sm-flex flex-wrap flex-sm-nowrap justify-content-between\" data-tracking-position=\"".concat(t+1,"\">\n <div class=\"d-flex\">\n <img src=\"").concat(s?s.url:ACC.checkStock.getMessage("alternativesMissingThumbnail"),"\" width=\"60\" class=\"mr-1\" />\n <div class=\"block__section--fill mr-1\">\n <div>").concat(a,"</div>\n ").concat(r,"\n </div>\n </div>\n <div class=\"flex-fill flex-sm-grow-0 mt-1 mt-sm-0\">\n <a href=\"").concat(n,"\" class=\"btn btn-primary no-wrap\" data-product-id=\"").concat(e.target.code,"\">").concat(o,"</a>\n </div>\n </div>")}
1,getProductThumbnail:function getProductThumbnail(e){var t;return e.images.forEach(function(e,o){"thumbnail"===e.format&&(t=e)}),t},getFormattedPrice:function getFormattedPrice(e){var t,o=ACC.checkStock.getMessage("isB2BUser");if(e.price&&(!o||e.hasB2bPrice||e.hire)){var _o4=ACC.checkStock.getMessage("showVatPrices"),a=_o4?e.price.formattedGrossValue:e.price.formattedNetValue,r=e.hire?"From ":"";if(e.unitaryPrice){t="<strong>".concat(r).concat(a,"</strong> <span class=\"price__per\">(").concat(_o4?e.unitaryPrice.formattedGrossValue:e.unitaryPrice.formattedNetValue," ").concat(e.unitLabelPriceUnitFrontendName?e.unitLabelPriceUnitFrontendName:e.unitFrontendName,")</span>")}else t="<strong>".concat(r).concat(a,"</strong><span class=\"price__per\"> ").concat(e.unitFrontendName,"</span>")}else{t="<strong>".concat(ACC.checkStock.getMessage("alternativesContactBranchForPrice"),"</strong>")}return t},renderProductAvailabilityForDelivery:function renderProductAvailabilityForDelivery(e){var t="inStock"===e.productStock.stockLevelStatus.code||null!==e.productStock.averageSupplierLeadTime?"block__icon--check glyph glyph--tick glyph--light":"block__icon--exclamation block__icon--red glyph glyph--exclamation-mark glyph--light",o="inStock"===e.productStock.stockLevelStatus.code||null!==e.productStock.averageSupplierLeadTime?ACC.checkStock.getMessage("stockAvailableMessage"):ACC.checkStock.getMessage("stockEmptyMessage"),a=e.remoteDeliveryMode?" "+ACC.checkStock.getMessage("remoteDeliveryMessage"):"",r=ACC.checkStock.getMessage("deliveryUnavailableMessage");if(ACC.checkStock.getMessage("hasAlternativeProducts")){var n=ACC.checkStock.getMessage("productAlternativesMessage");r=r.concat("<a href=\"#\" class=\"scroll-to-alternative-products ml-2\">"+n+"</a>")}"inStock"===e.productStock.stockLevelStatus.code?r=ACC.checkStock.getMessage("deliveryAvailableMessage")+a:e.productStock.supplierChallengeActive?(t="block__icon--exclamation glyph glyph--exclamation-mark glyph--light",r=ACC.checkStock.getMessage("supplierChallengeLeadTimeMessage")+a):null!==e.productStock.averageSupplierLeadTime&&(r=ACC.checkStock.getMessage("deliveryAverageSupplierLeadTimeMessage".concat(e.productStock.averageSupplierLeadTime))+a);var s=ACC.checkStock.getMessage("increasedLeadTimeMessage");return""!==s&&(r+=s),"\n <div class=\"d-flex align-items-center flex-grow-1\">\n <span class=\"block__icon ".concat(t," mr-1\">\n <span class=\"sr-only\">").concat(o,"</span>\n </span>\n <strong class=\"block__section--fill\">").concat(r,"</strong>\n </div>")},getMessage:function getMessage(e){return ACC.checkStockMessages[e]},getStockEmptyMessage:function getStockEmptyMessage(e){return null!==e&&null!==e.typeDetails&&e.typeDetails.dropship?ACC.checkStock.getMessage("stockEmptyMessageDropship"):ACC.checkStock.getMessage("stockEmptyMessage")}}}(document),ACC.clippy=function(e){return{_autoload:[["clippy",!!e.querySelector(".js-clippy")]],clippy:function clippy(){var t=e.querySelectorAll(".js-clippy");t.length&&forEach(t,function(e){var o=t[e],a=o.querySelector("[data-clippy-content]");if(a){var _e11=Object.create(ACC.clippy.clippyObject);_e11.content=a.innerHTML,_e11.anchorElement=o,_e11.init()}})},clippyObject:function(){var t=window.sessionStorage;return{init:function init(){if(!function(e){return!(!e.content||!e.anchorElement&&!e.anchorElement.id)}(this))return!1;var t=this;t._initialised=!0,t._id=t.anchorElement.id,t._showCount=parseInt(t.anchorElement.dataset.showCount)||1,t._dark=!!t.anchorElement.dataset.darkMode,t.element=e.createElement("div"),t.element.classList="clippy "+(t._dark?"clippy--dark":""),t.element.innerHTML="<div class=\"clippy__content\">".concat(this.content,"</div><div class=\"clippy__close glyph glyph--cross\"></div>"),t.anchorElement.querySelector("[data-clippy-content]").replaceWith(t.element),setTimeout(function(){t.position(),t.show()},500),events.on("click",t.element,function(e){var o=t.anchorElement.dataset.modalName,a=e.target.dataset.modalSelection||e.target.innerText;e.target.closest(".clippy__close")&&(t.track("modal closed",o),t.hide()),e.target.closest(".clippy__content .js-toggle-panel")&&t.track("modal selected",o,a)}),events.on("click",e.querySelector("main"),function(e){e.target.closest(".
1js-clippy")||(t.track("modal closed",t.anchorElement.dataset.modalName),t.hide())}),window.addEventListener("resize",ACC.common.debounce(function(){t.position()},200))},track:function track(e,t,o){if(!e||!t||null===this.element.offsetParent||!this.element.classList.contains("clippy--active"))return!1;var a={modalName:t};o&&Object.assign(a,{modalSelection:o}),ACC.adobe.track(e,a)},show:function show(){if(!this._initialised)return!1;var e=parseInt((o=this._id,!!t&&t.getItem(o)))||0;var o;return e<this._showCount?(this.element.classList.add("clippy--active"),function(e,o){if(!t)return!1;t.setItem(e,o)}(this._id,e+1),null!==this.element.offsetParent&&this.track("modal displayed",this.anchorElement.dataset.modalName),"show clippy"):"no"},hide:function hide(){return this.element.classList.remove("clippy--active"),"hide clippy"},position:function position(){var e=this;e.anchorElement.style.removeProperty("--left-offset"),e.anchorElement.style.removeProperty("--arrow-pos");var t=e.anchorElement.getBoundingClientRect();e.anchorElement.style.position="relative";var o=15+e.element.getBoundingClientRect().width,a=window.outerWidth-t.left;var r=0;return a<o&&(r=o-a,e.anchorElement.style.setProperty("--left-offset",-Math.abs(r)+"px")),window.outerWidth<parseInt(screenLg||992)&&t.top>e.element.offsetHeight&&e.element.classList.add("clippy--top-side"),e.anchorElement.style.setProperty("--arrow-pos",Math.round(e.anchorElement.offsetWidth/2+(r||15)-9)+"px"),"position clippy"}}}()}}(document),ACC.common=function(e){return{_autoload:[],refreshScreenReaderBuffer:function refreshScreenReaderBuffer(){e.querySelector("#accesibility_refreshScreenReaderBufferField").setAttribute("value",new Date().getTime())},updateCSRFToken:function updateCSRFToken(t){t&&(e.querySelector("input[name='CSRFToken']").value=t,ACC.config.CSRFToken=t)},debounce:function debounce(e,t,o){var a;return function(){var r=this,n=arguments,s=function s(){a=null,o||e.apply(r,n)},i=o&&!a;clearTimeout(a),a=setTimeout(s,t),i&&e.apply(r,n)}},throttle:function throttle(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:100;var o=null;return function(){var _this=this;for(var _len=arguments.length,a=new Array(_len),_key=0;_key<_len;_key++){a[_key]=arguments[_key]}null===o&&(o=setTimeout(function(){e.apply(_this,a),o=null},t))}}}}(document),ACC.cookie=function(e){return{set:function set(t,o,a){var r="";if(a){var n=new Date;n.setTime(n.getTime()+24*a*60*60*1e3),r="; expires="+n.toUTCString()}e.cookie=t+"="+(o||"")+r+"; path=/; secure"},get:function get(t){for(var o=t+"=",a=e.cookie.split(";"),r=0;r<a.length;r++){for(var n=a[r];" "===n.charAt(0);){n=n.substring(1,n.length)}if(0===n.indexOf(o))return n.substring(o.length,n.length)}return null},erase:function erase(t){e.cookie=t+"=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;"}}}(document),ACC.flashcard=function(e){var t={timer:5e3,timeout:null,body:e.body};return{events:void events.on("click",".flashcard__close",function(e){ACC.flashcard.close()}),render:function render(e){this.close();var o=this.template(e);t.body.insertAdjacentHTML("beforeend",o),t.timeout=setTimeout(function(){ACC.flashcard.close()},t.timer)},template:function template(e){return"\n <div class=\"flashcard flashcard--active js-flashcard\">\n <div class=\"flashcard__header\">\n <div class=\"flashcard__title\">\n <strong>My Trolley</strong>, ".concat(e.totalUnit," ").concat(e.totalUnit>1?"items":"item","\n </div>\n <div class=\"flashcard__close glyph glyph--cross glyph--small\"></div>\n </div>\n <div class=\"flashcard__status\">\n <div class=\"alert ").concat(e.alertClass?" ".concat(e.alertClass):""," m-0\">\n <div class=\"alert__inner alert__inner--reduce\">\n <div class=\"alert__content\">\n <p>").concat(e.title,"</p>\n </div>\n </div>\n </div>\n </div>\n <div class=\"flashcard__body\">").concat(e.content,"</div>\n ").concat(e.cta?"\n <div class=\"flashcard__footer\">\n <a href=\"".concat(e.cta.url,"\" class=\"btn btn-secondary btn--mini-basket\" rel=\"nofollow\">").concat(e.cta.title,"</a>\n </div>\n "):"","\n </div>\n ")},close:function close(){var e=t.body.querySelector(".flashcard");e&&e.remove(),t.timeout&&clearTimeout(t.timeout)}}}(document),ACC.form=function(e){return{_autoload:["groupAutoTab",["loadDatePicker",!!e.querySelector(".js-calendar")],["submitFormOnChange",!!e.querySelector(".js-submit-on-change")],"checkNumberWithDigits",["creditFormMinRuleUpdate",!!e.querySelector(".js-form-credit-info")],"checkInputTypeNumber","checkInputTypeNumberWithMaxLength",["resetForm",!!e.querySelector(".js-reset-form")],["selectReplacement",!!e.querySelector(".js-select-replacement")
1],"checkInputTypeDecimal","bindInputTypeCurrency",["dynamicForms",!!e.querySelector("#configurableContactUsForm")],["multipleFileUploadInit",!!e.querySelector(".js-upload-multiple")],["formActionSwap",!!e.querySelector(".js-form-action-swap")]],fileUploadCache:{},groupAutoTab:function groupAutoTab(){if(!e.querySelectorAll("form .form-group--sortcode, form .form-group--dob").length)return!1;events.on("keyup, touchend",".form-group--sortcode input[type=number], .form-group--dob input[type=number]",function(e){if(9===e.keyCode||16===e.keyCode)return!1;if(2===e.target.value.length){var t=e.target.parentElement.parentElement.nextElementSibling;if(!t)return!1;var o=t.querySelector("input[type=number]");o&&o.focus()}})},loadDatePicker:function loadDatePicker(){ACC.global.loadScript("/_ui/responsive/common/js/vendor/flatpickr.min.js",ACC.form.datePicker)},datePicker:function datePicker(){var t=e.querySelectorAll(".js-calendar");if(!t.length)return!1;var o=[function(e){return 6===e.getDay()||0===e.getDay()}],a=[function(e){return 0===e.getDay()}];t.forEach(function(e){var t,r=(t={dateFormat:"Y-m-d",minDate:new Date().fp_incr(1),maxDate:new Date().fp_incr(29),disable:[],inline:!0},ACC.calendar&&Object.assign(t,ACC.calendar),ACC.calendar&&ACC.calendar.disableWeekends?t.disable=t.disable.concat(o):ACC.calendar&&ACC.calendar.disableSundays&&(t.disable=t.disable.concat(a)),t),n=e.getAttribute("data-default-date"),s=e.getAttribute("data-inline"),i=e.getAttribute("data-override-min-date"),c=e.getAttribute("data-override-max-date"),l=e.getAttribute("data-override-disable"),d=e.getAttribute("data-is-static");i&&(r.minDate=null),c&&(r.maxDate=null),l&&(r.disable=[]);var u=e.getAttribute("data-change-callback")?e.getAttribute("data-change-callback").split("."):"",p=e.getAttribute("data-ready-callback")?e.getAttribute("data-ready-callback").split("."):"";e.flatpickr({inline:s||r.inline,dateFormat:r.dateFormat,minDate:r.minDate,maxDate:r.maxDate,defaultDate:n||r.defaultDate||r.minDate,disable:r.disable,disableMobile:"true",static:!!d,locale:{firstDayOfWeek:1},nextArrow:"<div class=\"flatpickr-arrow flatpickr-arrow--right glyph glyph--chevron glyph--small\"></div>",prevArrow:"<div class=\"flatpickr-arrow flatpickr-arrow--left glyph glyph--chevron glyph--small glyph--rotate-180\"></div>",onChange:2===u.length?function(e,t,o){ACC[u[0]][u[1]](e,t,o)}:null,onReady:2===p.length?function(e,t,o){ACC[p[0]][p[1]](e,t,o)}:null})})},submitFormOnChange:function submitFormOnChange(){events.on("change",".js-submit-on-change",function(e){var t=e.target.closest("form");t.length&&t.submit()})},checkNumberWithDigits:function checkNumberWithDigits(){var e=/^\d{1,3}(\.\d{0,2})?$/;events.on("input",".js-number-with-digits",function(t){var o=t.target.value,a=t.target.dataset.oldValue;return o?e.test(o)?t.target.dataset.oldValue=o:t.target.value=a:o})},creditFormMinRuleUpdate:function creditFormMinRuleUpdate(){if(ACC.data&&ACC.data.validation){var t="creditLimitDetailsForm",o="creditLimit",a=e.querySelector("form#".concat(t," input#").concat(o)).getAttribute("data-rule-min");a&&ACC.data.validation["".concat(t,".").concat(o)].constraints.forEach(function(e,r){"javax.validation.constraints.Min"===ACC.data.validation["".concat(t,".").concat(o)].constraints[r].type&&(ACC.data.validation["".concat(t,".").concat(o)].constraints[r].value=parseInt(a))})}},checkInputTypeNumber:function checkInputTypeNumber(){events.on("input",".js-input-type-number",function(e){var t=e.target.value.replace(/[^0-9]/g,"");e.target.value=null,e.target.value=t})},checkInputTypeNumberWithMaxLength:function checkInputTypeNumberWithMaxLength(){events.on("input",".js-input-type-number-max",function(e){var t=e.target,o=t.value.replace(/[^0-9]/g,"");t.value=null,t.value=o,t.maxLength>0&&t.value.length>t.maxLength&&(t.value=t.value.slice(0,t.maxLength))})},checkInputTypeDecimal:function checkInputTypeDecimal(){events.on("input",".js-input-type-decimal",function(e){e.target.value=e.target.value.replace(/[^.0-9]/g,"")})},checkInputTypeCurrency:function checkInputTypeCurrency(e){if(!(e=e.target||e))return!1;var t=/^[0-9][0-9]*(\.\d{1,2})?$/,o=e;if(o.value){return ACC.validation.checkRegex(o.value,t,"g")?(delete e.form.dataset.invalid,!0):(e.form.dataset.invalid=!0,ACC.validation.toggleError(o.id,null,ACC.validations.currencyPattern,!0,e.form),!1)}return!0},bindInputTypeCurrency:function bindInputTypeCurrency(){setTimeout(function(){events.on("input",".js-input-type-currency",ACC.form.checkInputTypeCurrency),events.on("focusout",".js-input-type-currency",ACC.form.checkInputTypeCurrency)},100)},resetForm:function resetForm(){events.on("click",".js-reset-form",function(e){var t=e.target.form,o=t.querySelectorAll("input.form-control");if(t.reset(),!o.length)return!1;o.forEach(function(e){ACC.validation.removeFieldStates(e.id,e.getAttribute("data-validation-for"))})})},selectReplacement:function selectReplacement(){forEach(e.querySelectorAll(".js-select-replacement"),function(t,o){var a=o,r=a.hasAttribute("data-static");if(!r){var _t11="<div class=\"select-replacement\"><div class=\"select-replacement__selection\">"+a.value+"</div><div class=\"select-replacement__options\">";a.querySelectorAll("option[value]").forEach(function(e){var o=["select-replacement__option"];e.disabled&&o.push("select-replacement__option--disabled"),e.dataset.present&&o.push("select-replacement__option--present"),e.dataset.createNew&&o.push("select-replacement__option--link"),e.dataset.alert&&o.push("select-replacement__option--alert");var a=e.dataset.alertMsg?"<span data-msg=\""+e.dataset.alertMsg+"\">"+e.text+"</span>":e.text;_t11+="<div class=\""+o.join(" ")+"\" data-val=\""+e.value+"\">"+a+"</div>"}),_t11+="</div></div>";var _o5=e.createElement("div");_o5.innerHTML=_t11.trim();var n=_o5.children[0];a.after(n)}if(r){var _e12=a.nextElementSibling,_t12=_e12.querySelector(".select-replacement__option--active"),_o6=_e12.closest(".select-replacement");_t12&&_t12.dataset.val&&(_o6.querySelector(".select-replacement__selection").innerText=_t12.querySelector("[data-option-text]").innerText)}a.classList.add("d-none")}),events.on("click",".select-replacement",function(e){var t=e.target,o=e.target.closest(".select-replacement"),a=o.previousElementSibling,r=a.hasAttribute("data-static");if(t.classList.contains("select-replacement__option")&&!t.disabled&&t.dataset.val){var _e13=t.dataset.val;o.querySelector(".select-replacement__selection").innerText=t.innerText,a.value=_e13,a.dispatchEvent(new Event("change"))}if(r){var _e14=t.closest(".select-replacement__option");if(_e14&&_e14.dataset.val){var _t13=_e14.dataset.val;o.querySelector(".select-replacement__selection").innerText=_e14.querySelector("[data-option-text]").innerText,a.value=_t13,a.dispatchEvent(new Event("change"))}}o.classList.toggle("select-replacement--active")}),events.on("click","body",function(t){!t.target.closest(".select-replacement")&&e.querySelector(".select-replacement")&&e.querySelector(".select-replacement").classList.remove("select-replacement--active")})},dynamicForms:function dynamicForms(){var e=ACC.dynamicFormValidation;void 0===e&&null===e||Object.assign(ACC.data.validation,e)},multipleFileUploadInit:function multipleFileUploadInit(){!function(){try{new DataTransfer}catch(e){return!1}ACC.form.multipleFileUpload()}()},multipleFileUpload:function multipleFileUpload(){function t(e,t){ACC.form.fileUploadCache[e].transferData=new DataTransfer,ACC.form.fileUploadCache[e].transferArray.forEach(function(t){ACC.form.fileUploadCache[e].transferData.items.add(t)}),t.files=ACC.form.fileUploadCache[e].transferData.files,t.files.length===Number(t.dataset.maxCount)?t.disabled=!0:t.disabled=!1}e.querySelectorAll(".js-upload-multiple").forEach(function(e){var t=e.getAttribute("id");
1ACC.form.fileUploadCache[t]={fileUploadTotalSize:0,fileUploadTotalCount:0,fileUploadIndex:0,transferArray:[],transferData:null,inputClicked:!1}}),events.on("click",".js-upload-multiple",function(e){var t=e.target.getAttribute("id");ACC.validation.removeFieldStates(t),ACC.form.fileUploadCache[t].inputClicked=!0}),events.on("change",".js-upload-multiple",function(e){e.stopPropagation();var o=e.target,a=o.getAttribute("id"),r=o.closest("form"),n=o.files,s=n.length,i=ACC.form.fileUploadCache[a].fileUploadTotalCount,c=o.dataset.fileTypes.replace(/[\[\]\s]/g,"").split(","),l=o.dataset.maxCount,d=o.dataset.maxSize,u=o.dataset.maxTotalSize,p=ACC.form.fileUploadCache[a].fileUploadTotalSize,m=!1,h=o.closest(".file-group").querySelector(".file-group__files-list"),f="",g=[];if(ACC.form.fileUploadCache[a].inputClicked){var _ACC$form$fileUploadC;if(ACC.validation.removeFieldStates(a),ACC.form.fileUploadCache[a].inputClicked=!1,s+i>l){var _e15=ACC.validations.fileUploadMaxCount.replace("{0}",l);return ACC.validation.toggleError(a,null,_e15,!0,r),t(a,o),!1}Array.from(n).forEach(function(e,t){var o=e.name.slice(0,e.name.lastIndexOf(".")),n=e.name.split(".").pop().toLowerCase(),s=parseFloat((e.size/1048576).toFixed(2));if(-1===c.indexOf(n)){m=!0;var _e16=ACC.validations.fileUploadType.replace("{0}",c.join(","));return ACC.validation.toggleError(a,null,_e16,!0,r),!1}if(s>d){m=!0;var _e17=ACC.validations.fileUploadSize.replace("{0}",d);return ACC.validation.toggleError(a,null,_e17,!0,r),!1}if(p+=s,p>u){m=!0;var _e18=ACC.validations.fileUploadTotalSize.replace("{0}",u);return ACC.validation.toggleError(a,null,_e18,!0,r),p-=s,!1}f+="<div class=\"file-group__file-item mb-1 d-flex justify-content-between\">\n <div class=\"file-group__file-info d-flex\">\n <span class=\"file-group__file-name\">".concat(o,"</span><span class=\"file-group__file-size\">.").concat(n," (").concat(s,"MB)</span>\n </div>\n <a href=\"#\" class=\"js-remove-file\" data-size=\"").concat(s,"\" data-index=\"").concat(ACC.form.fileUploadCache[a].fileUploadIndex,"\">Remove</a>\n </div>"),e.listIndex=ACC.form.fileUploadCache[a].fileUploadIndex,g.push(e),ACC.form.fileUploadCache[a].fileUploadTotalCount++,ACC.form.fileUploadCache[a].fileUploadIndex++}),m?(ACC.form.fileUploadCache[a].fileUploadTotalCount=i,t(a,o)):(h.insertAdjacentHTML("beforeend",f),(_ACC$form$fileUploadC=ACC.form.fileUploadCache[a].transferArray).push.apply(_ACC$form$fileUploadC,g),t(a,o),ACC.form.fileUploadCache[a].fileUploadTotalSize=p)}}),events.on("click",".js-remove-file",function(e){e.preventDefault();var o=e.target,a=o.dataset.index,r=o.closest(".file-group").querySelector(".js-upload-multiple"),n=r.getAttribute("id"),s=ACC.form.fileUploadCache[n].transferArray;ACC.form.fileUploadCache[n].inputClicked=!1,ACC.validation.removeFieldStates(n);for(var _e19=0;_e19<s.length;_e19++){s[_e19].listIndex===+a&&s.splice(_e19,1)}ACC.form.fileUploadCache[n].fileUploadTotalCount--,ACC.form.fileUploadCache[n].fileUploadTotalSize-=Number(o.dataset.size),t(n,r),o.parentElement.remove()})},formActionSwap:function formActionSwap(){events.on("click","button.js-form-action-swap",function(e){var t=e.target.form,o=e.target.getAttribute("formaction"),a=t.getAttribute("action");o&&a!==o&&t.setAttribute("action",o)})}}}(document),ACC.global=function(e){return{_autoload:["bindToggleFormSection",["bindToggleReveal",!!e.querySelector(".js-toggle-reveal")],["dismissableAlert",!!e.querySelector(".alert-dismissable")],["messageFade",!!e.querySelector(".js-message-fade")],["scrollToAlternativeProductsComponent",!!e.querySelector(".scroll-to-alternative-products")],["disableCopyPaste",!!e.querySelector(".js-disable-pasting")],["breadcrumbs",!!e.querySelector(".js-breadcrumbs")],["submitOnToggle",!!e.querySelector(".js-submit-on-toggle")],["stepsTracker",!!e.querySelector(".js-steps-tracker")],["miniBasket",!!e.querySelector(".js-mini-basket")],"trackTelNumbers",["trackCarousels",!!e.querySelector(".js-track-carousel")],"trackNavigation","trackAnchorLinks",["trackImageCard",!!e.querySelector("[data-promo-uid]")],"clearCookieTracking","simpleTracking","cookieComponentAcce
1ssibility",["videoModal",!!e.querySelector(".js-video-modal")],["trackWishList",!!e.querySelector(".js-wish-list")],["trackWishListPDP",!!e.querySelector(".js-wish-list-pdp")],["trackRegistrationEmailError",!!e.getElementById("registerForm")],["headerQuickBarAccountMenu",!!e.querySelector(".js-header-qb-account")],["stickyHeader",!!e.querySelector(".js-sticky-header")],"smarteditAddon",["viewMoreFacetToggle",!!e.querySelector(".js-facet-list")],["rememberFulfillmentOption",!!e.querySelector(".js-remember-fulfillment")],["truncateStatic",!!e.querySelector(".js-truncate-static")],["lineClamp",!!e.querySelector(".js-line-clamp")],["enableSubmitOnAccept",!!e.querySelector(".js-accept-to-submit")],["toggleOffsitePanel",!!e.querySelector(".js-toggle-panel")]],animations:{scrolling:"700"},videoModal:function videoModal(){function t(){e.getElementById("modal-video-player-content").innerHTML=null}events.on("click",".js-video-modal a",function(o){var a=o.target.closest("a").dataset.src;if(!a)return;o.preventDefault();var r="\n <div class=\"modal__video\">\n <iframe id=\"modal-video-player-frame\"\n class=\"modal__video-frame\"\n width=\"560\"\n height=\"315\"\n src=\"".concat(a,"\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture; fullscreen\">\n </iframe>\n </div>");e.getElementById("modal-video-player-content").innerHTML=r,MicroModal.show("modal-video-player",{disableFocus:!0,onClose:t})}),function(){var t=e.createElement("div");t.innerHTML="\n <div class=\"modal modal--video micromodal-slide\" id=\"modal-video-player\" aria-hidden=\"true\">\n <div class=\"modal__overlay\" tabindex=\"-1\" data-micromodal-close>\n <div class=\"modal__container\" role=\"dialog\" aria-modal=\"true\">\n <header class=\"modal__header\">\n <button class=\"modal__close\" aria-label=\"".concat(ACC.modalStrings.close,"\" data-micromodal-close>").concat(ACC.modalStrings.close,"</button>\n </header>\n <div class=\"modal__content\" id=\"modal-video-player-content\">\n <!-- Added via JS -->\n </div>\n </div>\n </div>\n </div>\n "),e.querySelector("body").appendChild(t)}()},trackTelNumbers:function trackTelNumbers(){events.on("click","a[href^='tel:']",function(e){var t=e.target.getAttribute("href");t&&(t=t.replace("tel:",""),ACC.adobe.track("click to call",{number:t}))})},simpleTracking:function simpleTracking(){events.on("click",".js-track",function(e){var t=e.target.dataset.trackCode;t&&ACC.adobe.track(t)})},trackNavigation:function trackNavigation(){if(!ACC.cookie)return!1;events.on("click","a",function(e){var t=e.target,o=t.closest("[data-tracking-block]")?t.closest("[data-tracking-block]").dataset.trackingBlock:null,a=(t.closest("[data-tracking-position]")?t.closest("[data-tracking-position]").dataset.trackingPosition:null)||(t.closest("[data-slotname]")?t.closest("[data-slotname]").dataset.slotname:null),r=t.closest(".carousel__slide"),n=(r?r.querySelector("picture img"):null)||t.querySelector("img"),s=n?n.getAttribute("title")||n.getAttribute("alt"):null,i=t.dataset.productId||t.getAttribute("aria-label")||t.innerText.trim(),c=s||i,l=n?{creative:n.getAttribute("src")}:null,d=Object.assign({page:window.location.pathname,contentBlock:o,position:a,name:c},l);ACC.cookie.set("trackingCookie",btoa(encodeURIComponent(JSON.stringify(d))),1)})},trackCarousels:function trackCarousels(){if(!ACC.cookie)return!1;events.on("click",".js-track-carousel a",function(e){e.stopPropagation();var t=e.target,o=t.closest(".item");if(!o)return!1;var a={page:window.location.pathname,contentBlock:t.dataset.slotname,position:o.dataset.productPosition,name:o.dataset.productId};ACC.cookie.set("trackingCookie",btoa(encodeURIComponent(JSON.stringify(a))),1)})},trackAnchorLinks:function trackAnchorLinks(e){events.on("click","."+e,function(e){var t=e.target,o=(t.closest("[data-tracking-position]")?t.closest("[data-tracking-position]").dataset.trackingPosition:null)||(t.closest("[data-slotname]")?t.closest("[data-slotname]").dataset.slotname:null),a=t.closest("[data-tracking-block]")?t.closest("[data-tracking-block]").dataset.trackingBlock:null,r={linkName:t.innerText,linkPosition:o,linkContentBlock:a,linkPage:window.location.pathname};ACC.adobe.track("anchor link click",r)}
1)},trackImageCard:function trackImageCard(){if(!ACC.ctaTrackingData)return!1;events.on("click","[data-promo-uid]",function(e){var t,o=e.target.closest("[data-promo-uid-parent]");null!=o&&(t=o.dataset.promoUidParent);var a=e.target.closest("[data-promo-uid]"),r=null!=t?t:a.dataset.promoUid,n=ACC.ctaTrackingData[r];n&&ACC.adobe.track("cta click",n)})},clearCookieTracking:function clearCookieTracking(){if(!ACC.cookie)return!1;ACC.cookie.erase("trackingCookie")},miniBasket:function miniBasket(){if(!("ontouchstart"in window))return!1;events.on("click",".js-mini-basket",function(t){if(window.innerWidth>=parseInt(screenMd)){t.preventDefault();var o=e.getElementById("mini-basket");"none"===window.getComputedStyle(o).display&&(window.location.href=t.target.getAttribute("href"))}})},stepsTracker:function stepsTracker(){events.on("click",".js-steps-tracker .steps__tracker",function(e){e.target.closest(".steps").classList.toggle("steps--active")})},submitOnToggle:function submitOnToggle(){events.on("click",".js-submit-on-toggle",function(e){e.target.form.submit()}),events.on("keydown",".toggle-alt__label",function(e){if("Enter"===e.key||13===e.keyCode){e.preventDefault();var _t14=e.target.querySelector("input[name='showVatPrices']");_t14.checked=!_t14.checked,e.target.form.submit()}})},breadcrumbs:function breadcrumbs(){var t=e.querySelector(".js-breadcrumbs");ACC.global.matchMedia("screen and (max-width:"+screenMdMax+")",function(){t&&(t.scrollLeft=t.scrollWidth)})},disableCopyPaste:function disableCopyPaste(){events.on("paste",".js-disable-pasting",function(e){e.preventDefault()})},messageFade:function messageFade(){var t=e.querySelector(".js-message-fade");if(!t)return!1;var o={timer:t.dataset.timeLapse>3600&&t.dataset.timeLapse||3600,items:t.querySelectorAll(".fade-item")},a=t.innerHTML,r=0,n=0;ACC.global.matchMedia("screen and (min-width:"+screenLgMin+")",function(){t.innerHTML=a,o.items=t.querySelectorAll(".fade-item")}),setInterval(function(){e.hasFocus()&&function(){if(r=0,forEach(o.items,function(e,t){"none"===window.getComputedStyle(t).display&&r++}),r){n=o.items.length-r;var _e20=Array.from(t.querySelectorAll(".fade-item"));if(_e20.length){var _t15=_e20.slice(0,n);forEach(_t15,function(e){_t15[e].parentElement.appendChild(_t15[e])})}}}()},o.timer)},viewMoreFacetToggle:function viewMoreFacetToggle(){var t={facetGroups:e.querySelectorAll(".js-facet-list"),maxShown:5,showMore:"See all...",showLess:"See less...",children:".checkbox"};events.on("click",".js-facet-list [data-toggle-facet]",function(e){var o=e.target,a=Array.prototype.slice.call(o.parentNode.querySelectorAll(t.children));if(o.innerText===t.showMore)o.innerText=t.showLess,a.forEach(function(e){return e.style.display="block"});else{o.innerText=t.showMore,a.slice(t.maxShown).forEach(function(e){return e.style.display="none"})}});var o=e.createElement("div");o.setAttribute("data-toggle-facet",""),o.innerText=t.showMore,forEach(t.facetGroups,function(e,a){var r=Array.prototype.slice.call(a.querySelectorAll(t.children));if(r.length>t.maxShown){r.slice(t.maxShown).forEach(function(e){return e.style.display="none"}),a.appendChild(o.cloneNode(!0))}})},offsetPosition:0,togglePanelDisplay:function togglePanelDisplay(t){var _this2=this;var o=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!0;var a=e.querySelector("body");if(o){this.offsetPosition=window.scrollY,t.classList.add("offsite-panel--active"),t.removeAttribute("inert"),a.classList.add("is-fixed"),a.style.top=-Math.abs(this.offsetPosition)+"px",t.dataset.panelName&&ACC.adobe.track("drawer displayed",{drawer
1Name:t.dataset.panelName});var _o7=function _o7(e){"Escape"!==e.key&&27!==e.keyCode||_this2.togglePanelDisplay(t,!1)};t._escListener=_o7,events.on("keydown",e,_o7)}else t.classList.remove("offsite-panel--active"),t.setAttribute("inert",""),a.classList.remove("is-fixed"),a.style.removeProperty("top"),window.scrollTo(0,this.offsetPosition),t.dataset.panelName&&ACC.adobe.track("drawer closed",{drawerName:t.dataset.panelName}),t._escListener&&(events.off("keydown",e,t._escListener),delete t._escListener)},trackPanelCTA:function trackPanelCTA(){events.on("click",".offsite-panel .btn",function(e){var t=e.target.closest(".btn"),o=t.dataset.interaction,a=t.closest(".offsite-panel").dataset.panelName;a&&ACC.adobe.track("drawer interaction",{drawerName:a,drawerInteraction:o})})},toggleFacets:function toggleFacets(){var t=e.querySelector(".offsite-panel[data-panel-id='facets']");t&&(ACC.global.togglePanelDisplay(t),ACC.refinements.stopFacetPopupToShow())},toggleOffsitePanel:function toggleOffsitePanel(){events.on("click",".js-toggle-panel",function(t){t.preventDefault();var o=t.target.closest(".js-toggle-panel"),a=o.dataset.panelId,r=e.querySelector(".offsite-panel[data-panel-id='"+a+"']");if(r&&ACC.global.togglePanelDisplay(r),r)return!0;var n=o.closest(".offsite-panel");return n?(ACC.global.togglePanelDisplay(n,!1),!0):void 0});var t=!1;events.on("mousedown",".offsite-panel--active",function(e){t=!!e.target.closest(".offsite-panel__content")}),events.on("click",".offsite-panel--active",function(e){e.target.dataset.panelId&&!t&&ACC.global.togglePanelDisplay(e.target,!1)}),ACC.global.trackPanelCTA(),window.addEventListener("resize",ACC.common.debounce(function(){var t=e.querySelector(".offsite-panel--active");t&&"fixed"!==getComputedStyle(t).position&&t.dataset.panelId&&ACC.global.togglePanelDisplay(t,!1)},200))},scrollToAlternativeProductsComponent:function scrollToAlternativeProductsComponent(){events.on("click",".scroll-to-alternative-products",function(t){var o=e.querySelector("[data-slotname=AlternativeProducts]");if(!o)return!1;t.preventDefault();var a=t.target.closest(".modal");if(a){var r=a.getAttribute("id");MicroModal.close(r)}var n=o.offsetTop;return window.scrollTo(0,n),!0})},bindToggleFormSection:function bindToggleFormSection(){events.on("click",".js-toggle-section",function(e){var t=e.target;if(!t.classList.contains("js-no-toggle")&&t.type&&("radio"===t.type||"checkbox"===t.type)){var o=t.id;forEach(t.closest(".js-toggle-section").querySelectorAll("input:not(.js-no-toggle)"),function(e,o){if(o.id){var _e21=t.closest("form").querySelector("[data-toggle='"+o.id+"']");_e21&&(_e21.style.display="none")}});var a=t.closest("form").querySelectorAll("[data-toggle~='"+o+"']");if("radio"===e.target.type&&a)return forEach(a,function(e,t){t.style.display="block"}),!0;var r=t.checked;if("invert"===t.dataset.checkboxToggle&&(r=!r),"checkbox"===e.target.type&&r&&a)return forEach(a,function(e,t){t.style.display="block"}),!0}});var t=e.querySelectorAll(".js-toggle-section input:not(.js-no-toggle)");t&&forEach(t,function(e,t){var o=t.closest("form").querySelectorAll("[data-toggle~='"+t.id+"']:not([data-open='true'])");if("radio"===t.type&&!t.checked&&o)return forEach(o,function(e,t){t.style.display="none"}),!0;if("checkbox"===t.type&&o){var a=!t.checked;if("invert"===t.closest(".js-toggle-section").dataset.checkboxToggle&&(
1a=!a),!a)return forEach(o,function(e,t){t.style.display="none"}),!0}})},bindToggleReveal:function bindToggleReveal(){events.on("click",".js-toggle-reveal",function(t){var o=t.target.closest(".js-toggle-reveal").id,a=e.querySelector("[data-toggle="+o+"]");a&&(t.target.classList.toggle("hide"),a.classList.toggle("hide"))})},toggleClassState:function toggleClassState(e,t){return e.classList.contains(t)?e.classList.remove(t):e.classList.add(t),e.classList.contains(t)},addGoogleMapsApi:function addGoogleMapsApi(t){function o(e){return e.split(".").reduce(function(e,t){return e&&e[t]},window)}var a=e.querySelector(".js-googleMapsApi");return new Promise(function(r,n){if(a){var _e22=o(t);_e22&&"function"==typeof _e22.then?_e22.then(function(){return r("Google Maps API already loaded and initialized")}).catch(n):(_e22(),r("Google Maps API already loaded"))}else{var _a5="googleMapsCallback_"+Date.now();window[_a5]=function(){delete window[_a5];var e=o(t);e&&"function"==typeof e.then?e.then(function(){return r("Google Maps API loaded and initialized")}
1).catch(n):(e(),r("Google Maps API loaded"))};var s=e.createElement("script");s.src="//maps.googleapis.com/maps/api/js?key=".concat(ACC.config.googleApiKey,"&loading=async&callback=").concat(_a5,"&libraries=marker"),s.async=!0,s.defer=!0,s.className="js-googleMapsApi",s.onerror=function(){delete window[_a5],n("Google Maps API failed to load")},e.head.appendChild(s)}})},cookieComponentAccessibility:function cookieComponentAccessibility(){winLoad(function(){var t=e.getElementById("ccc-icon"),o=e.getElementById("ccc-close");t&&t.setAttribute("aria-label","Cookie Control"),o&&o.setAttribute("aria-label","Close")})},trackWishList:function trackWishList(){function t(e,t,o){var a=[];e.forEach(function(e){return a.push(function(e){return{category:e.dataset.category,method:t,price:e.dataset.price,priceExVAT:e.dataset.priceExVat,productID:e.dataset.id,productName:e.dataset.name,quantity:e.dataset.quantity,transactionType:e.dataset.type,unitOfSale:e.dataset.unit,incrementalQuantity:e.dataset.increment,minimumOrderQuantity:e.dataset.minimumQuantity,priceTotal:Number((e.dataset.price*e.dataset.quantity).toFixed(2)),priceExVATtotal:Number((e.dataset.priceExVat*e.dataset.quantity).toFixed(2))}}(e))}),ACC.adobe.track(o,{product:a})}events.on("submit",".js-wish-list form",function(e){var o=e.target,a=[{type:"update",method:"Project list quantity field"},{type:"remove",method:"Project list quantity field",code:"project list remove"},{type:"addToTrolley",method:"Project list - add single product",code:"trolley add"}].find(function(e){return-1!==o.id.indexOf(e.type)});if(!a)return!1;var r=[o.closest(".js-wish-list-product")];if("update"===a.type){var _e23=parseInt(o.querySelector("input[name='quantity']").value),_t16=parseInt(r[0].dataset.quantity);a.code=_e23>_t16?"project list add":"project list remove",r[0].dataset.quantity=Math.abs(_e23-_t16)}t(r,a.method,a.code)}),events.on("click",".js-wishlist-add-all",function(o){t(e.querySelector(".js-wish-list").querySelectorAll(".js-wish-list-product"),"Project list - add all products","trolley add")})},trackRegistrationEmailError:function trackRegistrationEmailError(){var t=e.querySelector("#registerForm"),o=t.querySelector("#register\\.email").closest(".form-group");if(o.classList.contains("form-group--error")){var a=o.querySelector(".form-group__message").innerText.trim(),r=t.id;ACC.adobe.track("validation error",{errorMessage:a,form:r})}},headerQuickBarAccountMenu:function headerQuickBarAccountMenu(){var t=e.querySelector("#account-dropdown-menu"),o="account-dropdown-menu--active";events.on("click",".js-header-qb-account .header__quick-bar-link, .js-header-qb-account .header-alt__quick-bar-link",function(e){window.innerWidth<parseInt(screenLg)&&(e.preventDefault(),t.classList.toggle(o))}),events.on("click","body",function(e){!(e.target.closest("#account-dropdown-menu")||e.target.closest(".js-header-qb-account"))&&t.classList.contains(o)&&(e.preventDefault(),t.classList.remove(o))}),window.addEventListener("resize",ACC.common.debounce(function(){t.classList.remove(o)},200)),events.on("scroll",window,ACC.common.debounce(function(){var e=t.getBoundingClientRect();e&&e.bottom<0&&t.classList.remove(o)},200))},stickyHeader:function stickyHeader(){var t=e.querySelector(".js-sticky-header");if(!t)return!1;var o=window.scrollY;var a=ACC.config.stickyHeader&&ACC.config.stickyHeader.threshold||180;window.addEventListener("scroll",ACC.common.throttle(function(){var r=window.scrollY;if(ACC.navigation.state.open||ACC.navigationAlt.state.open)return void(o=r);if(e.querySelector(".modal.is-open"))return r<t.offsetHeight?t.classList.remove("header--hide"):t.classList.add("header--hide"),void(o=r);var n=r-o,s=Math.abs(n)>40;n>0&&r>a&&s&&t.classList.add("header--hide"),(n<0&&s||0===r)&&t.classList.remove("header--hide"),o=r},150),{passive:!0})},smarteditAddon:function smarteditAddon(){var t,o;window.frameElement&&((o=(t=e).createElement("style")).innerHTML="body[class*=\"smartedit-page\"] .js-header {position: static !important; transform: none !important;}",t.head.appendChild(o),function(){var t=e.getElementById("main");if(!t)return!1;function o(e){if(!e.target)return!1;
1e.target.querySelector(".js-product-carousel")&&ACC.carousel.productcarousel(),e.target.querySelector(".js-slick-slider")&&ACC.carousel.slickslider()}new MutationObserver(function(e,t){var _iterator2=_createForOfIteratorHelper(e),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _t17=_step2.value;"childList"===_t17.type&&o(_t17)}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}}).observe(t,{attributes:!1,childList:!0,subtree:!0})}())},manageSessionState:(t=window.sessionStorage,{setState:function setState(e,o){if(!t)return!1;t.setItem(e,o)},removeState:function removeState(e){if(!t)return!1;t.removeItem(e)},getState:function getState(e){return!!t&&t.getItem(e)}}),matchMedia:function matchMedia(e,t){if(!e||!t)return;var o=window.matchMedia(e);try{o.addEventListener("change",function(e){e.matches&&t()})}catch(e){try{o.addListener(function(e){e.matches&&t()})}catch(e){console.error(e)}}o.matches&&t()},loadScript:function loadScript(t,o){var a=e.createElement("script");a.src=t,e.body.appendChild(a),o&&(a.onload=function(){o()})},rememberFulfillmentOption:function rememberFulfillmentOption(){events.on("click",".js-remember-fulfillment",function(e){var t,o=e.target;o.classList.contains("js-select-collection")?t="collection":o.classList.contains("js-select-delivery")&&(t="delivery"),ACC.global.setFulfillmentOption(t)})},setFulfillmentOption:function setFulfillmentOption(e){if(!e)return!1;localStorage.setItem("fulfillment",e)},fadeOutEffect:function fadeOutEffect(e,t){var o=setInterval(function(){e.style.opacity||(e.style.opacity=1),e.style.opacity>0?e.style.opacity-=.1:(e.style.display="none",clearInterval(o))},t)},scrollToAccordionPDP:function scrollToAccordionPDP(t,o){events.on("click","."+t,function(t){t.preventDefault();var a=e.querySelector("."+o);a.classList.contains("accordion-toggle__content--opened")||a.querySelector(".js-accordion-toggle").click();var r=a.getBoundingClientRect().top+window.scrollY;window.scroll(0,r)})},truncateStatic:function truncateStatic(){events.on("click",".js-truncate-static__remove .btn",function(e){e.preventDefault(),e.target.closest(".js-truncate-static").querySelector(".truncate-static__content").classList.remove("truncate-static__content--clamped"),e.target.closest(".js-truncate-static__remove").remove()})},lineClamp:function lineClamp(){e.querySelectorAll(".js-line-clamp").forEach(function(e){var t=e.querySelector(".content");t.classList.add("line-clamp"),t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth?t.classList.add("line-clamp--toggle"):t.classList.remove("line-clamp")}),events.on("click",".line-clamp--toggle",function(e){e.target.classList.toggle("line-clamp--open")})},enableSubmitOnAccept:function enableSubmitOnAccept(){var t=e.querySelectorAll(".js-accept-to-submit");if(events.on("change",".js-accept-to-submit",function(o){var a=o.target.form.querySelector(".js-form-submit");if(o.target.checked){e.querySelectorAll(".js-accept-to-submit:checked").length===t.length&&(a.disabled=!1)}else a.disabled=!0}),t){var o=e.querySelectorAll(".js-accept-to-submit:checked");o.forEach(function(e){e.closest(".js-truncate-static").querySelector(".js-truncate-static__remove .btn").click()}),o.length===t.length&&(t[0].closest("form").querySelector(".js-form-submit").disabled=!1)}},formatCalendarDate:function formatCalendarDate(t,o){var a=e.getElementById(t).value.split("/");a=new Date(a[2],a[1]-1,a[0]);var r=e.getElementById(o).value.split("/");r=new Date(r[2],r[1]-1,r[0]);var n={weekday:"short",day:"numeric",month:"short"};if(isNaN(a))e.getElementById("uiStartingDate").innerText=null;else{var _t18=a.toLocaleDateString("en-GB",n);e.getElementById("uiStartingDate").innerText=_t18}if(isNaN(r))e.getElementById("uiEndingDate").innerText=null;else{var _t19=r.toLocaleDateString("en-GB",n);e.getElementById("uiEndingDate").innerText=_t19}return{startDate:a,endDate:r}},triggerModal:function triggerModal(t){if(e.getElementById(t))return MicroModal.show(t,{disableFocus:!0}),!0;fetch("/render-modal?modalId="+t).then(function(e){if(e.ok)return e.json()}).then(function(o){if(o&&o.modalHtml){var a=e.getElementById("js-modals-container");if(!a)throw new Error("Modal container does not exist");a.innerHTML=o.modalHtml,MicroModal.show(t,{disableFocus:!0})}}).catch(function(e){console.error("Unable to render modal for id "+t,e)})}};var t}(document),ACC.imageGallery=function(e){return{_autoload:[["bindPDPGallery",!!e.querySelector("#gallery-product-main")],["bindStoreGallery",!!e.querySelector("#gallery-store-main")],["loadZoom",!!e.querySelector(".zoom")],["gliderNav",!!e.querySelector(".js-glider-nav")]],gliderNav:function gliderNav(){var t=e.querySelectorAll(".js-glider-thumb");events.on("click",".js-glider-thumb",function(o){t.forEach(function(e){e.classList.remove("active")});
1var a=o.target.closest(".js-glider-thumb");a.classList.add("active");var r=a.closest(".glider")._glider.opt.navFor,n=parseInt(a.dataset.gslide),s=e.querySelector(r)._glider;s.scrollItem(n),s.refresh()}),events.on("glider-slide-visible",".js-glider-nav-main",function(t){var o=t.detail.slide,a=t.target._glider.opt.navTo,r=e.querySelector(a);r.querySelector(".js-glider-thumb.active")&&r.querySelector(".js-glider-thumb.active").classList.remove("active"),r.querySelector(".js-glider-thumb[data-gslide='"+o+"']").classList.add("active")})},bindPDPGallery:function bindPDPGallery(){window.iframeList=[],window.iframeObjects=[],events.on("glider-loaded","#gallery-product-main",ACC.imageGallery.bindVideo),events.on("glider-slide-visible","#gallery-product-main",ACC.imageGallery.bindVideoAction),events.on("glider-slide-hidden","#gallery-product-main",ACC.imageGallery.bindVideoAction),events.on("glider-loaded","#gallery-product-thumb",function(e){var t=e.target.querySelector(".js-glider-thumb");t&&t.classList.add("active")}),new Glider(e.querySelector("#gallery-product-main"),{slidesToShow:1,slidesToScroll:1,arrows:{prev:".glider-prev",next:".glider-next"},dots:!1,navTo:"#gallery-product-thumb",draggable:!1,responsive:[{breakpoint:0,settings:{dots:".dots"}},{breakpoint:1024,settings:{dots:!1}}]}),new Glider(e.querySelector("#gallery-product-thumb"),{slidesToShow:"auto",slidesToScroll:"auto",draggable:!0,navFor:"#gallery-product-main"})},loadZoom:function loadZoom(){ACC.global.loadScript("/_ui/responsive/common/js/vendor/zoom.min.js")},bindVideo:function bindVideo(t){if(e.querySelector("#gallery-product-main").querySelectorAll(".glider-slide.video")){e.querySelector("#gallery-product-main").querySelectorAll(".glider-slide").forEach(function(e,t){var o;(o=e.querySelectorAll("iframe")[0])&&(o.src=0===t?o.src+"?enablejsapi=1&autoplay=1&showinfo=0&iv_load_policy=3&wmode=transparent&hd=1&rel=0&modestbranding=1&origin="+location.origin:o.src+"?enablejsapi=1&showinfo=0&iv_load_policy=3&wmode=transparent&hd=1&rel=0&modestbranding=1&origin="+location.origin,o.id="video"+t,iframeList.push(o.id))});var o=e.createElement("script");o.src="//www.youtube.com/iframe_api";var a=e.getElementsByTagName("script")[0];a.parentNode.insertBefore(o,a),window.onYouTubeIframeAPIReady=function(){iframeList.length&&iframeList.forEach(function(e){window.player=new window.YT.Player(e,{events:{onReady:ACC.imageGallery.onPlayerReady}})})}}},onPlayerReady:function onPlayerReady(e){var t=e.target;e.target.mute(),iframeObjects.push(t)},bindVideoAction:function bindVideoAction(e){var t,o,a,r;t=e.type,o=e.target.querySelector(".glider-slide.active.video"),o&&(a=o.querySelector("iframe"),r=a.id,r&&iframeObjects.forEach(function(e,o){e.h.id===r&&("glider-slide-hidden"===t&&e.stopVideo(),"glider-slide-visible"===t&&e.playVideo())}))},bindStoreGallery:function bindStoreGallery(){new Glider(e.querySelector("#gallery-store-main"),{slidesToShow:1,slidesToScroll:1,draggable:!1,arrows:{prev:".glider-prev",next:".glider-next"},dots:!1,navTo:"#gallery-store-track",responsive:[{breakpoint:0,settings:{dots:".dots"}},{breakpoint:1024,settings:{dots:!1}}]}),new Glider(e.querySelector("#gallery-store-track"),{slidesToShow:4,slidesToScroll:1,draggable:!1,arrows:{prev:".js-glider-prev",next:".js-glider-next"},dots:!1,navFor:"#gallery-store-main"})}}}(document);var LocationDrawer=function LocationDrawer(e,t){var _this3=this;var o={CHUNK_SIZE:3,branchChunks:[],currentChunkIndex:0,labels:ACC.labels.locationPicker||{},ERROR_MESSAGE:"An unknown error occurred.",selectors:{BRANCH_FORM:".js-branch-form",BRANCH_LIST:".js-branch-list",BRANCH_CARD:".js-branch-card",LOAD_MORE:".js-load-more-branches",BRANCH_SELECT:".js-branch-select",COOKIES:".js-drawer-cookies",TOGGLE_BRANCH_FORM:".js-toggle-branch-form"}};this.container=e,this.settings=deepMerge(Object.assign({},o),t),this.drawerType=this.container.dataset.drawerType,this.isLocationDrawer="location"===this.drawerType,this.isBranchDrawer="branch"===this.drawerType,this.form=this.container.querySelector("form"),this.inputID="locationQuery-".concat(this.drawerType),this.input=this.container.querySelector("#".concat(this.inputID)),this.submitCTA=this.container.querySelector(".js-".concat(this.drawerType,"-cta")),this.branchCard=this.container.querySelector(this.settings.selectors.BRANCH_CARD),this.branchForm=this.container.querySelector(this.settings.selectors.BRANCH_FORM),this.branchList=this.container.querySelector(this.settings.selectors.BRANCH_LIST),this.cookies=this.container.querySelector(this.settings.selectors.COOKIES),this.selectedBranch=this.branchCard?this.branchCard.dataset.selectedBranch:null,this.toggleBranch=this.container.querySelector(this.settings.selectors.TOGGLE_BRANCH_FORM),events.on("click",this.submitCTA,function(e){e.preventDefault(),ACC.validation.isFormValid(_this3.form)?_this3.isBranchDrawer?(_this3.resetBranchResults(),_this3.submitBranchForm(_this3.input.value)):_this3.submitLocationForm(_this3.form).then(function(e){return _this3.checkForErrors(e)}).then(function(){return _this3.refreshPage()}).catch(function(e){return _this3.displayHybrisErrorMessage(e)}):ACC.validation.validateField(_this3.input)}),this.isBranchDrawer&&(events.on("click",this.settings.selectors.LOAD_MORE,function(e){e.preventDefault(),_this3.loadMoreBranches()}),events.on("click",this.settings.selectors.BRANCH_SELECT,function(e){e.preventDefault();var t=e.target.dataset.branchName,o=e.target.dataset.branchLocation;_this3.selectBranch(t,o).then(function(e){return e.ok&&_this3.refreshPage()}).catch(function(e){return console.warn(e)})}),events.on("click",".js-geolocate-branch",function(e){e.preventDefault(),_this3.resetBranchResults(),ACC.global.addGoogleMapsApi("ACC.storeLocator.myMap").then(ACC.storeLocator.geolocateHelper).then(function(e){_this3.submitBranchForm(e)})}),events.on("click",this.toggleBranch,function(e){e.preventDefault(),e.target.parentElement.style.display="none",_this3.branchForm.classList.toggle("d-none"),_this3.branchCard.classList.toggle("d-none"),_this3.cookies.classList.toggle("d-none"),_this3.input.value=_this3.selectedBranch,_this3.submitBranchForm(_this3.selectedBranch)}))};LocationDrawer.prototype.submitLocationForm=function(e){var t=new FormData(e);return fetch(e.action,{method:"POST",body:t})},LocationDrawer.prototype.checkForErrors=function(e){var _this4=this;return e.ok?Promise.resolve():e.json().then(function(e){var t=e.postcode&&e.postcode.length>0?e.postcode.join(", "):_this4.settings.ERROR_MESSAGE;return Promise.reject(new Error(t))})},LocationDrawer.prototype.refreshPage=function(){return window.location.reload(!0)},LocationDrawer.prototype.displayHybrisErrorMessage=function(e){var t=e.message||this.settings.ERROR_MESSAGE;ACC.validation.toggleError(this.inputID,"postcode",t,!0,this.form)},LocationDrawer.prototype.resetBranchResults=function(){this.settings.branchChunks=[],this.settings.currentChunkIndex=0,this.branchList.innerHTML=""},LocationDrawer.prototype.submitBranchForm=function(e){var _this5=this;this.submitCTA.classList.add("loading"),this.fetchBranchList(this.form.action,{q:e}).then(function(_ref){var t=_ref.data;_this5.branchList.innerHTML+="<h3>".concat(_this5.settings.labels.branchesNear," <b>").concat(e,"</b></h3>"),t.length?(_this5.settings.branchChunks=chunkArray(t,_this5.settings.CHUNK_SIZE),_this5.loadM
1oreBranches()):_this5.branchList.innerHTML+="<p>".concat(_this5.settings.labels.noBranchResults,"</p>")}).catch(function(e){console.warn("Error fetching branches:",e)}).finally(function(){_this5.submitCTA.classList.remove("loading")})},LocationDrawer.prototype.fetchBranchList=function(e,t){var o=Object.assign(t,{page:0}),a=new URLSearchParams(o).toString();return fetch("".concat(e,"?").concat(a)).then(function(e){if(e.ok)return e.json();throw e}).catch(function(e){throw console.error("Error fetching branch list:",e),e})},LocationDrawer.prototype.renderBranches=function(e){var _this6=this;e.forEach(function(e){var t=document.createElement("div");t.className="offsite-panel__card",t.innerHTML="\n <div class=\"offsite-panel__card-details\">\n <a href=\"".concat(e.url,"\">\n <h3>").concat(e.displayName,"</h3>\n </a>\n\n <div class=\"d-flex align-items-center strong\">\n <span class=\"glyph glyph--location-marker mr-1\"></span>\n <span>").concat(e.formattedDistance,"</span>\n </div>\n\n <p itemprop=\"address\" itemscope itemtype=\"http://schema.org/PostalAddress\" class=\"mt-1\">\n <span itemprop=\"streetAddress\">\n ").concat(e.line1,"\n ").concat(e.line2?e.line2+",":"","\n </span>\n <span itemprop=\"addressLocality\">").concat(e.town,",</span>\n <span itemprop=\"postalCode\">").concat(e.postalCode,"</span>\n </p>\n\n <a class=\"small\" href=\"").concat(e.url,"\">").concat(_this6.settings.labels.moreDetails,"</a>\n </div>\n\n <button class=\"btn btn-secondary js-branch-select\"\n data-branch-name=\"").concat(e.name,"\"\n data-branch-location=\"").concat(e.postalCode,"\"\n ").concat(_this6.selectedBranch===e.postalCode?"disabled":"","\n >\n ").concat(_this6.settings.labels.selectBranch,"\n </button>\n "),_this6.branchList.appendChild(t)})},LocationDrawer.prototype.loadMoreBranches=function(){this.settings.currentChunkIndex<this.settings.branchChunks.length&&(this.renderBranches(this.settings.branchChunks[this.settings.currentChunkIndex]),this.showLoadMoreButton(),this.settings.currentChunkIndex++,this.settings.currentChunkIndex>=this.settings.branchChunks.length&&this.disableLoadMoreButton())},LocationDrawer.prototype.showLoadMoreButton=function(){var e=this.branchList.querySelector(this.settings.selectors.LOAD_MORE);e&&e.parentElement.remove();var t=document.createElement("div");t.className="text-center py-2",t.innerHTML="\n <button type=\"button\" class=\"btn btn-tertiary js-load-more-branches\">".concat(this.settings.labels.loadMore,"</button>\n "),this.branchList.appendChild(t)},LocationDrawer.prototype.disableLoadMoreButton=function(){var e=this.branchList.querySelector(this.settings.selectors.LOAD_MORE);e&&(e.disabled=!0)},LocationDrawer.prototype.selectBranch=function(e,t){var o=new FormData;return o.append("storeName",e),o.append("location",t),o.append("CSRFToken",ACC.config.CSRFToken),fetch("/fulfillment/options/collection",{method:"POST",body:o})},ACC.locationDrawer=function(e){var t=e.querySelectorAll(".js-ld-wrapper");return{_autoload:[["init",t.length],"loadAdobeBranchDrawerBanner"],init:function init(){t.forEach(function(e){return new LocationDrawer(e)})},loadAdobeBranchDrawerBanner:function loadAdobeBranchDrawerBanner(){function t(){e.querySelector("[data-mbox='branch-drawer-banner']")&&adobe.target.getOffer({mbox:"branch-drawer-banner",params:ACC.config.selectedBranch||{},success:function success(e){e&&e.length>0&&adobe.target.applyOffer({mbox:"branch-drawer-banner",selector:"[data-mbox='branch-drawer-banner']",offer:e})},error:function(_error){function error(){return _error.apply(this,arguments)}error.toString=function(){return _error.toString()};return error}(function(){console.error("Adobe Target request failed:",error)}),timeout:3e3})}"undefined"!=typeof adobe&&adobe.target&&ACC.config&&ACC.config.selectedBranch&&("loading"===e.readyState?e.addEventListener("DOMContentLoaded",t):t())}}}(document),ACC.miniCart=function(e){return{templateEntries:function templateEntries(e){if(null===e.entryNumber||!e.totalPrice)return"";var t,o=ACC.config.VAT?{price:e.totalPrice.formattedGrossValue,vat:"INC VAT"}:{price:e.totalPrice.formattedValue,vat:"EX VAT"},a=e.product.images.find(function(e){return"zoom"===e.format}),r=Object.keys(e.tallyLengths).length,n=[],s=0;if(r){for(var _t20 in e.tallyLengths){n.push(e.tallyLengths[_t20]+" X "+_t20+"m")}t=n.join(", "),s=e.exactQuantity}return e.hireStartDate&&(e.hireStartDate=new Date(e.hireStartDate).toLocaleDateString()),"\n <div class=\"mini-basket__entry js-mini-basket-entry\" data-id=\"".concat(e.product.code,"\">\n <div class=\"block block--mini-basket\">\n <div class=\"block__cell block__cell-image\">\n ").concat(a?"\n <a href=\"".concat(e.product.url,"\"> \n <img src=\"").concat(a.url,"\" alt=\"").concat(a.altText,"\" title=\"").concat(a.titleText,"\" class=\"block__image\" />\n </a>"):"","\n </div>\n <div class=\"block__cell block__cell-details\">\n <div class=\"block__details\">\n <div class=\"block__info\"><a href=\"").concat(e.product.url,"\" class=\"block__name\">").concat(e.product.name,"</a></div>\n ").concat(r>0?"\n <div class=\"block__qty-hire-info\">
1\n <span class=\"strong\">".concat(r>1?"Quantities":"Quantity",": </span>").concat(t,"\n </div>\n <div class=\"block__qty-hire-info\">\n <span class=\"strong\">Total metres: </span>").concat(s,"\n </div>"):"<div class=\"block__qty-hire-info\"><span class=\"strong\">Quantity: </span>".concat(e.quantity,"</div>"),"\n ").concat(e.product.hire?"\n <div class=\"block__qty-hire-info\">\n <span class=\"strong\">No. of days required: </span>".concat(e.hireDuration,"\n </div>\n <div class=\"block__qty-hire-info\">\n <span class=\"strong\">Required from: </span>").concat(e.hireStartDate,"\n </div>"):"","\n ").concat(e.totalPrice.value<=0?"\n <div class=\"block__price\">\n <strong class=\"block__price-highlight-x-large text-blue\">FREE</strong>\n </div>":"\n <div class=\"block__price\">\n <span class=\"strong\">Total: </span>".concat(o.price," <span class=\"mini-basket__price-vat\">(").concat(o.vat,")<span>\n </div>\n <button class=\"btn-link block__link js-remove-mini-basket-entry\">Remove</button>\n "),"\n </div>\n </div>\n </div>\n </div>\n ")},templateQuickBar:function templateQuickBar(t,o){var a=e.querySelector(".js-mini-cart-totals").dataset.v;return a&&"2"===a?"\n <span class=\"d-xxl-none header-alt__quick-bar-count-small\">".concat(t,"</span>\n <span class=\"d-none d-xxl-block\">\n <span class=\"header-alt__quick-bar-count\">").concat(t,"</span> ").concat(t>1?"items":"item","<span></span>\n </span>\n "):"\n <span class=\"d-xxl-none header__quick-bar-count-small\">".concat(t,"</span>\n <span class=\"d-none d-xxl-block\">\n <span class=\"header__quick-bar-count\">").concat(t,"</span><span class=\"header__quick-bar-text\"> ").concat(t>1?"items":"item","</span>\n <br />\n ").concat(o,"\n </span>\n ")},updateQuantity:function updateQuantity(e){return e>0?", ".concat(e," ").concat(e>1?"items":"item"):""},updateSubTotal:function updateSubTotal(e,t){var o=ACC.config.VAT?"INC VAT":"EX VAT";return t>0?"".concat(e," <span class=\"mini-basket__price-vat\">(").concat(o,")</span>"):"".concat(e)},render:function render(t){var o=ACC.config.VAT?t.totalPriceWithTax:t.totalPrice,a=this.templateQuickBar(t.totalUnitCount,o.formattedValue);e.querySelector(".js-mini-cart-totals").innerHTML=a;var r=this.updateQuantity(t.totalUnitCount);e.querySelector(".js-mini-basket-item-count").innerHTML=r;var n=this.updateSubTotal(o.formattedValue,o.value);e.querySelector(".js-mini-basket-subtotal").innerHTML=n;var s,i=[];for(var _e24=0;_e24<t.entries.length;_e24++){i.push(this.templateEntries(t.entries[_e24]))}s=i.length>0?i.join(""):"<p id=\"empty-mini-basket\" class=\"mini-basket__empty-content py-2\">Items added to you trolley will appear here.</p>",e.querySelector(".js-mini-basket-content").innerHTML=s}}}(document),ACC.navigation=function(e){var t={mobileMenuToggle:e.querySelector(".js-header-menu"),menu:e.querySelector(".js-main-menu"),close:e.querySelector(".js-menu-close"),classes:{activeMenu:"menu--show",activeSubCat:"menu--active",activeMobileIcon:"header__menu--active",activeMenuTrayItem:"menu__tray-item--active",menuOverlay:"menu--overlay"},elements:{closeButton:".menu__close",wrapMenu:".menu__wrap",subMenu:".menu__sub",trayItem:".menu__tray-item"}};return{_autoload:[["bindDesktopMenu",!!t.menu],["bindMobileMenu",!!t.menu],["bindTracking",!!t.menu]],state:{open:!1},bindDesktopMenu:function bindDesktopMenu(){var e=t.menu.querySelectorAll(t.elements.trayItem);new SV.HoverIntent(e,{onEnter:function onEnter(e){t.menu.classList.add("active"),e.classList.add("active")},onExit:function onExit(e){t.menu.classList.remove("active"),e.classList.remove("active")}})},bindMobileMenu:function bindMobileMenu(){var o=t.mobileMenuToggle,a=t.menu,r=t.classes;function n(){window.innerWidth>parseInt(screenLg)&&s("close");var o=t.menu.querySelectorAll(t.elements.subMenu),a=t.menu.querySelector(t.elements.wrapMenu);if(o.length){forEach(o,function(e,t){t.style.removeProperty("height"),t.style.removeProperty("max-height")}),a.style.removeProperty("height"),a.style.removeProperty("max-height");var _t21=e.querySelector(".header").offsetHeight;window.innerWidth<parseInt(screenLg)?(forEach(o,function(e,o){o.style.setProperty("height","calc(100vh - ".concat(_t21,"px"))}),a.style.setProperty("height","calc(100vh - ".concat(_t21,"px"))):forEach(o,function(e,o){o.style.setProperty("max-height","calc(100vh - ".concat(_t21,"px"))})}}function s(e){"close"===e?(ACC.navigation.state.open=!1,a.classList.remove(r.activeMenu),o.classList.remove(r.activeMobileIcon)):(ACC.navigation.state.open=!0,a.classList.toggle(r.activeMenu),o.classList.toggle(r.activeMobileIcon))}function i(e,o){if("show"===o){var _o8=t.menu.querySelector(t.elements.wrapMenu);_o8.scrollTop>0&&(_o8.scrollTop=0),a.querySelector(t.elements.trayItem).classList.remove(r.activeMenuTrayItem),a.classList.add(r.activeSubCat),e.closest(t.elements.trayItem).classList.add(r.activeMenuTrayItem)}else a.classList.remove(r.activeSubCat),e.closest(t.elements.trayItem).classList.remove(r.activeMenuTrayItem)}events.on("click",o,function(e){e.preventDefault(),s(ACC.navigation.state.open?"close"
1:"open")}),events.on("click",".js-menu-parent",function(o){if(window.innerWidth<parseInt(screenLg)){var a=o.target.nextElementSibling;if(a.matches(t.elements.subMenu))o.preventDefault(),e.activeElement.blur(),a.querySelector(".js-menu-close")||a.appendChild(t.close.cloneNode(!0)),i(o.target,"show")}}),events.on("click",".js-menu-link-sub-title-link",function(e){window.innerWidth<parseInt(screenLg)&&e.preventDefault()}),events.on("click",".js-menu-back",function(e){e.preventDefault(),i(e.target)}),events.on("click",".js-menu-close",function(e){e.preventDefault(),s("close")}),winLoad(function(){n()}),window.addEventListener("resize",ACC.common.debounce(n,50)),t.menu.querySelector(t.elements.subMenu)&&t.menu.classList.add(t.classes.menuOverlay)},bindTracking:function bindTracking(){var e=[];function o(o){if(!o)return!1;var a=o.classList.contains("js-menu-parent")&&o.textContent;if(!a)return!1;if(-1===e.indexOf(a)){var r=o.closest(t.elements.trayItem).querySelector(".menu__sub-item--promo img");if(!r)return!1;var n={name:r.dataset.analyticsname||"Unknown name",position:a||"Unknown title",creative:r.dataset.creative||"Unknown creative name"};return e.push(a),ACC.adobe.track("nav promo impression",{name:n.name,position:"Mega menu (".concat(n.position,")"),creative:n.creative}),!0}return!1}events.on("mouseover",".js-menu-tray-item",function(e){window.innerWidth>parseInt(screenLg)&&o(e.target)}),events.on("click",".js-menu-tray-item",function(e){window.innerWidth<parseInt(screenLg)&&e.target.classList.contains("menu__tray-item--active")&&o(e.target)})}}}(document),ACC.navigationAlt=function(e){var t={header:e.querySelector(".js-header"),mobileMenuToggle:e.querySelector(".js-header-menu-alt"),menu:e.querySelector(".js-main-menu-alt"),close:e.querySelector(".js-menu-close-alt"),classes:{activeMenu:"menu-alt--show",activeSubCat:"menu-alt--active",activeMobileIcon:"header-alt__menu--active",activeMenuTrayItem:"menu-alt__tray-item--active",menuOverlay:"menu-alt--overlay"},elements:{closeButton:".menu-alt__close",wrapMenu:".menu-alt__wrap",subMenu:".menu-alt__sub",trayItem:".menu-alt__tray-item"}};return{_autoload:[["bindDesktopMenu",!!t.menu],["bindMobileMenu",!!t.menu],["bindTracking",!!t.menu]],state:{open:!1},bindDesktopMenu:function bindDesktopMenu(){var e=t.menu.querySelectorAll(t.elements.trayItem);new SV.HoverIntent(e,{onEnter:function onEnter(e){t.menu.classList.add("active"),e.classList.add("active")},onExit:function onExit(e){t.menu.classList.remove("active"),e.classList.remove("active")}})},bindMobileMenu:function bindMobileMenu(){var o=t.header,a=t.mobileMenuToggle,r=t.menu,n=t.classes;function s(e){"close"===e?(ACC.navigationAlt.state.open=!1,r.classList.remove(n.activeMenu),a.classList.remove(n.activeMobileIcon),a.setAttribute("aria-expanded","false"),o.classList.remove("header-alt--menu-visible")):(ACC.navigationAlt.state.open=!0,r.classList.toggle(n.activeMenu),a.classList.toggle(n.activeMobileIcon),a.setAttribute("aria-expanded","true"),o.classList.toggle("header-alt--menu-visible"))}function i(e,o){if("show"===o){var _o9=t.menu.querySelector(t.elements.wrapMenu);_o9.scrollTop>0&&(_o9.scrollTop=0),r.querySelector(t.elements.trayItem).classList.remove(n.activeMenuTrayItem),r.classList.add(n.activeSubCat),e.closest(t.elements.trayItem).classList.add(n.activeMenuTrayItem)}else r.classList.remove(n.activeSubCat),e.closest(t.elements.trayItem).classList.remove(n.activeMenuTrayItem)}events.on("click",a,function(e){e.preventDefault(),window.dispatchEvent(new Event("resize")),s(ACC.navigationAlt.state.open?"close":"open")}),events.on("click",".js-menu-parent",function(o){if(window.innerWidth<parseInt(screenLg)){var a=o.target.nextElementSibling;if(a.matches(t.elements.subMenu))o.preventDefault(),e.activeElement.blur(),a.querySelector(".js-menu-close-alt")||a.appendChild(t.close.cloneNode(!0)),i(o.target,"show")}}),events.on("click",".js-menu-link-sub-title-link",function(e){window.innerWidth<parseInt(screenLg)&&e.preventDefault()}),events.on("click",".js-menu-back",function(e){e.preventDefault(),i(e.target)}),events.on("click",".js-menu-close-alt",function(e){e.preventDefault(),s("close")}),window.addEventListener("resize",ACC.common.debounce(function(){window.innerWidth>parseInt(screenLg)&&s("close");var o=t.menu.querySelectorAll(t.elements.subMenu),a=t.menu.querySelector(t.elements.wrapMenu);if(o.length){forEach(o,function(e,t){t.style.removeProperty("height"),t.style.removeProperty("max-height")}),a.style.removeProperty("height"),a.style.removeProperty("max-height");var _t22=e.querySelector(".header-alt").offsetHeight;window.innerWidth<parseInt(screenLg)?(forEach(o,function(e,o){o.style.setProperty("height","calc(100vh - ".concat(_t22,"px"))}),a.style.setProperty("height","calc(100vh - ".concat(_t22,"px"))):forEach(o,function(e,o){o.style.setProperty("max-height","calc(100vh - ".concat(_t22,"px"))})}},50)),t.menu.querySelector(t.elements.subMenu)&&t.menu.classList.add(t.classes.menuOverlay)},bindTracking:function bindTracking(){var e=[];function o(o){if(!o)return!1;var a=o.classList.contains("js-menu-parent")&&o.textContent;if(!a)return!1;if(-1===e.indexOf(a)){var r=o.closest(t.elements.trayItem).querySelector(".menu-alt__sub-item--promo img");if(!r)return!1;var n={name:r.dataset.analyticsname||"Unknown name",position:a||"Unknown title",creative:r.dataset.creative||"Unknown creative name"};return e.push(a),ACC.adobe.track("nav promo impression",{name:n.name,position:"Mega menu (".concat(n.position,")"),creative:n.creative}),!0}return!1}events.on("mouseover",".js-menu-tray-item",function(e){window.innerWidth>parseInt(screenLg)&&o(e.target)}),events.on("click",".js-menu-tray-item",function(e){window.innerWidth<parseInt(screenLg)&&e.target.classList.contains("menu-alt__tray-item--active")&&o(e.target)})}}}(document),ACC.operativeCards=function(){var e={monthRange:ACC.operativeCardsMonthRange||3,currentDate:new Date},t={start:null,end:null};return{_autoload:[["resetForm",!!document.querySelector(".js-reset-oc-reports")],["submitReportsForm",!!document.querySelector(".js-operative-cards-download-reports-submit")]],calendarChange:function calendarChange(e,o,a){var r=a._positionElement.id;this.setDate(t.start,t.end,r),ACC.global.formatCalendarDate("oc_startDate","oc_endDate")},calendarReady:function calendarReady(e,o,a){var r=a._positionElement.id;"oc_startDate"===r&&(t.start=a),"oc_endDate"===r&&(t.end=a),ACC.global.formatCalendarDate("oc_startDate","oc_endDate")},setDate:function setDate(t,o,a){var r=t.selectedDates[0];if("oc_startDate"===a){var _t23=new Date(r);_t23.setMonth(_t23.getMonth()+e.monthRange);var _a6=_t23.getTime()>e.currentDate.getTime()?e.currentDate:_t23;o.set("minDate",r),o.set("maxDate",_a6),o.jumpToDate(r)}},resetForm:function resetForm(){events.on("click",".js-reset-oc-reports",function(o){o.preventDefault(),o.target.form.reset();var a=t.start.formatDate(e.currentDate,"d/m/Y");t.start.setDate(a,!0),t.end.setDate(a,!0)})},submitReportsForm:function submitReportsForm(){events.on("click",".js-operative-cards-download-reports-submit",function(e){e.preventDefault();var t=document.querySelector(".js-operative-cards-error");t.classList.add("d-none");
1var o=e.target.closest(".js-operative-cards-download-reports-form");if(ACC.validation.validateAllRequired(o),!ACC.validation.isFormValid(o))return!1;var a=o.action,r=new URLSearchParams(new FormData(o)).toString(),n=document.querySelector(".js-operative-cards-form-section");n.classList.add("d-none");var s=document.querySelector(".js-operative-cards-loading-section");s.classList.remove("d-none"),window.scroll(0,0),fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:r}).then(function(e){if(e.ok)return e.json()}).then(function(e){if(e.success)return e.processCode;throw{noResults:e.noResults,errorMessage:e.errorMessage}}).then(function(e){ACC.operativeCards.checkReportsPolling(e)}).catch(function(e){ACC.operativeCards.handleReportsError(e,t,n,s)})})},checkReportsPolling:function checkReportsPolling(e){setTimeout(function(){ACC.operativeCards.checkReportsStatus(e)},1e4)},checkReportsStatus:function checkReportsStatus(e){var t=document.querySelector(".js-operative-cards-form-section"),o=document.querySelector(".js-operative-cards-loading-section"),a=document.querySelector(".js-operative-cards-error");fetch("/my-account/operative-cards/download-reports/status?"+new URLSearchParams({processCode:e}),{method:"GET"}).then(function(e){if(e.ok)return e.json()}).then(function(t){if(!t.processing){if(t.success)return t.reportFile;throw{noResults:t.noResults,errorMessage:t.errorMessage}}ACC.operativeCards.checkReportsPolling(e)}).then(function(e){if(e){var _a7=e.documentName,r=document.querySelector(".js-op-cards-download-reports-download");r.setAttribute("download",_a7),r.setAttribute("href",e.mediaLink),t.innerHTML="",o.innerHTML="",o.classList.add("d-none"),document.querySelector(".js-operative-cards-download-section").classList.remove("d-none")}}).catch(function(e){ACC.operativeCards.handleReportsError(e,a,t,o)})},handleReportsError:function handleReportsError(e,t,o,a){a.classList.add("d-none"),o.classList.remove("d-none"),e.errorMessage&&(e.noResults?(t.classList.remove("alert--error"),t.classList.add("alert--info")):(t.classList.remove("alert--info"),t.classList.add("alert--error")),t.querySelector(".js-operative-cards-error-content").innerHTML=e.errorMessage,t.classList.remove("d-none"))}}}(),ACC.paginationSort=(document,{_autoload:["bindSortForm"],bindSortForm:function bindSortForm(){events.on("change","#sortForm1 select, #sortForm2 select",function(e){var t=e.target,o=t.querySelector("option:checked").innerText.trim();o&&ACC.adobe.track("refinement",{sortOrder:o,updateType:"sort order change"}),t.closest("form").submit()})}}),ACC.postcodeLookup=function(e){var t={url:{find:"/ajax/account/address/pca/find",retrieve:"/ajax/account/address/pca/retrieve"},class:{displayResults:"postcode-lookup__results--active"},messages:{error:ACC.postcode.addressNotFound||"Sorry, we can't find your address, please complete it manually below."}};return{_autoload:[["init",!!e.querySelector(".js-postcode-lookup")]],init:function init(){t.dom={parent:null,postcodeInput:null,submit:".js-postcode-lookup .btn",results:".js-postcode-lookup .postcode-lookup__results",input:".js-postcode-lookup input"},events.on("click",t.dom.submit,this.isValidPostcode.bind(this)),events.on("click",t.dom.results,this.selectAddress.bind(this)),events.on("focus",t.dom.input,this.hideResultsPane.bind(this))},hideResultsPane:function hideResultsPane(){t.dom.parent&&t.dom.parent.querySelector(".postcode-lookup__results").classList.remove(t.class.displayResults),this.resetMessaging()},selectAddress:function selectAddress(e){if(e.target.id)if("Address"===e.target.getAttribute("data-type"))this.retrieveAddress(e.target.id);else{var o=t.dom.parent.querySelector(".postcode-lookup__input");this.search(o.value,e.target.id)}},isValidPostcode:function isValidPostcode(e){t.dom.parent=e.target.closest(".js-postcode-lookup"),t.dom.postcodeInput=t.dom.parent.querySelectorAll(".form-group")[0];var o=t.dom.parent.querySelector(".postcode-lookup__input"),a=ACC.validation.validateField(o);if(this.resetMessaging(),a)return!1;this.search(o.value)},search:function search(o){var _this7=this;var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";var r=e.querySelector("#countrySelector select[name='countryIso'] option:checked");r=r&&r.value||"GB";var n="".concat(t.url.find,"?searchFor=Everything&country=").concat(encodeURIComponent(r),"&searchTerm=").concat(encodeURIComponent(o),"&lastId=").concat(encodeURIComponent(a));fetch(n,{method:"GET",headers:{"X-Requested-With":"XMLHttpRequest"}}).then(function(e){if(!e.ok)throw Error(e.status);return e.json()}).then(function(e){_this7.response(Array.prototype.map.call(e.addresses,function(e){return{label:e.text+" "+e.description,value:"",data:e}}))}).catch(function(e){return _this7.handleErrorResponse(e.message,t.messages.error)})},response:function response(o){var a=e.createElement("ul");a.className="list-unstyled m-xs-0";for(var r=0;r<o.length;r++){if(!o[r].label)return this.handleErrorResponse(null,t.messages.error);var n=e.createElement("li");n.setAttribute("id",o[r].data.id),n.setAttribute("data-type",o[r].data.type),n.appendChild(e.createTextNode(o[r].label)),a.appendChild(n)}var s=t.dom.parent.querySelector(".postcode-lookup__results");s&&(s.innerHTML=a.outerHTML,s.classList.add(t.class.displayResults))},retrieveAddress:function retrieveAddress(e){var _this8=this;fetch("".concat(t.url.retrieve,"?")+new URLSearchParams({id:e}),{method:"GET",headers:{"X-Requested-With":"XMLHttpRequest"}}).then(function(e){if(!e.ok)throw Error(e.status);return e.json()}
1).then(function(e){if(!e.addressDetails.length)return _this8.handleErrorResponse(result.status,t.messages.error);_this8.populateAddress(e.addressDetails[0]),_this8.hideResultsPane()}).catch(function(e){return _this8.handleErrorResponse(e.message,t.messages.error)})},populateAddress:function populateAddress(o){var a=null,r=t.dom.parent;if(Object.entries(o).forEach(function(_ref2){var _ref3=_slicedToArray(_ref2,2),t=_ref3[0],o=_ref3[1];a=r.querySelector("input[data-name="+t+"]"),"company"===t?((a=e.querySelector("input[name=\"companyName\"]"))||r.previousElementSibling&&(a=r.previousElementSibling.querySelector("input[name$='companyName']")),a&&!a.value&&o&&(a.value=o,a.blur())):a&&(a.value=o,a.blur())}),o.countryIso2){var _e25=r.querySelector("option[value=\""+o.countryIso2+"\"]");_e25&&(_e25.selected=!0,_e25.blur())}if(o.id){var n=o.id.split("|"),s=n[n.length-1];var _e26=r.querySelector("input[data-name=udprn]");_e26&&(_e26.value=s,_e26.blur())}},resetMessaging:function resetMessaging(){if(t.dom.postcodeInput){var _e27=t.dom.postcodeInput.querySelector(".postcode-lookup__message");_e27&&_e27.remove()}},handleErrorResponse:function handleErrorResponse(e,o){return this.resetMessaging(),t.dom.postcodeInput.insertAdjacentHTML("beforeend","<div class='postcode-lookup__message'>"+o+"</div>"),e}}}(document);var PreferredBranch=function PreferredBranch(e,t){var _this9=this;var o=this;this.container=e,this.settings=deepMerge(Object.assign({},{selectors:{branchInput:".js-pb-input",branchSearchCTA:".js-pb-cta",branchList:".js-pb-select",selectedBranchID:".js-pb-id",selectedBranchDetails:".js-pb-details"}}),t),this.branchInputEl=this.container.querySelector(this.settings.selectors.branchInput),this.submitCTA=this.container.querySelector(this.settings.selectors.branchSearchCTA),this.branchListEl=this.container.querySelector(this.settings.selectors.branchList),this.selectedBranchNumber
1El=this.container.querySelector(this.settings.selectors.selectedBranchID),this.selectedBranchDetailsEl=this.container.querySelector(this.settings.selectors.selectedBranchDetails),this.populateBranchInput(),this.submitCTA.addEventListener("click",function(e){e.preventDefault();var t=_this9.branchInputEl.value;if(!t)return!1;_this9.storeBranchFinderPostcode(t),_this9.fetchBranches(t)}),this.branchListEl.addEventListener("change",function(e){var t=Object.assign({},this.querySelector("option[value=\"".concat(e.target.value,"\"]")).dataset);window.sessionStorage.setItem("selectedBranch",JSON.stringify(t)),o.populatePreferredBranch(t)}),ACC.validation.validateField(this.container)};PreferredBranch.prototype.populateBranchInput=function(){var e=window.sessionStorage.getItem("branchPostcode");e&&(this.branchInputEl.value=e),this.branchInputEl.value&&(this.storeBranchFinderPostcode(this.branchInputEl.value),this.fetchBranches(this.branchInputEl.value))},PreferredBranch.prototype.fetchBranches=function(e){var _this10=this;var t={q:e};this.isLoading(!0),fetchBranchList(t).then(function(e){ACC.common.updateCSRFToken(e.CSRFToken),e.data.length?_this10.renderBranchList(e.data):(ACC.validation.toggleError(_this10.branchInputEl.id,_this10.branchInputEl.dataset.validationFor,ACC.postcode.invalidPostcode,!0,document.querySelector("form"),!0),_this10.resetFields())}).catch(function(e){_this10.resetFields(),console.error("Error fetching branches:",e)}).finally(function(){_this10.isLoading(!1)})},PreferredBranch.prototype.resetFields=function(){this.selectedBranchNumber
1El.value="",this.branchListEl.innerHTML="<option value=\"\" disabled selected>Please search for your branch</option>",this.selectedBranchDetailsEl.style.display="none",window.sessionStorage.removeItem("branchPostcode"),window.sessionStorage.removeItem("selectedBranch")},PreferredBranch.prototype.isLoading=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:!0;if(e)return this.submitCTA.classList.remove("btn-tertiary"),void this.submitCTA.classList.add("loading","btn-secondary");this.submitCTA.classList.remove("loading","btn-secondary"),this.submitCTA.classList.add("btn-tertiary"),this.submitCTA.blur()},PreferredBranch.prototype.renderBranchList=function(e){var t=JSON.parse(window.sessionStorage.getItem("selectedBranch"));var o;for(var a=0;a<e.length;a++){o+="\n <option\n value=\"".concat(e[a].name,"\"\n data-name=\"").concat(e[a].name,"\"\n data-branch-number=\"").concat(e[a].branchNumber,"\"\n data-line1=\"").concat(e[a].line1,"\"\n data-line2=\"").concat(e[a].line2,"\"\n data-town=\"").concat(e[a].town,"\"\n data-postal-code=\"").concat(e[a].postalCode,"\"\n data-phone=\"").concat(e[a].phone,"\"\n ").concat(t&&t.name===e[a].name?"selected":"","\n >\n ").concat(e[a].displayName,"\n </option>")}this.branchListEl.innerHTML=o,this.showSelectedBranchDetails(t||e[0]),ACC.validation.validateField(this.branchListEl)},PreferredBranch.prototype.showSelectedBranchDetails=function(e){var t=this.selectedBranchDetailsEl.querySelector("[data-address]"),o=this.selectedBranchDetailsEl.querySelector("[data-phone]"),a="\n <div>".concat(e.line1,"</div>\n <div>").concat(e.line2,"</div>\n <div>").concat(e.town,"</div>\n <div>").concat(e.postalCode,"</div>\n ");if(t.innerHTML=a,o){var _t24="<div>".concat(e.phone,"</div>");o.innerHTML=_t24}
1this.selectedBranchNumberEl.value=e.branchNumber,this.selectedBranchDetailsEl.style.display="block"},PreferredBranch.prototype.storeBranchFinderPostcode=function(e){window.sessionStorage.getItem("branchPostcode")!==e&&window.sessionStorage.removeItem("selectedBranch"),window.sessionStorage.setItem("branchPostcode",e)},PreferredBranch.prototype.populatePreferredBranch=function(e){e&&(window.sessionStorage.setItem("selectedBranch",JSON.stringify(e)),this.branchListEl.querySelector("option[value=\"".concat(e.name,"\"]")).selected=!0,this.selectedBranchNumberEl.value=e.branchNumber,this.showSelectedBranchDetails(e))};var fetchBranchList=function fetchBranchList(e){var t=Object.assign(e,{page:0}),o="/branch-finder/data?"+new URLSearchParams(t).toString();return new Promise(function(e,t){fetch(o).then(function(e){return e.ok?e.json():t(e)}).then(function(t){e(t)}).catch(function(e){t("Error",e)}).finally(function(){})})};ACC.preferredBranch=function(e){var t=e.querySelector(".js-pb-wrapper");return{_autoload:[["init",t]],init:function init(){this.dynamicFormValidation(),new PreferredBranch(t)},dynamicFormValidation:function dynamicFormValidation(){var e=ACC.preferredBranchDynamicFormValidation;e&&Object.assign(ACC.data.validation,e)}}}(document),ACC.priceBehindPostcode=function(e){return{_autoload:[["init",Boolean(e.querySelectorAll(".js-pbp-cta, .js-pbp-change-to-collection, .js-pbp-change-to-delivery").length)]],init:function init(){events.on("click",".js-pbp-cta",function(e){var t=e.target.closest("form");if(!ACC.validation.isFormValid(t))return;e.preventDefault();var o=serializeArray(t).find(function(_ref4){var e=_ref4.name;return"postcode"===e});o&&o.value&&ACC.priceBehindPostcode.setDelivery(o.value)}),events.on("click",".js-pbp-change-to-collection",function(e){e.preventDefault(),ACC.priceBehindPostcode.changeToCollection()}),events.on("click",".js-pbp-change-to-delivery",function(e){e.preventDefault();var t=e.target.getAttribute("href");ACC.priceBehindPostcode.changeToDelivery(t)})},fetchData:function fetchData(e,t){return fetch(e,{method:"POST",body:t})},refreshPage:function refreshPage(){e.location.reload()},changeToCollection:function changeToCollection(){var e=new FormData;e.append("CSRFToken",ACC.config.CSRFToken),this.fetchData("/fulfillment/options/change-to-collection",e).then(this.refreshPage)},changeToDelivery:function changeToDelivery(e){var _this11=this;var t=new FormData;t.append("CSRFToken",ACC.config.CSRFToken),this.fetchData("/fulfillment/options/change-to-delivery",t).then(function(t){e&&"#"!==e?t.ok&&(window.location.href=e):_this11.refreshPage()})},setDelivery:function setDelivery(e){var t=new FormData;t.append("postcode",e),t.append("CSRFToken",ACC.config.CSRFToken),this.fetchData("/fulfillment/options/set-delivery-postcode",t).then(this.onSetDeliveryComplete).then(this.refreshPage).catch(this.displayHybrisErrorMessage)},onSetDeliveryComplete:function onSetDeliveryComplete(e){return e.ok?Promise.resolve():e.json().then(function(e){var t=e.postcode&&e.postcode.length>0?e.postcode.join(", "):"An unknown error occurred.";return Promise.reject(new Error(t))})},displayHybrisErrorMessage:function displayHybrisErrorMessage(t){var o=t.message;if(!o||!ACC.validation)return!1;var a=o,r=e.getElementById("modalSessionLocationForm");ACC.validation.toggleError("sessionLocationForm-postcode","postcode",a,!0,r)}}}(document),ACC.product=function(e){var t={addToBasket:!1,addAllToBasket:!1};var o={FIELD_ID:"postcodeModal-locationQuery",FORM_ID:"modalSessionLocationForm",ERROR_MESSAGE:"An unknown error occurred."},a=e.getElementById("js-ajax-search-result"),r=e.querySelector(".js-plp-view-state"),n=e.querySelector(".js-local-products-form"),s=e.querySelector(".js-geolocate");return{_autoload:[["fetchPrices",!!a],"enableStorePickupButton","enableAddToCartButton","enableVariantSelectors","addToBasketFromListing","addAllToBasket","removeFromMiniBasket",["toggleViewPLP",!!r],["localProductForm",!!n],["geolocate",!!s]],fetchB2BPricesProcessed:!1,priceNotAvailable:function priceNotAvailable(){var t="<div class=\"price-missing\">\n <h3 class=\"price-missing__title\">".concat(ACC.price.productPriceNotAvailable,"</h3>\n <div class=\"price-missing__info\">").concat(ACC.price.productPriceNotAvailableContactBranch,"</div>\n </div>");e.querySelectorAll(".plp__products .product .product__price:not(.has-b2b-price):not(.product__price-rec)").forEach(function(e){e.classList.add("price--unavailable"),e.innerHTML=t}),e.querySelectorAll(".js-add-to-cart-price-available").forEach(function(e){e.classList.contains("b2b_price")||e.remove()}),e.querySelectorAll(".js-more-details-price-unavailable").forEach(function(e){e.classList.contains("b2b_price")||e.classList.remove("d-none")}),e.querySelectorAll(".js-price-range-text").forEach(function(e){e.nextElementSibling.classList.contains("price--unavailable")&&e.remove()})}
1,fetchPrices:function fetchPrices(){if(this.fetchB2BPricesProcessed)return;this.fetchB2BPricesProcessed=!0;var t=a.dataset.url,o=a.dataset.param,r=a.dataset.accountNumber;if(!t||!o)return;var n=o.replace(/[\[\]\s']+/g,""),s=e.querySelectorAll(".plp__products:not(.plp__recommendations)"),i=this.addLoadingClass(s);this.doFetch(t,r,n).then(function(e){return ACC.product.handlePriceResponse(e,s)}).catch(function(){return ACC.product.priceNotAvailable()}).finally(function(){return ACC.product.removeLoadingClass(s,i)})},handlePriceResponse:function handlePriceResponse(e){var t=e.result.success,o=e.showVatPrices;if(t){var _iterator3=_createForOfIteratorHelper(t),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var _e28=_step3.value;this.updateProductPrice(_e28,o)}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}this.priceNotAvailable()}else e.result.notfound&&this.priceNotAvailable()},updateProductPrice:function updateProductPrice(t,o){var a=e.querySelector(".plp__products:not(.plp__recommendations) .product[data-product-id=\"".concat(t.id,"\"]"));if(!a)return;var r=a.querySelector(".product__price"),n=a.querySelector(".product__price-unitary");if(!r)return;var s=r.querySelector(".js-price-currency"),i=r.querySelector(".js-price-value"),c=r.querySelector(".js-min-price-currency"),l=r.querySelector(".js-min-price-value"),d=r.querySelector(".js-max-price-currency"),u=r.querySelector(".js-max-price-value");if(s&&i||c&&l&&d&&u){var p,m,h,f,g,y;!0===o?(p=t.priceData?t.priceData.formattedGrossInteger:null,m=t.priceData?t.priceData.formattedGrossFraction:null,h=t.versionsMinPriceData?t.versionsMinPriceData.formattedGrossInteger:null,f=t.versionsMinPriceData?t.versionsMinPriceData.formattedGrossFraction:null,g=t.versionsMaxPriceData?t.versionsMaxPriceData.formattedGrossInteger:null,y=t.versionsMaxPriceData?t.versionsMaxPriceData.formattedGrossFraction:null):(p=t.priceData?t.priceData.formattedNetInteger:null,m=t.priceData?t.priceData.formattedNetFraction:null,h=t.versionsMinPriceData?t.versionsMinPriceData.formattedNetInteger:null,f=t.versionsMinPriceData?t.versionsMinPriceData.formattedNetFraction:null,g=t.versionsMaxPriceData?t.versionsMaxPriceData.formattedNetInteger:null,y=t.versionsMaxPriceData?t.versionsMaxPriceData.formattedNetFraction:null),r.classList.add("has-b2b-price");var v="<div class=\"product__price-loading\">\n Loading<span class=\"product__price-loading-ellipsis\"></span>\n </div>";if(s&&i)if(t.versionsMinPriceData&&t.versionsMaxPriceData){var _o10=r.querySelector(".js-price-vat").innerHTML,_a8="<div class=\"d-flex flex-wrap align-items-center\">\n <div class=\"price price--medium price--inline product__price-data\">\n <span class=\"price__value\">\n <span class=\"js-min-price-currency\" itemprop=\"priceCurrency\">".concat(t.versionsMinPriceData.currencySymbol,"</span><span class=\"js-min-price-value\" itemprop=\"price\">").concat(h+"."+f,"</span>\n </span>\n </div>\n <span class=\"px-1 text-blue product__price-to\">to</span>\n <div class=\"price price--medium price--inline product__price-data\">\n <span class=\"price__value\">\n <span class=\"js-max-price-currency\" itemprop=\"priceCurrency\">").concat(t.versionsMaxPriceData.currencySymbol,"</span><span class=\"js-max-price-value\" itemprop=\"price\">").concat(g+"."+y,"</span>\n </span><span class=\"price__vat js-price-vat\"> ").concat(_o10,"</span>\n </div>\n </div>\n ").concat(v);r.innerHTML=_a8;var _n3=e.createElement("p");_n3.className="text-blue semibold js-price-range-text",_n3.innerText="Price
1s range from",r.parentNode.insertBefore(_n3,r)}else s.innerHTML=t.priceData.currencySymbol,i.innerHTML=p+"."+m;if(c&&l&&d&&u)if(t.versionsMinPriceData&&t.versionsMaxPriceData&&t.versionsMinPriceData.value!==t.versionsMaxPriceData.value)c.innerHTML=t.versionsMinPriceData.currencySymbol,l.innerHTML=h+"."+f,d.innerHTML=t.versionsMaxPriceData.currencySymbol,u.innerHTML=g+"."+y;else{var _e29=r.querySelector(".js-price-vat").innerHTML.replace(/( )/g,""),_o11="<div class=\"price price--medium product__price-data\">\n <span class=\"price__value\">\n <span class=\"js-price-currency\" itemprop=\"priceCurrency\">".concat(t.priceData.currencySymbol,"</span><span class=\"js-price-value\" itemprop=\"price\">").concat(p+"."+m,"</span>\n </span>\n <span class=\"price__vat\">").concat(_e29,"</span>\n </div>\n ").concat(v);r.innerHTML=_o11,r.closest(".product__content").querySelector(".js-price-range-text").remove()}var C=a.querySelector(".js-add-to-cart-price-available[data-product-id='"+t.id+"']");C&&C.classList.add("b2b_price");var b=a.querySelector(".js-more-details-price-unavailable[data-product-id='"+t.id+"']");if(b&&b.classList.add("b2b_price"),a.dataset.productPrice=t.priceData.netValue,t.priceIndicatorMassage){var _o12=e.createElement("p");_o12.className="text-transform-uppercase strong text-green",_o12.innerText=t.priceIndicatorMassage,r.parentNode.insertBefore(_o12,r)}if(null!==t.unitaryPriceData){!0===o?(p=t.unitaryPriceData.formattedGrossInteger,m=t.unitaryPriceData.formattedGrossFraction):(p=t.unitaryPriceData.formattedNetInteger,m=t.unitaryPriceData.formattedNetFraction),n.classList.add("has-b2b-price");var _e30="<span itemprop=\"priceCurrency\">".concat(t.unitaryPriceData.currencySymbol,"</span>").concat(p,".").concat(m),_a9=n.querySelector(".price-single__value");_a9&&(_a9.innerHTML=_e30)}else n&&n.remove()}},addLoadingClass:function addLoadingClass(e){return setTimeout(function(){e.forEach(function(e){e.classList.add("loading")})},1e3|ACC.config.waitTimeBeforeLoadingAnim)},fetchB2BPricesRecommendations:function fetchB2BPricesRecommendations(){var t=e.getElementById("js-ajax-search-result");if(t){var o=t.dataset.url,a=t.dataset.accountNumber,r=[],n=e.querySelectorAll(".plp__recommendations [data-product-id]");if(n&&forEach(n,function(e,t){r.push(t.dataset.productId)}),o.length&&r.length){r=r.join(",");var s=e.querySelectorAll(".plp__recommendations"),i=setTimeout(function(){s.forEach(function(e){e.classList.add("loading")})},1e3|ACC.config.waitTimeBeforeLoadingAnim);this.doFetch(o,a,r).then(function(e){var t=e.result.success,o=e.showVatPrices;t&&forEach(n,function(e,a){var r=a.dataset.productId,n=t.find(function(e){return e.id===r}),s=a.querySelector(".product__price-data");if(n){var _e31=!0===o?n.priceData.formattedGrossValue:n.priceData.formattedNetValue;s.innerText=_e31}else s.innerHTML="<div class=\"price-missing mt-2\"><h4 class=\"price-missing__title\">".concat(ACC.price.productPriceNotAvailable,"</h4><div class=\"price-missing__info\">").concat(ACC.price.productPriceNotAvailableContactBranch,"</div></div>")})}).catch(function(e){console.info("Error ",e)}).finally(function(){clearTimeout(i),s.forEach(function(e){e.classList.remove("loading")})})}}},removeLoadingClass:function removeLoadingClass(e,t){clearTimeout(t),e.forEach(function(e){e.classList.remove("loading")})},doFetch:function doFetch(e,t,o){var a="".concat(e,"?")+new URLSearchParams({accountNumber:t,searchParam:o});return fetch(a,{method:"GET",headers:{"Content-Type":"application/json"},cache:"default"}).then(function(e){return e.json()}).catch(function(e){throw e})},enableAddToCartButton:function enableAddToCartButton(){e.querySelectorAll(".js-add-to-cart").forEach(function(e){e.classList.contains("outOfStock")||e.classList.contains("out-of-stock")||(e.disabled=!1)})},enableVariantSelectors:function enableVariantSelectors(){e.querySelectorAll(".variant-select").forEach(function(e){e.disabled=!1})},enableStorePickupButton:function enableStorePickupButton(){e.querySelectorAll(".js-pickup-in-store-button").forEach(function(e){e.disabled=!1})}
1,addToBasketFromListing:function addToBasketFromListing(){t.addToBasket||(events.on("submit",".js-add-product form:not(.js-session-location-form)",function(e){e.preventDefault();var t=e.target,o="toolHireRequestForm"===t.id?"/ajax/trolley/hire":"/ajax/trolley/add",a=ACC.product.addToCartRequest(t,o),r="true"===t.dataset.refreshOnSubmit;if(!a)return!1;var n=t.querySelector(".btn");n.classList.add("loading"),a.then(function(e){if(!e.cartModificationData)return!1;if("success"===e.cartModificationData.statusCode||e.cartModificationData.quantityAdded>0){if(r)return void window.location.reload(!0);ACC.product.addToCartFlashcard(e.cartData.totalUnitCount,e.cartModificationData.statusMessage,ACC.miniCart.templateEntries(e.cartModificationData.entry),"success"===e.cartModificationData.statusCode?"alert--success":"alert--error"),ACC.miniCart.render(e.cartData),ACC.product.addToBasketFromListingTrack(e.cartModificationData,t);var _o13=t.querySelectorAll("input.js-input-quantity");_o13.length&&(t.classList.contains("js-form-tally-check")||t.reset(),forEach(_o13,function(e,t){t.dispatchEvent(new Event("change"))}))}else if(e.cartModificationData.statusMessage){var _t25="";e.cartData.entries.forEach(function(e){_t25+=ACC.miniCart.templateEntries(e)}),ACC.product.addToCartFlashcard(e.cartData.totalUnitCount,e.cartModificationData.statusMessage,_t25,"alert--error")}}).catch(function(e){console.info("Error ",e)}).finally(function(){n.classList.remove("loading")})}),t.addToBasket=!0)},addAllToBasket:function addAllToBasket(){t.addAllToBasket||(events.on("submit",".js-add-all-product form",function(e){e.preventDefault();var t=e.target,o=ACC.product.addToCartRequest(t,"/ajax/trolley/add-all");if(!o)return!1;var a=t.querySelector(".btn");a.classList.add("loading"),o.then(function(e){if(!e.allCartModificationData||!Array.isArray(e.allCartModificationData))return!1;if(e.allCartModificationData.some(function(e){return"success"===e.statusCode})||e.allCartModificationData.some(function(e){return e.quantityAdded>0})){var _o14="";e.allCartModificationData.forEach(function(e){e.quantityAdded&&(_o14+=ACC.miniCart.templateEntries(e.entry),ACC.product.addToBasketFromListingTrack(e,t))}),ACC.product.addToCartFlashcard(e.cartData.totalUnitCount,e.allCartModificationData.find(function(e){return e.statusMessage}).statusMessage,_o14,e.allCartModificationData.some(function(e){return"success"===e.statusCode})?"alert--success":"alert--error"),ACC.miniCart.render(e.cartData)}else if(e.allCartModificationData.some(function(e){return e.statusMessage})){var _t26="";e.cartData.entries.forEach(function(e){_t26+=ACC.miniCart.templateEntries(e)}),ACC.product.addToCartFlashcard(e.cartData.totalUnitCount,e.allCartModificationData.find(function(e){return e.statusMessage}).statusMessage,_t26,"alert--error")}}).catch(function(e){console.info("Error ",e)}).finally(function(){a.classList.remove("loading")})}),t.addAllToBasket=!0)},addToCartRequest:function addToCartRequest(e,t){if(!ACC.validation.isFormValid(e)||!t)return!1;var o=new URLSearchParams(new FormData(e)).toString();return-1===o.indexOf("CSRFToken")&&ACC.config.CSRFToken&&(o+="&CSRFToken=".concat(ACC.config.CSRFToken)),fetch(t,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:o}).then(function(e){if(e.ok)return e.json()})},addToCartFlashcard:function addToCartFlashcard(t,o,a){var r=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"alert--success";ACC.flashcard&&(ACC.flashcard.render({alertClass:r,totalUnit:t,title:o,content:a,cta:{url:"/trolley",title:e.body.classList.contains("punchout-session")?"Go to trolley":"Checkout"}}),"alert--error"===r&&ACC.adobe.track("validation error",{errorMessage:o}))},addToBasketFromListingTrack:function addToBasketFromListingTrack(t,o){if(!t||"undefined"==typeof digitalData)return!1;var a,r=digitalData.product.find(function(e){return e.productID===t.entry.product.code}),n=e.querySelector("body").classList[0];if(o.closest(".glider-contain")){var _e32=o.closest("[data-component]");a=_e32.dataset.component?_e32.dataset.component:null}else switch(n){case"page-productDetails":a="PDP";break;case"page-productList":a="PLP Page";break;case"page-search":a="Search Page";}var s={product:[{category:r&&r.category,method:a,price:t.entry.basePrice.grossValue,priceExVAT:t.entry.basePrice.netValue,priceExVATtotal:Number((t.entry.basePrice.netValue*t.quantityAdded).toFixed(2)),priceTotal:Number((t.entry.basePrice.grossValue*t.quantityAdded).toFixed(2)),productID:t.entry.product.code,productName:t.entry.product.name,quantity:t.quantityAdded,transactionType:"sale",unitOfSale:t.entry.product.unitCode}]};ACC.adobe.track("trolley add",s)},removeFromMiniBasket:function removeFromMiniBasket(){events.on("click",".js-remove-mini-basket-entry",function(e){e.preventDefault();
1var t=e.target,o=t.closest(".js-mini-basket-entry").dataset.id;if(!o)return!1;var a=new URLSearchParams({productCode:o}).toString();fetch("/trolley/ajax/remove?"+a).then(function(e){if(e.ok)return e.json()}).then(function(e){"success"===e.cartModificationData.statusCode&&(ACC.miniCart.render(e.cartData),t.closest(".js-flashcard")&&ACC.flashcard.close())}).catch(function(e){console.info("Error",e)})})},toggleViewPLP:function toggleViewPLP(){var t=e.querySelector(".js-plp-products-table"),o=ACC.global.manageSessionState.getState("plpView");o&&t&&t.setAttribute("data-view-state",o),events.on("click",".js-plp-view-state .js-plp-view-toggle-button",function(e){var o=e.target.closest(".js-plp-view-toggle-button").getAttribute("data-state");o&&t&&(t.setAttribute("data-view-state",o),ACC.global.manageSessionState.setState("plpView",o))})},localProductForm:function localProductForm(){events.on("click",".js-local-products-form",function(t){if(t.preventDefault(),t.target.form.dataset.postcode){var _e33=t.target.form.querySelector("input#localProductsToggle");ACC.adobe.track("refinement",{filterCategory:"local range",filterValue:"local range "+(_e33.checked?"on":"off"),updateType:"filter toggle"}),t.target.form.submit()}else{var _t27=e.querySelector(".offsite-panel[data-panel-id='location-picker-stock']");_t27&&ACC.global.togglePanelDisplay(_t27)}})},geolocate:function geolocate(){events.on("click",".js-geolocate",function(t){var a=t.target.form,r=a.querySelector("input[name='postcode']"),n=a.querySelector("input[name='geolocationPostcode']");if(!r)return"No postcode field found";function s(e){return e.ok?Promise.resolve():e.json().then(function(e){var t=e.postcode&&e.postcode.length>0?e.postcode.join(", "):o.ERROR_MESSAGE;return Promise.reject(new Error(t))})}function i(t){var a=o.FIELD_ID,r=o.FORM_ID,n=o.ERROR_MESSAGE,s=t.message||n,i=e.getElementById(r);s&&ACC.validation&&i&&ACC.validation.toggleError(a,"postcode",s,!0,i)}ACC.global.addGoogleMapsApi("ACC.storeLocator.myMap").then(function(){return ACC.storeLocator.geolocateHelper()}).then(function(e){r.value=e,n&&(n.value=!0)}).then(function(){ACC.validation.validateAllRequired(a),ACC.validation.isFormValid(a)&&function(e){var t=new FormData(e);return fetch(e.action,{method:"POST",body:t})}(a).then(s).then(function(){return window.location.reload(!0)}).catch(i)})})}}}(document);var ProductBundle=function ProductBundle(e,t){this.container=e,this.settings=deepMerge(Object.assign({},{}),t),this.init()};ProductBundle.prototype.init=function(){this.showVatPrices=!!ACC.config&&ACC.config.VAT,this.pricesLoaded=!1,this.currencySymbol="\xA3",this.renderVatLabel(),this.syncHiddenInputs(),this.updateSubmitButton(),this.bindCheckboxEvents(),this.bindProductNavigation(),this.showLoading(),this.fetchPrices()},ProductBundle.prototype.PRICE_ENDPOINT="/ajax/customer/prices/search/products",ProductBundle.prototype.LOADING_HTML="<span class=\"product-bundle__price-loading\">Loading<span class=\"product-bundle__price-loading-ellipsis\"></span></span>",ProductBundle.prototype.resolvePrice=function(e){return parseFloat(e)||0},ProductBundle.prototype.getVatLabel=function(){return this.showVatPrices?" inc VAT":" ex VAT"},ProductBundle.prototype.renderVatLabel=function(){var e=this.container.querySelector(".js-bundle-vat-text");e&&(e.textContent=this.getVatLabel())},ProductBundle.prototype.getProductCodes=function(){return Array.from(this.container.querySelectorAll(".product-bundle__item")).map(function(e){return e.dataset.productCode}).filter(Boolean)},ProductBundle.prototype.showLoading=function(){var _this12=this;this.container.querySelectorAll(".js-bundle-item-price").forEach(function(e){e.innerHTML=_this12.LOADING_HTML});var e=this.container.querySelector(".js-bundle-total");e&&(e.innerHTML=this.LOADING_HTML)},ProductBundle.prototype.clearLoading=function(){this.container.querySelectorAll(".js-bundle-item-price").forEach(function(e){e.innerHTML=""});var e=this.container.querySelector(".js-bundle-total");e&&(e.textContent="")},ProductBundle.prototype.fetchPrices=function(){var _this13=this;var e=this.container.closest("[data-mbox='product-bundle']"),t=e&&e.dataset.accountNumber||"",o=this.getProductCodes();if(!o.length)return void this.clearLoading();var a=(ACC.config&&ACC.config.encodedContextPath||"")+this.PRICE_ENDPOINT+"?"+new URLSearchParams({accountNumber:t,searchParam:o.join(",")});fetch(a).then(function(e){if(!e.ok)throw new Error("HTTP "+e.status);return e.json()}).then(function(e){return _this13.applyPrices(e)}).catch(function(e){console.error("Product bundle price fetch failed:",e),_this13.clearLoading()})},ProductBundle.prototype.applyPrices=function(e){var _this14=this;this.showVatPrices=!(!e||!e.showVatPrices);var t=e&&e.result&&e.result.success,o=this.getVatLabel();Array.isArray(t)&&t.forEach(function(e){if(!e||!e.priceData)return;var t=_this14.container.querySelector(".product-bundle__item[data-product-code=\""+e.id+"\"]");if(!t)return;var a=_this14.showVatPrices?e.priceData.grossValue:e.priceData.netValue,r=_this14.showVatPrices?e.priceData.formattedGrossValue:e.priceData.formattedNetValue;if(null==r||!isFinite(parseFloat(a)))return;
1t.dataset.productPrice=a,e.priceData.currencySymbol&&(_this14.currencySymbol=e.priceData.currencySymbol);var n=t.querySelector(".js-bundle-item-price");n&&(n.innerHTML="".concat(r," <small>").concat(o,"</small>"))}),this.pricesLoaded=!0,this.renderVatLabel(),this.updateTotal(),this.updateSubmitButton()},ProductBundle.prototype.getItems=function(){return Array.from(this.container.querySelectorAll(".js-bundle-checkbox"))},ProductBundle.prototype.getCheckedItems=function(){return this.getItems().filter(function(e){return e.checked})},ProductBundle.prototype.bindCheckboxEvents=function(){var _this15=this;this.container.addEventListener("change",function(e){if(!e.target.classList.contains("js-bundle-checkbox"))return;e.target.closest(".product-bundle__item").classList.toggle("product-bundle__item--selected",e.target.checked),_this15.syncHiddenInputs(),_this15.updateTotal(),_this15.updateSubmitButton()})},ProductBundle.prototype.syncHiddenInputs=function(){var _this16=this;this.container.querySelectorAll("input[name^='addToCartForms']").forEach(function(e){return e.remove()}
1),this.getCheckedItems().forEach(function(e,t){var o=e.closest(".product-bundle__item").dataset.productCode,a=_this16.container,r=document.createElement("input");r.type="hidden",r.name="addToCartForms[".concat(t,"].productCode"),r.value=o;var n=document.createElement("input");n.type="hidden",n.name="addToCartForms[".concat(t,"].qty"),n.value="1",a.appendChild(r),a.appendChild(n)})},ProductBundle.prototype.updateTotal=function(){var _this17=this;if(!this.pricesLoaded)return;var e=this.getCheckedItems().reduce(function(e,t){return e+_this17.resolvePrice(t.closest(".product-bundle__item").dataset.productPrice)},0),t=this.container.querySelector(".js-bundle-total");t&&(t.textContent="".concat(this.currencySymbol).concat(e.toFixed(2)))},ProductBundle.prototype.bindProductNavigation=function(){this.container.addEventListener("click",function(e){var t=e.target.closest(".product-bundle__item-name");if(!t)return;var o=t.closest(".product-bundle__item"),a=o&&o.dataset.productUrl;a&&window.location.pathname!==a&&(window.location.href=a)})},ProductBundle.prototype.updateSubmitButton=function(){var e=this.container.querySelector("[type='submit']");e&&(e.disabled=0===this.getCheckedItems().length)},ACC.productBundle=function(e){return{_autoload:["loadMbox"],init:function init(){var t=e.querySelector(".js-product-bundle");t&&new ProductBundle(t)},loadMbox:function loadMbox(){function t(){var t=e.querySelector("[data-mbox='product-bundle']");t&&adobe.target.getOffer({mbox:"product-bundle",params:{productCode:t.dataset.productCode,productName:t.dataset.productName,productPrice:t.dataset.productPrice,productUrl:t.dataset.productUrl,productImage:t.dataset.productImage},success:function success(e){e&&e.length>0&&adobe.target.applyOffer({mbox:"product-bundle",selector:"[data-mbox='product-bundle']",offer:e})},error:function error(e){console.error("Adobe Target request failed:",e)},timeout:3e3})}"undefined"!=typeof adobe&&adobe.target&&("loading"===e.readyState?e.addEventListener("DOMContentLoaded",t):t())}}}(document),ACC.productDetail=function(e){return{_autoload:["initPageEvents","quantityCount",["quantityLivePrice",!!e.querySelector(".js-form-quantity-counter")],["toolHirePrice",!!e.querySelector(".js-form-tool-hire-price")],["tallySelection",!!e.querySelector(".js-tally-selection")],["tallyCheck",!!e.querySelector(".js-form-tally-check")],["updateTallyPrice",!!e.querySelector(".js-tally-in-cart")],["bindBulkPriceUpdate",!!e.querySelector(".js-input-quantity")],"recallQuantity","tallyRecallQuantity",["addTowishlist",!!e.querySelector("#wishlistsDropdown")],["viewDeliveryInfo",!!e.querySelector(".js-view-delivery-info")],["setUpVariantSelector",!!e.querySelector("#variant-selector")],["viewProductComparison",!!e.querySelector(".js-view-product-comparison")],["trackSessionLocationForm",!!e.querySelector(".js-session-location-form")]],qtyCounterEventsBound:!1,toolHirePrice:function toolHirePrice(){var t,o=e.querySelector(".js-form-tool-hire-price"),a=o.querySelector("#duration"),r=o.querySelector(".price");function n(){var e=o.querySelectorAll(".form-group--error");e.length&&e.forEach(function(e){e.closest(".form-group").classList.remove("form-group--error"),e.classList.contains("form-group--alert")&&e.remove()})}events.on("change",".js-form-tool-hire-price input",function(e){""===a.value&&(a.value=0),t=new URLSearchParams(new FormData(o)).toString(),fetch("/ajax/tool-hire/price",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:t}).then(function(e){if(e.ok)return e.json();throw e}).then(function(e){n(),r?(r.classList.remove("hide"),r.querySelector(".js-price-currency").innerHTML=e.currencySymbol,r.querySelector(".js-price-value").innerHTML=e.formattedInteger+"."+e.formattedFraction):console.warn("Price section not found.")}).catch(function(e){e.json().then(function(e){if(Array.isArray(e)){n(),function(){var e=o.querySelectorAll(".js-calendar");e.length&&e.forEach(function(e){e.closest(".form-group").classList.add("form-group--error")})}();var _a10=(t=e[0],"\n <div class=\"form-group ".concat("form-group--error form-group--alert","\">\n <div class=\"form-group__message\">",t,"</div>\n </div>\n "));r.classList.add("hide"),r.insertAdjacentHTML("afterend",_a10)}var t})})})},tallySelection:function tallySelection(){var t=e.querySelector("#updateQuantityForm"),o=e.querySelector(".js-tally-selection");events.on("change",".js-tally-selection",function(o){var a=o.target,r=a.value,n=t.querySelector("[data-id=\"".concat(r,"\"]"));if(n){a.querySelector("option:checked").classList.add("d-none"),n.classList.remove("d-none"),a.selectedIndex=0;var _t28=e.querySelector("#noTallyLengthSelectedInfo");_t28&&_t28.remove();var _o15=Array.prototype.filter.call(a.querySelectorAll("option"),function(e){return!e.classList.contains("d-none")});a.disabled=1===_o15.length,1===_o15.length&&(a.options[0].innerText="No more lengths available")}}),events.on("click",".js-tally-remove",function(e){e.preventDefault();
1var t=e.target.closest(".js-tally-entry"),a=t.dataset.id,r=o.querySelector("option[value=\"".concat(a,"\"]"));if(r){t.classList.add("d-none"),r.classList.remove("d-none"),o.disabled=!1,o.querySelector("option:first-child").innerText="Timber lengths";var _e34=t.querySelector(".js-input-quantity");_e34.value=0,_e34.dispatchEvent(new Event("change")),_e34.dispatchEvent(new Event("input"))}})},tallyCheck:function tallyCheck(){var t=e.querySelector(".js-form-tally-check"),o=t.querySelectorAll(".js-input-quantity"),a=t.querySelector(".js-form-tally-check-msg");events.on("change, input",".js-form-tally-check input",function(e){var t=!1;o.forEach(function(e){e.dataset.maxStock;{var _o16=parseInt(e.dataset.maxStock);parseInt(e.value)>_o16&&(t=!0)}}),t?a.classList.remove("d-none"):a.classList.add("d-none")})},tallyRecallQuantity:function tallyRecallQuantity(){var t=window.sessionStorage;if(!t)return!1;var o=e.querySelector(".js-form-tally-check"),a=o&&o.dataset.productId,r="recallQuantityTimber",n=JSON.parse(t.getItem(r));if(!o||!a)return t.removeItem(r),!1;var s=n&&n.product===a?n:{product:a,lengths:{}},i=[];if(s&&Object.keys(s.lengths).length){var _t29=e.querySelector(".js-tally-selection");for(var _e35 in s.lengths){if(c(_t29,_e35)){_t29.value=_e35,_t29.dispatchEvent(new Event("change"));var _a11=o.querySelector(".js-tally-entry[data-id='".concat(_e35,"'] input"));_a11&&(_a11.value=s.lengths[_e35].value,_a11.dispatchEvent(new Event("change")))}else i.push("".concat(s.lengths[_e35].label))}}if(i.length){i.sort();var _t30=e.querySelector(".js-tally-unavailable-lengths");_t30.classList.remove("d-none");var _o17=_t30.querySelector("p").innerText;_t30.querySelector("p").innerText=_o17.concat("",i.join(", "))}function c(e,t){return!!e.querySelector("option[value='".concat(t,"']"))}events.on("click",".js-tally-remove",function(e){e.preventDefault();var o=e.target.closest(".js-tally-entry").dataset.id;o&&s.lengths[o]&&(delete s.lengths[o],t.setItem(r,JSON.stringify(s)))}),events.on("change",".js-form-tally-check input.js-input-quantity",function(e){var o=e.target,a=o.value,n=o.closest(".js-tally-entry"),i=n.dataset.id,c=n.querySelector("label.product__quantity-value").innerText;s.lengths[i]={label:c,value:a},t.setItem(r,JSON.stringify(s))});var l=e.querySelectorAll(".js-tally-in-cart");l.length&&l.forEach(function(e,t){e.querySelector("input.js-input-quantity").dispatchEvent(new Event("change"))})},quantityLivePrice:function quantityLivePrice(){events.on("change",".form-control--quantity",function(e){var t=e.target;ACC.productDetail.updateTallyPrice(t)})},updateTallyPrice:function updateTallyPrice(t){var o=e.querySelector(".js-form-quantity-counter"),a={totalMeasure:o.querySelector("[data-quantity-total]"),totalPriceValue:o.querySelector("[data-price-value]")},r="/"+e.querySelector(".sku").querySelector("span").innerText+"/tally-price",n=new URLSearchParams(new FormData(o)).toString();fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n}).then(function(e){if(e.ok)return e.json()}).then(function(e){var o=ACC.config.VAT?e.price.formattedGrossInteger:e.price.formattedNetInteger,r=ACC.config.VAT?e.price.formattedGrossFraction:e.price.formattedNetFraction;a.totalMeasure.innerHTML=e.length,a.totalPriceValue.innerHTML=o+"."+r,t&&t.classList.contains("js-input-bulk-quantity")&&ACC.productDetail.updateBulkProductPrice(e.length,t)})},recallQuantity:function recallQuantity(){var t=window.sessionStorage;if(!t)return!1;var o="recallQuantity",a=e.querySelector(".js-recall-quantity"),r=a&&a.querySelector("input");if(!r)return t.removeItem(o),!1;var n=t.getItem(o);n&&(r.value=n,r.dispatchEvent(new Event("change"))),events.on("change",".js-recall-quantity input",function(e){t.setItem(o,e.target.value)})},quantityCount:function quantityCount(){var t=e.querySelectorAll(".js-quantity-modifier"),o=[],a=[];function r(e){e.preventDefault();var t=e.target.closest(".js-quantity-modifier"),r=o.indexOf(t);if(r<0){var _r2=new ACC.productDetail.quantityCounter(t);switch(_r2.init(),a.push(_r2),o.push(t),e.type){case"click":e.target.click();break;case"input":e.target.dispatchEvent(new Event("input"));break;case"change":e.target.dispatchEvent(new Event("change"));}}else switch(e.type){case"click":a[r].clickModifier(e);break;case"input":a[r].revertToInitialDeliveryMessages(),a[r].thresholdModifier(e);break;case"change":a[r].changeModifier(e),a[r].thresholdModifier(e);}}t.length>0&&t.forEach(function(e,t){var r=new ACC.productDetail.quantityCounter(e);r.init(),a.push(r),o.push(e)}),events.on("click",".js-quantity-modifier",function(e){e.target.dataset.mode&&r(e)}),events.on("input, change",".js-quantity-modifier input",function(e){r(e)}),events.on("click",".js-quantity-modifier input",function(e){e.target.select()}),events.on("keypress",".js-quantity-modifier input",function(e){13===e.keyCode&&e.preventDefault()})},initPageEvents:function initPageEvents(){var t=e.querySelectorAll(".form-control--quantity");t.length&&forEach(t,function(e,t){t.type="number"}),events.on("keypress",".js-input-quantity",function(e){13===e.keyCode&&e.preventDefault()})},bindBulkPriceUpdate:function bindBulkPriceUpdate(){events.on("change",".js-input-quantity:not(.js-input-timber-quantity)",function(e){var t=e.target;t.classList.contains("js-input-bulk-quantity")&&ACC.productDetail.updateBulkProductPrice(t.value,t)})},updateBulkProductPrice:function updateBulkProductPrice(e,t){var o=t.closest(".
1js-product-quantity-holder").dataset.productId;if(!o)return!1;fetch("/"+o+"/price/"+e).then(function(e){if(e.ok)return e.json()}).then(function(e){var o,a,r=t.closest(".product").querySelector(".js-product-price"),n=t.closest(".product").querySelector(".js-unitary-price"),s="true"===r.dataset.showVatPrice,i=r.querySelector(".js-price-currency"),c=r.querySelector(".js-price-value");if(!0===s?(o=e.price.formattedGrossInteger,a=e.price.formattedGrossFraction):(o=e.price.formattedNetInteger,a=e.price.formattedNetFraction),i.innerHTML=e.price.currencySymbol,c.innerHTML=o+"."+a,n&&null!==e.unitaryPrice){!0===s?(o=e.unitaryPrice.formattedGrossInteger,a=e.unitaryPrice.formattedGrossFraction):(o=e.unitaryPrice.formattedNetInteger,a=e.unitaryPrice.formattedNetFraction);var _t31="<span itemprop=\"priceCurrency\">".concat(e.unitaryPrice.currencySymbol,"</span>").concat(o,".").concat(a),_r3=n.querySelector(".price-single__value");_r3&&(_r3.innerHTML=_t31)}})},addTowishlist:function addTowishlist(){var t=e.querySelector("#wishlistsDropdown"),o=e.querySelector("#addToWishlistUrl").value,a=e.querySelector("#removeFromWishlistUrl").value,r=e.querySelector("#currentProductCode").value;events.on("change",t,function(e){var n=e.target.querySelector("option:checked");if(n.classList.contains("js-wishlist-new"))MicroModal.show("modal-wishlist-create",{disableFocus:!0});else if(n.classList.contains("js-wishlist-product-present"))window.location.href=a+"/"+t.value+"/"+r;else{if(n.classList.contains("js-wishlist-choose"))return!1;window.location.href=o+"/"+t.value+"/"+r}})},viewDeliveryInfo:function viewDeliveryInfo(){ACC.global.scrollToAccordionPDP("js-view-delivery-info","js-accordion-delivery-info")},viewProductComparison:function viewProductComparison(){ACC.global.scrollToAccordionPDP("js-view-product-comparison","js-accordion-product-comparison"),ACC.global.trackAnchorLinks("js-view-product-comparison")},setUpVariantSelector:function setUpVariantSelector(){e.getElementById("variant-selector").addEventListener("change",function(e){window.location.href=e.target.value})},trackSessionLocationForm:function trackSessionLocationForm(){events.on("blur",".js-session-location-form input",function(){ACC.adobe.track("form interaction",{formName:"sessionLocationForm",fieldName:"postcode"})}),events.on("submit",".js-session-location-form",function(e){e.preventDefault(),ACC.adobe.track("form submit",{formName:"sessionLocationForm"})})}}}(document),ACC.productDetail.quantityCounter=function(e){if(this.parent=e.closest(".product__quantity-block"),this.quantityBlock=e,this.input=e.querySelector("input"),this.mode=null,this.updatedValue=null,!this.input)return!1;this.settings={min:parseInt(this.input.dataset.min||0),moq:parseInt(this.input.dataset.moq||0),maxoq:parseInt(this.input.dataset.maxoq||null),max:parseInt(this.input.dataset.maxoq||this.input.dataset.max||9999),threshold:parseInt(this.input.dataset.threshold||0),message:{maximum:ACC.config.productThreshold.max,maxoq:ACC.config.productThreshold.maxoq,threshold:ACC.config.productThreshold.large,tally:ACC.config.productThreshold.tally,increment:ACC.config.productThreshold.increment,minimum:ACC.config.productThreshold.minimum},hasIncrement:void 0!==this.input.getAttribute("data-increment"),increment:parseInt(this.input.dataset.increment||1),maxValue:function maxValue(){return this.max-this.max%this.increment},currentValue:parseInt(this.input.value),initialValue:parseInt(this.input.value),isFree:"true"===this.input.dataset.isFree||!1,showIncrementMessage:!1,showMOQMessage:!1,btnDecrease:this.quantityBlock.querySelector("button[data-mode=\"decrease\"]"),btnIncrease:this.quantityBlock.querySelector("button[data-mode=\"increase\"]")}},ACC.productDetail.quantityCounter.prototype={init:function init(){this.$form=this.quantityBlock.closest(".js-update-cart-form"),this.confirmQty=this.$form&&this.$form.querySelector(".js-confirm-qty"),this.isQtyChanged=!1,this.isDaysChanged=!1,this.isDateChanged=!1,this.checkQuantityLimits()},thresholdModifier:function thresholdModifier(e){var t=this.settings.max||this.settings.moq||this.settings.maxoq;if(this.settings.threshold||this.settings.hasIncrement||t){var o=parseInt(e.target.value),a=this.settings.maxoq,r=this.parent?this.parent.querySelector(".product__quantity-block-message"):null;if(!r)return!1;r.classList.remove("hide"),this.settings.showMOQMessage?(this.parent.dataset.message=this.settings.message.minimum+" "+this.settings.moq,r.classList.add("hide")):this.settings.showIncrementMessage?(this.parent.dataset.message=this.settings.message.increment+" "+this.settings.increment,r.classList.add("hide")):o===a?(this.parent.dataset.message=this.settings.message.maxoq+" "+a,r.classList.add("hide")):this.parent.dataset.message="",this.settings.showIncrementMessage=!1,this.settings.showMOQMessage=!1}},clickModifier:function clickModifier(e){if("BUTTON"===e.target.tagName&&"submit"!==e.target.getAttribute("type"))switch(this.revertToInitialDeliveryMessages(),e.target.dataset.mode){case"increase":this.updateQuantity(this.settings.increment);break;case"decrease":this.updateQuantity(-this.settings.increment);}},changeModifier:function changeModifier(e){var t,o=parseInt(e.target.value),a=this.settings.increment,r=this.settings.min,n=this.settings.moq,s=this.settings.maxValue(),i=this.$form,c=this.isQtyChanged,l=this.isDaysChanged,d=this.isDateChanged,u=this.confirmQty;o&&o>=r?(t=o%a,t&&this.settings.hasIncrement&&(this.settings.showIncrementMessage=!0),o>r&&o<s&&t?o+=a-t:o>=s&&(o=s)):(o&&o<n&&(this.settings.showMOQMessage=!0),o=r,this.settings.hasIncrement&&(this.settings.showIncrementMessage=!0)),this.input.value=o,this.settings.currentValue=o,this.checkQuantityLimits(),i&&(c=this.settings.currentValue!==this.settings.initialValue,i.dataset.qtyChanged=c,l=!!i.hasAttribute("data-days-changed")&&"true"===i.dataset.daysChanged,d=!!i.hasAttribute("data-date-changed")&&"true"===i.dataset.dateChanged,ACC.cartItem.showConfirmQty(u,c||l||d))},revertToInitialDeliveryMessages:function revertToInitialDeliveryMessages(){document.querySelector("#collectionMessage")&&document.querySelector("#collectionMessage").classList.remove("d-none"),document.querySelector("#deliveryMessage")&&document.querySelector("#deliveryMessage").classList.remove("d-none"),document.querySelector("#collectionTallyPotentialMessage")&&document.querySelector("#collectionTallyPotentialMessage").classList.add("d-none"),document.querySelector("#deliveryTallyPotentialMessage")&&document.querySelector("#deliveryTallyPotentialMessage").classList.add("d-none")},updateQuantity:function updateQuantity(e){var t=parseInt(this.settings.currentValue+=e);this.input.value=t,this.input.dispatchEvent(new Event("blur")),this.input.dispatchEvent(new Event("change"))},checkQuantityLimits:function checkQuantityLimits(){if(this.settings.btnDecrease.disabled=!1,this.settings.btnIncrease.disabled=!1,this.settings.isFree)return this.settings.btnIncrease.disabled=!0,this.settings.btnDecrease.disabled=!0,!1;this.settings.currentValue<=this.settings.min?this.settings.btnDecrease.disabled=!0:this.settings.currentValue>=this.settings.maxValue()&&(this.settings.btnIncrease.disabled=!0)}},ACC.productListSearch=function(e){return{_autoload:[["init",!!e.querySelector(".js-project-list-search")]],options:{endpointAdd:"/my-account/project-list/add/",endpoint:"/my-account/project-list/search",minCharactersBeforeRequest:3,waitTimeBeforeRequest:500,displayProductImages:!0,query:"/search?q="}
1,init:function init(){forEach(e.querySelectorAll(".js-project-list-search"),function(e,t){new ACC.productListSearch.module(t).bindSearch()})},module:function module(e){this.config={wrapper:e.closest(".search"),form:e.closest("form"),input:e,submit:e.closest("form").querySelector("button[type=submit]"),formPanel:e.closest(".project-list-panel"),errorMessage:ACC.productListSearchError||"Product auto suggestion is not available at the moment",resultSuggestion:".search__results-suggestion",resultProduct:".search__results-product",ctaAddToProject:".js-project-list-add-cta",ctaAddToProjectText:ACC.ctaAddToProjectText||"Add To Project List"}}}}(document),ACC.productListSearch.module.prototype={bindSearch:function bindSearch(){var e=this;function t(t){t.length>=ACC.productListSearch.options.minCharactersBeforeRequest&&e.runSearch(t),0===t.length&&e.removeSearch()}e.currentSearchTerm=this.config.input.value,events.on("keyup",this.config.input,ACC.common.debounce(function(o){9!==o.keyCode&&(e.currentSearchTerm=o.target.value,t(e.currentSearchTerm))},ACC.search.options.waitTimeBeforeRequest)),events.on("focus",this.config.input,function(o){t(o.target.value),e.config.form.classList.add("search__form--active"),e.config.form.querySelector(".form-group").classList.add("form-group--search-active")}),events.on("blur",this.config.input,function(t){e.config.form.classList.remove("search__form--active"),e.config.form.querySelector(".form-group").classList.remove("form-group--search-active"),e.hideSearch()}),events.on("blur",".search a",function(t){e.hideSearch()}),events.on("submit",this.config.form,function(t){t.preventDefault();var o=e.config.form.querySelector(e.config.resultProduct);o&&o.click()})},runSearch:function runSearch(e){var t,o=this;clearTimeout(t),t=setTimeout(function(){o.config.wrapper.classList.add("loading")},1e3|ACC.config.waitTimeBeforeLoadingAnim);var a=document.getElementById("currentWishlistUid").value;this.source(e).then(function(t){var r="<div class=\"search__container search__container--compact\"><ul class=\"search__results\">";var n=t.data.filter(function(e){return"productResult"===e.type}),s=t.data.showVatPrices;n&&n.length?(r+="<ul class=\"search__results-list search__results-list--products\">",n.forEach(function(t,n){r+=o.renderItem(t,n+1,e,s,a)}),r+="</ul>"):r+="<div class=\"search__cta text-center py-2\">No product match found</div>",r+="</ul>";var i=o.config.form.querySelector(o.config.ctaAddToProject);1===n.length?(i&&i.classList.remove("hidden"),r+="\n <div class=\"search__cta text-center pt-xs-0\">\n <button type=\"submit\" class=\"btn btn-secondary d-lg-none\">".concat(o.config.ctaAddToProjectText,"</button>\n </div>")):i&&i.classList.add("hidden"),r+="</div>",o.removeSearch(),o.renderResult(r)}).catch(function(){var e="<div class=\"search__container\"><div class=\"search__error\">".concat(o.config.errorMessage,"</div></div>");o.renderResult(e)}).finally(function(){clearTimeout(t),o.config.wrapper.classList.remove("loading")})},renderResult:function renderResult(e){var t=document.createElement("div");t.innerHTML=e,this.config.formPanel.append(t)},removeSearch:function removeSearch(){var e=this.config.form.querySelector(".search__container");e&&e.remove()},hideSearch:function hideSearch(){var e=this;setTimeout(function(){if(!document.activeElement.closest(".search__container")&&"INPUT"!==document.activeElement.tagName){var t=e.config.form.querySelector(".search__container");t&&t.remove()}},250)},renderItem:function renderItem(e,t,o,a,r){var n;if("productResult"===e.type){var s=!0===a?e.grossPrice:e.netPrice,i=s.replace("\xA3","").split("."),c=i[0],l=i[1];if(n="<a href=\"".concat(ACC.config.encodedContextPath+ACC.productListSearch.options.endpointAdd+r+"/"+e.code,"\" \n class=\"product search__results-link search__results-product\" \n data-result=\"").concat(t,"\" \n data-product-id=\"").concat(e.code,"\" \n data-product-price=\"").concat(e.grossPrice,"\">"),null!==e.image&&(n+="\n <div class=\"search__results-cell search__results-thumb data-layer-click\" data-event=\"productClick\">\n <img src=\"".concat(e.image,"\" class=\"search__results-img\" />\n </div>")),s)n+="\n <div class=\"search__results-cell search__results-cell--child ".concat(null===e.image?"search__results-cell--no-img":"","\">\n <div class=\"d-flex flex-column\">\n <div class=\"search__results-name mb-1 data-layer-click\" data-event=\"productClick\">").concat(e.value,"</div>\n <div class=\"search__results-sku\">SKU: ").concat(e.code,"</div>\n </div>\n <div class=\"search__results-cell search__results-price data-layer-click\" data-event=\"productClick\">\n <div class=\"price price--small price--inline justify-content-end\">
1\n <span class=\"price__value\">£ ").concat(c,".").concat(l,"</span>\n <span class=\"price__vat\"> ").concat(!0===a?"inc VAT":"ex VAT","</span>\n </div>\n </div>\n </div>");else n+="\n <div class=\"search__results-cell search__results-cell--child\">\n <div class=\"d-flex flex-column\">\n <div class=\"search__results-name mb-1 data-layer-click\" data-event=\"productClick\">".concat(e.value,"</div>\n <div class=\"search__results-sku\">SKU: ").concat(e.code,"</div>\n </div>\n <div class=\"search__results-cell search__results-contact data-layer-click\" data-event=\"productClick\">\n <div class=\"d-flex align-items-center justify-content-end text-right\">Contact branch <br>for pricing</div>\n </div>\n </div>");return"<li class=\"search__results-item\">".concat(n+="</a>","</li>")}},source:function source(e){var t=ACC.productListSearch;return e=e.toLowerCase(),new Promise(function(o,a){fetch("".concat(t.options.endpoint,"?term=").concat(encodeURIComponent(e))).then(function(e){return e.json()}).then(function(e){var a=[];null!==e.products&&(a.showVatPrices=e.showVatPrices,forEach(e.products,function(e,o){a.push({position:e+1,brand:null!==o.typeDetails?o.typeDetails.brand:"",categoriesPath:null!==o.typeDetails?o.typeDetails.categoriesPath:"",netPrice:null!==o.price?o.price.formattedNetValue:"",retailPrice:null!==o.retailPrice?o.retailPrice.formattedNetValue:"",value:o.name,code:o.code,desc:o.description,manufacturer:o.manufacturer,type:"productResult",url:o.url,grossPrice:null!==o.price?o.price.formattedGrossValue:"",image:null!==o.images&&t.options.displayProductImages?o.images[0].url:null,hasPromotion:null!==o.potentialPromotions&&o.potentialPromotions.length>0,promoRibbon:o.promoRibbon})})),o({data:a})})})}},ACC.punchout=function(e){return{_autoload:["blockInspectLogoLink","punchoutNavigation",["trackPunchoutReturn",!!e.querySelector(".js-punchout-return")],["trackPunchoutCancel",!!e.querySelector(".js-punchout-cancel")],["procurementFormSubmit",!!e.querySelector("#procurementForm")]],blockInspectLogoLink:function blockInspectLogoLink(){events.on("click, touchend",".inspect-logo a",function(e){e.preventDefault()})},punchoutNavigation:function punchoutNavigation(){e.querySelector(".punchout-header")&&e.querySelector(".js-userAccount-Links").remove()},trackPunchoutReturn:function trackPunchoutReturn(){events.on("click",".js-punchout-return",function(e){e.stopPropagation();var t=e.target.dataset.cartCode;ACC.adobe.track("requisition submitted",{requisitionNumber:t})})},trackPunchoutCancel:function trackPunchoutCancel(){events.on("click",".js-punchout-cancel",function(e){e.stopPropagation(),ACC.adobe.track("requisition cancelled")})},procurementFormSubmit:function procurementFormSubmit(){docReady(function(){e.querySelector("#procurementForm").submit(),fetch("/logout")})}}}(document),ACC.refinements=function(e){return{_autoload:[["bindMoreLessToggles",!!e.querySelector(".js-facet-form")],["showActiveFacets",!!e.querySelector(".js-active-facet")],["onFacetChange",!!e.querySelector(".js-facet-selection")],"shouldFacetPopupShow"],coords:{},storeSearchData:{},showActiveFacets:function showActiveFacets(){e.querySelectorAll(".js-active-facet").forEach(function(t){var o=t.dataset.parentCategory;e.querySelectorAll(".js-accordion").forEach(function(e){var t=e.querySelector("[data-category-name=\""+o+"\"]");if(t){t.closest("."+ACC.accordion.classes.content).classList.add(ACC.accordion.classes.opened)}})}),events.on("click",".js-active-facet",function(e){var t=e.target.closest(".js-active-facet").dataset.parentCategory,o=e.target.closest(".js-active-facet").dataset.value;ACC.adobe.track("refinement",{filterCategory:t,filterValue:o,updateType:"filter remove"})}),events.on("click",".js-facet-clear",function(){ACC.adobe.track("refinement",{updateType:"clear all filters"})})},onFacetChange:function onFacetChange(){events.on("change",".js-facet-selection",function(e){var t=e.target,o=t.closest(".facets__group").querySelector(".facets__group-category").dataset.categoryName,a=t.dataset.f
1ilterName;t.checked?(localStorage.setItem("filterApplied",!0),ACC.adobe.track("refinement",{filterCategory:o,filterValue:a,updateType:"filter add"})):ACC.adobe.track("refinement",{filterCategory:o,filterValue:a,updateType:"filter remove"});var r=t.dataset.onchangeUrl;location.href=r})},shouldFacetPopupShow:function shouldFacetPopupShow(){var e=localStorage.getItem("filterApplied");!0!==e&&"true"!==e||window.innerWidth<parseInt(screenMdMax.split("px")[0])&&(ACC.global.toggleFacets(),ACC.refinements.stopFacetPopupToShow())},stopFacetPopupToShow:function stopFacetPopupToShow(){localStorage.setItem("filterApplied",!1)},bindMoreLessToggles:function bindMoreLessToggles(){events.on("change",".js-product-facet .js-facet-checkbox",function(e){e.target.closest("form").submit()})}}}(document),ACC.register=function(e){var t=e.querySelector(".js-opt-in-preferences");return{_autoload:[["checkUserOptInPreferences",t],["initMFAUserRegistration",ACC.config.isMFAEnabled]],_loadOptInValidations:function _loadOptInValidations(){var e=ACC.consentTypeDynamicFormValidation;Object.assign(ACC.data.validation,e)},checkUserOptInPreferences:function checkUserOptInPreferences(){var o=t.querySelectorAll("input[name='optType']"),a=t.querySelector(".js-opt-in-options"),r=_toConsumableArray(t.querySelectorAll("input[type='checkbox'][name*='Consent']")),n=r.pop();var s,i=[];this._loadOptInValidations(),o.forEach(function(e){"CHOOSE"===(e.checked?e.value:null)&&a.classList.remove("d-none"),e.addEventListener("change",function(e){"CHOOSE"===e.target.value?(i=[],s=!1,r.forEach(function(e){e.checked=!1,e.parentElement.classList.remove("form-group--error")}),n.checked=!1,n.setAttribute("required","true"),a.classList.remove("d-none")):"ALL"===e.target.value&&(s=!1,r.forEach(function(e){e.checked=!0,i.push(e.getAttribute("name"))}),n.checked=!1,n.removeAttribute("required"),a.classList.add("d-none"))})}),r.forEach(function(t){t.checked&&i.push(t.getAttribute("name")),t.parentElement.classList.remove("form-group--error"),t.addEventListener("change",function(t){n.checked=!1,n.removeAttribute("required"),s=!1,t.target.checked?(i.push(t.target.getAttribute("name")),ACC.validation.toggleError(n.id,n.dataset.validationFor,"",!1,e.querySelector("form"),!0),r.forEach(function(e){e.parentElement.classList.remove("form-group--error")})):t.target.checked||(i=i.filter(function(e){return e!==t.target.getAttribute("name")}),0===i.length&&(n.setAttribute("required","true"),r.forEach(function(e){e.parentElement.classList.add("form-group--error")}),ACC.validation.toggleError(n.id,n.dataset.validationFor,"Please select your preferences",!0,e.querySelector("form"),!0)))})}),i.length>0&&(n.removeAttribute("required"),s=!1),n.addEventListener("change",function(t){t.target.checked?(s=!0,i=[],r.forEach(function(e){e.checked=!1,e.parentElement.classList.remove("form-group--error")})):(s=!1,n.setAttribute("required","true"),ACC.validation.toggleError(n.id,n.dataset.validationFor,"Please select your preferences",!0,e.querySelector("form"),!0),r.forEach(function(e){e.parentElement.classList.add("form-group--error")})),ACC.validation.validateField(n,!0,!1)}),events.on("click","form button[type='submit']",function(e){i.length||s||r.forEach(function(e){e.parentElement.classList.add("form-group--error")})})},initMFAUserRegistration:function initMFAUserRegistration(){var t=e.querySelector(".js-register-form"),o=e.getElementById("oktaId"),a=e.querySelector(".js-register-user-details"),r=e.querySelector(".js-mfa-verify-otp"),n=e.querySelector(".js-mfa-continue-cta"),s=e.querySelector(".js-mfa-verify-otp-cta"),i=e.querySelector(".js-mfa-verification-message"),c=e.querySelector(".js-mfa-resend-otp-cta"),l=e.querySelector(".js-otp-timer"),d=e.getElementById("orderCode"),u=d&&d.value?d.value:null,p=u?"/checkout/initiate-guest-registration/".concat(u):"/registration/initiate-registration",m=u?"/checkout/complete-guest-registration/".concat(u):"/registration/complete-registration";var h;if(!(t&&o&&n&&s))return!1;function f(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:15;c.disabled=!0;var t=e;l.textContent="(in ".concat(t,"s)"),h=setInterval(function(){t--,l.textContent="(in ".concat(t,"s)"),t<=0&&(clearInterval(h),c.disabled=!1,l.textContent="")},1e3)}n.addEventListener("click",function(){var e=new FormData(t);
1if(!ACC.validation.isFormValid(t,!0))return ACC.validation.goToError(t,!1),!1;n.classList.add("loading"),fetch(p,{method:"POST",body:e}).then(function(e){if(e.ok&&200===e.status)return e.json();throw e.json().then(function(e){Object.keys(e).forEach(function(o){var a=t.elements[o];a&&(ACC.validation.toggleError(a.id,a.dataset.validationFor,e[o],!0,t,!0),ACC.validation.goToError(t,!1))})}),new Error("Registration form contains validation errors. Please fix them and try again.")}).then(function(_ref5){var t=_ref5.oktaId;t&&t.length>0&&(o.value=t[0]);var s=e.get("email");i.innerHTML=i.textContent.replace("{0}","<strong>".concat(s,"</strong>")),a.style.visibility="hidden",a.style.position="absolute",a.style.pointerEvents="none",a.style.top="-9999px",n.remove(),r.classList.remove("d-none"),r.removeAttribute("disabled"),r.scrollIntoView({behavior:"smooth",block:"center"}),f()}).catch(function(e){return console.error("Error:",e)}).finally(function(){n.classList.remove("loading")})}),s.addEventListener("click",function(){var e=new FormData(t);if(!ACC.validation.isFormValid(t,!0))return!1;s.classList.add("loading"),fetch(m,{method:"POST",redirect:"follow",body:e}).then(function(e){if(!e.redirected){var _e36=t.elements.otpCode;throw ACC.validation.toggleError(_e36.id,_e36.dataset.validationFor,"The security code is incorrect. Please check your email and try again.",!0,t,!0),new Error("OTP verification failed. Please check the code and try again.")}return window.location.href=e.url,e}).catch(function(e){return console.error("Error:",e)}).finally(function(){s.classList.remove("loading")})}),c.addEventListener("click",function(){var e=new FormData;e.append("email",t.elements.email.value),e.append("CSRFToken",t.elements.CSRFToken.value),fetch("/registration/resend-verification-email",{method:"POST",body:e}).then(function(e){if(204===e.status)f();else if(!e.ok)return e.json().then(function(e){throw new Error(e||"Failed to resend verification email")})}).catch(function(e){return console.error("Error:",e)})})}}}(document),ACC.search=function(e){var t=function t(e,_t32){e?e.classList.add(_t32):console.error("".concat(_t32," not found"))};return{_autoload:[["init",!!e.querySelector(".js-site-search")]],options:{endpoint:"/search/autocomplete/SearchBox",minCharactersBeforeRequest:3,waitTimeBeforeRequest:500,displayProductImages:!0,cache:[],query:"/search?q="},init:function init(){forEach(e.querySelectorAll(".js-site-search"),function(e,t){new ACC.search.module(t).bindSearch()});var o=!1;function a(){e.querySelector(".header-alt__components").classList.remove("header-alt__components--search-active"),e.querySelector(".header-alt__search-overlay").classList.remove("header-alt__search-overlay--active"),e.querySelector("body").classList.remove("is-fixed"),o=!1}events.on("scroll",ACC.common.debounce(function(){e.activeElement&&"text"===e.activeElement.type&&e.activeElement.blur()},ACC.search.options.waitTimeBeforeRequest)),events.on("focus",".js-trigger-search",function(){var a=e.querySelector(".search__form"),r=e.querySelector(".header-alt__components"),n=e.querySelector(".header-alt__search-overlay"),s=e.querySelector(".header-alt__search-overlay input.js-site-search"),i=e.querySelector("body"),c=a.getBoundingClientRect();t(r,"header-alt__components--search-active"),t(n,"header-alt__search-overlay--active"),t(i,"is-fixed"),s.focus(),a.style.setProperty("--search-overlay-container-top-offset","".concat(c.height+c.top,"px")),o=!0}),events.on("keyup",e,function(e){27===e.keyCode&&o&&a()}),events.on("click",".search__wrap .glyph--cross",function(){a()}),events.on("touchstart",".search__wrap .glyph--cross",function(e){e.preventDefault(),a()}),events.on("touchend",".search__wrap .glyph--cross",function(e){e.preventDefault()})},module:function module(e){this.config={wrapper:e.closest(".search__wrap"),form:e.closest("form"),input:e,submit:e.closest("form").querySelector("button[type=submit]"),errorMessage:ACC.searchError||"Product auto suggestion is not available at the moment",resultSuggestion:".search__results-suggestion",resultProduct:".search__results-product",seeAllCTA:".search__container .search__cta .btn"}}}}(document),ACC.search.module.prototype={bindSearch:function bindSearch(e){var t=this;function o(e){e.length>=ACC.search.options.minCharactersBeforeRequest&&t.runSearch(e),0===e.length&&t.removeSearch()}t.searchListItems=[],events.on("keyup",this.config.input,ACC.common.debounce(function(e){9!==e.keyCode&&o(e.target.value)},ACC.search.options.waitTimeBeforeRequest)),events.on("focus",this.config.input,function(e){o(e.target.value),t.config.form.classList.add("search__form--active"),t.config.form.querySelector(".form-group").classList.add("form-group--search-active")}),events.on("blur",this.config.input,function(e){t.config.form.classList.remove("search__form--active"),t.config.form.querySelector(".form-group").classList.remove("form-group--search-active"),t.hideSearch()}
1),events.on("blur",".search a",function(e){t.hideSearch()}),events.on("submit",this.config.form,function(e){ACC.adobe.track("site search",{searchTerm:t.config.input.value,searchType:"free text"})}),events.on("click",this.config.resultSuggestion,function(e){var o=e.target.textContent;ACC.adobe.track("site search",{searchTerm:t.config.input.value,searchType:"keyword suggestion",searchSuggestion:o})}),events.on("click",this.config.resultProduct,function(e){var o=e.target.closest(t.config.resultProduct)&&e.target.closest(t.config.resultProduct).dataset.productId;o&&ACC.adobe.track("site search",{searchTerm:t.config.input.value,searchType:"product suggestion",searchSuggestion:o})}),events.on("click",this.config.seeAllCTA,function(e){ACC.adobe.track("site search",{searchTerm:t.config.input.value,searchType:"see all results"})}),events.on("keydown",this.config.input,function(e){40===e.keyCode&&document.querySelector(".search__container")&&(e.preventDefault(),t.searchListItems=Array.from(document.querySelectorAll(".search__results-item a")),t.searchListItems[0].focus())}),events.on("keydown",".search__results-item a",function(e){if(40===e.keyCode||38===e.keyCode){e.preventDefault();var _o18=t.searchListItems.indexOf(e.target);40===e.keyCode&&_o18+1<t.searchListItems.length&&t.searchListItems[_o18+1].focus(),38===e.keyCode&&0!==_o18&&t.searchListItems[_o18-1].focus()}})},runSearch:function runSearch(e){var t,o=this;clearTimeout(t),t=setTimeout(function(){o.config.wrapper.classList.add("loading")},1e3|ACC.config.waitTimeBeforeLoadingAnim),this.source(e).then(function(t){var a="<div class=\"search__container\">";a+="<ul class=\"search__results\">";var r=t.data.filter(function(e){return"autoSuggestion"===e.type}),n=t.data.filter(function(e){return"productResult"===e.type}),s=t.data.showVatPrices;r.length&&(a+="<ul class=\"search__results-list search__results-list--suggestions\">",r.forEach(function(t,r){a+=o.renderItem(t,r+1,e)}),a+="</ul>"),n&&(a+="<ul class=\"search__results-list search__results-list--products\">",n.forEach(function(t,r){a+=o.renderItem(t,r+1,e,s)}),a+="</ul>"),a+="</ul>",a+="<div class=\"search__cta text-center pt-xs-0\"><a href=\""+ACC.search.options.query+e+"\" class=\"btn btn-tertiary mb-xs-0\">See all results</a></div>",a+="</div>",o.removeSearch(),o.renderResult(a)}).catch(function(){var e="<div class=\"search__container\"><div class=\"search__error\">"+o.config.errorMessage+"</div></div>";o.renderResult(e)}).finally(function(){clearTimeout(t),o.config.wrapper.classList.remove("loading")})},renderResult:function renderResult(e){var t=document.createElement("div");t.innerHTML=e,this.config.form.append(t)},removeSearch:function removeSearch(){var e=this.config.form.querySelector(".search__container");e&&e.parentElement.remove()},hideSearch:function hideSearch(){if("false"===this.config.input.dataset.blurResults)return!1;var e=this;setTimeout(function(){document.activeElement.closest(".search__container")||"INPUT"===document.activeElement.tagName||e.removeSearch()},250)},renderItem:function renderItem(e,t,o,a){var r;if("autoSuggestion"===e.type){var n=new RegExp("("+o+")","ig"),s=e.value.replace(n,"<strong>$1</strong>");return e.value=e.value.replace(/[^a-zA-Z0-9 ]/g,""),"<li class=\"search__results-item\">"+(r="<a href='"+ACC.search.options.query+e.value+"' class='search__results-link search__results-suggestion' data-result='"+t+"'><div class='search__results-name'>"+s+"</div></a>")+"</li>"}if("productResult"===e.type){var i=!0===a?e.grossPrice:e.netPrice,c=i.replace("\xA3","").split("."),l=c[0],d=c[1];if(r="<a href='"+ACC.config.encodedContextPath+e.url+"' class=\"product search__results-link search__results-product\" data-result=\""+t+"\"data-product-id=\""+e.code+"\"",r+="data-product-price=\""+e.grossPrice+"\">",null!==e.image&&(r+="<div class='search__results-cell search__results-thumb data-layer-click' data-event='productClick'><img src='"+e.image+"' class='search__results-img' /></div>"),""!==i)r+="<div class='search__results-cell search__results-cell--child "+(null===e.image?"search__results-cell--no-img":"")+"'><div class='search__results-cell search__results-name data-layer-click' data-event='productClick'>"+e.value+"</div><div class='search__results-cell search__results-price data-layer-click' data-event='productClick'><div class='price price--small price--inline justify-content-end'><span class='price__value'>£"+l+"."+d+"</span><span class='price__vat'> "+(!0===a?"inc VAT":"ex VAT")+"</span></div></div></div>";else r+="<div class='search__results-cell'><div class='search__results-name data-layer-click' data-event='productClick'>"+e.value+"</div></div>";return"<li class=\"search__results-item\">"+(r+="</a>")+"</li>"}},source:function source(e){var t=ACC.search;return(e=e.toLowerCase())in t.options.cache?new Promise(function(o,a){o({data:t.options.cache[e]}
1)}):new Promise(function(o,a){fetch("".concat(t.options.endpoint,"?term=").concat(encodeURIComponent(e))).then(function(e){return e.json()}).then(function(a){var r=[];null!==a.suggestions&&forEach(a.suggestions,function(e,t){r.push({value:t.term,url:ACC.config.encodedContextPath+"/search?text="+t.term,type:"autoSuggestion"})}),null!==a.products&&(r.showVatPrices=a.showVatPrices,forEach(a.products,function(e,o){r.push({position:e+1,brand:null!==o.typeDetails?o.typeDetails.brand:"",categoriesPath:null!==o.typeDetails?o.typeDetails.categoriesPath:"",netPrice:null!==o.price?o.price.formattedNetValue:"",retailPrice:null!==o.retailPrice?o.retailPrice.formattedNetValue:"",value:o.name,code:o.code,desc:o.description,manufacturer:o.manufacturer,url:o.url,grossPrice:null!==o.price?o.price.formattedGrossValue:"",type:"productResult",image:null!==o.images&&t.options.displayProductImages?o.images[0].url:null,hasPromotion:null!==o.potentialPromotions&&o.potentialPromotions.length>0,promoRibbon:o.promoRibbon})})),t.options.cache[e]=r,o({data:r})})})}},ACC.storeDetails=function(e){return{_autoload:[["initPanaramic",!!e.querySelector(".js-store-tour")],["render
1StaticStoreMap",!!e.querySelector(".js-store-details-map")],["renderPreferredBranchMap",e.querySelector("#js-branch-card-map")]],storeInformation:e.querySelector("#store_google_map"),renderStaticStoreMap:function renderStaticStoreMap(){if(!this.storeInformation)return!1;var e=this.storeInformation.dataset.latitude,t=this.storeInformation.dataset.longitude,o="https://maps.googleapis.com/maps/api/staticmap?markers=icon:".concat(encodeURIComponent("".concat(window.location.origin).concat(this.storeInformation.dataset.mapicon)),"|").concat(e,",").concat(t,"&zoom=15&size=430x250&scale=2&key=").concat(ACC.config.googleApiKey);this.storeInformation.innerHTML="<img src=\"".concat(o,"\" class=\"w-100\" />")},renderPreferredBranchMap:function renderPreferredBranchMap(){var t=e.querySelector("#js-branch-card-map"),o=t.dataset.lat,a=t.dataset.long,r=encodeURIComponent("".concat(window.location.origin).concat(t.dataset.mapicon));function n(){var e=window.matchMedia("(max-width: 991px)").matches;var n="https://maps.googleapis.com/maps/api/staticmap?markers=icon:".concat(r,"|").concat(o,",").concat(a,"&zoom=16&size=").concat(e?"450x200":"250x250","&key=").concat(ACC.config.googleApiKey);t.setAttribute("src",n)}n(),window.addEventListener("resize",ACC.common.debounce(function(){n()},0))},initPanaramic:function initPanaramic(){ACC.global.addGoogleMapsApi("ACC.storeDetails.loadPanoramicTour")},loadPanoramicTour:function loadPanoramicTour(){var t=e.querySelector(".js-store-tour"),o=t&&t.dataset.embedUrl;if(!o)return!1;var a=o.split(/![0-9][a-zA-Z]/),r=e.getElementById("store-tour");new google.maps.StreetViewPanorama(r,{position:{lat:parseFloat(a[6]),lng:parseFloat(a[7])},pov:{heading:parseFloat(a[8]),pitch:0},addressControl:t.dataset.uiAddress||!1,zoomControl:t.dataset.uiZoom||!1,fullscreenControl:t.dataset.uiFullscreen||!1,linksControl:t.dataset.uiLinks||!1,panControl:t.dataset.uiPan||!1,enableCloseButton:t.dataset.uiClose||!1}),window.addEventListener("resize",ACC.common.debounce(function(){google.maps.event.trigger(r,"resize")},250))}}}(document),ACC.storeLocator=function(e){var t=e.querySelector(".js-store-locator"),o={id:"storeSearch",searchPanel:t,endpointUrl:function endpointUrl(){return this.searchPanel&&this.searchPanel.dataset.url?this.searchPanel.dataset.url+"/data":"/branch-finder/data"},loadStateElement:function loadStateElement(){return this.searchPanel&&"button"===this.searchPanel.dataset.loadState?this.searchPanel.querySelector("button"):this.searchPanel},podClassActive:"store-locator-pod--first-load-active",map:null,geocoder:void 0,mapOptions:{zoom:parseInt(t&&t.dataset.zoom)||11,center:{lat:parseFloat(t&&t.dataset.lat)||51.5,lng:parseFloat(t&&t.dataset.lng)||-.126}},maxZoom:16,mapOffset:{x:0,y:0},strings:{errorMessage:ACC.store&&ACC.store.noResults||"Sorry we did not find any results for that location, please check and try again.",errorMessageFiltered:ACC.store&&ACC.store.noResultsFiltered||"Sorry, no branches near your location meet the selected filters. Please modify your filters and try again.",resultTitle:ACC.store&&ACC.store.resultTitle||"Nearest stores to",geolocateUnsupported:ACC.store&&ACC.store.geolocateUnsupported||"Your device does not support geolocation",geolocateDenied:ACC.store&&ACC.store.geolocateDenied||"We do not have permission to use your location",geolocatePositionUnavailable:ACC.store&&ACC.store.geolocatePositionUnavailable||"Your location cannot be determined",geolocateTimeout:ACC.store&&ACC.store.geolocateTimeout||"Your location cannot be determined",buttonMoreDetails:ACC.store&&ACC.store.buttonMoreDetails||"More details",preferredStore:ACC.store&&ACC.store.preferredStore||"Preferred branch",buttonGetDirections:ACC.store&&ACC.store.buttonGetDirections||"Get directions"}};return{_autoload:[["init",!!t],["branchFinder",!!e.querySelector(".js-local-branch-finder")],["applyStoreFilter",!!e.querySelector(".js-apply-store-filter")],"fetchBranchEmail"],storeData:[],pins:[],geolocation:null,dateHelper:{},scrolling:!1,scrollTimer:!1,searchType:"free text",loading:!1,staticMap:!0,storeFilter:[],storeListIncrement:10,storesRevealed:0,init:function init(
1){var t="https://maps.googleapis.com/maps/api/staticmap?center=54.3,-3.1&zoom=5&size=540x470&scale=2&key=".concat(ACC.config.googleApiKey,"&libraries=marker"),o=e.querySelector(".js-store-locator-map");o&&(o.setAttribute("id","store-locator-map"),o.innerHTML="<img src=\"".concat(t,"\" alt=\"Google UK Map\"/>")),this.initDynamic()},initDynamicMaps:function initDynamicMaps(){this.staticMap&&(ACC.storeLocator.initGMap(),this.staticMap=!1)},initDynamic:function initDynamic(){ACC.global.addGoogleMapsApi("ACC.storeLocator.myMap"),events.on("input",".js-store-locator [data-search-term]",function(e){ACC.storeLocator.searchType="free text"}),events.on("keypress",".js-store-locator [data-search-term]",function(e){if(13===e.keyCode){var t=e.target.value;ACC.storeLocator.getStores(t),ACC.adobe.track("branch search",{searchTerm:t,searchType:ACC.storeLocator.searchType,searchMethod:"branch locator"})}}),events.on("click",".js-store-locator [data-btn-search]",function(e){e.preventDefault(),ACC.storeLocator.searchType="free text";var t=e.target.closest(".js-store-locator").querySelector("[data-search-term]").value;ACC.storeLocator.getStores(t),t&&ACC.adobe.track("branch search",{searchTerm:t,searchType:ACC.storeLocator.searchType,searchMethod:"branch locator"})}),events.on("click",".js-store-locator [data-geolocate]",function(e){e.preventDefault(),ACC.storeLocator.geolocate()}),events.on("click",".js-store-locator-pod label",function(e){if(ACC.storeLocator.scrolling)return!1;if(window.innerWidth<=parseInt(screenMdMax)&&"a"!==e.target.tagName.toLowerCase()){e.preventDefault();var t=e.target.closest("label").querySelector("a.store-locator-pod__details-link");t&&t.href&&(ACC.storeLocator.trackSelection(),window.location=t.href)}}),events.on("click",".js-store-locator-pod .store-locator-pod__details-link",function(){ACC.storeLocator.trackSelection()}),events.on("change",".js-store-locator-pod input[type=radio]",function(t){e.querySelectorAll(".js-store-locator-pod").forEach(function(e){e.classList.contains(o.podClassActive)&&e.classList.remove(o.podClassActive)}),ACC.storeLocator.panToMarker(t.target.dataset.index)});var t=new Date,a=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");this.dateHelper.todayWeekDay=a[t.getDay()],this.dateHelper.currentHHMM=("0"+t.getHours()).slice(-2)+":"+t.getMinutes()},trackSelection:function trackSelection(){if(!this.storeData.data)return!1;var e=this.storeData.data.map(function(e,t){return{name:e.displayName,code:e.branchNumber,distance:e.formattedDistanceGroup,distanceOrder:t+1,preferred:e.preferredStore}}),t={searchTerm:o.searchPanel.querySelector("[data-search-term]").value,searchType:"branch locator",searchMethod:this.searchType,branchResults:e};ACC.adobe.track("branch search",t)},branchFinder:function branchFinder(){events.on("click",".js-local-branch-finder button",function(e){e.preventDefault();var t=e.target.closest(".form-group").querySelector("#branchFinderPostcode").value;ACC.storeLocator.processSelectStore(t)}),events.on("change",".js-branch-selection #branch",function(e){e.preventDefault();var t=e.target.options[e.target.selectedIndex].dataset,o={branchNumber:t.branchnumber,line1:t.line1,line2:t.line2,town:t.town,postalCode:t.postcode,ph
1one:t.phone};ACC.storeLocator.selectedStoreDetails(o)})},myMap:function myMap(){return new Promise(function(e,t){try{o.geocoder=new google.maps.Geocoder,e()}catch(e){t(e)}})},offsetCenter:function offsetCenter(e,t,o,a){var r=Math.pow(2,e.getZoom()),n=e.getProjection().fromLatLngToPoint(t),s=new google.maps.Point(o/r||0,a/r||0),i=new google.maps.Point(n.x-s.x,n.y+s.y);return e.getProjection().fromPointToLatLng(i)},initGMap:function initGMap(){var t=Object.assign(o.mapOptions,{mapId:"store_locator_map",mapTypeId:google.maps.MapTypeId.ROADMAP,mapTypeControl:!1,panControlOptions:{position:google.maps.ControlPosition.TOP_RIGHT},zoomControlOptions:{position:google.maps.ControlPosition.TOP_RIGHT}});o.map=new google.maps.Map(e.getElementById("store-locator-map"),t),o.bounds=new google.maps.LatLngBounds;var a=o.map,r=o.bounds;google.maps.event.addListenerOnce(a,"idle",function(){var n=new google.maps.LatLng(t.center.lat,t.center.lng);r.extend(n);var s=a.getZoom();google.maps.event.addListener(a,"zoom_changed",function(){var e=a.getZoom(),t=s<e,r=o.mapOffset,n={x:t?-Math.abs(r.x/2):r.x/4,y:t?-Math.abs(r.y/2):r.y/4},i=ACC.storeLocator.offsetCenter(a,a.getCenter(),n.x,n.y);a.setCenter(i),s=e});var i=e.querySelector("#store-locator-map iframe");i.removeAttribute("frameborder"),i.setAttribute("title","Google Map area")})},geolocate:function geolocate(){this.initDynamicMaps();var t=ACC.storeLocator.geolocateHelper(),a=this;a.setLoadingState(),t.then(function(e){var t={q:e};o.searchPanel.querySelector("[data-search-term]").value=e,ACC.storeLocator.fetchStores(t).then(function(e){ACC.storeLocator.processFetchStores(e)}),ACC.storeLocator.searchType="geolocation";var a=o.searchPanel.querySelector("[data-search-term]").value;a&&ACC.adobe.track("branch search",{searchTerm:a,searchType:ACC.storeLocator.searchType,searchMethod:"branch locator"})},function(t){var r;r=t,ACC.validation.toggleError(o.id,null,r,!0,e.getElementById("storeSearch")),a.removeLoadingState()}).catch(function(){a.removeLoadingState()})},setMarkers:function setMarkers(t){if(this.staticMap)return!1;var a,r,n,s=o.map,i=this.pins,c=this.geolocation,l=new google.maps.LatLngBounds;if(s){for(i.forEach(function(e){e.setMap(null)}),i=[],a=0;a<t.length;a++){r=new google.maps.LatLng(t[a].latitude,t[a].longitude),l.extend(r);var _o19=e.createElement("img");_o19.src="".concat(ACC.config.themeResourcePath,"/images/stores/pin-").concat(a+1,".svg"),_o19.style.width="22px",_o19.style.height="27.993px",n=new google.maps.marker.AdvancedMarkerElement({position:r,map:s,title:t[a].displayName,content:_o19}),google.maps.event.addListener(n,"click",function(e,t){return function(){ACC.storeLocator.selectStore(t)}}(0,a)),i.push(n)}if(c){r=new google.maps.LatLng(c),l.extend(r);var _t33=e.createElement("img");_t33.src="".concat(ACC.config.themeResourcePath,"/images/stores/geolocation-pin.svg"),_t33.style.width="22px",_t33.style.height="27.993px",n=new google.maps.marker.AdvancedMarkerElement({position:c,map:s,title:"Your location",content:_t33}),i.push(n)}o.bounds=l,this.pins=i;var d=e.getElementById("store-locator-map");window.innerWidth>parseInt(screenMdMax)?(d.style.height="550px",d.style.width="1100px",s.fitBounds(l,0)):s.fitBounds(l),d.style.height=null,d.style.width=null,google.maps.event.addListenerOnce(s,"bounds_changed",function(){o.map.setZoom(Math.min(o.map.getZoom(),o.maxZoom))}),ACC.storeLocator.setCenter()}},setCenter:function setCenter(){var e=o.map,t=o.mapOffset,a=o.bounds,r=ACC.storeLocator.offsetCenter(e,a.getCenter(),t.x/2,0);e.setCenter(r)},panToMarker:function panToMarker(e){if(this.staticMap)return!1;var t=o.map,a=this.pins[e].position;a&&(t.setZoom(o.maxZoom),t.panTo(a),o.bounds=new google.maps.LatLngBounds(a),ACC.storeLocator.setCenter())},populateResults:function populateResults(e){if(e.length){this.clearResults(),ACC.storeLocator.setMarkers(e),o.searchPanel.classList.add("store-locator__search--with-results");for(var t=this.geolocation?"your location":o.searchPanel.querySelector("[data-search-term]").value,a="<div class=\"store-locator__results\"><h2 class=\"mt-0 mb-3 mb-lg-1\">".concat(o.strings.resultTitle," \"").concat(t,"\"</h2><div class=\"store-locator__results-list\">"),r=0;r<e.length;r++){a+=ACC.storeLocator.createstoreHTML(e[r],r)}a+="</div></div>",o.searchPanel.parentElement.insertAdjacentHTML("beforeend",a),ACC.storeLocator.storesRevealed=e.length}else o.searchPanel.classList.remove("store-locator__search--with-results")},createstoreHTML:function createstoreHTML(e,t){if(!e)return!1;var a="";0===t&&(a=o.podClassActive);var r="\n <div class=\"pod store-locator-pod js-store-locator-pod ".concat(a,"\" data-index=\"").concat(t,"\">\n <input class=\"store-locator-pod__radio pod__radio\" t
1ype=\"radio\" id=\"store_").concat(t,"\" name=\"store-entry\" data-index=\"").concat(t,"\" />\n <div class=\"store-locator-pod__block pod__block pod__block--large-shadow pod__block--alternate mb-2\">\n <label for=\"store_").concat(t,"\" class=\"pod__cell pod__cell--pointer\">\n <div class=\"p-md-1\">\n <div class=\"store-locator-pod__index\">\n <span class=\"store-locator-pod__index-block\">").concat(t+1,"</span>\n </div>\n <div class=\"store-locator-pod__title mb-1\">").concat(e.displayName,"</div>");if("true"===e.preferredStore&&(r+="<div class=\"card__image-preferred\">".concat(o.strings.preferredStore,"</div>")),r+="\n <div class=\"strong\">".concat(e.formattedDistance,"</div>\n <div>").concat(e.line1," ").concat(""!==e.line2?e.line2:""," ").concat(e.town," ").concat(e.postalCode,"</div>\n <div class=\"store-locator-pod__more-details\">"),e.openings&&(r+=ACC.storeLocator.openingTime(e.openings)),e.phone&&(r+="<a href=\"tel:".concat(e.phone,"\" class=\"d-flex text-wrap btn btn-tertiary btn-justified align-items-center my-1 w-100\">\n <span class=\"flex-grow-1\">").concat(e.phone,"</span>\n <span class=\"glyph glyph--phone ml-1\"></span>\n </a>")),e.branchEmail){r+="\n <div class=\"js-branch-email\">\n <button class=\"js-contact-branch d-flex text-wrap btn btn-tertiary btn-justified align-items-center my-1 w-100\" data-branch-code=\"".concat(e.url.replace("/branch-finder/","").replace(/-branch$/,""),"\">\n <span class=\"flex-grow-1\">").concat(ACC.labels.storeLocator.storeDetails||"Email Branch","</span>\n <span class=\"glyph glyph--email ml-1\"></span>\n </button>\n </div>")}return e.url&&(r+="\n <div class=\"d-flex\">\n <a href=\"".concat(e.url,"\" class=\"store-locator-pod__details-link mt-1 flex-grow-1\">").concat(o.strings.buttonMoreDetails,"</a>\n <a href=\"").concat(e.directionUrl,"\" class=\"mt-1 flex-grow-1\" target=\"_blank\">").concat(o.strings.buttonGetDirections,"</a>\n </div>")),r+="</div></div></label></div></div>"},processSelectStore:function processSelectStore(t){var o={q:t};this.geolocation=null,this.fetchStores(o).then(function(t){if(!t.data)return!1;var o,a,r=e.querySelector(".js-local-branch-finder #branch");for(a=0;a<t.data.length;a++){o+="<option value=\"".concat(t.data[a].name,"\" data-branchnumber=\"").concat(t.data[a].branchNumber,"\" data-line1=\"").concat(t.data[a].line1,"\" data-line2=\"").concat(t.data[a].line2,"\" data-town=\"").concat(t.data[a].town,"\" data-postcode=\"").concat(t.data[a].postalCode,"\" data-phone=\"").concat(t.data[a].phone,"\">").concat(t.data[a].displayName,"</option>")}var n={branchNumber:t.data[0].branchNumber,line1:t.data[0].line1,line2:t.data[0].line2,town:t.data[0].town,postalCode:t.data[0].postalCode,phone:t.data[0].phone};ACC.storeLocator.selectedStoreDetails(n),r.innerHTML=o,e.querySelector(".js-branch-selection #branch-details").style.display="block"})},selectedStoreDetails:function selectedStoreDetails(t){var o=e.querySelector(".js-local-branch-finder");var a=o.querySelector("#branch-details"),r=o.querySelector("#branchNumber"),n=a.querySelector("[data-address]"),s=a.querySelector("[data-phone]");r.value=t.branchNumber;var i="<div>".concat(t.line1,"</div><div>").concat(t.line2,"</div><div>").concat(t.town,"</div><div>").concat(t.postalCode,"</div>"),c="<div>".concat(t.phone,"</div>");n.innerHTML=i,s.innerHTML=c},openingTime:function openingTime(e){return!(!e&&!e.now)&&"<div class=\"my-1\">"+(e.now.closed?"<span class=\"store-details-icon store-details-icon--closed\">CLOSED</span>":"<span class=\"store-details-icon store-details-icon--opened\">OPEN</span>")+" <strong> "+e.now.openCloseText+"</strong></div>"},selectStore:function selectStore(t){var o,a=e.querySelector(".store-locator-pod[data-index='"+t+"']");if(a){var _e37=a.querySelector("input[type=radio]");_e37.checked=!0,_e37.dispatchEvent(new Event("change")),window.innerWidth>parseInt(screenMdMax)?(o=a.offsetTop-10,a.closest(".store-locator__results").scrollTop=o):(o=a.getBoundingClientRect().top+window.scrollY-100,ACC.storeLocator.scrolling=!0,window.scroll(0,o),ACC.storeLocator.scrollTimer&&clearTimeout(ACC.storeLocator.scrollTimer),ACC.storeLocator.scrollTimer=setTimeout(function(){ACC.storeLocator.scrolling=!1},100))}},getStores:function getStores(e){this.initDynamicMaps();var t={q:e};this.geolocation=null,this.fetchStores(t).then(function(e){ACC.storeLocator.process
1FetchStores(e)}).catch(function(e){console.warn(e),ACC.storeLocator.triggerError(o.strings.errorMessage)})},fetchStores:function fetchStores(e){var t=Object.assign(e,{page:0,filters:ACC.storeLocator.storeFilter.join(",")}),a=this;a.setLoadingState();var r=new URLSearchParams(t).toString(),n=o.endpointUrl()+"?"+r;return new Promise(function(e,t){fetch(n).then(function(e){return e.ok?e.json():t(e)}).then(function(t){e(t)}).catch(function(e){t("Error",e)}).finally(function(){a.removeLoadingState()})})},setLoadingState:function setLoadingState(){clearTimeout(this.loading),this.loading=setTimeout(function(){o.loadStateElement().classList.add("loading")},1e3|ACC.config.waitTimeBeforeLoadingAnim)},removeLoadingState:function removeLoadingState(){clearTimeout(this.loading),o.loadStateElement().classList.remove("loading")},processFetchStores:function processFetchStores(e){e.data.length?(ACC.storeLocator.storeData=e,ACC.common.updateCSRFToken(e.CSRFToken),e.data.length>ACC.storeLocator.storeListIncrement?(ACC.storeLocator.populateResults(e.data.slice(0,ACC.storeLocator.storeListIncrement)),ACC.storeLocator.appendShowMoreCta()):ACC.storeLocator.populateResults(e.data)):ACC.storeLocator.triggerError(o.strings.errorMessage)},resetMap:function resetMap(){if(this.staticMap)return!1;this.pins.forEach(function(e){e.setMap(null)}),this.pins=[],o.map.setZoom(o.mapOptions.zoom),o.bounds=new google.maps.LatLngBounds,o.bounds.extend(new google.maps.LatLng(o.mapOptions.center.lat,o.mapOptions.center.lng)),ACC.storeLocator.setCenter()},clearResults:function clearResults(){ACC.validation.removeFieldStates(o.id,null),o.searchPanel.classList.remove("store-locator__search--with-results");var e=o.searchPanel.parentElement.querySelector(".store-locator__results");e&&e.remove()},triggerError:function triggerError(t){if(this.clearResults(),this.resetMap(),ACC.storeLocator.storeFilter.length>0){o.searchPanel.classList.add("store-locator__search--with-results");var a="\n <div class=\"store-locator__results\">\n <div class=\"alert alert--note\">\n <div class=\"alert__inner\"><div class=\"alert__content\"><p>".concat(o.strings.errorMessageFiltered,"</p></div></div>\n </div>\n </div>");o.searchPanel.parentElement.insertAdjacentHTML("beforeend",a)}else ACC.validation.toggleError(o.id,null,t,!0,e.getElementById("storeSearch"))},geolocateHelper:function geolocateHelper(){return new Promise(function(e,t){navigator.geolocation?navigator.geolocation.getCurrentPosition(function(a){ACC.storeLocator.geolocation={lat:a.coords.latitude,lng:a.coords.longitude},o.geocoder?o.geocoder.geocode({location:ACC.storeLocator.geolocation},function(a,r){if("OK"!==r)return void t(o.strings.geolocateTimeout);var _a12=_slicedToArray(a,1),n=_a12[0];if(!n||!n.address_components)return void t(o.strings.geolocatePositionUnavailable);var s=n.address_components.find(function(e){return e.types.includes("postal_code")});s?e(s.long_name):t(o.strings.geolocatePositionUnavailable)}):t(o.strings.geolocatePositionUnavailable)},function(e){switch(e.code){case 1:t(o.strings.geolocateDenied);break;case 2:t(o.strings.geolocatePositionUnavailable);break;case 3:t(o.strings.geolocateTimeout);break;default:t(o.strings.geolocateUnsupported);}}):t(o.strings.geolocateUnsupported)})},applyStoreFilter:function applyStoreFilter(){events.on("click",".js-apply-store-filter",function(){ACC.storeLocator.storeFilter=[];var t=e.querySelector(".offsite-panel[data-panel-id='store-panel-facets']");var a=Array.from(e.querySelectorAll("input.js-store-filter-selection:checked"));if(a.length>0){var _t34,_r4,n="";a.forEach(function(e){_t34=e.dataset.filterName,_r4=e.dataset.filterCode,ACC.storeLocator.storeFilter.push(_r4),n+="<span class=\"store-locator__filters-item\">".concat(_t34,"</span>")}),e.querySelectorAll(".js-store-locator-filters-count").forEach(function(e){e.innerText=ACC.storeLocator.storeFilter.length}),e.querySelector(".js-store-locator-filters-selected .store-locator__filters-content").innerHTML=n,o.searchPanel.classList.add("store-locator__search--with-filters")}else o.searchPanel.classList.remove("store-locator__search--with-filters");var r=o.searchPanel.querySelector("[data-search-term]").value.trim();r&&ACC.storeLocator.getStores(r),ACC.global.togglePanelDisplay(t,!1)}),ACC.storeLocator.resetStoreFilter()},fetchBranchEmail:function fetchBranchEmail(){events.on("click",".js-contact-branch",function(e){var t=e.target.closest(".
1js-branch-email"),o=e.target.closest(".js-contact-branch");if(o.classList.contains("loading"))return;var a=o.dataset.branchCode;if(!a)return;var r="/branch-finder/".concat(a,"/email");o.classList.add("loading"),fetch(r).then(function(e){if(!e.ok)throw new Error(e.status);return e.json()}).then(function(e){t.innerHTML="\n <a href=\"mailto:".concat(e.email,"\"\n class=\"d-flex text-wrap btn btn-tertiary btn-justified align-items-center my-1 w-100\"\n >\n <span class=\"flex-grow-1\">").concat(e.email,"</span>\n <span class=\"glyph glyph--email ml-1\"></span>\n </a>")}).catch(function(){o.innerHTML="\n <span class=\"flex-grow-1\">Email not available</span>\n <span class=\"glyph glyph--email ml-1\"></span>"}).finally(function(){o.classList.remove("loading")})})},resetStoreFilter:function resetStoreFilter(){events.on("click",".js-reset-store-filter",function(){e.querySelectorAll("input.js-store-filter-selection").forEach(function(e){e.checked=!1}),e.querySelector(".js-apply-store-filter").dispatchEvent(new Event("click"))})},appendShowMoreCta:function appendShowMoreCta(){function t(t){var o=ACC.storeLocator.storesRevealed,a=ACC.storeLocator.storeData.data.length,r=a-o,n=ACC.storeLocator.storeData.data,s="",i=r>ACC.storeLocator.storeListIncrement?o+ACC.storeLocator.storeListIncrement:o+r;ACC.storeLocator.setMarkers(ACC.storeLocator.storeData.data.slice(0,i));for(var c=o;c<i;c++){s+=ACC.storeLocator.createstoreHTML(n[c],c)}e.querySelector(".store-locator__results-list").insertAdjacentHTML("beforeend",s),ACC.storeLocator.storesRevealed=i,i===a&&(t.target.disabled=!0)}e.querySelector(".store-locator__results").insertAdjacentHTML("beforeend","<div class=\"text-center pt-2\">\n <button type=\"button\" class=\"btn btn-tertiary js-store-show-more\">Show more branches</button>\n </div>"),events.off("click",".js-store-show-more",t),events.on("click",".js-store-show-more",t)}}}(document),ACC.tabs={_autoload:["tabs"],tabs:function tabs(){events.on("click","[data-tabs] .tabs__list-item",function(e){var t=e.target.closest(".tabs__list-item");if("LABEL"!==e.target.tagName&&e.preventDefault(),!t||t.classList.contains("active"))return!1;var o=t.closest(".tabs");if(!o)return!1;var a,r=o.querySelectorAll(".tabs__list-item");for(a=0;a<r.length;a++){r[a]!==t&&r[a].classList.remove("active")}t.classList.add("active");var n=o.querySelectorAll(".tabs__content-panel"),s=Array.prototype.slice.call(r).indexOf(t);for(a=0;a<n.length;a++){n[a].classList.remove("active")}n[s]&&n[s].classList.add("active")},!1)}},ACC.toolhire=function(e){return{calendar:function calendar(){var t=ACC.global.formatCalendarDate("startingDate","endDate");if(t){var o=864e5,a=t.endDate.getTime()-t.startDate.getTime(),r=Math.round(a/o);e.getElementById("duration").value=r}}}}(document),ACC.tooltip=function(e){return{_autoload:[["init",!!e.querySelector(".js-tooltip")],["bindEvents",!!e.querySelector(".js-tooltip")]],init:function init(){e.querySelectorAll(".js-tooltip").forEach(function(t){if(!t.dataset.tooltipContent&&!t.querySelector(".js-tooltip-icon"))return!1;var o=e.createElement("span");o.className="tooltip-icon js-tooltip-icon "+t.dataset.tooltipIconClass;var a=t.innerText.split(" "),r=a.pop(),n=e.createElement("span");n.className="align-items-center d-inline-flex no-wrap",n.innerText=r,n.appendChild(o),t.innerHTML=a.join(" ")+" ",t.appendChild(n)})},bindEvents:function bindEvents(){events.on("click",".js-tooltip-icon",ACC.tooltip.showTooltip),events.on("click","body",ACC.tooltip.removeTooltip),window.addEventListener("resize",ACC.common.debounce(function(){ACC.tooltip.removeVisibleTooltip(),ACC.tooltip.findActiveTooltip()},250))},showTooltip:function showTooltip(e){e.preventDefault();var t=e.target;if(t.classList.contains("active"))return!1;ACC.tooltip.findActiveTooltip(),t.classList.add("active"),ACC.tooltip.removeVisibleTooltip(),ACC.tooltip.createTooltip(e)},findActiveTooltip:function findActiveTooltip(){var t=e.querySelector(".js-tooltip-icon.active");if(t)return t.classList.remove("active"),!0},removeVisibleTooltip:function removeVisibleTooltip(){var t=e.querySelector(".tooltip");if(t)return t.remove(),!0},createTooltip:function createTooltip(t){var o,a,r,n=t.target,s=n.closest(".
1js-tooltip").dataset;o=s.tooltipContent,s.tooltipTitle&&(a=s.tooltipTitle),r=e.createElement("div"),r.className="tooltip";var i="";a&&(i+="<h4 class='text-blue'>".concat(a,"</h4>")),i+="<p>".concat(o,"</p>"),r.innerHTML=i,e.body.appendChild(r),function(e){var t=n.getBoundingClientRect(),o=e.getBoundingClientRect(),a=window.innerWidth,r=t.right+window.scrollX,s=t.x+window.scrollX,i=t.y+window.scrollY,c=t.height,l=o.width,d=o.height;e.style.top=parseInt(i)-parseInt(d/2-c/2)+"px",a-r>l?e.style.left="".concat(parseInt(r),"px"):e.style.right=a-parseInt(s)+"px"}(r)},removeTooltip:function removeTooltip(e){var t=e.target;t.classList.contains("js-tooltip-icon")||t.closest(".tooltip")||(ACC.tooltip.removeVisibleTooltip(),ACC.tooltip.findActiveTooltip())}}}(document),ACC.validation=function(e){var t="form-group--error",o="form-group--success",a="password-validation__criteria--valid",r="password-validation__criteria--fail",n={formGroup:".form-group",formGroupDob:".form-group--dob",formGroupSortcode:".form-group--sortcode",formGroupDuration:".form-group--duration",formsToValidate:".js-form-validate",dob:".form-group-dob",sortcode:".form-group-sortcode",duration:".form-group-duration",message:".form-group__message"};return{_autoload:["init",["updateAction",!!e.querySelector(".js-save-later")],["removeFileAction",!!e.querySelector(".js-remove-file")],["creditApplicationSaveForLaterAction",!!e.querySelector(".js-save-for-later")],["uploadFileAction",!!e.querySelector(".js-upload-file")]],init:function init(){if(ACC.data&&ACC.data.validation)try{ACC.validation.inlineValidationInit(),ACC.validation.formValidation(),ACC.validation.passwordValidation(),ACC.validation.pwdToggle(),ACC.validation.passwordReveal()}catch(e){console.log("Error parsing validation rules JSON: "+e)}else console.warn("Validation not initiated. Rules have not been populated.")},checkRegex:function checkRegex(e,t){var o=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"";return new RegExp(t,o).test(e)},getFormGroup:function getFormGroup(t,o,a){return"durationYear"===a||"durationMonth"===a?o.closest(n.formGroupDuration):"dd"===a||"mm"===a||"yyyy"===a?e.getElementById(t).closest(n.formGroupDob):"sortcode"===a?e.getElementById(t).closest(n.formGroupSortcode):o.closest(n.formGroup)},toggleError:function toggleError(a,r,s,i,c){var l=arguments.length>5&&arguments[5]!==undefined?arguments[5]:!0;if(l){var d=e.querySelector("label[for=\""+a+"\"]");if(!d)return console.warn("This form element does not have an ID to allow form validation to work correctly"),!1;i&&c&&ACC.adobe.track("validation error",{errorMessage:s,form:c.id});var u=ACC.validation.getFormGroup(a,d,r);if(!u)return!1;if(i)u.classList.remove(o),u.classList.add(t),u.querySelector(n.message)?u.querySelector(n.message).innerHTML=s:u.insertAdjacentHTML("beforeend","<div class='form-group__message' data-section='"+a+"'>"+s+"</div>");else{var p=u.querySelector(n.message);p&&p.remove(),u.classList.remove(t),u.classList.add(o)}}},removeFieldStates:function removeFieldStates(a,r){var s=e.querySelector("label[for=\""+a+"\"]");s||console.warn("This form element does not have an ID to allow form validation to work correctly");var i=ACC.validation.getFormGroup(a,s,r),c=i.querySelector(n.message);c&&c.remove(),i.classList.remove(t),i.classList.remove(o)},validateGroup:function validateGroup(t,o){for(var a,r,s,i,c=0,l=!1,d=e.querySelector("[id=\""+t+"\"]").closest(n.formGroup).querySelectorAll(".form-control"),u=0;u<d.length;u++){var p=d[u],m=p.closest("form"),h=m.dataset.formId||m.id,f=p.name;if(!h||!f)return!1;var g=h+"."+f.replace(/\[.*\]/,""),y=ACC.data.validation[g]&&ACC.data.validation[g].constraints||null;i||(i=y[0].message),r="true"===p.getAttribute("required"),""!==(s=p.value)&&(["durationMonth","durationYear","dd","mm","yyyy","sortcode"].indexOf(o)>-1&&(s=s.replace(/\D/g,"")),["durationMonth","durationYear"].indexOf(o)>-1&&(s=Math.round(s)),p.value=s);var _e38=parseInt(s)||0;if(c+=_e38,!_e38&&["dd","mm","yyyy"].indexOf(o)>-1&&(l=!0),(a=ACC.validation.runValidationRules(y,r,s)).error)break;d.length-1===u&&(!c&&r||c&&l)&&(a={error:!0,message:i})}return a},validateRadioGroup:function validateRadioGroup(t){for(var o,a,r,s,i,c=e.querySelector("[id=\""+t+"\"]").closest(n.formGroup).querySelectorAll(".form-control"),l=0;l<c.length;l++){var d=c[l],u=d.closest("form"),p=u.dataset.formId||u.id,m=d.name;if(!p||!m)return!1;var h=p+"."+m.replace(/\[.*\]/,""),f=ACC.data.validation[h]&&ACC.data.validation[h].constraints||null;if(i||(i=f[0].message),r="true"===d.getAttribute("required"),s=d.checked,!(a=ACC.validation.runValidationRules(f,r,s)).error){o=null;break}o=a}return o},validateField:function validateField(t){var o=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!0;var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:!0;var r=t.closest("form"),s=r.dataset.formId||r.id,i=t.name;if(!s||!i)return!1;var c,l="configurableContactUsForm"===s?s+"."+i.replace(/[\[\]]/g,""):s+"."+i.replace(/\[.*\]/,""),d=t.id,u="true"===t.getAttribute("required"),p=t.readOnly,m=t.dataset.validationFor,h=ACC.data.validation[l]&&ACC.data.validation[l].constraints||null,f=["checkbox","radio"].indexOf(t.type)>-1?t.checked:t.value.trim(),g=e.querySelector("[id=\""+d+"\"]").closest(n.formGroup);if(!u&&!f&&!g.length||p)return a&&ACC.validation.removeFieldStates(d,m),!1;if(h){if("passwordMatch"===m){var y=e.querySelector("[id=\""+d+"\"]"),v=y.closest(n.formsToValidate).querySelector("[data-validation-for=\"password\"]");y.value===v.value&&v.value?ACC.validation.toggleError(d,m,null,!1,r,o):y.value.length?ACC.validation.toggleError(d,m,ACC.validations.passwordMatch||"Password and password confirmation do n
1ot match.",!0,r,o):ACC.validation.toggleError(d,m,ACC.validations.passwordConfirm||"Please confirm your password.",!0,r,o)}else if(["durationMonth","durationYear","dd","mm","yyyy","sortcode","width","length","wallWidth1","wallLength1","wallWidth2","wallLength2","brickWidth2","brickLength2","mortarJoint2","roomWidth","roomLength","roomHeight","tileAreaWidth","tileAreaLength","slabAreaWidth","slabAreaLength","group"].indexOf(m)>-1){if((c=ACC.validation.validateGroup(d,m))&&c.error)return ACC.validation.toggleError(d,m,c.message,!0,r,o),c.error;if(ACC.validation.toggleError(d,m,null,!1,r,o),["dd","mm","yyyy"].indexOf(m)>-1){var _e39=ACC.validation.checkDOBField(t);if(_e39)return ACC.validation.toggleError(d,m,_e39,!0,r,o),_e39;ACC.validation.toggleError(d,m,null,!1,r,o)}}else if(["radioGroup"].indexOf(m)>-1){if((c=ACC.validation.validateRadioGroup(d))&&c.error)return ACC.validation.toggleError(d,m,c.message,!0,r,o),c.error;ACC.validation.toggleError(d,m,null,!1,r,o)}else if("postcode"===m){f=f.replace(/[^a-zA-Z0-9\s]/g,""),t.value=f;var _e40=ACC.validation.runValidationRules(h,u,f);if(_e40&&_e40.error)return ACC.validation.toggleError(d,m,_e40.message,!0,r,o),_e40.error;ACC.validation.toggleError(d,m,null,!1,r,o)}else{var C=ACC.validation.runValidationRules(h,u,f);if("file"===t.type){var b=ACC.validation.runFileValidationRules(h,d);if(b&&b.error)return ACC.validation.toggleError(d,m,b.message,!0,r,o),b.error}if(C&&C.error)return ACC.validation.toggleError(d,m,C.message,!0,r,o),C.error;ACC.validation.toggleError(d,m,null,!1,r,o)}return!1}return console.warn("No validation rule found."),!1},checkDOBField:function checkDOBField(e){var t=e.closest(".form-group__validation");if(!t)return!1;var o=t.dataset,a=t.querySelectorAll("input");if(!o.ageMax&&!o.ageMin||a.length<3)return!1;var r="".concat(a[1].value,"/").concat(a[0].value,"/").concat(a[2].value),n=ACC.validation.checkAge(r);return(o.ageMax&&n>o.ageMax||!!(o.ageMin&&n<o.ageMin))&&(ACC.validations.dob||"Please enter a valid date")},runValidationRules:function runValidationRules(e,t,o){var a={};if((t||o)&&e)for(var r=0;r<e.length;r++){switch(e[r].type){case"de.hybris.platform.validation.annotations.NotBlank":case"javax.validation.constraints.NotBlank":case"javax.validation.constraints.NotNull":t?o||(a.error=!0,a.message=e[r].message,a.type=e[r].type):o||(a.emptyAndValid=!0);break;case"org.hibernate.validator.constraints.Email":ACC.validation.checkRegex(o,e[r].regexp)||(a.error=!0,a.message=e[r].message,a.type=e[r].type);break;case"javax.validation.constraints.Pattern":o&&(ACC.validation.checkRegex(o,e[r].regexp)||(a.error=!0,a.message=e[r].message,a.type=e[r].type));break;case"javax.validation.constraints.Size":(o.length>e[r].max||o.length<e[r].min)&&(a.error=!0,a.message=e[r].message,a.type=e[r].type);break;case"com.sg.core.validation.GreaterAndLessThanNumber":(parseInt(o)>parseInt(e[r].maximumRange)||parseInt(o)<parseInt(e[r].minimumRange)||isNaN(parseInt(o)))&&(a.error=!0,a.message=e[r].message,a.type=e[r].type);break;case"javax.validation.constraints.Max":(parseInt(o)>parseInt(e[r].value)||isNaN(parseInt(o)))&&(a.error=!0,a.message=e[r].message,a.type=e[r].type);break;case"javax.validation.constraints.Min":(parseInt(o)<parseInt(e[r].value)||isNaN(parseInt(o)))&&(a.error=!0,a.message=e[r].message,a.type=e[r].type);break;case"javax.validation.constraints.AssertTrue":!o&&t&&(a.error=!0,a.message=e[r].message,a.type=e[r].type);break;case"javax.validation.constraints.DecimalMin":(parseFloat(o)<parseFloat(e[r].value)||isNaN(parseFloat(o)))&&(a.error=!0,a.message=e[r].message,a.type=e[r].type);break;case"javax.validation.constraints.DecimalMax":(parseFloat(o)>parseFloat(e[r].value)||isNaN(parseFloat(o)))&&(a.error=!0,a.message=e[r].message,a.type=e[r].type);break;case"javax.validation.constraints.Digits":0===e[r].fraction&&(ACC.validation.checkRegex(o,"^[0-9]*$")||(a.error=!0,a.message=e[r].message,a.type=e[r].type));break;case"com.sg.core.validation.ValidPhone":if(o.length>0){for(var n=0,s=/^[0-9]+$/,i=0;i<o.length;i++){o[i].match(s)&&n++}(n<10||n>16)&&(a.error=!0,a.message=e[r].message,a.type=e[r].type)}}if(a.error||a.emptyAndValid)break}return a},runFileValidationRules:function runFileValidationRules(t,o){var a={},r=e.getElementById(o);for(var _e41=0;_e41<t.length;_e41++){switch(t[_e41].type){case"com.sg.core.validation.MaxFileCount":var _o20=t[_e41].max;if(null==_o20)break;r.files.length>_o20&&(a.error=!0,a.message=t[_e41].message);break;case"javax.validation.constraints.Pattern":var n=t[_e41].regexp;if(null===n)break;if(r.files.length>0)for(var _o21=0;_o21<=r.files.length-1;_o21++){var s=r.files.item(_o21).name;new RegExp(n).test(s)||(a.error=!0,a.message=t[_e41].message)}break;case"javax.validation.constraints.Size":var i=t[_e41].max;if(null===i)break;if(r.files.length>0)for(var _o22=0;_o22<=r.files.length-1;_o22++){var _n4=r.files.item(_o22).size;Math.round(_n4/1024)>=i&&(a.error=!0,a.message=t[_e41].message)}break;case"com.sg.core.validation.MultipleImagesTotalSize":var c=t[_e41].max;if(null===c)break;var l=0;if(r.files.length>0){for(var _e42=0;_e42<=r.files.length-1;_e42++){l+=r.files.item(_e42).size}l>c&&(a.error=!0,a.message=t[_e41].message)}}}return a},pwdPatternTest:function pwdPatternTest(e,t){e?(t.classList.remove(r),t.classList.add(a)):(t.classList.remove(a),t.classList.add(r))},overrideForm:function overrideForm(e,t){var o=!0,a=e.querySelectorAll("input[type=file]");if(!a.length)return!1;a.forEach(function(t){var a=t,r=a.id,n=(e.dataset.formId||e.id)+"."+a.name.replace(/\[.*\]/,""),s=ACC.data.validation[n]&&ACC.data.validation[n].constraints||null,i=[];
1s.forEach(function(e){"de.hybris.platform.validation.annotations.NotBlank"!==e.type&&i.push(e)});var c=a.dataset.validationFor,l=ACC.validation.runValidationRules(i,!0,a.value);if("file"===a.type){var d=ACC.validation.runFileValidationRules(i,r);d&&d.error&&(ACC.validation.toggleError(r,c,d.message,!0,e,true),o=!1)}l&&l.error&&(ACC.validation.toggleError(r,c,l.message,!0,e,true),o=!1)}),o&&(e.querySelector("button[type='submit']").disabled=!0,e.action=t,e.classList.remove("js-form-validate"),e.submit())},updateAction:function updateAction(){events.on("click",".js-save-later",function(e){e.preventDefault();var t=e.target.closest("form"),o=t.dataset.uploadAction+"?saveLater=true";ACC.validation.overrideForm(t,o)})},uploadFileAction:function uploadFileAction(){events.on("click",".js-upload-file",function(e){e.preventDefault();var t=e.target.closest("form"),o=t.dataset.uploadAction+"?uploadFile=true";ACC.validation.overrideForm(t,o)})},removeFileAction:function removeFileAction(){events.on("click",".js-remove-file",function(e){e.preventDefault();var t=e.target;var o=t.dataset.fileid;var a=t.closest("form");if(o)a.action="/my-account/apply-credit/5/remove-file/"+o;else{var r=t.dataset.code;a.action=a.dataset.uploadAction+"/remove-file/"+r}a.classList.remove("js-form-validate"),a.submit()})},creditApplicationSaveForLaterAction:function creditApplicationSaveForLaterAction(){events.on("click",".js-save-for-later",function(e){e.preventDefault();var t=e.target.closest("form");e.target.closest("form").action="/my-account/apply-credit/5/save-for-later",t.submit()})},pwdToggle:function pwdToggle(){events.on("click",".js-form-group-pwd-toggle",function(e){var t=e.target;t.classList.contains("form-group__password--visible")?(t.classList.remove("form-group__password--visible"),t.closest(n.formGroup).querySelector(".form-control").type="password"):(t.classList.remove("form-group__password--visible"),t.classList.add("form-group__password--visible"),t.closest(n.formGroup).querySelector(".form-control").type="text")})},passwordReveal:function passwordReveal(){events.on("keyup","[data-validation-for='password'],[data-validation-for='passwordMatch']",function(e){var t=e.target,o=t.closest(n.formGroup).querySelector(".form-group__password");t.value.length>0?o.classList.add("form-group__password--typing"):o.classList.remove("form-group__password--typing")})},passwordValidation:function passwordValidation(){var t=e.querySelector("[data-validation-for=\"password\"]"),o={charLength:e.querySelector(".password-validation__criteria--length"),lowercase:e.querySelector(".password-validation__criteria--lowercase"),uppercase:e.querySelector(".password-validation__criteria--uppercase"),digit:e.querySelector(".password-validation__criteria--digit"),specialCharacter:e.querySelector(".password-validation__criteria--special-character")},a=function a(){if(t.value.length>=12)return!0},r=function r(){if(/^(?=.*[a-z]).+$/.test(t.value))return!0},n=function n(){if(/^(?=.*[A-Z]).+$/.test(t.value))return!0},s=function s(){if(/^(?=.*[0-9]).+$/.test(t.value))return!0},i=function i(){if(/^(?=.*[.@,\\\-_+\/'%$"&*()^!~]).+$/.test(t.value))return!0};events.on("keyup",t,function(){ACC.validation.pwdPatternTest(a(),o.charLength),ACC.validation.pwdPatternTest(r(),o.lowercase),ACC.validation.pwdPatternTest(n(),o.uppercase),ACC.validation.pwdPatternTest(s(),o.digit),ACC.validation.pwdPatternTest(i(),o.specialCharacter)})},checkAge:function checkAge(e){var t=new Date,o=new Date(e),a=t.getFullYear()-o.getFullYear(),r=t.getMonth()-o.getMonth();return(r<0||0===r&&t.getDate()<o.getDate())&&a--,a},inlineValidationInit:function inlineValidationInit(){var e=[".js-form-validate input:not([type=checkbox]), .js-form-validate input:not([type=radio]), .js-form-validate input:not([type=file]), .js-form-validate textarea",".js-form-validate select, .js-form-validate input[type=checkbox], .js-form-validate input[type=radio], .js-form-validate input[type=file]:not(.js-upload-multiple)"],t=function t(e){ACC.validation.inlineValidation(e.target)};events.off("focusout",e[0],t),events.on("focusout",e[0],t),events.off("change",e[1],t),events.on("change",e[1],t)},inlineValidation:function inlineValidation(e){ACC.validation.validateField(e)},validateAllRequired:function validateAllRequired(e){e.classList.contains(".js-order-form")&&ACC.validation.checkForPaymentForm(e);var t=e.querySelectorAll(".form-group .form-control[required=\"true\"], .form-group.checkbox input[type=checkbox][required=\"true\"], .form-group.radio input[type=radio][required=\"true\"],.form-group__element--select .form-control");t.length&&t.forEach(function(e){isVisible(e)&&ACC.validation.validateField(e)})},checkForPaymentForm:function checkForPaymentForm(e){if("placeOrderForm"===e.dataset.formId){var _t35=e.querySelector(".js-payment-method-tabs #saved"),_o23=_t35&&_t35.dataset.hasSavedCard;if(_t35.classList.contains(".active")&&isVisible(_t35)&&!_o23){e.querySelector(".tabs label[for='paymentMethodNew']").click()}}},checkIfValid:function checkIfValid(e,t){var o,a,r=e.querySelectorAll(".form-group .form-control, .form-group.checkbox input[type=\"checkbox\"]");return r.length&&r.forEach(function(e){isVisible(e)&&(o=ACC.validation.validateField(e,t,!1))&&(a=o)}),a},isFormValid:function isFormValid(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!1;return!ACC.validation.checkIfValid(e,t)},formValidation:function formValidation(){events.on("submit",".js-form-validate",function(e){e.preventDefault(),ACC.validation.submitForm(e)})},submitForm:function submitForm(e){var t=!1,o=!1,a=!1;var r=e.target.closest("form");return o=ACC.validation.checkForMultiUpload(r),t=ACC.validation.isFormValid(r,!0),a&&r.dataset.disableOnSubmit&&r.querySelectorAll("[type=submit]").forEach(function(e){e.disabled=!0}),o||!t||r.dataset.invalid?r.dataset.disableScroll||ACC.validation.goToError(r,a):(a=!0,r.submit()),a},checkForMultiUpload:function checkForMultiUpload(e){var o=!1,a=e.querySelectorAll(".js-upload-multiple");return a.length&&a.forEach(function(e){e.removeAttribute("disabled"),e.closest(".form-group").classList.contains(t)&&(o=!0)}),o},goToError:function goToError(o,a){if(!o)return!1;if(!a){var r=o.querySelector("."+t);if(!r)return!1;var n=e.querySelector(".js-sticky-header"),s=n&&n.offsetHeight||0,i=r.closest(".modal__container"),c=i?r.getBoundingClientRect().top+i.scrollTop||0:r.getBoundingClientRect().top+window.scrollY||0,l=window.pageYOffset>c;c&&(e.querySelector(i?".modal__container":"html,body").scrollTop=i?c:l?c-s:c)}}}}(document),ACC.wishlist=function(e){var t={selectAll:e.querySelector(".js-wishlist-select-all"),addSelectedToCartForm:e.getElementById("js-wishlist-add-selected-form"),addSelectedToCartButton:e.querySelector(".js-wishlist-select-add"),selectedCount:e.querySelector(".js-wishlist-selected-count"),removeSelectedForm:e.getElementById("js-wishlist-remove-selected-form"),removeSelectedButton:e.querySelector(".js-wishlist-select-remove"),entry:e.querySelectorAll(".js-wishlist-select-entry")};return{_autoload:[["wishlistToggleEntry",!!e.querySelector(".js-wishlist-select-entry")],["wishlistToggleEntriesAll",!!e.querySelector(".js-wishlist-select-all")],["wishlistRemoveSelected",!!e.querySelector(".js-wishlist-select-remove")],["wishlistAddSelectedToTrolley",!!e.querySelector(".js-wishlist-select-add")],["wishlistRename",!!e.querySelector(".js-wishlist-rename")],["wishlistCreate",!!e.querySelector(".js-wishlist-create")],["wishlistDelete",!!e.querySelector(".js-wishlist-delete")],["wishlistFormValidate",!!e.querySelector(".js-wishlist-form-validate")],["wishlistFormReset",!!e.querySelector(".js-wishlist-form-reset")]],wishlistRename:function wishlistRename(){events.on("click",".js-wishlist-rename",function(e){e.preventDefault(),MicroModal.show("modal-wishlist-rename",{disableFocus:!0,onClose:ACC.wishlist.wishlistFormReset})})},wishlistCreate:function wishlistCreate(){events.on("click",".js-wishlist-create",function(e){e.preventDefault(),MicroModal.show("modal-wishlist-create",{disableFocus:!0,onClose:ACC.wishlist.wishlistFormReset})})},wishlistDelete:function wishlistDelete(){events.on("click",".js-wishlist-delete",function(e){e.preventDefault(),MicroModal.show("modal-wishlist-delete",{disableFocus:!0})})},wishlistFormValidate:function wishlistFormValidate(){events.on("click",".js-wishlist-form-validate [type=submit]",function(e){e.preventDefault();var t=e.target.closest("form"),o=t.querySelector(".js-wishlist-new-name"),a=!1;if(ACC.validation.validateAllRequired(t),a=ACC.validation.isFormValid(t),!a)return!1;var r=o.value;fetch("/my-account/project-list/status?wishlistName="+encodeURIComponent(r)).then(function(e){return e.json()}).then(function(e){var a=e.exists,r=e.message,n=o.getAttribute("id"),s=o.dataset.validationFor;if(a)return ACC.validation.toggleError(n,s,r,!0,t,!0),!1;t.submit()})})},wishlistFormReset:function wishlistFormReset(e){e.querySelector(".js-reset-form").click()},wishlistToggleEntry:function wishlistToggleEntry(){var e=t.addSelectedToCartForm,o=t.selectedCount,a=t.selectAll,r=t.removeSelectedButton,n=t.entry;events.on("change",".js-wishlist-select-entry",function(t){if(t.target.checked){e.classList.remove("hide"),r.disabled=!1;var _t36=Array.prototype.filter.call(n,function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)});ACC.wishlist.getSelectedEntries().length===_t36.length&&(a.checked=!0)}else a.checked=!1,0===ACC.wishlist.getSelectedEntries().length&&(e.classList.add("hide"),r.disabled=!0);ACC.wishlist.getSelectedEntries().length>0&&(o.textContent=ACC.wishlist.getSelectedEntries().length)})},wishlistToggleEntriesAll:function wishlistToggleEntriesAll(){var e=t.addSelectedToCartForm,o=t.selectedCount,a=t.selectAll,r=t.removeSelectedButton;events.on("change",a,function(a){var n=a.target,s=t.entry,i=!!n.checked;
1s.forEach(function(e,t){e.checked=i}),i?(e.classList.remove("hide"),r.disabled=!1):(e.classList.add("hide"),r.disabled=!0),o.textContent=ACC.wishlist.getSelectedEntries().length})},wishlistRemoveSelected:function wishlistRemoveSelected(){var e=t.removeSelectedForm,o=t.removeSelectedButton;events.on("click",o,function(t){return t.preventDefault(),ACC.wishlist.modifySelected(e)})},wishlistAddSelectedToTrolley:function wishlistAddSelectedToTrolley(){var e=t.addSelectedToCartForm,o=t.addSelectedToCartButton;events.on("click",o,function(t){return t.preventDefault(),ACC.wishlist.modifySelected(e)})},modifySelected:function modifySelected(e){if(!e)return!1;var t=ACC.wishlist.getSelectedEntries();if(t.length){e.querySelectorAll("input[type='hidden']:not([name='CSRFToken']):not([name='listUid'])").forEach(function(e){return e.remove()});var o="";return t.forEach(function(e,a){o+="<input type=\"hidden\" name=\"entriesCodes[".concat(a,"]\" value=\"").concat(t[a].dataset.entryId,"\" />")}),e.insertAdjacentHTML("beforeend",o),e.submit(),!0}return!1},getSelectedEntries:function getSelectedEntries(){var t=e.querySelectorAll(".js-wishlist-select-entry:checked");return Array.prototype.filter.call(t,function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)})}}}(document);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.