Anfrage

Eventdetails

- Ende. "Lade immer jQuery" kann AUS bleiben. */ (function () { 'use strict';var FORM_ID = 'rs_event_booking_form'; var FORM_SELECTOR = 'form#' + FORM_ID;function cleanValue(v, max) { return String(v == null ? '' : v).trim().replace(/\s+/g, ' ').slice(0, max || 100); }function getFieldValue(form, fieldId) { var sel = '[name="form_fields[' + fieldId + ']"]'; var field = form.querySelector(sel); if (!field) return ''; if (field.tagName === 'SELECT') return cleanValue(field.value); if (field.type === 'radio') { var checked = form.querySelector(sel + ':checked'); return checked ? cleanValue(checked.value) : ''; } if (field.type === 'checkbox') { return Array.prototype.slice.call(form.querySelectorAll(sel + ':checked')) .map(function (el) { return cleanValue(el.value); }) .filter(Boolean) .join(' | '); } return cleanValue(field.value); }// Referrer = Seite vor /location-buchen/. Beim ersten Laden festhalten, // damit er auch nach Interaktionen unverändert bleibt. var PREVIOUS_PAGE = cleanValue(document.referrer, 200) || '(direct)';// 1) Werte erfassen, sobald der Nutzer absendet (bevor Elementor das Formular leert). document.addEventListener('submit', function (e) { var form = e.target && e.target.closest ? e.target.closest(FORM_SELECTOR) : null; if (!form) return; form.dataset.gaBookingLocation = getFieldValue(form, 'location'); form.dataset.gaBookingEventType = getFieldValue(form, 'eventtype'); form.dataset.gaLeadSent = ''; }, true);// 2) generate_lead senden, sobald Elementor den Erfolg bestätigt. function fireLead(form) { if (!form || form.dataset.gaLeadSent === '1') return; var loc = form.dataset.gaBookingLocation || ''; var type = form.dataset.gaBookingEventType || ''; if (!loc && !type) return; form.dataset.gaLeadSent = '1';var payload = { booking_location: loc, booking_event_type: type, previous_page: PREVIOUS_PAGE };if (typeof window.gtag === 'function') { window.gtag('event', 'generate_lead', payload); } else { window.dataLayer = window.dataLayer || []; payload.event = 'generate_lead'; window.dataLayer.push(payload); } }function checkNode(n) { if (!n || n.nodeType !== 1) return; var success = (n.classList && n.classList.contains('elementor-message-success')) ? n : (n.querySelector ? n.querySelector('.elementor-message-success') : null); if (!success) return; var form = (success.closest && success.closest('form')) || document.querySelector(FORM_SELECTOR); if (form && form.matches && form.matches(FORM_SELECTOR)) fireLead(form); }var observer = new MutationObserver(function (muts) { for (var i = 0; i < muts.length; i++) { var nodes = muts[i].addedNodes; for (var j = 0; j < nodes.length; j++) checkNode(nodes[j]); } }); observer.observe(document.body || document.documentElement, { childList: true, subtree: true }); })();