Lamborghini Hatfield

01707 925 589

FULL DETAILS

Lamborghini London Service

020 3199 3866

FULL DETAILS

Lamborghini London

020 3199 3866

FULL DETAILS

Lamborghini Manchester

0161 717 4326

FULL DETAILS

Lamborghini Pangbourne

0118 462 0893

FULL DETAILS
;document.addEventListener('elementor/popup/show', function(event) { // Use a delay if necessary to ensure the popup is fully rendered setTimeout(function() { // --- Populate UTM and other tracking fields --- var utmCampaignField = document.querySelector('input[name="utm_campaign"]'); var utmMediumField = document.querySelector('input[name="utm_medium"]'); var utmSourceField = document.querySelector('input[name="utm_source"]'); var gclidField = document.querySelector('input[name="gclid"]'); var currentUrlField = document.querySelector('input[name="current_url"]'); if (utmCampaignField) { utmCampaignField.value = getUrlParameter('utm_campaign'); } if (utmMediumField) { utmMediumField.value = getUrlParameter('utm_medium'); } if (utmSourceField) { utmSourceField.value = getUrlParameter('utm_source'); } if (gclidField) { gclidField.value = getUrlParameter('gclid'); } if (currentUrlField) { currentUrlField.value = window.location.href; console.log("Popup: Set current_url field to:", currentUrlField.value); } else { console.warn("Hidden field 'current_url' not found in popup."); } // --- Populate page type --- var pageTypeField = document.querySelector('input[name="page_type"]'); if (typeof pageTypeValue !== 'undefined') { if (pageTypeField) { pageTypeField.value = pageTypeValue; console.log("Populated page_type field with:", pageTypeValue); } else { console.warn("Hidden field 'page_type' not found in popup."); } } else { console.warn("pageTypeValue is undefined."); } // --- Populate gravityFormData fields (if available) --- if (typeof gravityFormData !== 'undefined') { console.log('gravityFormData:', gravityFormData); // Debugging var brandField = document.querySelector('input[name="input_62"]'); if (brandField) { brandField.value = gravityFormData.car_brand; console.log('Brand field updated with:', gravityFormData.car_brand); } else { console.warn('Brand field (input_62) not found.'); } var rangeField = document.querySelector('input[name="input_63"]'); if (rangeField) { rangeField.value = gravityFormData.car_range; console.log('Range field updated with:', gravityFormData.car_range); } else { console.warn('Range field (input_63) not found.'); } var modelField = document.querySelector('input[name="input_64"]'); if (modelField) { modelField.value = gravityFormData.car_model; console.log('Model field updated with:', gravityFormData.car_model); } else { console.warn('Model field (input_64) not found.'); } var ownerField = document.querySelector('input[name="input_65"]'); if (ownerField) { ownerField.value = gravityFormData.owner_name; console.log('Owner field updated with:', gravityFormData.owner_name); } else { console.warn('Owner field (input_65) not found.'); } } else { console.error('gravityFormData is undefined.'); } }, 200); // Delay of 200ms; adjust as needed }); // Function to parse URL parameters safely function getUrlParameter(name) { name = name.replace(/[[]]/g, "\$&"); // Escape square brackets properly var regex = new RegExp("[?&]" + name + "=([^&#]*)"); var results = regex.exec(window.location.search); return results ? decodeURIComponent(results[1]) : ''; };// Function to parse URL parameters safely function getUrlParameter(name) { name = name.replace(/[[]]/g, "\$&"); // Escape square brackets properly var regex = new RegExp("[?&]" + name + "=([^&#]*)"); var results = regex.exec(window.location.search); return results ? decodeURIComponent(results[1]) : ''; } document.addEventListener('elementor/popup/show', function(event) { setTimeout(function() { console.log("Elementor popup detected, populating form fields..."); var formData = {}; // --- UTM and Tracking Fields --- var utmCampaignField = document.querySelector('input[name="utm_campaign"]'); var utmMediumField = document.querySelector('input[name="utm_medium"]'); var utmSourceField = document.querySelector('input[name="utm_source"]'); var gclidField = document.querySelector('input[name="gclid"]'); var currentUrlField = document.querySelector('input[name="current_url"]'); formData.utm_campaign = utmCampaignField ? (utmCampaignField.value = getUrlParameter('utm_campaign')) : ''; formData.utm_medium = utmMediumField ? (utmMediumField.value = getUrlParameter('utm_medium')) : ''; formData.utm_source = utmSourceField ? (utmSourceField.value = getUrlParameter('utm_source')) : ''; formData.gclid = gclidField ? (gclidField.value = getUrlParameter('gclid')) : ''; formData.current_url = currentUrlField ? (currentUrlField.value = window.location.href) : ''; console.log("Tracking fields set:", formData); // --- Populate Page Type from DataLayer --- var pageTypeField = document.querySelector('input[name="post_page_type"]'); if (pageTypeField && window.dataLayer && window.dataLayer.length > 0) { var pageTypeData = window.dataLayer.find(item => item.pageType); if (pageTypeData) { formData.page_type = pageTypeField.value = pageTypeData.pageType; } } // --- Populate Car Brand from DataLayer --- var carBrandField = document.querySelector('input[name="post_car_brand"]'); if (carBrandField && window.dataLayer && window.dataLayer.length > 0) { var carBrandData = window.dataLayer.find(item => item.section); if (carBrandData) { formData.car_brand = carBrandField.value = carBrandData.section; } } // --- Fallback: Build gravityFormData from hidden data if not already defined --- if (typeof gravityFormData === 'undefined') { var hiddenData = document.getElementById('popup-data'); if (hiddenData) { gravityFormData = { mlo_make: hiddenData.getAttribute('data-make'), mlo_model: hiddenData.getAttribute('data-model'), mlo_variant: hiddenData.getAttribute('data-variant'), mlo_vrm: hiddenData.getAttribute('data-vrm'), mlo_mileage: hiddenData.getAttribute('data-mileage'), mlo_location: hiddenData.getAttribute('data-location'), mlo_asset_id: hiddenData.getAttribute('data-assetid') }; } } // --- Populate Gravity Form Fields using custom keys --- // For mlo_make, use gravityFormData.mlo_make if defined, // otherwise fallback to the hidden data's data-make or window.mloRangeMake. var makeValue = ""; if (typeof gravityFormData !== 'undefined' && gravityFormData.mlo_make) { makeValue = gravityFormData.mlo_make; } else { var hiddenData = document.getElementById('popup-data'); if (hiddenData && hiddenData.getAttribute('data-make')) { makeValue = hiddenData.getAttribute('data-make'); } if (!makeValue && typeof window.mloRangeMake !== 'undefined') { makeValue = window.mloRangeMake; } } var makeField = document.querySelector('input[name="input_mlo_make"]'); if (makeField) { makeField.value = makeValue; formData.mlo_make = makeValue; } // Other fields are mapped normally. var modelField = document.querySelector('input[name="input_mlo_model"]'); if (modelField && gravityFormData && gravityFormData.mlo_model) { formData.mlo_model = modelField.value = gravityFormData.mlo_model; } var variantField = document.querySelector('input[name="input_mlo_variant"]'); if (variantField && gravityFormData && gravityFormData.mlo_variant) { formData.mlo_variant = variantField.value = gravityFormData.mlo_variant; } var vrmField = document.querySelector('input[name="input_mlo_vrm"]'); if (vrmField && gravityFormData && gravityFormData.mlo_vrm) { formData.mlo_vrm = vrmField.value = gravityFormData.mlo_vrm; } var mileageField = document.querySelector('input[name="input_mlo_mileage"]'); if (mileageField && gravityFormData && gravityFormData.mlo_mileage) { formData.mlo_mileage = mileageField.value = gravityFormData.mlo_mileage; } var locationField = document.querySelector('input[name="input_mlo_location"]'); if (locationField && gravityFormData && gravityFormData.mlo_location) { formData.mlo_location = locationField.value = gravityFormData.mlo_location; } var assetIdField = document.querySelector('input[name="input_mlo_asset_id"]'); if (assetIdField && gravityFormData && gravityFormData.mlo_asset_id) { formData.mlo_asset_id = assetIdField.value = gravityFormData.mlo_asset_id; } // --- Push Data to dataLayer --- window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'formLoad', 'formID': event.detail.popup.id, // Use Elementor popup ID 'formData': formData }); console.log("Form Data Pushed to dataLayer on Load:", formData); // --- Capture Form Updates --- document.querySelectorAll("input, select, textarea").forEach(function (field) { field.addEventListener("change", function () { var fieldName = field.getAttribute("name"); if (fieldName) { formData[fieldName] = field.value; } window.dataLayer.push({ 'event': 'formUpdated', 'formID': event.detail.popup.id, 'formData': formData }); console.log("Form Updated:", formData); }); }); }, 200); // Delay to ensure popup is fully loaded });;;