const API_URL = ''; document.addEventListener('DOMContentLoaded', () => { const loginForm = document.getElementById('login-form'); const signupForm = document.getElementById('signup-form'); const loginBtn = document.getElementById('switch-to-login'); const signupBtn = document.getElementById('switch-to-signup'); if (loginBtn) { loginBtn.addEventListener('click', (e) => { e.preventDefault(); signupForm.classList.remove('active'); loginForm.classList.add('active'); }); } if (signupBtn) { signupBtn.addEventListener('click', (e) => { e.preventDefault(); loginForm.classList.remove('active'); signupForm.classList.add('active'); }); } if (loginForm) { loginForm.addEventListener('submit', async (e) => { e.preventDefault(); const username = loginForm.querySelector('input[type="text"]').value; const password = loginForm.querySelector('input[type="password"]').value; const formData = new URLSearchParams(); formData.append('username', username); formData.append('password', password); try { const response = await fetch(`${API_URL}/auth/login`, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: formData }); if (!response.ok) throw new Error('Login failed'); const data = await response.json(); localStorage.setItem('token', data.access_token); showToast('Welcome to Voice Lab!', 'success'); setTimeout(() => window.location.href = 'dashboard.html', 1000); } catch (error) { showToast(error.message, 'error'); } }); } if (signupForm) { signupForm.addEventListener('submit', async (e) => { e.preventDefault(); const username = signupForm.querySelector('input[type="text"]').value; const password = signupForm.querySelector('input[type="password"]').value; try { const response = await fetch(`${API_URL}/auth/register`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username, password }) }); if (!response.ok) throw new Error('Registration failed'); showToast('Account created! Please log in.', 'success'); signupForm.classList.remove('active'); loginForm.classList.add('active'); } catch (error) { showToast(error.message, 'error'); } }); } });