// Dark mode toggle functionality document.addEventListener('DOMContentLoaded', function() { // Check for saved user preference if (localStorage.getItem('darkMode') === 'true') { document.documentElement.classList.add('dark'); updateDarkModeToggle(true); } // Initialize all tooltips const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')); tooltipTriggerList.map(function (tooltipTriggerEl) { return new bootstrap.Tooltip(tooltipTriggerEl); }); // Smooth scrolling for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); document.querySelector(this.getAttribute('href')).scrollIntoView({ behavior: 'smooth' }); }); }); }); function toggleDarkMode() { const htmlEl = document.documentElement; const isDark = htmlEl.classList.contains('dark'); if (isDark) { htmlEl.classList.remove('dark'); localStorage.setItem('darkMode', 'false'); updateDarkModeToggle(false); } else { htmlEl.classList.add('dark'); localStorage.setItem('darkMode', 'true'); updateDarkModeToggle(true); } } function updateDarkModeToggle(isDark) { const darkModeToggle = document.getElementById('darkModeToggle'); if (darkModeToggle) { darkModeToggle.innerHTML = isDark ? '' : ''; feather.replace(); } } // Form validation for contact form function validateForm() { const name = document.getElementById('name').value.trim(); const email = document.getElementById('email').value.trim(); const message = document.getElementById('message').value.trim(); if (!name || !email || !message) { alert('Veuillez remplir tous les champs obligatoires.'); return false; } if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) { alert('Veuillez entrer une adresse email valide.'); return false; } return true; }