window.dataLayer = window.dataLayer || []; function norm(v) { return (v == null ? "" : String(v)).trim().toLowerCase(); } const HS_FORM_CONFIG = { "1dcd34dd-6443-49d6-831c-541dd9fa5870": { form_type: "New business", fields: { hear: "0-1/how_did_you_hear_about_us_" } }, "ae113460-590a-4a6f-be6e-edea630fe7bd": { form_type: "Subscribe", fields: {} } }; function getVal(scopeEl, name) { if (!name) return ""; const el = scopeEl.querySelector(`[name="${CSS.escape(name)}"]`); return el ? el.value : ""; } function readPayload(formEl, config) { const f = config.fields; return { form_type: config.form_type || "", hear: norm(getVal(formEl, f.hear)) }; } function pushDataLayer(payload) { window.dataLayer.push({ event: "hubspot_form_submission", form_type: payload.form_type || "", hear: payload.hear || "", page_url: window.location.href }); } function bindHubSpotForms() { document.querySelectorAll(".hsfc-FormWrapper form.hsfc-Form").forEach((formEl) => { if (formEl.__hsDlBound) return; formEl.__hsDlBound = true; const wrapper = formEl.closest(".hsfc-FormWrapper"); if (!wrapper) return; wrapper.__hsPending = null; wrapper.__hsPushed = false; formEl.addEventListener("submit", function () { const formId = formEl.getAttribute("data-form-id"); const config = HS_FORM_CONFIG[formId]; if (!config) return; const payload = readPayload(formEl, config); wrapper.__hsPending = payload; }, true); const obs = new MutationObserver(function () { if (wrapper.__hsPushed) return; if (wrapper.querySelector(".hsfc-PostSubmit")) { const pending = wrapper.__hsPending; if (pending) { pushDataLayer(pending); } wrapper.__hsPushed = true; obs.disconnect(); } }); obs.observe(wrapper, { childList: true, subtree: true }); }); } function initHsDl() { bindHubSpotForms(); setTimeout(bindHubSpotForms, 250); setTimeout(bindHubSpotForms, 1000); setTimeout(bindHubSpotForms, 2500); setTimeout(bindHubSpotForms, 5000); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initHsDl); } else { initHsDl(); }