Sorqen Ledger Institute

Course selection

Your cart

Subtotal: $0.00
Add another course
`; const footerHTML = ` `; document.getElementById('site-header').innerHTML = headerHTML; document.getElementById('site-footer').innerHTML = footerHTML; let products = []; const key = 'sorqenCart'; const readCart = () => JSON.parse(localStorage.getItem(key) || '[]'); function initHeaderScripts() { const themeBtn = document.querySelector('#theme-toggle'); if (themeBtn) { themeBtn.addEventListener('click', () => { document.documentElement.classList.toggle('dark'); localStorage.setItem('sorqenTheme', document.documentElement.classList.contains('dark') ? 'dark' : 'light'); }); } const loginBtn = document.querySelector('#login-trigger'); const registerBtn = document.querySelector('#register-trigger'); const authModal = document.querySelector('#auth-modal'); const authClose = document.querySelector('#auth-close'); if (loginBtn && authModal) loginBtn.addEventListener('click', () => authModal.classList.remove('hidden')); if (registerBtn && authModal) registerBtn.addEventListener('click', () => authModal.classList.remove('hidden')); if (authClose && authModal) authClose.addEventListener('click', () => authModal.classList.add('hidden')); } function initFooterScripts() { if (localStorage.getItem('sorqenCookies') === 'accepted') { const banner = document.querySelector('#cookie-banner'); if (banner) banner.remove(); } const acceptBtn = document.querySelector('#accept-cookies'); if (acceptBtn) { acceptBtn.addEventListener('click', () => { localStorage.setItem('sorqenCookies', 'accepted'); const banner = document.querySelector('#cookie-banner'); if (banner) banner.remove(); }); } } function render() { const cart = readCart(); let total = 0; const list = document.querySelector('#cart-list'); list.innerHTML = cart.length ? cart.map(item => { const p = products.find(x => x.id === item.id); if (!p) return ''; total += p.price * item.quantity; return `

${p.title}

$${p.price.toFixed(2)} each

${item.quantity}
`; }).join('') : '

Your cart is empty. Choose a course when you are ready to build a learning plan.

'; document.querySelector('#cart-total').textContent = `$${total.toFixed(2)}`; } document.addEventListener('click', e => { const d = e.target.dataset; if (d.plus || d.minus || d.delete) { let c = readCart(); const id = d.plus || d.minus || d.delete; const i = c.findIndex(x => x.id === id); if (i === -1) return; if (d.plus) c[i].quantity++; if (d.minus) c[i].quantity--; if (d.delete || c[i].quantity < 1) c.splice(i, 1); localStorage.setItem(key, JSON.stringify(c)); render(); } if (e.target.id === 'checkout' && readCart().length) { document.querySelector('#confirm-modal').classList.remove('hidden'); } }); document.querySelector('#confirm-close').onclick = () => document.querySelector('#confirm-modal').classList.add('hidden'); fetch('./catalog.json').then(r => r.json()).then(x => { products = x; render(); }); initHeaderScripts(); initFooterScripts(); if (localStorage.getItem('sorqenTheme') === 'dark') { document.documentElement.classList.add('dark'); }