document.addEventListener('DOMContentLoaded', () => { updateNavVisibility(); checkAuthStatus(); }); function updateNavVisibility() { const token = localStorage.getItem('token'); document.querySelectorAll('.anonymous-links, .user-links').forEach(el => { el.style.display = 'none'; }); if (token) { document.querySelector('.user-links').style.display = 'flex'; } else { document.querySelector('.anonymous-links').style.display = 'flex'; } } async function checkAuthStatus() { try { const response = await fetch('/api/check-auth'); const data = await response.json(); if (data.authenticated) { localStorage.setItem('token', data.token); localStorage.setItem('imie', data.user.imie); updateNavVisibility(); } } catch (error) { console.error('Błąd sprawdzania autentykacji:', error); } } document.getElementById('logoutLink')?.addEventListener('click', (e) => { e.preventDefault(); localStorage.removeItem('token'); localStorage.removeItem('imie'); updateNavVisibility(); window.location.href = '/'; }); document.getElementById('loginForm')?.addEventListener('submit', async (e) => { e.preventDefault(); const email = document.getElementById('loginEmail').value; const password = document.getElementById('loginPassword').value; try { const response = await fetch('/login', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ email, haslo: password }), }); const data = await response.json(); if (response.ok) { localStorage.setItem('token', data.token); localStorage.setItem('imie', data.imie); updateNavVisibility(); window.location.href = '/'; } else { alert(data.message || 'Logowanie nieudane'); } } catch (error) { console.error('Błąd logowania:', error); alert('Wystąpił błąd podczas logowania'); } }); document.getElementById('registerForm')?.addEventListener('submit', async (e) => { e.preventDefault(); const name = document.getElementById('registerName').value; const email = document.getElementById('registerEmail').value; const password = document.getElementById('registerPassword').value; const confirmPassword = document.getElementById('registerConfirmPassword').value; if (password !== confirmPassword) { alert('Hasła nie są identyczne'); return; } try { const response = await fetch('/rejestracja', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ imie: name, email, haslo: password, confirmPassword }), }); if (response.ok) { alert('Rejestracja udana'); window.location.href = '/login.html'; } else { const data = await response.text(); alert(data || 'Rejestracja nieudana'); } } catch (error) { console.error('Błąd rejestracji:', error); alert('Wystąpił błąd podczas rejestracji'); } }); async function loadBooks(searchTerm = '', sortBy = 'default') { try { const response = await fetch(`/api/ksiazki?search=${encodeURIComponent(searchTerm)}&sort=${sortBy}`); if (!response.ok) throw new Error(`Błąd HTTP: ${response.status}`); const books = await response.json(); renderBooks(books); } catch (error) { console.error('Błąd ładowania książek:', error); showError('Wystąpił błąd podczas ładowania książek'); } } function renderBooks(books) { const container = document.getElementById('books-container'); if (!container) return; if (books.length === 0) { container.innerHTML = `