// Authentication related functions
import { showStatus } from './utils.js';

export let currentUser = null;

export async function checkAuth() {
    try {
        const response = await fetch('/api/auth/check');
        const data = await response.json();
        
        if (!data.authenticated) {
            window.location.href = '/login.html';
            throw new Error('Not authenticated');
        }
        
        currentUser = data.user;
        updateUserInterface();
        
    } catch (error) {
        console.error('Auth check failed:', error);
        window.location.href = '/login.html';
        throw error;
    }
}

export function updateUserInterface() {
    if (!currentUser) return;
    
    // Update user email in both desktop and mobile
    const userEmailElement = document.getElementById('user-email');
    const mobileUserEmailElement = document.getElementById('mobile-user-email');
    
    if (userEmailElement) {
        userEmailElement.textContent = currentUser.email;
    }
    if (mobileUserEmailElement) {
        mobileUserEmailElement.textContent = currentUser.email;
    }
    
    // Add admin link if user is admin
    if (currentUser.isAdmin) {
        addAdminLinks();
    }
}

function addAdminLinks() {
    // Add admin link to desktop header
    const headerActions = document.querySelector('.header-actions');
    if (headerActions) {
        const adminLink = document.createElement('a');
        adminLink.href = '/admin.html';
        adminLink.className = 'btn btn-secondary';
        adminLink.textContent = '⚙️ Admin';
        headerActions.insertBefore(adminLink, headerActions.firstChild);
    }
    
    // Add admin link to mobile dropdown
    const mobileDropdownContent = document.getElementById('mobile-dropdown-content');
    if (mobileDropdownContent) {
        // Check if admin link already exists
        if (!mobileDropdownContent.querySelector('.admin-link-mobile')) {
            const adminItem = document.createElement('div');
            adminItem.className = 'mobile-dropdown-item admin-link-mobile';
            
            const adminLink = document.createElement('a');
            adminLink.href = '/admin.html';
            adminLink.style.color = 'inherit';
            adminLink.style.textDecoration = 'none';
            adminLink.textContent = '⚙️ Admin Panel';
            
            adminItem.appendChild(adminLink);
            
            // Insert admin link at the top of the dropdown
            if (mobileDropdownContent.firstChild) {
                mobileDropdownContent.insertBefore(adminItem, mobileDropdownContent.firstChild);
            } else {
                mobileDropdownContent.appendChild(adminItem);
            }
        }
    }
}
