const TRYNOW_WEBHOOK_URL = "https://002-001-5dd6e535-4d1c-46bc-9bd9-42ad4bc5f082.odoo4projects.com/webhook/c25169c6-4234-4b47-8e74-612b9539da0a";
// --- Helper: Get URL parameters ---
function getUrlParams() {
const params = {};
window.location.search
.substring(1)
.split("&")
.forEach(pair => {
if (pair) {
const [key, value] = pair.split("=");
params[decodeURIComponent(key)] = decodeURIComponent(value || "");
}
});
return params;
}
// --- Add UTM fields to form ---
function addUtmFields(form) {
const utmParams = ["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"];
const urlParams = getUrlParams();
const defaults = {
utm_source: "homepage",
utm_medium: "direct",
utm_campaign: "none"
};
utmParams.forEach(param => {
let input = form.querySelector(`input[name="${param}"]`);
if (!input) {
input = document.createElement("input");
input.type = "hidden";
input.name = param;
form.appendChild(input);
}
input.value = urlParams[param] || defaults[param] || "";
});
}
// --- Create modal ---
function tryNow_createModal() {
const modal = document.createElement("div");
modal.id = "trynowModal";
modal.style.position = "fixed";
modal.style.top = "0";
modal.style.left = "0";
modal.style.width = "100%";
modal.style.height = "100%";
modal.style.backgroundColor = "rgba(0,0,0,0.6)";
modal.style.display = "none";
modal.style.justifyContent = "center";
modal.style.alignItems = "center";
modal.style.zIndex = "1000";
modal.innerHTML = `
×
Order Details
Thank you for your submission! 🎉
`;
document.body.appendChild(modal);
// Add UTM fields after form exists
const form = modal.querySelector("#trynowForm");
addUtmFields(form);
// Close modal handlers
document.getElementById("trynowCloseModal").onclick = () => { modal.style.display = "none"; };
document.getElementById("trynowCloseConfirmation").onclick = () => {
document.getElementById("trynowConfirmation").style.display = "none";
modal.style.display = "none";
};
modal.onclick = (e) => { if (e.target === modal) modal.style.display = "none"; };
return modal;
}
// --- Handle form submission ---
function tryNow_handleFormSubmit() {
const form = document.getElementById("trynowForm");
const confirmation = document.getElementById("trynowConfirmation");
form.addEventListener("submit", async (e) => {
e.preventDefault();
// Update UTM fields in case URL changed
addUtmFields(form);
const data = {};
new FormData(form).forEach((value, key) => (data[key] = value));
try {
const res = await fetch(TRYNOW_WEBHOOK_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data)
});
if (res.ok) {
form.style.display = "none";
confirmation.style.display = "block";
form.reset();
} else {
alert("Failed to submit form.");
}
} catch (err) {
console.error(err);
alert("Error submitting form.");
}
});
}
// --- Attach "Try Now" buttons ---
function tryNow_attachButtons() {
const buttons = Array.from(document.querySelectorAll("a, button"));
buttons.forEach(btn => {
if (btn.textContent && btn.textContent.trim() === "Try Now") {
btn.addEventListener("click", (e) => {
e.preventDefault();
const modal = document.getElementById("trynowModal");
if (modal) {
modal.style.display = "flex";
// Reset modal state
const form = document.getElementById("trynowForm");
const confirmation = document.getElementById("trynowConfirmation");
if (form && confirmation) {
form.style.display = "flex";
confirmation.style.display = "none";
addUtmFields(form); // refresh UTM fields each open
}
}
});
}
});
}
// --- Initialize ---
document.addEventListener("DOMContentLoaded", () => {
tryNow_createModal();
tryNow_handleFormSubmit();
tryNow_attachButtons();
});