// login.js document.addEventListener("DOMContentLoaded", function() { const loginForm = document.getElementById('loginForm'); const loginBtn = document.getElementById('loginSubmit'); const successMessage = document.getElementById('successMessage'); const errorMessage = document.getElementById('errorMessage'); const errorText = document.getElementById('errorText'); const registerBtn = document.getElementById('registerBtn'); // Register button functionality if (registerBtn) { registerBtn.addEventListener('click', function(e) { e.preventDefault(); window.location.href = 'register.html'; }); } // Check if user is already logged in checkExistingSession(); // Login form submission if (loginForm) { loginForm.addEventListener('submit', async function(e) { e.preventDefault(); const email = document.getElementById('email').value; const password = document.getElementById('password').value; const remember = document.getElementById('remember').checked; // Simple validation if (!email || !password) { showError('Bitte füllen Sie alle Felder aus.'); return; } // Email validation const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailRegex.test(email)) { showError('Bitte geben Sie eine gültige E-Mail-Adresse ein.'); return; } // Show loading state setLoadingState(true); hideMessages(); // Send login data to PHP API const loginData = { type: 'login', email: email, password: password, remember: remember }; try { const response = await fetch('../scripts/add/send.php', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(loginData) }); const result = await response.json(); if (result.success) { // Store session (for demo purposes - in real app, this would come from server) const sessionData = { user: { email: email }, loginTime: new Date().toISOString(), remember: remember }; if (remember) { localStorage.setItem('userSession', JSON.stringify(sessionData)); } else { sessionStorage.setItem('userSession', JSON.stringify(sessionData)); } // Show success message showSuccess('Anmeldung erfolgreich! Sie werden weitergeleitet...'); // Redirect after delay setTimeout(() => { window.location.href = '../index.html'; }, 2000); } else { showError('Anmeldung fehlgeschlagen: ' + result.message); } } catch (error) { console.error('Login error:', error); showError('Netzwerkfehler bei der Anmeldung. Bitte versuchen Sie es später erneut.'); } setLoadingState(false); }); } // Loading state management function setLoadingState(loading) { if (loginBtn) { const btnText = loginBtn.querySelector('.btn-text'); const btnLoading = loginBtn.querySelector('.btn-loading'); if (loading) { loginBtn.disabled = true; if (btnText) btnText.style.display = 'none'; if (btnLoading) btnLoading.style.display = 'inline-block'; } else { loginBtn.disabled = false; if (btnText) btnText.style.display = 'inline-block'; if (btnLoading) btnLoading.style.display = 'none'; } } } // Message display functions function showSuccess(message) { if (successMessage) { const messageElement = successMessage.querySelector('p'); if (messageElement) { messageElement.textContent = message; } successMessage.classList.add('show'); } } function showError(message) { if (errorMessage && errorText) { errorText.textContent = message; errorMessage.classList.add('show'); // Hide after 5 seconds setTimeout(() => { errorMessage.classList.remove('show'); }, 5000); } } function hideMessages() { if (successMessage) successMessage.classList.remove('show'); if (errorMessage) errorMessage.classList.remove('show'); } }); // Check existing session - DISABLED auto-redirect function checkExistingSession() { const sessionData = localStorage.getItem('userSession') || sessionStorage.getItem('userSession'); if (sessionData) { try { const session = JSON.parse(sessionData); const loginTime = new Date(session.loginTime); const now = new Date(); const sessionAge = (now - loginTime) / (1000 * 60 * 60); // hours // Auto-logout after 24 hours if (sessionAge < 24) { // User is still logged in - just log it, don't redirect console.log('User already logged in'); // DISABLED: window.location.href = '../index.html'; } else { // Session expired, remove it console.log('Session expired, removing...'); localStorage.removeItem('userSession'); sessionStorage.removeItem('userSession'); } } catch (error) { console.error('Session parsing error:', error); localStorage.removeItem('userSession'); sessionStorage.removeItem('userSession'); } } } // Logout function (can be called from other pages) function logout() { localStorage.removeItem('userSession'); sessionStorage.removeItem('userSession'); window.location.href = 'sites/login.html'; } // Get current user (can be called from other pages) function getCurrentUser() { const sessionData = localStorage.getItem('userSession') || sessionStorage.getItem('userSession'); if (sessionData) { try { const session = JSON.parse(sessionData); const loginTime = new Date(session.loginTime); const now = new Date(); const sessionAge = (now - loginTime) / (1000 * 60 * 60); // hours if (sessionAge < 24) { return session.user; } else { // Session expired localStorage.removeItem('userSession'); sessionStorage.removeItem('userSession'); return null; } } catch (error) { console.error('Session parsing error:', error); localStorage.removeItem('userSession'); sessionStorage.removeItem('userSession'); return null; } } return null; } // Check if user is logged in (can be called from other pages) function isLoggedIn() { return getCurrentUser() !== null; }