window.dataLayer = window.dataLayer || []; function norm(v) { return (v == null ? "" : String(v)).trim().toLowerCase(); } const HS_FIELDS = { hear: "0-1/how_did_you_hear_about_us_" }; function getVal(scopeEl, name) { const el = scopeEl.querySelector(`[name="${CSS.escape(name)}"]`); return el ? el.value : ""; } function readFormFromScope(scopeEl) { return { hear: norm(getVal(scopeEl, HS_FIELDS.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 bindWrappers() { const wrappers = document.querySelectorAll(".hsfc-FormWrapper"); wrappers.forEach((wrapper) => { if (wrapper.__hsDlBound) return; wrapper.__hsDlBound = true; wrapper.__hsPending = null; wrapper.__hsPushed = false; wrapper.addEventListener("submit", function (e) { const formEl = e.target && e.target.closest ? e.target.closest("form") : null; if (!formEl) return; const payload = readFormFromScope(formEl); payload.form_type = "New business"; 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() { bindWrappers(); setTimeout(bindWrappers, 250); setTimeout(bindWrappers, 1000); setTimeout(bindWrappers, 2500); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initHsDl); } else { initHsDl(); }