Lead #2093

Company
Loucas Accountants Maidstone
Website
https://loucas.org.uk
Best Contact
Email
enquiries@loucas.org.uk (generic)

Override

Captured Pages

Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');
Emails: enquiries@loucas.org.uk
View text
Accessibility links Skip to content Accessibility Help You are using an outdated browser. Upgrade your browser today for a better experience of this site and many others. Request a call 01622 758257 MENU Services All Services Personal Business Start Up services Growth services Exit services Resources and Tools Property Owners & Landlords About us Work with Loucas Careers at Loucas Contact Contact Us Maidstone Office Tonbridge Office Welling Office Brighton Office London Office Tax and Accountancy Partners for Ambitious Businesses. Strong relationships, clear advice, and expert financial management help our clients focus on reaching their business goals. Request A Call Back Personal Tax Experts for Clarity & Peace of Mind. Navigating tax complexities with expert guidance -helping you optimise your finances and plan for the future with confidence. Request A Call Back Audit Services with a Dedicated Team You Can Rely On. Our experienced audit team provides consistency, deep understanding, and year-on-year continuity - ensuring compliance and supporting your business growth. Request A Call Back How can we help? Business Services Whatever stage your business is at we have the services and experience to support your success. Find out more Personal Services From self-assessment to inheritance we have the services and experience to support your private tax needs. Find out more How we work Being the Difference is a commitment to delivering positive outcomes. We combine a passion for continuous learning with the confidence to face challenges head-on. We are always ready to stand by your side, helping you make informed decisions that drive success. Request A Call Back We've built our approach on Three Core Values: Understand We take the time to understand your business, your successes, your challenges, and your goals - offering advice that matches your needs. Collaborate We work side by side with you as an extension of your team so you can focus on running your business. Prosper Our aim is to help your business reach its full potential, ensuring both financial success and long-term growth. Who we are Since 1974, Loucas has been a trusted partner for ambitious businesses. We’re Chartered Certified Accounts and Registered Auditors who offer clear financial advice and strong relationships that drive success. Our commitment to ‘Being the Difference’ means providing tailored expertise and standing by your side through every challenge. It means helping you make informed decisions with confidence. With decades of experience and a proactive approach, we’re here to support you at every stage of your business journey. Find out more What our clients say Request a callback. To arrange a call-back with one of our advisors, enter your details, and we will call you back. Select the Loucas office nearest you Maidstone Tonbridge London Welling Brighton I agree to Loucas collecting and managing the information I submit for this enquiry. Let us know you are a real person* function buildCognitoEntryFromDataAttr(formElement) { const entry = { "$type": "Cognito.Forms.FormEntry.Loucas1.LoucasWebsiteEnquiryFormSt1", "Form": { "Id": "35", "InternalName": "LoucasWebsiteEnquiryFormSt1", "Name": "Loucas Website Enquiry Form St1" } }; const elements = formElement.querySelectorAll('[data-cognito]'); //debugger; elements.forEach(el => { const path = el.getAttribute('data-cognito'); // e.g., "x1.Last" const value = el.value.trim(); if (!path || value === '') return; const parts = path.split('.'); if (parts.length === 1) { entry[parts[0]] = value; } else if (parts.length === 2) { const [parent, child] = parts; entry[parent] = entry[parent] || {}; entry[parent][child] = value; } }); return entry; } (function ($) { const debugmode = false; // simple uuid v4 function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } // ensure an EnquiryID for this session const KEY = 'enquiry_id'; if (!sessionStorage.getItem(KEY)) { sessionStorage.setItem(KEY, uuidv4()); } // helper to ensure hidden field exists & is populated function ensureEnquiryIdField(formEl) { if (!formEl) return; let hidden = formEl.querySelector('input[name="EnquiryID"]'); if (!hidden) { hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = 'EnquiryID'; formEl.appendChild(hidden); } hidden.value = sessionStorage.getItem(KEY); } // attach to both forms (replace selectors with your Cognito embeds) function wireUpForm(selector) { const formEl = document.querySelector(selector); if (!formEl) return; ensureEnquiryIdField(formEl); formEl.addEventListener('submit', function(){ ensureEnquiryIdField(formEl); // re-assert before submit }); } // EXAMPLE: update these with the actual selectors/IDs your dev used wireUpForm('#form1'); function RedirectToSecondPage(formData) { saveFormValues(); window.location.assign('/new-enquiry'); } // ------------------------------ // A) Intercept FIRST form submit // ------------------------------ $("#form1").validate({ ignore: ":hidden", rules: { fullname: "required", email: "required email", phone: "required", gdpr: "required" }, submitHandler: function (form) { //debugger; var recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { alert("Please complete the reCAPTCHA verification."); return false; // Prevent form submission } // Form is valid; proceed with AJAX submission // (see below) // Collect fields from the entire ASP.NET form (which includes the #firstFormContainer) /*var formData = $(form) .serializeArray() .filter( (ai) => ai.name !== "__VIEWSTATE" && ai.name !== "__VIEWSTATEGENERATOR" && ai.name !== "__EVENTVALIDATION" ); */ //debugger; const path = window.location.pathname; // Encode the path before setting it document.getElementById('sourceurl').value = path; // encodeURIcomponent() has been removed per Loucas instructions var formData = buildCognitoEntryFromDataAttr(form); if (debugmode) { RedirectToSecondPage(formData); } else { //debugger; fetch(`https://www.cognitoforms.com/api/forms/35/entries?access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ijg4YmYzNWNmLWM3ODEtNDQ3ZC1hYzc5LWMyODczMjNkNzg3ZCIsInR5cCI6IkpXVCJ9.eyJvcmdhbml6YXRpb25JZCI6Ijg4NmE1NjZkLTUyMWMtNDc2Ni1hNDIyLTE0N2FjZjYzZmE4YyIsImludGVncmF0aW9uSWQiOiJhNWJlZmIyNS1jNmRkLTQxM2YtODY2ZS02ODhiZDRiZGQ5Y2QiLCJjbGllbnRJZCI6IjNkZTNmODMwLWNiYzctNDZlNi1iOTZlLTVmMDE2NzcyMTgzMCIsImp0aSI6ImRkOTQwYWVmLTFiZTQtNDI3YS05ZmZhLWUzN2QxNzE1OWY2YSIsImlhdCI6MTc0NjAwOTc1MiwiaXNzIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS8iLCJhdWQiOiJhcGkifQ.0PyMzWEOjdOdxk8Q-568rC_2QEsUEqYr8mt8HVT4mFI`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(res => res.json()) .then(data => { RedirectToSecondPage(formData); console.log(data); }) .catch(err => { alert("Submission failed."); console.error(err); }); } return false; }, }); })(jQuery); Client Portal enquiries@loucas.org.uk 01622 758257 Home About us Testimonials Jobs Services Contact Business Tax Resources and Tools News Testimonials Site map Accessibility Disclaimer Privacy Help Loucas, The Carriage House, Mill Street, Maidstone, Kent ME15 6XW © 2025 Loucas. All rights reserved. We use cookies on this website, you can find more information about cookies here. document.addEventListener('DOMContentLoaded', function () { const backgroundImages = [ '/img/page-bg-one.jpg', '/img/page-bg-two.jpg', '/img/page-bg-three.jpg', '/img/page-bg-four.jpg', '/img/page-bg-five.jpg', '/img/page-bg-six.jpg' ]; // Preload all images const preloadImages = backgroundImages.map(src => { return new Promise(resolve => { const img = new Image(); img.onload = resolve; img.onerror = resolve; // handle broken images gracefully img.src = src; }); }); // Once all are loaded, pick one randomly Promise.all(preloadImages).then(() => { const randomIndex = Math.floor(Math.random() * backgroundImages.length); const selectedImage = backgroundImages[randomIndex]; const element = document.querySelector('.page-title-wrap'); if (element) { element.style.backgroundImage = `url(${selectedImage})`; } }); }); document.addEventListener("DOMContentLoaded", function() { // Define the image paths const images = [ "/img/inner-img-one.jpg", "/img/inner-img-two.jpg", "/img/inner-img-three.jpg", "/img/inner-img-four.jpg", "/img/inner-img-five.jpg", "/img/inner-img-six.jpg" ]; // Pick a random image const randomImage = images[Math.floor(Math.random() * images.length)]; // Update the image source try { // Update the image source document.getElementById("rotating-img").src = randomImage; } catch (error) { console.error("Error updating image source:", error); } }); // Custom smooth scroll function with easing function smoothScrollTo(target, duration) { const targetPosition = target.getBoundingClientRect().top + window.pageYOffset; const startPosition = window.pageYOffset; const distance = targetPosition - startPosition; let startTime = null; // Easing function (ease-in-out) function easeInOutQuad(t, b, c, d) { t /= d / 2; if (t < 1) return c / 2 * t * t + b; t--; return -c / 2 * (t * (t - 2) - 1) + b; } // Animation function function animation(currentTime) { if (startTime === null) startTime = currentTime; const timeElapsed = currentTime - startTime; const run = easeInOutQuad(timeElapsed, startPosition, distance, duration); window.scrollTo(0, run); if (timeElapsed < duration) requestAnimationFrame(animation); } requestAnimationFrame(animation); } // Scroll into view with custom easing document.querySelectorAll('.js-scroll-to').forEach(button => { button.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector('.footerform'); smoothScrollTo(target, 4000); // Adjust duration (1000ms) as needed }); }); (function () { var header = document.querySelector("#header"); var headroom = new Headroom(header, { tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "fadeMenuIn", unpinned: "fadeMenuOut" } }); headroom.init(); }()); var swiper = new Swiper(".homeswiper", { //pagination: { //el: ".swiper-pagination", //clickable: true, //}, autoplay: { delay: 7000, disableOnInteraction: false, }, slidesPerView: 1 }); var swiper = new Swiper('.testimonial-reviews-swiper', { spaceBetween: 30, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 20, } }, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo"); vgo('setAccount', '67991882'); vgo('setTrackByDefault', true); vgo('process');