LinusAI/secureguard-austria
0
1// Form Validation for Contact Form2document.addEventListener('DOMContentLoaded', function() {3 // Initialize form validation if contact form exists4 const contactForm = document.getElementById('contact-form');5 if (contactForm) {6 contactForm.addEventListener('submit', function(e) {7 const name = document.getElementById('name');8 const email = document.getElementById('email');9 const message = document.getElementById('message');10 let isValid = true;11 12 // Validate name13 if (name.value.trim() === '') {14 name.classList.add('border-red-500');15 isValid = false;16 } else {17 name.classList.remove('border-red-500');18 }19 20 // Validate email21 const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;22 if (!emailRegex.test(email.value)) {23 email.classList.add('border-red-500');24 isValid = false;25 } else {26 email.classList.remove('border-red-500');27 }28 29 // Validate message30 if (message.value.trim() === '') {31 message.classList.add('border-red-500');32 isValid = false;33 } else {34 message.classList.remove('border-red-500');35 }36 37 if (!isValid) {38 e.preventDefault();39 const errorElement = document.getElementById('form-error');40 if (errorElement) {41 errorElement.textContent = 'Bitte füllen Sie alle Pflichtfelder korrekt aus.';42 errorElement.classList.remove('hidden');43 }44 }45 });46 }47 48 // FAQ Accordion functionality49 const faqItems = document.querySelectorAll('.faq-item');50 faqItems.forEach(item => {51 const question = item.querySelector('.faq-question');52 question.addEventListener('click', () => {53 const answer = item.querySelector('.faq-answer');54 const icon = item.querySelector('.faq-icon');55 56 // Close all other items57 faqItems.forEach(otherItem => {58 if (otherItem !== item) {59 otherItem.querySelector('.faq-answer').classList.add('hidden');60 otherItem.querySelector('.faq-icon').innerHTML = feather.icons['plus'].toSvg();61 }62 });63 64 // Toggle current item65 if (answer.classList.contains('hidden')) {66 answer.classList.remove('hidden');67 icon.innerHTML = feather.icons['minus'].toSvg();68 } else {69 answer.classList.add('hidden');70 icon.innerHTML = feather.icons['plus'].toSvg();71 }72 });73 });74 75 // Mobile menu toggle76 const mobileMenuButton = document.getElementById('mobile-menu-button');77 if (mobileMenuButton) {78 mobileMenuButton.addEventListener('click', function() {79 const mobileMenu = document.getElementById('mobile-menu');80 mobileMenu.classList.toggle('hidden');81 82 // Update icon83 const icon = this.querySelector('i');84 if (mobileMenu.classList.contains('hidden')) {85 icon.innerHTML = feather.icons['menu'].toSvg();86 } else {87 icon.innerHTML = feather.icons['x'].toSvg();88 }89 });90 }91});