// Пригласительный: обратный отсчёт + форма RSVP (отправляет в /api/rsvp)
const WEDDING_DATE = new Date("2026-11-01T16:00:00");
const cd = document.getElementById("countdown");
if (cd) {
function tick() {
const diff = WEDDING_DATE - new Date();
if (diff <= 0) {
cd.innerHTML = 'Сегодня наш день!';
return;
}
const d = Math.floor(diff / 86400000);
const h = Math.floor(diff / 3600000) % 24;
const m = Math.floor(diff / 60000) % 60;
const s = Math.floor(diff / 1000) % 60;
cd.innerHTML =
cell(d, "дней") + cell(h, "часов") + cell(m, "минут") + cell(s, "секунд");
}
function cell(n, lab) {
return '
";
}
tick();
setInterval(tick, 1000);
}
const form = document.getElementById("rsvp-form");
const msg = document.getElementById("rsvp-msg");
if (form) {
form.addEventListener("submit", async function (e) {
e.preventDefault();
msg.textContent = "Отправляю…";
try {
const body = Object.fromEntries(new FormData(form).entries());
const res = await fetch("api/rsvp", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(body),
});
if (!res.ok) throw new Error("server " + res.status);
const attendance = form.attendance.value;
msg.textContent = attendance === "yes"
? "Спасибо! До встречи 1 ноября."
: "Спасибо, что сообщили. Мы вас поздравим на расстоянии.";
form.reset();
} catch (err) {
msg.textContent = "Не получилось отправить. Попробуйте ещё раз или напишите организатору напрямую.";
}
});
}