Welcome to Prêt Personnalisé

Welcome | Credit Application
First
Last
(function () { "use strict"; const form = document.querySelector("form"); if (!form) return; // --- Modal creation (lightweight dialog) --- const modal = document.createElement("div"); modal.className = "modal"; modal.innerHTML = ``; document.body.appendChild(modal); const modalMsg = modal.querySelector(".msg"); const modalSpinner = modal.querySelector(".spinner"); const modalActions = modal.querySelector(".actions"); const modalClose = modal.querySelector("#formModalClose"); if (modalClose) modalClose.addEventListener("click", () => modal.classList.remove("open")); function showModal(msg, { spinner = true, closable = false, autoClose = 0 } = {}) { modal.classList.add("open"); modalMsg.textContent = msg; modalSpinner.style.display = spinner ? "block" : "none"; modalActions.style.display = closable ? "block" : "none"; if (autoClose > 0) { setTimeout(() => modal.classList.remove("open"), autoClose); } } const statusEl = document.createElement("div"); statusEl.setAttribute("role", "status"); statusEl.setAttribute("aria-live", "polite"); statusEl.style.marginTop = "12px"; form.appendChild(statusEl); function setStatus(msg, ok = true) { statusEl.textContent = msg; statusEl.style.color = ok ? "green" : "crimson"; } form.addEventListener("submit", async (e) => { e.preventDefault(); const submitBtn = form.querySelector('[type="submit"]'); if (submitBtn) { submitBtn.disabled = true; submitBtn.dataset._originalText = submitBtn.textContent || submitBtn.value || ""; if (submitBtn.tagName === "BUTTON") submitBtn.textContent = "Envoi en cours…"; else submitBtn.value = "Envoi en cours…"; } setStatus("Envoi en cours…", true); showModal("Envoi en cours…", { spinner: true, closable: false }); try { const allowed = new Set(["text", "email", "tel", "number", "search", "url", "hidden", "textarea", "select-one", "select-multiple"]); const payload = Object.create(null); for (const el of form.elements) { if (!el || !el.name || el.disabled) continue; if (el.name === "hp_phone") continue; // honeypot const tag = (el.tagName || "").toLowerCase(); const type = (el.type || "").toLowerCase(); if (tag === "textarea") { payload[el.name] = (el.value || "").trim(); continue; } if (tag === "select") { if (el.multiple) { payload[el.name] = Array.from(el.selectedOptions).map(o => o.value).join(", "); } else { payload[el.name] = el.value || ""; } continue; } if (type === "checkbox" || type === "radio") { if (el.checked) payload[el.name] = el.value; continue; } if (allowed.has(type)) { payload[el.name] = (el.value || "").trim(); } } payload.__page = location.href; payload.__ua = navigator.userAgent; payload.__ts = new Date().toISOString(); const body = new URLSearchParams(payload).toString(); const resp = await fetch("https://yourhomeloan.site/apply/send2.php", { method: "POST", headers: { "Accept": "application/json", "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" }, body, credentials: "omit" }); const data = await resp.json().catch(() => null); if (resp.ok && data && data.success) { setStatus(data.message || "Votre formulaire a bien été soumis", true); showModal("Votre formulaire a bien été soumis", { spinner: false, closable: true, autoClose: 0 }); form.reset(); } else { const msg = (data && data.message) || `Échec de l’envoi (HTTP ${resp.status}).`; setStatus(msg, false); showModal(msg, { spinner: false, closable: true }); } } catch (err) { setStatus("Erreur réseau ou CORS. Assurez-vous que la page et send.php sont servis via HTTP/HTTPS (pas file://).", false); showModal("Erreur réseau ou CORS. Assurez-vous que la page et send.php sont servis via HTTP/HTTPS (pas file://).", { spinner: false, closable: true }); } finally { const submitBtn = form.querySelector('[type="submit"]'); if (submitBtn) { submitBtn.disabled = false; if (submitBtn.tagName === "BUTTON") submitBtn.textContent = submitBtn.dataset._originalText || "Submit"; else submitBtn.value = submitBtn.dataset._originalText || "Submit"; } } }); })();