function syncToggle(toggle) { const targetId = toggle.dataset.toggleTarget; const content = document.querySelector(`[data-toggle-content="${targetId}"]`); const input = document.getElementById(targetId); if (!content || !input) { return; } content.hidden = !toggle.checked; input.disabled = !toggle.checked; } document.addEventListener('DOMContentLoaded', function () { document.querySelectorAll('[data-toggle-target]').forEach(syncToggle); }); document.addEventListener('change', function (event) { if (event.target.matches('[data-toggle-target]')) { syncToggle(event.target); } if (event.target.matches('[data-submit-on-change="true"]')) { event.target.form.submit(); } }); document.addEventListener('submit', function (event) { const message = event.target.dataset.confirm; if (message && !window.confirm(message)) { event.preventDefault(); } });