// ====================== NAVBAR COMPONENT LOADER ======================

/**
 * Determine the correct path to the navbar component based on current page
 */
function getNavbarPath() {
  const path = window.location.pathname;
  // Check if we're in a subdirectory
  if (path.includes('/notenrechner') || path.includes('/textanalyse')) {
    return '../components/navbar.html';
  }
  return 'components/navbar.html';
}

/**
 * Load the navbar component into the page
 */
async function loadNavbar() {
  try {
    const navbarPath = getNavbarPath();
    const response = await fetch(navbarPath);
    
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    
    const html = await response.text();
    
    // Insert navbar at the beginning of body
    document.body.insertAdjacentHTML('afterbegin', html);
    
    // Set the active nav link based on current page
    setActiveNavLink();
    
    // Initialize navbar functionality
    initializeNavbar();
    
    // Initialize dark mode
    initializeDarkMode();
    
  } catch (error) {
    console.error('Error loading navbar:', error);
    // Fallback: Create a basic navbar if loading fails
    createFallbackNavbar();
  }
}

/**
 * Set the active class on the current page's nav link
 */
function setActiveNavLink() {
  const currentPage = window.location.pathname.split('/').pop() || 'index.html';
  const navLinks = document.querySelectorAll('.nav-link');
  
  navLinks.forEach(link => {
    const href = link.getAttribute('href');
    if (href === currentPage || (currentPage === '' && href === 'index.html')) {
      link.classList.add('active');
    }
  });
}

/**
 * Initialize navbar interactions (hamburger menu, dropdown)
 */
function initializeNavbar() {
  const hamburger = document.querySelector('.hamburger');
  const navMenu = document.querySelector('.nav-menu');
  const dropdownToggle = document.querySelector('.dropdown-toggle');
  const dropdownSubmenu = document.querySelector('.dropdown-submenu');

  // Mobile hamburger menu toggle
  if (hamburger && navMenu) {
    hamburger.addEventListener('click', () => {
      navMenu.classList.toggle('active');
    });

    // Close menu when a nav link is clicked
    document.querySelectorAll('.nav-menu .nav-link').forEach(link => {
      link.addEventListener('click', (e) => {
        // Don't close for the dropdown toggle
        if (link.classList.contains('dropdown-toggle')) {
          return;
        }
        navMenu.classList.remove('active');
      });
    });
  }

  // Dropdown menu toggle
  if (dropdownToggle && dropdownSubmenu) {
    dropdownToggle.addEventListener('click', (e) => {
      e.preventDefault();
      e.stopPropagation();
      dropdownSubmenu.classList.toggle('show');
    });

    // Close dropdown when a submenu link is clicked
    dropdownSubmenu.querySelectorAll('a').forEach(link => {
      link.addEventListener('click', () => {
        dropdownSubmenu.classList.remove('show');
        navMenu.classList.remove('active');
      });
    });

    // Close dropdown when clicking outside
    document.addEventListener('click', (e) => {
      if (!e.target.closest('.dropdown-menu-item')) {
        dropdownSubmenu.classList.remove('show');
      }
    });
  }
}

/**
 * Initialize Dark Mode functionality
 */
function initializeDarkMode() {
  const toggle = document.getElementById('dark-mode-toggle');

  if (!toggle) return;

  // Restore saved dark mode state on page load
  if (localStorage.getItem('darkMode') === 'true') {
    document.documentElement.setAttribute('data-theme', 'dark');
    document.body.classList.add('dark');
    toggle.textContent = '☀️ Light Mode';
  }

  // Toggle dark mode on button click
  toggle.addEventListener('click', (e) => {
    e.preventDefault();
    e.stopPropagation();
    
    const isDark = document.body.classList.toggle('dark');
    document.documentElement.setAttribute('data-theme', isDark ? 'dark' : 'light');
    
    localStorage.setItem('darkMode', isDark);
    toggle.textContent = isDark ? '☀️ Light Mode' : '🌙 Dark Mode';
  });
}

/**
 * Fallback navbar creation if component loading fails
 */
function createFallbackNavbar() {
  console.warn('Using fallback navbar creation');
  // This can be implemented if needed
}

// Load navbar when DOM is ready
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', loadNavbar);
} else {
  loadNavbar();
}
