(function () { "use strict"; var KEY = "kk-comandirovka"; var DEMO = { days: "5", perdiem: "10000", transport: "15000", hotel: "20000" }; var IDS = ["days", "perdiem", "transport", "hotel"]; var inputs = {}; IDS.forEach(function (id) { inputs[id] = document.getElementById(id); }); var els = { rPerdiem: document.getElementById("r-perdiem"), rTransport: document.getElementById("r-transport"), rHotel: document.getElementById("r-hotel"), rTotal: document.getElementById("r-total"), empty: document.getElementById("empty-state"), calcBtn: document.getElementById("calc-btn"), resetBtn: document.getElementById("reset-btn") }; function fmt(n) { return n.toLocaleString("ru-RU"); } function load() { try { var raw = localStorage.getItem(KEY); if (!raw) return; var saved = JSON.parse(raw); IDS.forEach(function (id) { if (Object.prototype.hasOwnProperty.call(saved, id)) { inputs[id].value = saved[id]; } }); } catch (e) { /* повреждённое хранилище — показываем демо-значения */ } } function save() { var data = {}; IDS.forEach(function (id) { data[id] = inputs[id].value; }); try { localStorage.setItem(KEY, JSON.stringify(data)); } catch (e) { /* localStorage недоступен — просто не сохраняем */ } } function num(id) { var v = parseFloat(inputs[id].value); return isFinite(v) && v > 0 ? v : 0; } function fill(el, value) { el.textContent = value; el.dataset.long = value.length > 10 ? "true" : "false"; } function recalc() { var days = num("days"); var perdiem = num("perdiem"); var transport = num("transport"); var hotel = num("hotel"); var ok = days > 0 && perdiem > 0 && transport > 0 && hotel > 0; fill(els.rPerdiem, ok ? fmt(Math.round(perdiem * days)) + " тг" : "—"); fill(els.rTransport, ok ? fmt(transport) + " тг" : "—"); fill(els.rHotel, ok ? fmt(hotel) + " тг" : "—"); fill( els.rTotal, ok ? fmt(Math.round(perdiem * days + transport + hotel)) + " тг" : "—" ); els.empty.hidden = ok; save(); } els.calcBtn.addEventListener("click", recalc); els.resetBtn.addEventListener("click", function () { IDS.forEach(function (id) { inputs[id].value = DEMO[id]; }); recalc(); }); load(); recalc(); })();