const form = document.getElementById("reviewForm"); const status = document.getElementById("formStatus"); const button = form.querySelector('button[type="submit"]'); form.addEventListener("submit", async (event) => { event.preventDefault(); if (button.disabled) return; const input = { email: form.elements.email.value.trim(), title: form.elements.title.value.trim(), review: form.elements.review.value.trim(), rating: Number(form.elements.rating.value), consent: form.elements.consent.checked, }; for (const [field, max, label] of [ ["title", 50, "Titel"], ["review", 500, "Bewertungstext"], ]) { if (input[field].length < 10 || input[field].length > max) { status.textContent = `${label}: Bitte 10 bis ${max} Zeichen eingeben.`; form.elements[field].focus(); return; } } button.disabled = true; status.textContent = "Buchung wird geprüft und Bewertung gespeichert …"; try { const response = await fetch("/api/reviews", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(input), }); const result = await response.json(); if (!response.ok) { status.textContent = result.error?.message || "Die Bewertung konnte nicht gespeichert werden."; return; } status.textContent = "Danke! Deine Bewertung wurde gespeichert."; form.reset(); } catch { status.textContent = "Keine Bestätigung vom Server erhalten. Bitte versuche es später erneut."; } finally { button.disabled = false; } });