CoolFace
Apppublic

LinusAI/secureguard-austria

sourceHugging Faceupdated 10mo agoView on Hugging Face
0likes
script.js91 linesDownload Raw Back to root
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});