window.enValidateSetupComplete=!1;var readyForSetupTimer,allFieldsCheckedTimer,enClasses={form:"en__component",error:"en__field__error",splitText:"en__field__input--splittext",tripleText:"en__field__input--tripletext",radioWithInput:"en__field--withOther",selectWithInput:"en__field--withOther",splitSelect:"en__field--splitselect",tripleSelect:"en__field--tripleselect"},enFormSelector="form."+enClasses.form,enSubmitButtonSelector=".en__submit button",enSubmitContainerSelector=".en__submit",enSubmitErrorMessagesSelector=".en__errorList",enFieldNames={card:{holder:"supporter.creditCardHolderName",number:"transaction.ccnumber",expiry:"transaction.ccexpire",cvv:"transaction.ccvv"}},validators={required:"req",email:"emal",amount:"amnt",alphaNumeric:"alph",requiredAlphaNumeric:"ralp",restrictedAlphaNumeric25Characters:"aspm",numeric:"num",requiredNumeric:"rnum",date:"date",requiredDate:"rdat",custom:"cust"},remoteValidators=[],specialValidators={optional:"optional",pcaBankSortCodeUK:"pca-bank-sort-code-uk",pcaBankAccountUK:"pca-bank-account-uk",pcaBankNameUK:"pca-bank-name-uk",bankSortCodeUK:"bank-sort-code-uk",bankAccountUK:"bank-account-uk",creditCardHolder:"credit-card-holder",creditCardNumber:"credit-card-number",creditCardExpiry:"credit-card-expiry",creditCardCVV:"credit-card-cvv",paymentType:"payment-type",phoneNumberUK:"phone-number-uk",postCodeUS:"post-code-us",phoneNumberUSCanada:"phone-number-us-canada",dateyyyymmdd:"date-yyyy-mm-dd",postCodeInternational:"post-code-international",phoneNumberInternational:"phone-number-international",phoneNumberInternationalOptional:"phone-number-international-optional",addressLoqateAutocomplete:"address-loqate",country:"country",nhsNumberUK:"nhs-number-uk"},specialValidatorClientReplacements={"credit-card-number":[{"|":""}],"credit-card-cvv":[{"|":""}],"bank-sort-code-uk":[{"2,2":"6,6"}],"pca-bank-sort-code-uk":[{"2,2":"6,6"}]},specialValidatorsClient={postCodeInternational:{gb:/^[A-Z,a-z]{1,2}\d[A-Z,a-z\d]?\s*\d[A-Z,a-z]{2}(?=|---post-code-uk___)(?=|6,8__-__)$/,uk:/^[A-Z,a-z]{1,2}\d[A-Z,a-z\d]?\s*\d[A-Z,a-z]{2}(?=|---post-code-uk___)(?=|6,8__-__)$/,us:/^[0-9]{5}(?:-[0-9]{4})?(?=|---post-code-us___)$/},phoneNumberInternational:{gb:/^\+?[0-9]{10,13}(?=|---phone-number-uk___`+)(?=|13,15__-__)$/,uk:/^\+?[0-9]{10,13}(?=|---phone-number-uk___`+)(?=|13,15__-__)$/,us:/^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[0-9]{7})(?=|---phone-number-us-ca___`-`(`)` )$/,ca:/^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[0-9]{7})(?=|---phone-number-us-ca___`-`(`)` )$/}},paymentProcessorCardTypes={worldpay:{amex:"amex",dankort:"dankort",diners_club_carte_blanche:"diners",diners_club_international:"diners",discover:"discover",jcb:"jcb",laser:"laser",maestro:"maestro",mastercard:"mastercard",uatp:"",visa:"visa",visa_electron:"visa"},rsm2000:{amex:"american express",dankort:"",diners_club_carte_blanche:"diners club",diners_club_international:"diners club",discover:"",jcb:"japan credit bureau",laser:"",maestro:"maestro",mastercard:"mastercard",uatp:"",visa:"visa",visa_electron:"visa electron"},"paypal-canada":{amex:"",dankort:"",diners_club_carte_blanche:"",diners_club_international:"",discover:"",jcb:"",laser:"",maestro:"",mastercard:"mastercard",uatp:"",visa:"visa",visa_electron:"visa"},"paypal-uk":{amex:"",dankort:"",diners_club_carte_blanche:"",diners_club_international:"",discover:"",jcb:"",laser:"",maestro:"maestro",mastercard:"mastercard",uatp:"",visa:"visa",visa_electron:"visa"},"paypal-usa":{amex:"american express",dankort:"",diners_club_carte_blanche:"",diners_club_international:"",discover:"discover",jcb:"",laser:"",maestro:"",mastercard:"mastercard",uatp:"",visa:"visa",visa_electron:"visa"},iats:{amex:"american express",dankort:"",diners_club_carte_blanche:"",diners_club_international:"",discover:"discover",jcb:"",laser:"",maestro:"maestro",mastercard:"mastercard",uatp:"",visa:"visa",visa_electron:"visa"},vantiv:{amex:"AX",dankort:"",diners_club_carte_blanche:"DC",diners_club_international:"DC",discover:"DI",jcb:"JC",laser:"",maestro:"",mastercard:"MC",uatp:"",visa:"VI",visa_electron:"VI"},"ip-payments":{amex:"amex",dankort:"",diners_club_carte_blanche:"diners",diners_club_international:"diners",discover:"",jcb:"jcb",laser:"",maestro:"",mastercard:"mastercard",uatp:"",visa:"visa",visa_electron:"visa"},stripe:{amex:"amex",dankort:"",diners_club_carte_blanche:"diners",diners_club_international:"diners",discover:"discover",jcb:"JCB",laser:"",maestro:"",mastercard:"mastercard",uatp:"",visa:"visa",visa_electron:"visa"},paysafe:{amex:"amex",discover:"discover",mastercard:"mastercard",visa:"visa"}},paymentTypeCardValue="card",loqateAddressFields=[],loqateAddressEntryField="",waitingForOtherScripts=!1,formChecked=!1,bankAccountDirty=!1,bankSortCodeDirty=!1,creditCardExpiryYearDirty=!1;function doSetup(){void 0===window.EngagingNetworks||waitingForOtherScripts||"undefined"!=typeof enValidateDisable&&enValidateDisable||(clearInterval(readyForSetupTimer),getValidationOptions(),addAccessibilityExtras(),moveTopOfPageErrorMessages(),limitFieldLengths(),addSortCodeAutoTabbing(),addNumericKeyPads(),addDonationAmountSwitching(),addressLoqateSetup(),addExtraShareButtons(),setupMediaUploads(),populateStoredFieldValues(),addValidators(),addSubmitValidator(),repopulateAfterSubmit(),setupScrollingPage(),completeSetup())}function getValidationOptions(){for(var input,i=0;i<window.EngagingNetworks.validators.length;i++)input=getInput(window.EngagingNetworks.validators[i].componentId),window.EngagingNetworks.validators[i].container=getInputContainer(window.EngagingNetworks.validators[i].componentId),input.length?(window.EngagingNetworks.validators[i].fieldName=input.attr("name"),window.EngagingNetworks.validators[i].fieldType=getInputType(input.attr("name"))):window.EngagingNetworks.validators[i].fieldType="on-different-page",window.EngagingNetworks.validators[i].errorMessageOriginal=window.EngagingNetworks.validators[i].errorMessage,window.EngagingNetworks.validators[i].errorMessage=fixErrorMessages(window.EngagingNetworks.validators[i].errorMessage);window.EngagingNetworks.validators=$.grep(window.EngagingNetworks.validators,function(validator){return"on-different-page"!==validator.fieldType}),window.EngagingNetworks.validators=$.map(window.EngagingNetworks.validators,function(validator){var specialValidator=getSpecialValidator(validator.format);return specialValidatorClientReplacements[specialValidator]&&$.each(specialValidatorClientReplacements[specialValidator],function(index,item){$.each(item,function(findText,replaceText){validator.format=validator.format.replace(findText,replaceText)})}),validator})}function fixErrorMessages(errorMessage){return errorMessage=errorMessage.replace("null is a mandatory form field","This is a mandatory form field")}function getInputContainer(componentId){return $(".en__field--"+componentId)}function getInput(inputs){var selects=$(".en__field--"+inputs).find("select"),textareas=$(".en__field--"+inputs).find("textarea"),inputs=$(".en__field--"+inputs).find("input").not('[name*="delimiter"]');return 0<selects.length?selects:0<textareas.length?textareas:inputs}function getInputType(container){var input=$('[name="'+container+'"]'),container=getValidationRule(container).container;return input.hasClass(enClasses.splitText)?"splitText":input.hasClass(enClasses.tripleText)?"tripleText":container.hasClass(enClasses.radioWithInput)&&"radio"===input.attr("type")?"radioWithInput":container.hasClass(enClasses.selectWithInput)?"selectWithInput":container.hasClass(enClasses.splitSelect)?"splitSelect":container.hasClass(enClasses.tripleSelect)?"tripleSelect":input.attr("type")?input.attr("type"):input.prop("tagName").toLowerCase()}function addValidators(){for(var i=0;i<window.EngagingNetworks.validators.length;i++)addValidator(window.EngagingNetworks.validators[i].fieldName),"radioWithInput"!==window.EngagingNetworks.validators[i].fieldType&&"selectWithInput"!==window.EngagingNetworks.validators[i].fieldType||addValidator(window.EngagingNetworks.validators[i].fieldName+".other");"undefined"!=typeof paymentTypeHideShow&&paymentTypeHideShow&&addPaymentTypeChange()}function addValidator(fieldName){var fieldNamePure=-1<fieldName.indexOf(".other")?fieldName.substring(0,fieldName.indexOf(".other")):fieldName;"radioWithInput"===getInputType(fieldNamePure)||"selectWithInput"===getInputType(fieldNamePure)?-1<fieldName.indexOf(".other")?$('[name="'+fieldName+'"]').blur(function(){validateField(fieldNamePure,!0,$(this)),storeFieldValue(fieldNamePure,getValue(fieldNamePure))}):($('[name="'+fieldName+'"]').change(function(){validateField(fieldNamePure,!0,$(this)),storeFieldValue(fieldNamePure,getValue(fieldNamePure))}),"radioWithInput"===getInputType(fieldNamePure)&&$('[name="'+fieldName+'"]').last().off("change")):$('[name="'+fieldName+'"]').blur(function(){var regexString=getValidationRule(fieldName).format;RegExp(regexString);getSpecialValidator(regexString)===specialValidators.creditCardExpiry&&("splitSelect"===getValidationRule(fieldName).fieldType&&isCreditCardExpiryYear($(this).children("option").last().val())||"splitText"===getValidationRule(fieldName).fieldType&&$(this).is($('[name="'+fieldName+'"]').eq(1)))&&(creditCardExpiryYearDirty=!0),validateField(fieldNamePure,!0,$(this)),storeFieldValue(fieldNamePure,getValue(fieldNamePure))})}function addPaymentTypeChange(){var paymentTypeInput,creditCardHolderField,creditCardNumberField,creditCardExpiryField,creditCardCVVField,paymentTypeField=getFieldBySpecialValidator(specialValidators.paymentType);paymentTypeField&&(paymentTypeInput=$('[name="'+paymentTypeField+'"]'),creditCardHolderField=getFieldBySpecialValidator(specialValidators.creditCardHolder),creditCardNumberField=getFieldBySpecialValidator(specialValidators.creditCardNumber),creditCardExpiryField=getFieldBySpecialValidator(specialValidators.creditCardExpiry),creditCardCVVField=getFieldBySpecialValidator(specialValidators.creditCardCVV),paymentTypeInput.change(function(){$('[name="'+paymentTypeField+'"]:checked').val()===paymentTypeCardValue?(creditCardHolderField&&getParent(creditCardHolderField).show(),getParent(creditCardNumberField).show(),getParent(creditCardExpiryField).show(),getParent(creditCardCVVField).show()):(creditCardHolderField&&getParent(creditCardHolderField).hide(),getParent(creditCardNumberField).hide(),getParent(creditCardExpiryField).hide(),getParent(creditCardCVVField).hide())}))}function fieldExistsOnPage(fieldName){return 0<$('[name="'+fieldName+'"]').length}function cardFieldsExistOnPage(){return fieldExistsOnPage(enFieldNames.card.number)||fieldExistsOnPage(enFieldNames.card.expiry)||fieldExistsOnPage(enFieldNames.card.cvv)}function allFieldsChecked(){return!remoteValidators.length&&(clearInterval(allFieldsCheckedTimer),!0)}function addSubmitValidator(){window.enOnValidate=function(){return new Promise(function(resolve,reject){addressLoqateShowFields(creditCardExpiryYearDirty=!0),validateAllFields();var errorsAfterSynchronousValidation=anyErrors();allFieldsCheckedTimer=setInterval(()=>{var errorsAfterAsynchronousValidation,extraScrollOffset;allFieldsChecked()&&(errorsAfterAsynchronousValidation=anyErrors(),errorsAfterSynchronousValidation||errorsAfterAsynchronousValidation?(validateAllFields(),"undefined"==typeof errorMessagePosition||"before"===errorMessagePosition?extraScrollOffset=0:"after"===errorMessagePosition&&(extraScrollOffset=100),void 0!==window.enValidateExtraScrollOffset&&(extraScrollOffset+=window.enValidateExtraScrollOffset),$("."+enClasses.error).length&&$("html, body").animate({scrollTop:$("."+enClasses.error).first().offset().top-extraScrollOffset},500),reject()):(void 0!==window.onENValidateValidationCompleteArray&&window.onENValidateValidationCompleteArray.length&&$.each(window.onENValidateValidationCompleteArray,function(index,item){item()}),void 0!==window.doNotSubmit&&window.doNotSubmit?reject():(cardFieldsExistOnPage()&&"stripe"===paymentProcessor&&(showSubmitInProgress(!0),window.monitorSubmitENErrorMessagesTimer=setInterval(monitorSubmitENErrorMessages,500)),resolve())))},500)})}}function showSubmitInProgress(isInProgress){const submitButtonContainer=$(enSubmitContainerSelector);isInProgress?($(enSubmitErrorMessagesSelector).children().remove(),submitButtonContainer.addClass("envalidate__submit--in-progress")):submitButtonContainer.removeClass("envalidate__submit--in-progress")}function monitorSubmitENErrorMessages(){$(enSubmitErrorMessagesSelector).children().length&&(clearInterval(window.monitorSubmitENErrorMessagesTimer),showSubmitInProgress(!1))}function moveTopOfPageErrorMessages(){if(window.enValidateTopOfPageErrorMessages&&window.enValidateTopOfPageErrorMessages.selector){var selector=window.enValidateTopOfPageErrorMessages.selector,position=window.enValidateTopOfPageErrorMessages.position||"before",topOfPageErrorMessages=$(enSubmitErrorMessagesSelector);const newLocationForErrorMessages=$(selector);topOfPageErrorMessages.length&&newLocationForErrorMessages.length&&("before"==position?newLocationForErrorMessages.before(topOfPageErrorMessages):newLocationForErrorMessages.after(topOfPageErrorMessages),window.showHideENErrorMessagesTimer=setInterval(showHideENErrorMessages,500))}}function showHideENErrorMessages(){const topOfPageErrorMessages=$(enSubmitErrorMessagesSelector);var extraScrollOffset;topOfPageErrorMessages.children().length?topOfPageErrorMessages.is(":hidden")&&(topOfPageErrorMessages.show(),extraScrollOffset=window.enValidateExtraScrollOffset||0,$([document.documentElement,document.body]).animate({scrollTop:topOfPageErrorMessages.offset().top-extraScrollOffset},500)):topOfPageErrorMessages.is(":visible")&&topOfPageErrorMessages.hide()}function getValidationRule(fieldName){for(var i=0;i<window.EngagingNetworks.validators.length;i++)if(window.EngagingNetworks.validators[i].fieldName===fieldName)return window.EngagingNetworks.validators[i]}function setValidationRule(fieldName,validationRule){for(var i=0;i<window.EngagingNetworks.validators.length;i++)window.EngagingNetworks.validators[i].fieldName===fieldName&&(window.EngagingNetworks.validators[i]=validationRule)}function getValidationType(fieldName){return getValidationRule(fieldName).type.toLowerCase()}function getValue(fieldName){var value,input=$('[name="'+fieldName+'"]'),inputChecked=$('[name="'+fieldName+'"]:checked'),inputLast=$('[name="'+fieldName+'"]:last'),inputOther=$('[name="'+fieldName+'.other"]');switch(getValidationRule(fieldName).fieldType){case"checkbox":return value=[],$.each(inputChecked,function(){value.push($(this).val())}),value;case"radio":return input.is(":checked")?inputChecked.val():"";case"radioWithInput":return input.is(":checked")&&!inputLast.is(":checked")?inputChecked.val():input.is(":checked")&&inputLast.is(":checked")?inputOther.val():"";case"selectWithInput":return(input[0].selectedIndex===input[0].length-1?inputOther:input).val();case"splitSelect":case"tripleSelect":return value=[],$.each(input,function(){value.push($(this).val())}),value;case"splitText":case"tripleText":return value=[],input.each(function(index){value.push($(this).val())}),value;default:return input.val()}}function validateAllFields(){for(var i=0;i<window.EngagingNetworks.validators.length;i++)validateField(window.EngagingNetworks.validators[i].fieldName)}function validateField(fieldName,useSpecialValidator,element){var result;if(void 0===useSpecialValidator&&(useSpecialValidator=!0),void 0===element&&(element=null),fieldIsHidden(fieldName))result=!0;else switch(getValidationType(fieldName)){case validators.required:result=validateRequired(getValue(fieldName),fieldName,element);break;case validators.email:result=validateEmail(getValue(fieldName));break;case validators.amount:result=validateAmount(getValue(fieldName),fieldName);break;case validators.alphaNumeric:result=validateAlphaNumeric(getValue(fieldName));break;case validators.requiredAlphaNumeric:result=validateRequiredAlphaNumeric(getValue(fieldName));break;case validators.restrictedAlphaNumeric25Characters:result=validateRestrictedAlphaNumeric25Characters(getValue(fieldName),getValidationRule(fieldName).format);break;case validators.numeric:result=validateNumeric(getValue(fieldName));break;case validators.requiredNumeric:result=validateRequiredNumeric(getValue(fieldName));break;case validators.custom:result=validateCustom(fieldName,getValue(fieldName),useSpecialValidator,element);break;default:result=validateRegular(getValue(fieldName),getValidationRule(fieldName).format)}!1===result?addErrorMsg(fieldName):!0===result&&removeErrorMsg(fieldName)}function validateCustom(fieldName,value,testValue,regex){void 0===testValue&&(testValue=!0),void 0===regex&&(regex=null);var regexString=getValidationRule(fieldName).format,regex=RegExp(regexString),specialValidator=getSpecialValidator(regexString);if(testValue&&specialValidator){switch(specialValidator){case specialValidators.optional:return!0;case specialValidators.pcaBankSortCodeUK:bankSortCodeDirty=!0,sortCodeFieldUKIsFirst()&&!bankAccountDirty||validatePcaBankDetailsUK();break;case specialValidators.pcaBankAccountUK:bankAccountDirty=!0,(sortCodeFieldUKIsFirst()||bankSortCodeDirty)&&validatePcaBankDetailsUK();break;case specialValidators.bankSortCodeUK:bankSortCodeDirty=!0,sortCodeFieldUKIsFirst()&&!bankAccountDirty||validateBankDetailsUK();break;case specialValidators.bankAccountUK:bankAccountDirty=!0,(sortCodeFieldUKIsFirst()||bankSortCodeDirty)&&validateBankDetailsUK();break;case specialValidators.creditCardHolder:return!shouldValidateCreditCard()||validateField(fieldName,!1);case specialValidators.creditCardNumber:return!shouldValidateCreditCard()||validateCreditCardNumber();case specialValidators.creditCardExpiry:return!shouldValidateCreditCard()||!creditCardExpiryYearDirty||validateCreditCardExpiry();case specialValidators.creditCardCVV:return!shouldValidateCreditCard()||validateField(fieldName,!1);case specialValidators.dateyyyymmdd:return validateDate(value,"yyyy-mm-dd");case specialValidators.postCodeInternational:case specialValidators.phoneNumberInternational:var specialValidatorKey=getKey(specialValidators,specialValidator),countryCode=getFieldBySpecialValidator(specialValidators.country)?getValue(getFieldBySpecialValidator(specialValidators.country)):null;return specialValidatorKey&&countryCode?validateSpecialClient(value,fieldName,specialValidatorKey,countryCode):validateField(fieldName,!1);case specialValidators.addressLoqateAutocomplete:return validateField(fieldName,!1);case specialValidators.nhsNumberUK:return validateNHSNumberUK(fieldName);default:return validateField(fieldName,!1)}return null}testValue=value.constructor===Array?value.join(""):value;return regex.test(testValue)}function validateRequired(value,fieldName,element){if(void 0===element&&(element=null),fieldName=void 0===fieldName?null:fieldName){var inputType=getInputType(fieldName),inputs=$('[name="'+fieldName+'"]');if(("splitText"===inputType||"tripleText"===inputType||"splitSelect"===inputType||"tripleSelect"===inputType)&&element&&!element.is(inputs.last())&&!hasErrorMsg(fieldName))return null}if(value.constructor!==Array)return 0<value.length;if(0===value.length)return!1;var valid=!0;return $.each(value,function(index,item){item||(valid=!1)}),valid}function validateRegular(value,regexString){return new RegExp(regexString).test(value)}function validateEmail(value){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(value)}function validateAmount(value,min){var max=getValidationRule(min).format;if(value=parseFloat(value),max&&-1!==max.indexOf("~")){min=parseFloat(max.split("~")[0]),max=parseFloat(max.split("~")[1]);return(isNaN(min)||min<=value)&&(isNaN(max)||value<=max)}return 0<value}function validateAlphaNumeric(value){return/^$|^[a-zA-Z0-9]+$/.test(value)}function validateRequiredAlphaNumeric(value){return/^[a-z0-9]+$/i.test(value)}function validateRestrictedAlphaNumeric25Characters(value,regex){regex=new RegExp(regex);return Boolean(value.length&&regex.test(value))}function validateNumeric(value){return/^$|^[0-9]+$/.test(value)}function validateRequiredNumeric(value){return/^[0-9]+$/i.test(value)}function validateDate(value,dateFormat){return moment(value,dateFormat,!0).isValid()}function validateSpecialClient(value,fieldName,specialValidator,clientValidatorKey){return clientValidatorKey=clientValidatorKey&&clientValidatorKey.toLowerCase(),specialValidator&&clientValidatorKey&&specialValidatorsClient[specialValidator][clientValidatorKey]?specialValidatorsClient[specialValidator][clientValidatorKey].test(value):validateRequired(value,fieldName)}function validateNHSNumberUK(remainderAfterMinus){remainderAfterMinus=getValue(remainderAfterMinus);if(!remainderAfterMinus||isNaN(Number(remainderAfterMinus))||10!==remainderAfterMinus.toString().length)return!1;for(var valueAsArray=remainderAfterMinus.toString().split(""),multiplicationTotal=0,multiplyBy=10,i=0;i<9;i++)multiplicationTotal+=valueAsArray[i]*multiplyBy,multiplyBy--;remainderAfterMinus=11-multiplicationTotal%11;return(remainderAfterMinus=11===remainderAfterMinus?0:remainderAfterMinus)===Number(valueAsArray[9])}function shouldValidateCreditCard(){return getValue(getFieldBySpecialValidator(specialValidators.paymentType))===paymentTypeCardValue}function getSpecialValidator(match){if(!match)return"";match=match.match(/---(.*)___/);return match&&0<match.length?match[1]:""}function getSpecialValidatorCustomErrorMessages(errorMessagesArray){errorMessagesArray=errorMessagesArray.match(/-_-_(.*)_-_-/);if(!errorMessagesArray||0===errorMessagesArray.length)return null;var errorMessagesArray=errorMessagesArray[1].split("_"),errorMessagesObject={};return $.each(errorMessagesArray,function(index,code){var message=code.split(":"),code=message[0],message=message[1];errorMessagesObject[code]=message}),errorMessagesObject}function getParent(fieldName){return $(".en__field--"+getValidationRule(fieldName).componentId)}function hasErrorMsg(fieldName){return Boolean(getParent(fieldName).children("."+enClasses.error).length)}function addErrorMsg(fieldName){var errorMessage=getValidationRule(fieldName).errorMessage;if(hasErrorMsg(fieldName)){if("undefined"!=typeof errorMessagePosition&&"after"===errorMessagePosition){const fieldContainer=getParent(fieldName),errorMessageElement=fieldContainer.find("."+enClasses.error);errorMessageElement.is(":last-child")||errorMessageElement.appendTo(fieldContainer)}}else{var errorMessageHtml='<div class="'+enClasses.error+'" role="alert">'+errorMessage+"</div>";"undefined"==typeof errorMessagePosition||"before"===errorMessagePosition?getParent(fieldName).prepend(errorMessageHtml):"after"===errorMessagePosition&&getParent(fieldName).append(errorMessageHtml)}getParent(fieldName).children("."+enClasses.error).first().text(errorMessage),$("[name='"+fieldName+"']").addClass("error-override"),$("[name='"+fieldName+"']").attr("aria-invalid","true"),$("[name='"+fieldName+"']").prop("aria-invalid","true")}function removeErrorMsg(fieldName){getParent(fieldName).children("."+enClasses.error).remove(),$("[name='"+fieldName+"']").removeClass("error-override"),$("[name='"+fieldName+"']").attr("aria-invalid","false"),$("[name='"+fieldName+"']").prop("aria-invalid","false")}function anyErrors(){for(var i=0;i<window.EngagingNetworks.validators.length;i++)if(hasErrorMsg(window.EngagingNetworks.validators[i].fieldName))return!0;return!1}function registerRemoteValidator(name,fieldName){remoteValidators.push({name:name,fieldName:fieldName})}function removeRemoteValidator(name,fieldName){remoteValidators=$.grep(remoteValidators,function(remoteValidator){return remoteValidator.name!==name&&remoteValidator.fieldName!==fieldName})}function getFieldsByValidator(validatorToFind){var fieldNames=[];return $.each(window.EngagingNetworks.validators,function(index,validator){validator.type.toLowerCase()===validatorToFind&&(fieldNames.push(validator.fieldName),validatorToFind===validators.amount&&fieldNames.push(validator.fieldName+".other"))}),fieldNames}function getFieldBySpecialValidator(specialValidator){var validator=$.grep(window.EngagingNetworks.validators,function(validator){return getSpecialValidator(validator.format)===specialValidator})[0];return validator?validator.fieldName:null}function isSpecialValidatorAndFieldPresent(specialValidator){var found=!1;return $.each(window.EngagingNetworks.validators,function(index,validator){validator.format&&-1<validator.format.indexOf(specialValidator)&&$(".en__field--"+validator.componentId).length&&(found=!0)}),found}function fieldIsHidden(fieldName){var inputType=getInputType(fieldName);return(-1<["radio","radioWithInput","checkbox"].indexOf(inputType)?$('[name="'+fieldName+'"]').first().parent():$('[name="'+fieldName+'"]')).is(":hidden")}function changeFieldErrorMessage(identifier,identifierValue,errorMessageNew){var fieldName;switch(identifier){case"specialValidator":fieldName=getFieldBySpecialValidator(identifierValue);break;case"fieldName":fieldName=identifierValue}var validatorFound=!1;fieldName&&$.each(window.EngagingNetworks.validators,function(index,validator){validator.fieldName===fieldName&&(validatorFound=!0,window.EngagingNetworks.validators[index].errorMessage=errorMessageNew)}),fieldName&&validatorFound||console.error("ENvalidate: Could not change error message for field identified by "+identifier+" - "+identifierValue)}function sortCodeFieldUKIsFirst(){var bankSortCodeField=getFieldBySpecialValidator(specialValidators.bankSortCodeUK),bankAccountFieldName=getFieldBySpecialValidator(specialValidators.bankAccountUK),bankSortCodeField=$(`[name="${bankSortCodeField}"]`);const bankAccountField=$(`[name="${bankAccountFieldName}"]`);return!!bankSortCodeField.length&&(!bankAccountField.length||bankAccountField.isAfter(bankSortCodeField))}function validateBankDetailsUK(){validateField(getFieldBySpecialValidator(specialValidators.bankSortCodeUK),!1),validateField(getFieldBySpecialValidator(specialValidators.bankAccountUK),!1)}function validatePcaBankDetailsUK(){var specialValidator=specialValidators.pcaBankAccountUK,sortCode=getFieldBySpecialValidator(specialValidator),bankAccount=getValue(sortCode);registerRemoteValidator(specialValidator,sortCode);var script,head,url=getFieldBySpecialValidator(specialValidator=specialValidators.pcaBankSortCodeUK),sortCode=getValue(url);registerRemoteValidator(specialValidator,url),bankAccount&&sortCode?(script=document.createElement("script"),head=document.getElementsByTagName("head")[0],url="https://services.postcodeanywhere.co.uk/BankAccountValidation/Interactive/Validate/v2.00/json3.ws?",url+="&Key="+encodeURIComponent(pcaKeyBankDetails),url+="&AccountNumber="+encodeURIComponent(bankAccount),url+="&SortCode="+encodeURIComponent(sortCode),url+="&callback=responsePcaBankDetails",script.src=url,script.onload=script.onreadystatechange=function(){this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState||(script.onload=script.onreadystatechange=null,head&&script.parentNode&&head.removeChild(script))},head.insertBefore(script,head.firstChild)):responsePcaBankDetails({Items:[{Error:"No details added"}]})}function responsePcaBankDetails(response){var hasResponse=0<response.Items.length,hasError=void 0!==response.Items[0].Error,isCorrect=void 0!==response.Items[0].IsCorrect&&!0===response.Items[0].IsCorrect,isDirectDebitCapable=void 0!==response.Items[0].IsDirectDebitCapable&&!0===response.Items[0].IsDirectDebitCapable,bankNameField=specialValidators.pcaBankAccountUK,bankAccountField=getFieldBySpecialValidator(bankNameField);removeRemoteValidator(bankNameField,bankAccountField);var sortCodeField=getFieldBySpecialValidator(bankNameField=specialValidators.pcaBankSortCodeUK);removeRemoteValidator(bankNameField,sortCodeField);bankNameField=getFieldBySpecialValidator(specialValidators.pcaBankNameUK);!hasResponse||!hasError&&isCorrect&&isDirectDebitCapable?(removeErrorMsg(bankAccountField),removeErrorMsg(sortCodeField),bankNameField&&$('[name="'+bankNameField+'"]').val(response.Items[0].Bank)):(addErrorMsg(bankAccountField),addErrorMsg(sortCodeField),bankNameField&&$('[name="'+bankNameField+'"]').val(""))}function validateCreditCardNumber(){var isValid,field=getFieldBySpecialValidator(specialValidators.creditCardNumber),input=$("[name='"+field+"']"),customErrorMessages=getSpecialValidatorCustomErrorMessages(getValidationRule(field).format);return input.validateCreditCard(function(result){var cardTypeAccepted,validationRule;result.card_type&&result.card_type.name&&paymentProcessorCardTypes[paymentProcessor][result.card_type.name]&&-1<$.inArray(result.card_type.name,organisationCardTypes)?(cardTypeAccepted=!0,setPaymentType(paymentProcessorCardTypes[paymentProcessor][result.card_type.name])):!result.card_type||!result.card_type.name||paymentProcessorCardTypes[paymentProcessor][result.card_type.name]&&-1!==$.inArray(result.card_type.name,organisationCardTypes)?((validationRule=getValidationRule(field)).errorMessage=validationRule.errorMessageOriginal,setValidationRule(field,validationRule),setPaymentType("card"),cardTypeAccepted=!1):(cardTypeAccepted=!1,setPaymentType(paymentProcessorCardTypes[paymentProcessor][result.card_type.name]),customErrorMessages.cardType&&((validationRule=getValidationRule(field)).errorMessage=customErrorMessages.cardType,setValidationRule(field,validationRule))),isValid=result.valid&&cardTypeAccepted}),isValid}function setPaymentType(paymentType){var field=getFieldBySpecialValidator(specialValidators.paymentType),input=$("[name='"+field+"']");"radio"===getInputType(field)&&(input=$("[name='"+field+"'][value='"+paymentTypeCardValue+"']")),"select"===getInputType(field)&&(input=$("[name='"+field+"'] option[value='"+paymentTypeCardValue+"']")),paymentTypeCardValue=paymentType,input.val(paymentType)}function validateCreditCardExpiry(){var expiryLastDayOfMonth=getValue(getFieldBySpecialValidator(specialValidators.creditCardExpiry)),year=parseInt(expiryLastDayOfMonth[1]);if(year<22||50<year&&year<2022||2050<year)return!1;year=2e3<parseInt(expiryLastDayOfMonth[1])?parseInt(expiryLastDayOfMonth[1]):parseInt(expiryLastDayOfMonth[1])+2e3,expiryLastDayOfMonth=parseInt(expiryLastDayOfMonth[0]),expiryLastDayOfMonth=new Date(year,expiryLastDayOfMonth,0);return new Date<expiryLastDayOfMonth}function stripNonNumericCharacters(value,regex){void 0===regex&&(regex="");regex=new RegExp("[^0-9"+regex+"]","g");return value.replace(regex,"")}function countDecimalPoints(value){return(value.match(/\./g)||[]).length}function stripExcessDecimals(value,maxDecimalPlaces){return!(value=1<countDecimalPoints(value=value.replace(/\.{2,}/g,"."))?value.split(".",2).join("."):value)||isNaN(value)?"":parseFloat(value)===parseInt(value)?value:parseFloat(value).toFixed(maxDecimalPlaces)}function limitFieldLengths(){for(var i=0;i<window.EngagingNetworks.validators.length;i++){var input,validationType,maxLength=window.EngagingNetworks.validators[i].format;maxLength&&(-1<maxLength.indexOf("{")||-1<maxLength.indexOf("__-__"))&&(input=$("[name='"+window.EngagingNetworks.validators[i].fieldName+"']"),validationType=getValidationType(window.EngagingNetworks.validators[i].fieldName),","===(maxLength=-1<maxLength.indexOf("__-__")?maxLength.substr(maxLength.indexOf("__-__")-2,2):maxLength.substr(maxLength.indexOf("}")-2,2)).charAt(0)&&(maxLength=maxLength.charAt(1)),"splitText"===validationType&&(maxLength/=2),"tripleText"===validationType&&(maxLength/=3),input.attr("size",maxLength),input.attr("maxlength",maxLength))}}function addSortCodeAutoTabbing(){var sortCodeField=getFieldBySpecialValidator(specialValidators.pcaBankSortCodeUK)||getFieldBySpecialValidator(specialValidators.bankSortCodeUK),sortCode=$("[name='"+sortCodeField+"']");sortCode.keyup(function(code){code=code.keyCode||code.which;37!=code&&38!=code&&39!=code&&40!=code&&9!=code&&16!=code&&17!=code&&(sortCode.eq(1).is(":focus")&&2==sortCode.eq(1).val().length?sortCode.eq(2).focus():sortCode.eq(0).is(":focus")&&2==sortCode.eq(0).val().length&&sortCode.eq(1).focus())})}function addNumericKeyPads(){var specialValidatorFields=[specialValidators.phoneNumberUK,specialValidators.pcaBankAccountUK,specialValidators.pcaBankSortCodeUK,specialValidators.bankAccountUK,specialValidators.bankSortCodeUK,specialValidators.creditCardNumber,specialValidators.creditCardExpiry,specialValidators.creditCardCVV,specialValidators.postCodeUS,specialValidators.phoneNumberUSCanada,specialValidators.phoneNumberInternational,specialValidators.phoneNumberInternationalOptional,specialValidators.nhsNumberUK];$.each(specialValidatorFields,function(index,field){var fieldType,fieldName=getFieldBySpecialValidator(field);if(fieldName&&(fieldType=getInputType(fieldName)),fieldName&&!["select","splitSelect","tripleSelect"].includes(fieldType)){var input=$("[name='"+fieldName+"']");input.attr("type","tel");var allowedCharacters="";switch(field){case specialValidators.phoneNumberUK:case specialValidators.phoneNumberUSCanada:for(var ruleFormat=getValidationRule(fieldName).format,i=0;i<ruleFormat.length;i++)"`"===ruleFormat[i]&&(allowedCharacters+=ruleFormat[i+1])}input.blur(function(){for(i=0;i<input.length;i++)input.eq(i).val(stripNonNumericCharacters(input.eq(i).val(),allowedCharacters))})}}),$.each(getFieldsByValidator(validators.amount),function(index,fieldName){var input=$("[name='"+fieldName+"']");"text"===input.attr("type")&&(input.attr("type","tel"),input.blur(function(){for(var i=0;i<input.length;i++)input.eq(i).val(stripNonNumericCharacters(input.eq(i).val(),".")),input.eq(i).val(stripExcessDecimals(input.eq(i).val(),2))}))})}function addDonationAmountSwitching(){"undefined"!=typeof donationAmountSwitching&&($.each(donationAmountSwitching.frequency.options,function(frequencyIndex,frequency){$("[name='"+donationAmountSwitching.frequency.fieldName+"']").eq(frequencyIndex).data("frequency",frequency),$("input[name='"+donationAmountSwitching.frequency.fieldName+"']").eq(frequencyIndex).change(function(){var selectedFrequency=$("[name='"+donationAmountSwitching.frequency.fieldName+"']:checked").data("frequency"),amountCount=0;$.each(donationAmountSwitching.amount.options[selectedFrequency],function(amountIndex,amount){var inputSelector="[name='"+donationAmountSwitching.amount.fieldName+"']",inputSelectorCount=amountCount;amount===Math.round(10*amount)/10&&amount!==Math.round(amount)&&(amount=amount.toFixed(2));var currencySymbol=donationAmountSwitching.amount.currencySymbol,labelText=amount,labelText="before"===currencySymbol.position?currencySymbol.symbol+labelText:labelText+currencySymbol;setTimeout(setDonationAmount,50,inputSelector,inputSelectorCount,amount,labelText),amountCount++})})}),$("[name='"+donationAmountSwitching.frequency.fieldName+"']").change())}function setDonationAmount(inputSelector,checkedOption,amount,labelText){$(inputSelector).eq(checkedOption).val(amount),$(inputSelector).eq(checkedOption).siblings("label").text(labelText),checkedOption===$(inputSelector).length-2&&(checkedOption=$(inputSelector+":checked").siblings("label"),$(inputSelector+":not(:checked)").siblings("label").eq(0).click(),checkedOption.click())}function addressLoqateSetup(){if(isSpecialValidatorAndFieldPresent(specialValidators.addressLoqateAutocomplete)){loqateAddressFields.push.apply(loqateAddressFields,pca.capturePlus.controls[0].fields),$("#"+loqateAddressFields[0].element).attr("placeholder",$(window).width()<500?"Start typing":"Start typing to find");var addressSearchInputPlaceholder="undefined"==typeof loqateAddressManualEntryText?"Enter manually":loqateAddressManualEntryText,addressSearchInputPlaceholder='<div class="envalidate-address-manual-entry-link" style="float: right; font-size: 12px; height: 18px; display: flex; justify-content: flex-end;align-items: flex-end; position: relative; top: 55px; left: -5px; z-index: 1000;"><a id="address-loqate-manual-entry">'+addressSearchInputPlaceholder+"</a></div>";$("#"+loqateAddressFields[0].element).parent().parent().find("label").first().append(addressSearchInputPlaceholder),$("#address-loqate-manual-entry").click(function(){return addressLoqateShowFields(!0),$("#"+loqateAddressFields[0].element).attr("placeholder",""),$("#"+loqateAddressFields[0].element).focus(),!1}),$("#"+loqateAddressFields[0].element).attr("autocomplete","none");for(var i=1;i<loqateAddressFields.length;i++)$("#"+loqateAddressFields[i].element).parent().parent().hide();addressLoqateTimer=setInterval(addressLoqateShowFields,100)}else if(window.enValidateLoqateAddressSearchInput||window.enValidateLoqateAddressSearchResultsDropdown){const addressSearchInput=$(`[name="${window.enValidateLoqateAddressSearchInput}"]`),addressResultsDropdown=$(`[name="${window.enValidateLoqateAddressSearchResultsDropdown}"]`);if(!addressSearchInput.length||!addressResultsDropdown.length||!window.enValidateLoqateKey)return addressSearchInput.val("-"),addressSearchInput.hide(),addressLoqateShowFields(!0),void console.error("ENvalidate: To enable Loqate address search you must specify window.enValidateLoqateAddressSearchInput, window.enValidateLoqateAddressSearchResultsDropdown and window.enValidateLoqateKey");addressSearchInputPlaceholder=window.enValidateLoqateAddressSearchInputPlaceholder||"e.g. AB1 2YZ or 123 My Street";addressSearchInput.attr("placeholder",addressSearchInputPlaceholder).prop("placeholder",addressSearchInputPlaceholder);const manualEntryText=window.loqateAddressManualEntryText||"Enter manually",manualEntryLink=`<div class="address-loqate-manual-entry-container" style="font-size: 12px; margin: -10px 0 40px;"><a id="address-loqate-manual-entry">${manualEntryText}</a></div>`;addressSearchInput.after(manualEntryLink),$("#address-loqate-manual-entry").click(function(){return addressLoqateShowFields(!0),$('[name="supporter.postcode"]').change(function(){addressSearchInput.val($(this).val())}),$(".address-loqate-manual-entry-container").hide(),!1}),addressSearchInput.after('<input class="button envalidate-loqate-find-address" onclick="addressLoqateFindAddressForDropdown()" tabindex="0" type="button" value="Find address" />'),addressResultsDropdown.change(function(){const addressData=$(this).children(":selected").val();var addressDataArray;addressData&&(addressDataArray=addressData.split("|"),$('[name="supporter.address1"]').val(addressDataArray[0]),$('[name="supporter.address2"]').val(addressDataArray[1]),$('[name="supporter.city"]').val(addressDataArray[2]),$('[name="supporter.region"]').val(addressDataArray[3]),$('[name="supporter.postcode"]').val(addressDataArray[4]),addressLoqateShowFields(!0),$(".address-loqate-manual-entry-container").hide())})}}function addressLoqateDropdownAddAddress(addressData,addressText,buildingNumberOrName,street,city){window.addressLoqateFindAddressResults.push({addressData:addressData,addressText:addressText,buildingNumberOrName:buildingNumberOrName,street:street,city:city}),window.addressLoqateFindAddressResults.sort((a,b)=>a.city===b.city&&a.street&&b.street?a.street===b.street&&a.buildingNumberOrName&&b.buildingNumberOrName?(stripNonNumericCharacters(a.buildingNumberOrName.toString())&&stripNonNumericCharacters(b.buildingNumberOrName.toString())&&(a.buildingNumberOrName=parseInt(stripNonNumericCharacters(a.buildingNumberOrName.toString())),b.buildingNumberOrName=parseInt(stripNonNumericCharacters(b.buildingNumberOrName.toString()))),a.buildingNumberOrName===b.buildingNumberOrName&&a.addressText&&b.addressText&&(a.beginningOfAddressText=a.addressText.substr(0,a.addressText.indexOf(",")).toLowerCase(),b.beginningOfAddressText=b.addressText.substr(0,b.addressText.indexOf(",")).toLowerCase(),(a.beginningOfAddressText.includes("flat")||a.beginningOfAddressText.includes("appartment"))&&(b.beginningOfAddressText.includes("flat")||b.beginningOfAddressText.includes("appartment")))?(a.flatNumber=parseInt(stripNonNumericCharacters(a.beginningOfAddressText)),b.flatNumber=parseInt(stripNonNumericCharacters(b.beginningOfAddressText)),a.flatNumber&&b.flatNumber?a.flatNumber===b.flatNumber?0:a.flatNumber>b.flatNumber?1:-1:a.beginningOfAddressText===b.beginningOfAddressText?0:a.beginningOfAddressText>b.beginningOfAddressText?1:-1):a.buildingNumberOrName===b.buildingNumberOrName?0:a.buildingNumberOrName>b.buildingNumberOrName?1:-1):a.street===b.street?0:a.street>b.street?1:-1:a.city===b.city?0:a.city>b.city?1:-1)}function addressLoqateDropdownShowResults(){const addressSearchButton=$(".envalidate-loqate-find-address"),addressResultsDropdown=$(`[name="${window.enValidateLoqateAddressSearchResultsDropdown}"]`);if(addressSearchButton.attr("disabled",!1),addressSearchButton.removeClass("disabled"),addressSearchButton.text("Find address"),window.addressLoqateFindAddressResults.length){for(const address of window.addressLoqateFindAddressResults)addressResultsDropdown.append(`<option value="${address.addressData}">${address.addressText}</option>`);addressResultsDropdown.parent().parent().show(),addressResultsDropdown[0].focus()}else addressSearchButton.after('<div class="en__field__error" role="alert">Sorry, we couldn\'t find any addresses. Please check and try again or enter your address manually.</div>')}function addressLoqateFindAddressForDropdown(){window.addressLoqateFindAddressApiCallsInProgress=[],window.addressLoqateFindAddressResults=[];const addressSearchButton=$(".envalidate-loqate-find-address"),addressResultsDropdown=$(`[name="${window.enValidateLoqateAddressSearchResultsDropdown}"]`),addressSearchInput=$(`[name="${window.enValidateLoqateAddressSearchInput}"]`);addressSearchButton.siblings(".en__field__error").remove(),addressResultsDropdown.parent().parent().hide(),addressResultsDropdown.children().each(function(index,element){$(element).val()&&$(element).remove()}),addressSearchInput.val()?(addressSearchButton.attr("disabled",!0),addressSearchButton.addClass("disabled"),addressSearchButton.text("Searching..."),addressLoqateFindAddressSearch(addressSearchInput.val())):validateField(window.enValidateLoqateAddressSearchInput)}function addressLoqateFindAddressSearch(addressText,containerId){var countryCode=getValue("supporter.country");const data={Key:window.enValidateLoqateKey,Text:addressText,IsMiddleware:!1,Origin:countryCode,Countries:countryCode,Limit:50,Language:"en"};containerId&&(data.Container=containerId),window.addressLoqateFindAddressApiCallsInProgress.push(addressText),$.post("https://api.addressy.com/Capture/Interactive/Find/v1.10/json3.ws",data,function(findData){if(window.addressLoqateFindAddressApiCallsInProgress=window.addressLoqateFindAddressApiCallsInProgress.filter(id=>id!==data.Text),findData&&findData.Items&&findData.Items.length)for(const findResult of findData.Items)findResult.Id&&("Postcode"===findResult.Type?addressLoqateFindAddressSearch(addressText,findResult.Id):"Address"===findResult.Type&&(window.addressLoqateFindAddressApiCallsInProgress.push(findResult.Id),$.post("https://api.addressy.com/Capture/Interactive/Retrieve/v1.20/json3.ws",{Key:window.enValidateLoqateKey,Id:findResult.Id},function(retrieveData){if(window.addressLoqateFindAddressApiCallsInProgress=window.addressLoqateFindAddressApiCallsInProgress.filter(id=>id!==findResult.Id),retrieveData&&retrieveData.Items&&retrieveData.Items.length)for(const retrieveResult of retrieveData.Items){const addressFields=[retrieveResult.Line1,retrieveResult.Line2,retrieveResult.City,retrieveResult.ProvinceName,retrieveResult.PostalCode];var addressData=addressFields.join("|");let addressHumanFriendly="";for(const addressField of addressFields)addressField&&(addressHumanFriendly&&(addressHumanFriendly+=", "),addressHumanFriendly+=addressField);var buildingNumberOrName=retrieveResult.BuildingNumber||retrieveResult.BuildingName;addressLoqateDropdownAddAddress(addressData,addressHumanFriendly,buildingNumberOrName,retrieveResult.Street,retrieveResult.City)}window.addressLoqateFindAddressApiCallsInProgress.length||addressLoqateDropdownShowResults()})));window.addressLoqateFindAddressApiCallsInProgress.length||addressLoqateDropdownShowResults()})}function addressLoqateShowFields(forceShow){void 0===forceShow&&(forceShow=!1);var addressEntryFieldMuchLonger=!1,anyOtherAddressFieldsFilled=!1;if(loqateAddressFields.length){5<$("#"+loqateAddressFields[0].element).val().length-loqateAddressEntryField.length&&(addressEntryFieldMuchLonger=!0),loqateAddressEntryField=$("#"+loqateAddressFields[0].element).val();for(var regexString,i=1;i<loqateAddressFields.length;i++)!$("#"+loqateAddressFields[i].element).val()||"supporter.country"!==(regexString=$("#"+loqateAddressFields[i].element).attr("name"))&&(getValidationRule(regexString)&&getValidationType(regexString)===validators.custom?(regexString=getValidationRule(regexString).format,RegExp(regexString),getSpecialValidator(regexString)!==specialValidators.country&&(anyOtherAddressFieldsFilled=!0)):anyOtherAddressFieldsFilled=!0);if(forceShow||addressEntryFieldMuchLonger||anyOtherAddressFieldsFilled){clearInterval(addressLoqateTimer);for(var j=1;j<loqateAddressFields.length;j++)$("#"+loqateAddressFields[j].element).parent().parent().show();$("#address-loqate-manual-entry").hide()}}else forceShow&&$(".en__field--address1, .en__field--address2, .en__field--address3, .en__field--city, .en__field--region, .en__field--postcode").show()}function addressLoqateValidateFields(){for(var i=1;i<loqateAddressFields.length;i++){var fieldName=$("#"+loqateAddressFields[i].element).attr("name");fieldName&&getValidationRule(fieldName)&&validateField(fieldName,!0,$("#"+loqateAddressFields[i].element))}}function repopulateAfterSubmit(){var creditCardNumberField=getFieldBySpecialValidator(specialValidators.creditCardNumber),paymentTypeCardChoice=getFieldBySpecialValidator(specialValidators.paymentType);creditCardNumberField&&paymentTypeCardChoice&&getValue(creditCardNumberField)&&(0<(paymentTypeCardChoice=$("[name='"+paymentTypeCardChoice+"'][value='"+paymentTypeCardValue+"']")).length&&paymentTypeCardChoice.prop("checked",!0).trigger("click"),validateCreditCardNumber())}function getKey(object,value){var keyFound;return $.each(object,function(key,item){if(item==value)return keyFound=key,!1}),keyFound}function isCreditCardExpiryYear(value){var numberValue=parseInt(value);return-1<String(value).indexOf("20")||12<numberValue}function completeSetup(){window.enValidateSetupComplete=!0,"function"==typeof window.onENValidateSetupComplete&&window.onENValidateSetupComplete(),void 0!==window.onENValidateSetupCompleteArray&&window.onENValidateSetupCompleteArray.length&&$.each(window.onENValidateSetupCompleteArray,function(index,item){item()})}function isMobile(){return $(window).width()<768}function isTablet(){var windowWidth=$(window).width();return 768<=windowWidth&&windowWidth<992}function addExtraShareButtons(){var shareHolder,whatsAppButton;$(".en__shares").length&&((shareHolder=$(".en__shares")).hasClass("en__shares--simple")?whatsAppButton="simple":shareHolder.hasClass("en__shares--small")?whatsAppButton="small":shareHolder.hasClass("en__shares--large")&&(whatsAppButton="large"),"undefined"!=typeof whatsAppShareAdd&&whatsAppShareAdd&&"undefined"!=typeof whatsAppShareDevices&&whatsAppShareDevices&&"undefined"!=typeof whatsAppShareText&&whatsAppShareText&&("all"===whatsAppShareDevices||"mobile"===whatsAppShareDevices&&isMobile()||"mobile-tablet"===whatsAppShareDevices&&(isMobile()||isTablet()))&&(whatsAppButton='<div class="en__share en__share--whatsapp en__share--'+whatsAppButton+'"><a class="en__share__button en__share__button--'+whatsAppButton+' en__share__button--whatsapp" data-action="share/whatsapp/share" href="'+("whatsapp://send?text="+encodeURIComponent(whatsAppShareText))+'" target="_blank"></a></div>',shareHolder.append(whatsAppButton)))}function setupMediaUploads(){var hiddenInput,cloudinaryWidgetOptions;"undefined"!=typeof enValidateMediaUpload&&((hiddenInput=$('input[name="'+enValidateMediaUpload.fieldName+'"]')).length?((cloudinaryWidgetOptions={showPoweredBy:!(window.enValidateCloudinaryMediaUploadURLs=[])}).cloudName=enValidateMediaUpload.cloudinaryCloudName,cloudinaryWidgetOptions.uploadPreset=enValidateMediaUpload.cloudinaryUploadPreset,cloudinaryWidgetOptions.clientAllowedFormats=enValidateMediaUpload.hasOwnProperty("typesAllowed")?enValidateMediaUpload.typesAllowed:["bmp","gif","jpg","jpeg","png","tif","tiff","webp"],cloudinaryWidgetOptions.sources=enValidateMediaUpload.hasOwnProperty("sourcesAllowed")?enValidateMediaUpload.sourcesAllowed:["local","camera"],cloudinaryWidgetOptions.multiple=!!enValidateMediaUpload.hasOwnProperty("multipleAllowed")&&enValidateMediaUpload.multipleAllowed,cloudinaryWidgetOptions.maxFileSize=1048576*(enValidateMediaUpload.hasOwnProperty("maxFileSizeMegabytes")?enValidateMediaUpload.maxFileSizeMegabytes:2),enValidateMediaUpload.hasOwnProperty("maxImageWidth")&&(cloudinaryWidgetOptions.maxImageWidth=enValidateMediaUpload.maxImageWidth),enValidateMediaUpload.hasOwnProperty("maxImageHeight")&&(cloudinaryWidgetOptions.maxImageHeight=enValidateMediaUpload.maxImageHeight),enValidateMediaUpload.hasOwnProperty("styles")&&(cloudinaryWidgetOptions.styles=enValidateMediaUpload.styles),$("#media-upload-button").click(function(){window.cloudinaryUploadWidget=cloudinary.openUploadWidget(cloudinaryWidgetOptions,function(error,result){var uploadedUrl,imagePreview;"success"===result.event&&(uploadedUrl=result.info.secure_url,window.enValidateCloudinaryMediaUploadURLs.push(uploadedUrl),hiddenInput.val(window.enValidateCloudinaryMediaUploadURLs.join(", ")),imagePreview='<div class="media-upload-preview" data-uploaded-url="'+uploadedUrl+'"><img alt="" src="'+uploadedUrl+'" />',imagePreview+='<div aria-label="Remove image '+result.info.original_filename+'" class="media-upload-preview-remove" onclick="mediaUploadRemove(\''+uploadedUrl+"')\">Remove</div>",imagePreview+="</div>",$("#media-upload-previews").append(imagePreview))})})):console.error("ENvalidate image upload config set - but we couldn't find the hidden field input"))}function removeFilenameExtension(filename){return filename.replace(/\.[^/.]+$/,"")}function mediaUploadRemove(uploadedUrl){var index=window.enValidateCloudinaryMediaUploadURLs.indexOf(uploadedUrl);-1!==index&&window.enValidateCloudinaryMediaUploadURLs.splice(index,1),$('input[name="'+enValidateMediaUpload.fieldName+'"]').val(window.enValidateCloudinaryMediaUploadURLs.join(", ")),$('[data-uploaded-url="'+uploadedUrl+'"]').remove()}function addAccessibilityExtras(){("undefined"!=typeof enValidateAccessibilityFixes&&enValidateAccessibilityFixes||"undefined"!=typeof accessibilityKeyboardFormFields&&accessibilityKeyboardFormFields)&&($(".en__mandatory :input:not(.en__field__input--other), .en__mandatory :input:visible.en__field__input--other").each(function(index,element){$(element).attr("aria-required","true"),$(element).prop("aria-required","true")}),$(":input:visible, input.en__field__input--other, select").each(function(index,element){var tabIndex=$(element).attr("tabindex");void 0!==tabIndex&&!1!==tabIndex||$(element).attr("tabindex","0")}),$("input.en__field__input--radio, input.en__field__input--checkbox").siblings("label.en__field__label--item").each(function(index,element){var tabIndex=$(element).attr("tabindex");void 0!==tabIndex&&!1!==tabIndex||$(element).attr("tabindex","0"),$(element).bind("keydown",function(event){" "!==event.key&&"Spacebar"!==event.key||(event.preventDefault(),$(element).click())})}),$("input.en__field__input--radio").siblings("label.en__field__label--item").each(function(index,element){$(element).bind("keydown",function(event){if("ArrowUp"===event.key||"ArrowDown"===event.key){event.preventDefault();var thisRadioInput,fieldName=$(element).siblings("input").prop("name"),allRadioInputs=$('input[name="'+fieldName+'"]');for(i=0;i<allRadioInputs.length;i++)allRadioInputs[i]===$(element).siblings("input")[0]&&(thisRadioInput=i);"ArrowUp"===event.key&&0<thisRadioInput?setTimeout(function(){$(allRadioInputs[thisRadioInput-1]).siblings("label").click(),$(allRadioInputs[thisRadioInput-1]).siblings("label").focus(),$(".en__field__item--other").addClass("en__field__item--hidden")},200):"ArrowDown"===event.key&&thisRadioInput<allRadioInputs.length-1&&setTimeout(function(){$(allRadioInputs[thisRadioInput+1]).siblings("label").click(),$(allRadioInputs[thisRadioInput+1]).siblings("label").focus(),"Other"===$(allRadioInputs[thisRadioInput+1]).siblings("label").text()&&$(".en__field__item--other").removeClass("en__field__item--hidden")},200)}})}),$(".en__field__input--other").each(function(index,element){var fieldLabelText=$(element).parent().parent().siblings("label").text(),otherLabelText="",otherLabelText=(otherLabelText=void 0!==window.enValidateAccessibilityFixesOtherLabel&&window.enValidateAccessibilityFixesOtherLabel[$(element).prop("name")]?window.enValidateAccessibilityFixesOtherLabel[$(element).prop("name")]:otherLabelText)||`${fieldLabelText?`${fieldLabelText} - `:""}Other`;$(element).attr("aria-label",otherLabelText),$(element).prop("aria-label",otherLabelText)}),$('.en__contactSubject input[type="text"]').each(function(index,element){$(element).attr("aria-label","Subject line of your message")}),$(".en__contactMessage textarea").each(function(index,element){$(element).attr("aria-label","Your message")}),$("input.en__contactDetails__select, input.en__twitterTarget__select").each(function(index,element){"none"===$(element).css("display")&&$(element).attr("aria-hidden","true")}),$(".en__tweet textarea").each(function(index,element){$(element).attr("aria-label","Your tweet text")}),$(".en__twitterTarget__image").each(function(index,element){void 0===$(element).attr("alt")&&$(element).attr("alt","")}),$('[name="supporter.firstName"]').attr("autocomplete","given-name"),$('[name="supporter.firstName"]').prop("autocomplete","given-name"),$('[name="supporter.lastName"]').attr("autocomplete","family-name"),$('[name="supporter.lastName"]').prop("autocomplete","family-name"),$('[name="supporter.address1"]').attr("autocomplete","address-line1"),$('[name="supporter.address1"]').prop("autocomplete","address-line1"),$('[name="supporter.address2"]').attr("autocomplete","address-line2"),$('[name="supporter.address2"]').prop("autocomplete","address-line2"),$('[name="supporter.city"]').attr("autocomplete","address-level2"),$('[name="supporter.city"]').prop("autocomplete","address-level2"),$('[name="supporter.postcode"]').attr("autocomplete","postal-code"),$('[name="supporter.postcode"]').prop("autocomplete","postal-code"),$('[name="supporter.phoneNumber"]').attr("autocomplete","tel"),$('[name="supporter.phoneNumber"]').prop("autocomplete","tel"),$('[name="supporter.emailAddress"]').attr("autocomplete","email"),$('[name="supporter.emailAddress"]').prop("autocomplete","email"),$('[name="transaction.ccnumber"]').attr("autocomplete","cc-number"),$('[name="transaction.ccnumber"]').prop("autocomplete","cc-number"),$('[name="transaction.ccexpire"]').eq(0).attr("autocomplete","cc-exp-month").prop("autocomplete","cc-exp-month"),$('[name="transaction.ccexpire"]').eq(1).attr("autocomplete","cc-exp-year").prop("autocomplete","cc-exp-year"),$('[name="transaction.ccvv"]').attr("autocomplete","cc-csc"),$('[name="transaction.ccvv"]').prop("autocomplete","cc-csc"))}function storeFieldValue(fieldName,value){if(-1<["supporter.bankAccountNumber","supporter.bankRoutingNumber","transaction.ccnumber","transaction.ccexpire","transaction.ccvv","transaction.paymenttype"].indexOf(fieldName))return!1;try{return sessionStorage.setItem(fieldName,value),!0}catch(error){return console.error("Could not store field "+fieldName+", value "+value),!1}}function getStoredFieldValue(fieldName){try{return sessionStorage.getItem(fieldName)}catch(error){return console.error("Could not get stored field value for "+fieldName),""}}function populateStoredFieldValues(){$(".envalidate-form-data").each(function(index){var dataWantedArray,value=textInsideCurlyBraces($(this).text());!value.length||(dataWantedArray=value[0].split("~")).length&&"ENvalidate_form_data"===dataWantedArray[0]&&(value=getStoredFieldValue(dataWantedArray[1]),2<dataWantedArray.length&&(value=value||dataWantedArray[2]),$(this).text(value),$(this).show())})}function textInsideCurlyBraces(text){for(var currentMatch,found=[],rxp=/{([^}]+)}/g;currentMatch=rxp.exec(text);)found.push(currentMatch[1]);return found}function removeUrlParam(key,queryString){var rtn=queryString.split("?")[0],params_arr=[],queryString=-1!==queryString.indexOf("?")?queryString.split("?")[1]:"";if(""!==queryString){for(var i=(params_arr=queryString.split("&")).length-1;0<=i;--i)params_arr[i].split("=")[0]===key&&params_arr.splice(i,1);params_arr.length&&(rtn=rtn+"?"+params_arr.join("&"))}return rtn}function redirectIfTokenInUrl(){var alteredURL;-1<window.location.href.indexOf("token")&&(alteredURL=removeUrlParam("token",window.location.href),window.location.replace(alteredURL))}function setupScrollingPage(){if(void 0!==window.enValidateScrollingPage&&window.enValidateScrollingPage.enabled){var options=window.enValidateScrollingPage;if(options.hasOwnProperty("startRow")){$(".en__component--row").eq(options.startRow-1).css("display","flex"),$(".en__component--row").each(function(rowNumber){rowNumber=rowNumber-options.startRow+2;1<=rowNumber&&$(this).attr("data-row-number",rowNumber)}),$("[data-rows-forward], .en__socialShare__image").each(function(index){$(this).click(function(){for(var currentRowNumber,parentRow=$(this).closest(".en__component--row"),allRows=$(".en__component--row"),i=0;i<allRows.length;i++)allRows[i]===parentRow[0]&&(currentRowNumber=i-options.startRow+2);var rowsForward=$(this).data("rows-forward");rowsForward?rowsForward=parseInt(rowsForward):(rowsForward=1,$(this).attr("data-complete-row-number",currentRowNumber)),scrollingPageNavigate(currentRowNumber,rowsForward,$(this).attr("data-complete-row-number")?parseInt($(this).data("complete-row-number")):null,$(this).attr("data-skip-row-number")?parseInt($(this).data("skip-row-number")):null)})});var progressBar='<div class="scrolling-page-progress-bar">';if(options.hasOwnProperty("rowNamesInProgressBar")){for(var i=0;i<options.rowNamesInProgressBar.length;i++)""!==options.rowNamesInProgressBar[i].trim()&&(progressBar+='<div class="scrolling-page-progress-bar-step '+(0===i?"scrolling-page-progress-bar-step-complete":"")+'" data-row="'+(i+1)+'">',progressBar+='<div class="scrolling-page-progress-bar-step-title">'+options.rowNamesInProgressBar[i]+"</div> ",progressBar+="</div>");progressBar+="</div>",$("body").append(progressBar)}}else console.error("Scrolling page: no start row specified")}}function scrollingPageNavigate(newRowNumber,newRow,completeRow,skipRow){var step,newRowNumber=newRowNumber+newRow,newRow=$('.en__component--row[data-row-number="'+newRowNumber+'"]');newRow.css("display","flex"),$("html, body").animate({scrollTop:newRow.offset().top},500),$(".scrolling-page-progress-bar")&&($(".scrolling-page-progress-bar-step").removeClass("scrolling-page-progress-bar-step-current"),1<newRowNumber&&((step=$('.scrolling-page-progress-bar-step[data-row="'+newRowNumber+'"]')).removeClass("scrolling-page-progress-bar-step-skipped"),step.removeClass("scrolling-page-progress-bar-step-complete"),step.addClass("scrolling-page-progress-bar-step-current")),completeRow&&((step=$('.scrolling-page-progress-bar-step[data-row="'+completeRow+'"]')).removeClass("scrolling-page-progress-bar-step-skipped"),step.addClass("scrolling-page-progress-bar-step-complete")),skipRow&&((step=$('.scrolling-page-progress-bar-step[data-row="'+skipRow+'"]')).removeClass("scrolling-page-progress-bar-step-complete"),step.addClass("scrolling-page-progress-bar-step-skipped")))}$.fn.isAfter=function($elm){var i,$this=$(this),$myParents=$this.parents(),$elmParents=$elm.parents(),$myTreeLast=$this;for(i in $myParents){var $elmTreeLast=$elm;if($myParents.hasOwnProperty(i)){var j,$parent=$($myParents[i]);for(j in $elmParents)if($elmParents.hasOwnProperty(j)){var $elmParent=$($elmParents[j]);if($parent[0]===$elmParent[0]){var myTreePos=$myTreeLast.index();return $elmTreeLast.index()<myTreePos}$elmTreeLast=$elmParent}$myTreeLast=$parent}}return!1},$(document).ready(function(){readyForSetupTimer=setInterval(doSetup,100),isSpecialValidatorAndFieldPresent(specialValidators.addressLoqateAutocomplete)&&(waitingForOtherScripts=!0,pca.on("load",function(type,id,control){waitingForOtherScripts=!1,control.listen("populate",function(address){addressLoqateShowFields(),addressLoqateValidateFields()})}))}),redirectIfTokenInUrl();