jQuery(document).ready(function(){if(jQuery('.application-form .tooltip').length){jQuery('.application-form .tooltip').tooltipster({trigger:'click',maxWidth:300});} function validateLoanAmount(input){var fieldContainer=input.closest('.field');var value=input.val().trim();fieldContainer.removeClass('error');if(!value){fieldContainer.addClass('error');return false;} if(/[<>]/.test(value)){fieldContainer.addClass('error');fieldContainer.find('.error').text('Please enter a valid amount without special characters like < or >');return false;} value=value.replace(/[^\d]/g,'');var numericValue=parseInt(value);if(isNaN(numericValue)||numericValue<1000||numericValue>15000){fieldContainer.addClass('error');fieldContainer.find('.error').text('Please enter a figure between £1,000 and £15,000 without decimal places.');return false;} input.val(numericValue);return true;} jQuery('.application-form #loan-amount').on('keypress',function(e){var allowedKeys=[46,8,9,27,13,188];if(allowedKeys.indexOf(e.keyCode)!==-1||(e.keyCode===65&&(e.ctrlKey===true||e.metaKey===true))||(e.keyCode>=35&&e.keyCode<=40)){return;} if((e.shiftKey||(e.keyCode<48||e.keyCode>57))&&(e.keyCode<96||e.keyCode>105)){e.preventDefault();}});jQuery('.application-form #loan-amount').blur(function(){validateLoanAmount(jQuery(this));});function validateName(input){var fieldContainer=input.closest('.field');var value=input.val().trim();fieldContainer.removeClass('error');if(!value){fieldContainer.addClass('error');return false;} var nameRegex=/^[A-Za-zÀ-ÖØ-öø-ÿĀ-ž''-]+( [A-Za-zÀ-ÖØ-öø-ÿĀ-ž''-]+)*$/;if(!nameRegex.test(value)){fieldContainer.addClass('error');fieldContainer.find('.error').text('Please enter a valid name without symbols like $, %, etc.');return false;} return true;} function validateTitle(select){var fieldContainer=select.closest('.field');fieldContainer.removeClass('error');if(!select.val()||select.val()===""){fieldContainer.addClass('error');return false;} return true;} function preventInvalidChars(e,allowedPattern){if(e.keyCode===8||e.keyCode===46||e.keyCode===9||e.keyCode===27||e.keyCode===13||(e.keyCode>=35&&e.keyCode<=40)){return true;} var char=String.fromCharCode(e.which);if(!allowedPattern.test(char)){e.preventDefault();return false;} return true;} jQuery('.application-form #firstname, .application-form #surname').on('keypress',function(e){return preventInvalidChars(e,/^[A-Za-zÀ-ÖØ-öø-ÿĀ-ž'\- ]$/);});jQuery('.application-form').on('keypress','[id^="address-"]',function(e){if(this.id.includes('search')){return true;} if(e.ctrlKey||e.metaKey||e.altKey||e.keyCode===8||e.keyCode===46||e.keyCode===9||e.keyCode===27||e.keyCode===13||(e.keyCode>=35&&e.keyCode<=40)||e.keyCode===32){return true;} var char=String.fromCharCode(e.which);if(!/^[A-Za-z0-9 .,'\-]$/.test(char)){e.preventDefault();return false;}});jQuery('.application-form').on('paste','[id^="address-"]',function(e){if(this.id.includes('search')){return true;} e.preventDefault();var text=(e.originalEvent.clipboardData||window.clipboardData).getData('text');var cleanText=text.replace(/[^A-Za-z0-9 .,'\-]/g,'');var input=jQuery(this);setTimeout(function(){input.val(cleanText);},0);});jQuery('.application-form').on('input','[id^="address-"]',function(){if(this.id.includes('search')){return;} var currentValue=this.value;var cleanValue=currentValue.replace(/[^A-Za-z0-9 .,'\-]/g,'');if(currentValue!==cleanValue){this.value=cleanValue;}});jQuery('.application-form #email').on('keypress',function(e){return preventInvalidChars(e,/^[A-Za-z0-9@._\-]$/);});jQuery('.application-form #mobile-tel').on('keypress',function(e){return preventInvalidChars(e,/^[0-9 ]$/);});jQuery('.application-form #salary-amount').on('keypress',function(e){return preventInvalidChars(e,/^[0-9]$/);});jQuery('.application-form #firstname, .application-form #surname').blur(function(){validateName(jQuery(this));});jQuery('.application-form #title').change(function(){validateTitle(jQuery(this));});function validateEmail(input){var fieldContainer=input.closest('.field');var value=input.val().trim();fieldContainer.removeClass('error');if(!value){fieldContainer.addClass('error');return false;} if(/[<>]/.test(value)){fieldContainer.addClass('error');fieldContainer.find('.error').text('Please enter a valid email without special characters like < or >');return false;} if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)){fieldContainer.addClass('error');fieldContainer.find('.error').text('A valid email address is required.');return false;} return true;} function validatePhone(input,required=false,exactLength=null,isMobile=false){var fieldContainer=input.closest('.field');var value=input.val().trim();fieldContainer.removeClass('error');if(!required&&!value){return true;} if(required&&!value){fieldContainer.addClass('error');return false;} value=value.replace(/\s/g,'');input.val(value);if(/[<>]/.test(value)){fieldContainer.addClass('error');fieldContainer.find('.error').text('Please enter a valid phone number without special characters like < or >');return false;} if(!/^\d+$/.test(value)){fieldContainer.addClass('error');fieldContainer.find('.error').text('Please enter numbers only');return false;} if(isMobile){if(!value.startsWith('07')){fieldContainer.addClass('error');fieldContainer.find('.error').text('Mobile number must start with 07');return false;}}else{if(!value.startsWith('0')){fieldContainer.addClass('error');fieldContainer.find('.error').text('Phone number must start with 0');return false;}} if(exactLength&&value.length!==exactLength){fieldContainer.addClass('error');return false;} return true;} jQuery('.application-form #email').blur(function(){validateEmail(jQuery(this));});jQuery('.application-form #mobile-tel').blur(function(){validatePhone(jQuery(this),true,11,true);});function updateFirstname(){var firstname=jQuery('#firstname').val().trim();if(firstname){jQuery('span.fname').text(firstname);}} jQuery('.application-form #firstname').on('change blur',function(){updateFirstname();});jQuery('.controls a').click(function(){var nextStep=jQuery(this).attr('href');if(jQuery(this).hasClass('prev')){jQuery('.application-form fieldset').removeClass('active').addClass('inactive');jQuery(nextStep).addClass('active').removeClass('inactive');return false;} if(jQuery('#step-1').hasClass('active')){var loanConfirmRadios=jQuery('input[name="loan-amount-confirm[]"]');if(loanConfirmRadios.length>0){var fieldContainer=loanConfirmRadios.first().closest('.field');fieldContainer.removeClass('error');if(!loanConfirmRadios.is(':checked')){fieldContainer.addClass('error');return false;} if(loanConfirmRadios.filter(':checked').val()==='No'){window.location.href=window.location.pathname;return false;}}else{var loanInput=jQuery('#loan-amount');if(!validateLoanAmount(loanInput)){return false;}}} if(jQuery('#step-2').hasClass('active')){var titleValid=validateTitle(jQuery('#title'));var firstNameValid=validateName(jQuery('#firstname'));var surnameValid=validateName(jQuery('#surname'));if(!titleValid||!firstNameValid||!surnameValid){return false;}} if(jQuery('#step-3').hasClass('active')){var loanUseRadios=jQuery('input[name="loan-use[]"]');var fieldContainer=loanUseRadios.first().closest('.field');fieldContainer.removeClass('error');if(!loanUseRadios.is(':checked')){fieldContainer.addClass('error');return false;} if(loanUseRadios.filter(':checked').hasClass('other')){var loanUseSelect=jQuery('#loan-use');var selectContainer=loanUseSelect.closest('.field');selectContainer.removeClass('error');if(!loanUseSelect.val()||loanUseSelect.val()===""){selectContainer.addClass('error');return false;} var selectedText=loanUseSelect.find('option:selected').text();jQuery('input[name="loan-use[]"]:checked').val(selectedText);}} if(jQuery('#step-4').hasClass('active')){var loanDurationRadios=jQuery('input[name="loan-duration[]"]');var fieldContainer=loanDurationRadios.first().closest('.field');fieldContainer.removeClass('error');if(!loanDurationRadios.is(':checked')){fieldContainer.addClass('error');return false;} if(loanDurationRadios.filter(':checked').val()==='Other'){var durationSelect=jQuery('#loan-duration');var selectContainer=durationSelect.closest('.field');selectContainer.removeClass('error');if(!durationSelect.val()||durationSelect.val()===""){selectContainer.addClass('error');return false;} var selectedText=durationSelect.find('option:selected').text();jQuery('input[name="loan-duration[]"]:checked').val(selectedText);}} if(jQuery('#step-5').hasClass('active')){var emailValid=validateEmail(jQuery('#email'));var mobileValid=validatePhone(jQuery('#mobile-tel'),true,11,true);if(!emailValid||!mobileValid){return false;}} if(jQuery('#step-6').hasClass('active')){var addressWrap=jQuery('#step-6 .address-wrap');var addressValid=true;addressWrap.find('.address-fields').each(function(){var section=jQuery(this);var houseNumber=section.find('input[id^="address-number-"]');var houseName=section.find('input[id^="address-name-"]');if(!houseNumber.val()&&!houseName.val()){houseNumber.closest('.field').addClass('error');houseName.closest('.field').addClass('error');addressValid=false;}else{houseNumber.closest('.field').removeClass('error');houseName.closest('.field').removeClass('error');} ['street','town','postcode'].forEach(function(type){var field=section.find('input[id^="address-'+type+'-"]');if(!field.val()){field.closest('.field').addClass('error');addressValid=false;}else{field.closest('.field').removeClass('error');}});var monthSelect=section.find('select[id^="address-month-"]');var yearSelect=section.find('select[id^="address-year-"]');if(!monthSelect.val()||!yearSelect.val()){monthSelect.closest('.field').addClass('error');addressValid=false;}});if(!addressValid){return false;} var totalTime=0;addressWrap.find('.address-fields').each(function(){var section=jQuery(this);var monthSelect=section.find('select[id^="address-month-"]');var yearSelect=section.find('select[id^="address-year-"]');if(monthSelect.val()&&yearSelect.val()){var moveInDate=new Date(yearSelect.val(),monthSelect.val()-1);var today=new Date();totalTime+=(today-moveInDate)/(1000*60*60*24*365);}});if(totalTime<2){addressWrap.find('.address-fields').last().find('select[id^="address-month-"]').closest('.field').addClass('error').find('.error').text('Please provide addresses covering at least 2 years');return false;}} if(jQuery('#step-7').hasClass('active')){var residentialRadios=jQuery('input[name="residential-status[]"]');var fieldContainer=residentialRadios.first().closest('.field');fieldContainer.removeClass('error');if(!residentialRadios.is(':checked')){fieldContainer.addClass('error');return false;}} if(jQuery('#step-8').hasClass('active')){var daySelect=jQuery('#dob-day');var monthSelect=jQuery('#dob-month');var yearSelect=jQuery('#dob-year');var fieldContainer=daySelect.closest('.field');fieldContainer.removeClass('error');if(!daySelect.val()||!monthSelect.val()||!yearSelect.val()){fieldContainer.addClass('error');return false;} var day=parseInt(daySelect.val());var month=parseInt(monthSelect.val());var year=parseInt(yearSelect.val());var date=new Date(year,month-1,day);if(date.getDate()!==day){fieldContainer.addClass('error').find('.error').text('Please enter a valid date.');return false;} var today=new Date();var age=today.getFullYear()-year;if(today.getMonth()75){fieldContainer.addClass('error').find('.error').text('You must be between the ages of 18 and 75 to apply.');return false;}} if(jQuery('#step-9').hasClass('active')){var maritalRadios=jQuery('input[name="marital-status[]"]');var fieldContainer=maritalRadios.first().closest('.field');fieldContainer.removeClass('error');if(!maritalRadios.is(':checked')){fieldContainer.addClass('error');return false;} if(maritalRadios.filter(':checked').hasClass('other')){var maritalSelect=jQuery('#marital-status');var selectContainer=maritalSelect.closest('.field');selectContainer.removeClass('error');if(!maritalSelect.val()||maritalSelect.val()===""){selectContainer.addClass('error');return false;} var selectedText=maritalSelect.find('option:selected').text();jQuery('input[name="marital-status[]"]:checked').val(selectedText);}} if(jQuery('#step-10').hasClass('active')){var employmentRadios=jQuery('input[name="employment-status[]"]');var fieldContainer=employmentRadios.first().closest('.field');fieldContainer.removeClass('error');if(!employmentRadios.is(':checked')){fieldContainer.addClass('error');return false;} if(employmentRadios.filter(':checked').val()==="Unemployed"&&employmentRadios.filter(':checked').attr('id')==="employment-status-5"){fieldContainer.addClass('error');fieldContainer.find('.error').text('Sorry, we are unable to lend to you if you are unemployed.');return false;} if(employmentRadios.filter(':checked').val()==="Self Employed"){var selfEmployedRadios=jQuery('input[name="self-employed[]"]');var selfEmployedContainer=selfEmployedRadios.first().closest('.field');selfEmployedContainer.removeClass('error');selfEmployedContainer.find('.error').show();selfEmployedContainer.find('.self-employed-error').hide();if(!selfEmployedRadios.is(':checked')){selfEmployedContainer.addClass('error');return false;} if(selfEmployedRadios.filter(':checked').val()==="No"){selfEmployedContainer.addClass('error');selfEmployedContainer.find('.error').hide();selfEmployedContainer.find('.self-employed-error').show();return false;}} if(employmentRadios.filter(':checked').hasClass('other')){var employmentSelect=jQuery('select[name="employment-status"]');var selectContainer=employmentSelect.closest('.field');selectContainer.removeClass('error');selectContainer.find('.error.additional-info.unemployed').hide();if(!employmentSelect.val()||employmentSelect.val()===""){selectContainer.addClass('error');return false;} if(employmentSelect.val()==="Unemployed"){selectContainer.addClass('error');selectContainer.find('.error.additional-info.unemployed').show();return false;} var selectedText=employmentSelect.find('option:selected').text();jQuery('input[name="employment-status[]"]:checked').val(selectedText);}} if(jQuery('#step-11').hasClass('active')){var salaryFreqRadios=jQuery('input[name="salary-frequency[]"]');var salaryAmount=jQuery('#salary-amount');var bankRadios=jQuery('input[name="bank-account[]"]');var isValid=true;var freqContainer=salaryFreqRadios.first().closest('.field');freqContainer.removeClass('error');if(!salaryFreqRadios.is(':checked')){freqContainer.addClass('error');isValid=false;} var amountContainer=salaryAmount.closest('.field');amountContainer.removeClass('error');if(!salaryAmount.val()||!/^\d+$/.test(salaryAmount.val())){amountContainer.addClass('error');isValid=false;} if(salaryAmount.val()<1||salaryAmount.val()>999998){amountContainer.addClass('error').find('.error').text('Salary must be greater than £1 and less than £999998');isValid=false;} if(isValid&&salaryAmount.val()){var annualIncome=0;var frequency=salaryFreqRadios.filter(':checked').val();if(frequency==='Monthly'){annualIncome=parseFloat(salaryAmount.val())*12;}else if(frequency==='Weekly'){annualIncome=parseFloat(salaryAmount.val())*52;} if(annualIncome<10000){amountContainer.addClass('error').find('.error').text('Unfortunately we do not lend to customers with an income of less than £10,000');isValid=false;}} if(!isValid){return false;}} if(jQuery('#step-13').hasClass('active')){var mainContactRadios=jQuery('input[name="marketing[]"]');var fieldContainer=mainContactRadios.first().closest('.field');fieldContainer.removeClass('error');if(!mainContactRadios.is(':checked')){fieldContainer.addClass('error');return false;} if(mainContactRadios.filter(':checked').val()==='Yes'){var isValid=true;['email','tel','sms','post'].forEach(function(method){var methodRadios=jQuery('input[name="marketing-'+method+'[]"]');var methodContainer=methodRadios.first().closest('.field');methodContainer.removeClass('error');if(!methodRadios.is(':checked')){methodContainer.addClass('error');isValid=false;}});if(!isValid){return false;}}} if(jQuery('#step-14').hasClass('active')){jQuery('input:hidden, select:hidden').prop('required',false);var termsCheckbox=jQuery('#terms');var privacyCheckbox=jQuery('#alternative-elg');var isValid=true;var termsContainer=termsCheckbox.closest('.field');termsContainer.removeClass('error');if(!termsCheckbox.is(':checked')){termsContainer.addClass('error');isValid=false;} var privacyContainer=privacyCheckbox.closest('.field');privacyContainer.removeClass('error');if(!privacyCheckbox.is(':checked')){privacyContainer.addClass('error');isValid=false;} if(!isValid){return false;}} jQuery('.application-form fieldset').removeClass('active').addClass('inactive');jQuery(nextStep).addClass('active').removeClass('inactive');window.scrollTo({top:jQuery('.application-form').offset().top-50,behavior:'smooth'});return false;});function initCustomSelect(element){var $element=jQuery(element);var $parent=$element.parent();if($element.data('customSelect')){$element.customSelect('destroy');} $parent.find('.customSelect').remove();$element.removeAttr('style');$parent.find('span').removeAttr('style');$element.customSelect();var $customSelect=$parent.find('.customSelect');$customSelect.css({'display':'inline-block','position':'relative','opacity':'1','width':'100%'});$element.css({'position':'absolute','opacity':'0','height':'40px','width':'100%'});$customSelect.find('.customSelectInner').css('width','100%');} jQuery('.application-form select').each(function(){initCustomSelect(this);});jQuery('.application-form .multiradio input').change(function(){var input=jQuery(this);var name=input.attr('name');var fieldWrap=input.closest('.field-wrap');var otherFields=fieldWrap.find('.field.other');if(name==='employment-status[]'){otherFields.hide();fieldWrap.find('.field.multiradio.secondary').hide();if(input.hasClass('other')&&input.is(':checked')){otherFields.show();}else if(input.val()==='Self Employed'){var selfEmployedContainer=fieldWrap.find('.field.multiradio.secondary');selfEmployedContainer.show();selfEmployedContainer.find('input[name="self-employed[]"]').prop('checked',false);selfEmployedContainer.removeClass('error');selfEmployedContainer.find('.error').show();selfEmployedContainer.find('.self-employed-error').hide();} return;} if(name==='marketing[]'){var otherField=fieldWrap.find('div.other');otherField.toggle(input.val()==='Yes');return;} if(name.startsWith('marketing-')){return;} if(input.hasClass('other')&&input.is(':checked')){otherFields.show();}else{otherFields.hide();}});jQuery('.application-form .additional-option').change(function(){var additionalField=jQuery(this).data('additional');if(jQuery(this).is('select')){var selectedOption=jQuery(this).find(':selected'),additionalField=selectedOption.data('additional');} jQuery('.additional-info.'+additionalField).show();});jQuery('.application-form .address-wrap').each(function(){var addressWrap=jQuery(this);var addressTemplate=document.getElementById('address-template');var addressSections=[{index:1,timeAtAddress:0}];function createAddressSection(index){if(!addressTemplate){console.error('Address template not found');return null;} var content=addressTemplate.content.cloneNode(true);var html=new XMLSerializer().serializeToString(content);html=html.replace(/\{INDEX\}/g,index);var temp=document.createElement('div');temp.innerHTML=html;return jQuery(temp.children);} var firstSection=createAddressSection(1);if(firstSection){firstSection=firstSection.filter(':not(.notes.address)');firstSection.filter('.address-fields').hide();addressWrap.empty();addressWrap.append(firstSection);firstSection.find('select').each(function(){initCustomSelect(this);});addressWrap.find('.address-fields').hide();addressWrap.find('.address-search').show();addressWrap.find('.address-toggle').show();} if(typeof pca!=='undefined'){try{var fields=[{element:addressWrap.find('#address-search-1')[0],field:""},{element:addressWrap.find('#address-number-1')[0],field:"BuildingNumber",mode:pca.fieldMode.POPULATE},{element:addressWrap.find('#address-name-1')[0],field:"BuildingName",mode:pca.fieldMode.POPULATE},{element:addressWrap.find('#address-street-1')[0],field:"Street",mode:pca.fieldMode.POPULATE},{element:addressWrap.find('#address-town-1')[0],field:"City",mode:pca.fieldMode.POPULATE},{element:addressWrap.find('#address-postcode-1')[0],field:"PostalCode"}];var loqateSearch=new pca.Address(fields,{key:window.LOQATE_LICENSE_CODE,countries:{codesList:"GBR"}});loqateSearch.listen("populate",function(address,variations){var currentSection=addressWrap.find('#address-search-1').closest('.address-search');var currentIndex=parseInt(currentSection.find('input').attr('id').match(/\d+/)[0]);var currentToggle=currentSection.next('.address-toggle');var currentFields=currentSection.nextAll('.address-fields').first();currentSection.hide();currentToggle.hide();currentFields.show();currentFields.find('select').each(function(){initCustomSelect(this);});validateAddressFields(currentIndex);});}catch(e){console.error('Error initializing Loqate:',e);}} addressWrap.on('click','.address-toggle',function(){var addressToggle=jQuery(this);var currentSection=addressToggle.prevAll('.address-search').first();var addressFields=addressToggle.nextAll('.address-fields').first();addressToggle.toggleClass('active');if(addressToggle.hasClass('active')){addressToggle.find('span').text('Automatically');currentSection.hide();addressFields.show();addressFields.find('select').each(function(){initCustomSelect(this);});}else{addressToggle.find('span').text('Manually');currentSection.show();addressFields.hide();} return false;});function validateAddressFields(index){var isValid=true;var houseNumber=addressWrap.find('#address-number-'+index);var houseName=addressWrap.find('#address-name-'+index);var street=addressWrap.find('#address-street-'+index);var town=addressWrap.find('#address-town-'+index);var postcode=addressWrap.find('#address-postcode-'+index);function validateAddressText(field){var value=field.val().trim();var fieldContainer=field.closest('.field');if(/[<>]/.test(value)){fieldContainer.addClass('error');fieldContainer.find('.error').text('Please enter valid text without special characters like < or >');return false;} return true;} if(!houseNumber.val()&&!houseName.val()){houseNumber.closest('.field').addClass('error');houseName.closest('.field').addClass('error');isValid=false;}else{if(houseNumber.val()&&!validateAddressText(houseNumber))isValid=false;if(houseName.val()&&!validateAddressText(houseName))isValid=false;if(isValid){houseNumber.closest('.field').removeClass('error');houseName.closest('.field').removeClass('error');}} [street,town,postcode].forEach(function(field){if(!field.val()){field.closest('.field').addClass('error');isValid=false;}else if(!validateAddressText(field)){isValid=false;}else{field.closest('.field').removeClass('error');}});return isValid;} function validateMoveInDate(index){var monthSelect=addressWrap.find('#address-month-'+index);var yearSelect=addressWrap.find('#address-year-'+index);var dateField=monthSelect.closest('.field');if(!monthSelect.val()||!yearSelect.val()){dateField.addClass('error');return false;} var addressDates=[];addressWrap.find('.address-fields').each(function(idx){var section=jQuery(this);var sectionMonth=section.find('select[id^="address-month-"]');var sectionYear=section.find('select[id^="address-year-"]');if(sectionMonth.val()&§ionYear.val()){var sectionDate=new Date(sectionYear.val(),sectionMonth.val()-1);addressDates.push({index:idx+1,date:sectionDate,section:section});}});addressDates.sort((a,b)=>b.date-a.date);var totalTime=0;var today=new Date();var lastDate=today;for(var i=0;i=2){var sectionsNeeded=1;var runningTotal=0;lastDate=today;for(var i=0;i=2)break;sectionsNeeded++;lastDate=addressDates[i].date;} addressWrap.find('.address-fields').each(function(idx){if(idx>=sectionsNeeded){var currentIndex=idx+1;addressWrap.find('#address-search-'+currentIndex).closest('.address-search').remove();addressWrap.find('#address-name-'+currentIndex).closest('.address-fields').remove();addressWrap.find('a.address-toggle').eq(idx).remove();if(idx>0){addressWrap.find('.notes.address').eq(idx-1).remove();}}});addressSections=addressSections.slice(0,sectionsNeeded);return true;} if(totalTime<2&&addressDates.length<3){var nextIndex=addressDates.length+1;if(!addressWrap.find('#address-search-'+nextIndex).length){var newSection=createAddressSection(nextIndex);if(newSection){addressWrap.append(newSection);newSection.filter('.address-fields').hide();newSection.find('select').each(function(){initCustomSelect(this);jQuery(this).val('');});addressSections.push({index:nextIndex,timeAtAddress:0});initializeLoqateForIndex(nextIndex);}} return false;} return totalTime>=2;} addressWrap.on('blur','input',function(){var matches=jQuery(this).attr('id').match(/\d+/);if(matches&&matches.length>0){var index=parseInt(matches[0]);validateAddressFields(index);}});addressWrap.on('change','select',function(){var matches=jQuery(this).attr('id').match(/\d+/);if(matches&&matches.length>0){var index=parseInt(matches[0]);validateMoveInDate(index);}});function initializeLoqateForIndex(index){if(typeof pca!=='undefined'){try{var searchField=addressWrap.find('#address-search-'+index).clone();searchField.attr('id','address-search-'+index);addressWrap.find('.address-search').last().find('input').replaceWith(searchField);var fields=[{element:searchField[0],field:""},{element:addressWrap.find('#address-number-'+index)[0],field:"BuildingNumber",mode:pca.fieldMode.POPULATE},{element:addressWrap.find('#address-name-'+index)[0],field:"BuildingName",mode:pca.fieldMode.POPULATE},{element:addressWrap.find('#address-street-'+index)[0],field:"Street",mode:pca.fieldMode.POPULATE},{element:addressWrap.find('#address-town-'+index)[0],field:"City",mode:pca.fieldMode.POPULATE},{element:addressWrap.find('#address-postcode-'+index)[0],field:"PostalCode"}];var loqateSearch=new pca.Address(fields,{key:window.LOQATE_LICENSE_CODE,countries:{codesList:"GBR"}});loqateSearch.listen("populate",function(address,variations){var currentSection=addressWrap.find('#address-search-'+index).closest('.address-search');var currentToggle=currentSection.next('.address-toggle');var currentFields=currentSection.nextAll('.address-fields').first();currentSection.hide();currentToggle.hide();currentFields.show();validateAddressFields(index);});}catch(e){console.error('Error initializing Loqate for index '+index+':',e);}}}});jQuery('.branches-form .submit').click(function(){var postcodeField=jQuery('#BFpostcode');const postcodeRegex=/^[A-Z]{1,2}[0-9][0-9A-Z]? ?[0-9][A-Z]{2}$/i;let postcode=postcodeField.val().trim().toUpperCase();if(postcodeRegex.test(postcode)){if(!postcode.includes(' ')){postcode=postcode.slice(0,-3)+' '+postcode.slice(-3);} const outwardCode=postcode.split(' ')[0];window.location='/find-your-local-branch?prefix='+outwardCode;} else{console.log(postcode,'INVALID');postcodeField.val('').attr('placeholder','Please enter a UK postcode').addClass('error');} return false;});jQuery('.application-form').on('submit',function(e){e.preventDefault();if(jQuery('#step-14').hasClass('active')){var termsCheckbox=jQuery('#terms');var privacyCheckbox=jQuery('#alternative-elg');var isValid=true;var termsContainer=termsCheckbox.closest('.field');termsContainer.removeClass('error');if(!termsCheckbox.is(':checked')){termsContainer.addClass('error');isValid=false;} var privacyContainer=privacyCheckbox.closest('.field');privacyContainer.removeClass('error');if(!privacyCheckbox.is(':checked')){privacyContainer.addClass('error');isValid=false;} if(isValid){jQuery('input:hidden, select:hidden').prop('required',false);var submitButton=jQuery(this).find('button[type="submit"]');var loadingText=jQuery(this).find('.loading');submitButton.prop('disabled',true);loadingText.css({"opacity":"1"});function waitForGTM(callback,maxWaitTime=10000){const startTime=Date.now();function checkGTM(){if(window.google_tag_manager){callback();} else if(Date.now()-startTime