const loginForm = document.getElementById('loginForm'); const emailInput = document.getElementById('email'); const passwortInput = document.getElementById('passwort'); const emailError = document.getElementById('emailError'); const passwortError = document.getElementById('passwortError'); const USERS_STORAGE_KEY = 'socialCookingUsers'; const CURRENT_USER_KEY = 'socialCookingCurrentUser'; // Liest alle registrierten Benutzer robust aus localStorage. function getStoredUsers() { try { const raw = localStorage.getItem(USERS_STORAGE_KEY); return raw ? JSON.parse(raw) : []; } catch (error) { console.error('Benutzerdaten konnten nicht gelesen werden.', error); return []; } } // Speichert den aktiven Benutzer fuer nachfolgende Seiten. function setCurrentUser(user) { localStorage.setItem(CURRENT_USER_KEY, JSON.stringify(user)); } // Erstellt einen Demo-Benutzer, falls fuer die E-Mail noch kein Account existiert. function createFallbackUser(email, passwort) { const localPart = email.split('@')[0] || 'Gast'; const normalized = localPart.replace(/[._-]/g, ' ').trim(); const guessedVorname = normalized ? normalized.split(' ')[0] : 'Gast'; return { id: Date.now(), vorname: guessedVorname.charAt(0).toUpperCase() + guessedVorname.slice(1), nachname: '', email, passwort, createdAt: new Date().toISOString(), source: 'login-fallback' }; } // Validierungsfunktion function validateForm(event) { event.preventDefault(); let isValid = true; // Email-Validierung const emailValue = emailInput.value.trim(); const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; const emailGroup = emailInput.parentElement; if (!emailValue) { emailGroup.classList.add('has-error'); emailError.textContent = 'Bitte gib deine E-Mail Adresse ein.'; isValid = false; } else if (!emailRegex.test(emailValue)) { emailGroup.classList.add('has-error'); emailError.textContent = 'Bitte gib eine gültige E-Mail Adresse ein.'; isValid = false; } else { emailGroup.classList.remove('has-error'); } // Passwort-Validierung const passwortValue = passwortInput.value; const passwortGroup = passwortInput.parentElement; if (!passwortValue) { passwortGroup.classList.add('has-error'); passwortError.textContent = 'Bitte gib dein Passwort ein.'; isValid = false; } else if (passwortValue.length < 6) { passwortGroup.classList.add('has-error'); passwortError.textContent = 'Dein Passwort ist zu kurz. Bitte überprüfe dein Passwort.'; isValid = false; } else { passwortGroup.classList.remove('has-error'); } // Wenn alle Validierungen bestanden, Benutzer pruefen und Session speichern. if (isValid) { const users = getStoredUsers(); const matchedUser = users.find(user => user.email?.toLowerCase() === emailValue.toLowerCase()); if (matchedUser && matchedUser.passwort !== passwortValue) { passwortGroup.classList.add('has-error'); passwortError.textContent = 'Das Passwort ist nicht korrekt.'; return; } const userToLogin = matchedUser || createFallbackUser(emailValue, passwortValue); setCurrentUser(userToLogin); // Weiterleitung zur Event-Overview-Seite. window.location.href = 'event_overview.html'; } } // Fehlerbehandlung bei Input-Änderung (entfernt Fehler wenn Benutzer korrigiert) emailInput.addEventListener('input', function() { const emailGroup = this.parentElement; if (this.value.trim()) { emailGroup.classList.remove('has-error'); } }); passwortInput.addEventListener('input', function() { const passwortGroup = this.parentElement; if (this.value) { passwortGroup.classList.remove('has-error'); } }); // Form Submit Event loginForm.addEventListener('submit', validateForm);