const form = document.getElementById("tb-form"); const msg = document.getElementById("tb-msg"); function showMsg(text, kind) { msg.textContent = text; msg.className = "tb-msg " + kind; } async function loadCount() { try { const r = await fetch("api/registrations?_=" + Date.now()); if (!r.ok) return; const items = await r.json(); const n = Array.isArray(items) ? items.length : 0; const el = document.getElementById("tb-count"); if (n > 0) { el.hidden = false; el.textContent = "Заявило участие: " + n + " чел. из 150"; } } catch (_) {} } form.addEventListener("submit", async (e) => { e.preventDefault(); msg.className = "tb-msg"; const data = { name: form.name.value.trim(), dept: form.dept.value.trim(), email: form.email.value.trim(), phone: form.phone.value.trim(), }; if (!data.name || !data.dept || !data.email || !data.phone) { showMsg("Заполните все поля.", "err"); return; } try { const r = await fetch("api/registrations", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(data) }); if (!r.ok) throw new Error(); form.reset(); showMsg("Вы зарегистрированы! До встречи 10 октября.", "ok"); loadCount(); } catch (_) { showMsg("Не удалось отправить заявку. Проверьте соединение и попробуйте ещё раз.", "err"); } }); loadCount();