function utilitiesPageRoot() { return document.getElementById('utilities-page'); } function utilitiesGetPharmacyId() { var root = utilitiesPageRoot(); if (!root) return ''; var select = document.getElementById('utilities-pharmacy-select'); if (select && select.value) return select.value; return root.getAttribute('data-own-pharmacy') || ''; } function utilitiesGetReadingMode(pharmacyId, typeId) { var root = utilitiesPageRoot(); if (!root || !typeId) return 'single'; var configs = {}; var typeModes = {}; try { configs = JSON.parse(root.getAttribute('data-meter-configs') || '{}'); typeModes = JSON.parse(root.getAttribute('data-type-modes') || '{}'); } catch (e) { return 'single'; } if (pharmacyId) { var key = pharmacyId + ':' + typeId; if (configs[key]) return configs[key]; } return typeModes[typeId] || 'single'; } function utilitiesFormModeUpdate() { var typeSelect = document.getElementById('utilities-type-select'); var singleWrap = document.getElementById('utilities-single-wrap'); var dayNightWrap = document.getElementById('utilities-daynight-wrap'); var hint = document.getElementById('utilities-mode-hint'); if (!typeSelect || !singleWrap || !dayNightWrap) return; var pharmacyId = utilitiesGetPharmacyId(); var typeId = typeSelect.value; var mode = utilitiesGetReadingMode(pharmacyId, typeId); var isDayNight = mode === 'day_night'; singleWrap.style.display = isDayNight ? 'none' : ''; dayNightWrap.style.display = isDayNight ? '' : 'none'; var valueInput = singleWrap.querySelector('input[name=value]'); var dayInput = dayNightWrap.querySelector('input[name=value_day]'); var nightInput = dayNightWrap.querySelector('input[name=value_night]'); if (valueInput) valueInput.required = !isDayNight; if (dayInput) dayInput.required = isDayNight; if (nightInput) nightInput.required = isDayNight; if (hint) { hint.textContent = isDayNight ? 'Лічильник у режимі «день / ніч» — вкажіть обидва показники.' : (typeId ? 'Звичайний лічильник — одне показання.' : ''); } } document.addEventListener('DOMContentLoaded', function () { document.body.addEventListener('htmx:afterSwap', function (evt) { if (document.getElementById('utilities-page')) { utilitiesFormModeUpdate(); } }); if (document.getElementById('utilities-page')) { utilitiesFormModeUpdate(); } });