function localStorageFunctionality() { const fields = { name: document.getElementById('fld_name'), email: document.getElementById('fld_email'), phone: document.getElementById('fld_phone') }; for (let name in fields) { fields[name].value = localStorage.getItem(name); console.log('localStorage.get: ', name, fields[name].value); fields[name].onblur = function () { console.log('localStorage.set: ', this.value); localStorage.setItem(name, this.value); } } } function navigationFunctionality() { const accordionButtons = document.querySelectorAll('.accordion-button'); function registerActiveTab(tab) { console.log('tabnav.setActive', tab); localStorage.setItem('active_tab', tab); } function getActiveTab() { const activeTab = localStorage.getItem('active_tab'); console.log('tabnav.getActive', activeTab); return activeTab; } function registerTabToggleEventListener(buttons) { for (let iButtonIndex = 0; iButtonIndex < buttons.length; iButtonIndex++) { const button = buttons[iButtonIndex]; button.addEventListener('click', (event) => { console.log('tabnav.click', iButtonIndex, button); registerActiveTab(button.dataset.id); event.preventDefault(); return false; }); } } function swapTab(accordionButtons, sTabBaseId) { if (sTabBaseId === null || sTabBaseId === '') { console.log('tabnav.noActiveElement'); return false; } console.log('tabnav.move', sTabBaseId); for (let iButtonIndex = 0; iButtonIndex < accordionButtons.length; iButtonIndex++) { const oButtonElement = accordionButtons[iButtonIndex]; const contentElementId = "content_" + sTabBaseId; const oContentElement = document.getElementById("content_" + sTabBaseId); console.log('tabnav.content.Element', "content_" + sTabBaseId, oContentElement); console.log('tabnav.button.Element', iButtonIndex, oContentElement); if (sTabBaseId === oButtonElement.dataset.id) { oContentElement.classList.add('show'); oButtonElement.getAttribute("aria-expanded", true); } else { oContentElement.classList.remove('show'); oButtonElement.getAttribute("aria-expanded", false); } } return true; } swapTab(accordionButtons, getActiveTab()); const prevNextButtons = document.querySelectorAll('.toggle-tab'); registerTabToggleEventListener(prevNextButtons); registerTabToggleEventListener(accordionButtons); } navigationFunctionality(); localStorageFunctionality();