PageSourceSearch

https://godrejyeshwanthpurbangalore.com/javascript.js

js godrejyeshwanthpurbangalore.com collected 2026-10-07 02:04:32 UTC 4,564 bytes, 134 lines download raw bytes

1// Toggle mobile menu
2const hamburger = document.querySelector('.hamburger');
3const menu = document.querySelector('nav ul.menu');
4
5hamburger.addEventListener('click', () => {
6    menu.classList.toggle('active');
7});
8
9hamburger.addEventListener('keydown', (e) => {
10    if (e.key === 'Enter' || e.key === ' ') {
11        e.preventDefault();
12        menu.classList.toggle('active');
13    }
14});
15
16// Select all menu links
17const menuLinks = document.querySelectorAll('nav ul.menu li a');
18
19// Add click event to each link to close the mobile menu on click
20menuLinks.forEach(link => {
21    link.addEventListener('click', () => {
22        if (menu.classList.contains('active')) {
23            menu.classList.remove('active');
24        }
25    });
26});
27
28// Country codes
29document.addEventListener('DOMContentLoaded', () => {
30    const countryCodeSelect = document.getElementById('countryCode');
31    const phoneInput = document.getElementById('phone');
32
33    // Optional: You could add validation to the phone number input using JavaScript
34    phoneInput.addEventListener('input', () => {
35        const selectedCountryCode = countryCodeSelect.value;
36        const phoneNumber = phoneInput.value;
37        // Add your validation logic here. For example:
38        if (phoneNumber.length < 5) { // Just a basic example
39            // phoneInput.setCustomValidity('Phone number is too short');  // Use this for form validation
40        } else {
41            phoneInput.setCustomValidity(''); // Clear any previous error
42        }
43    });
44});
45
46// Large enquiry form submit
47
48// 
49// Slideout enquiry form logic
50(function () {
51    const openFormLink = document.getElementById('openFormLink');
52    const enquiryFormPanel = document.getElementById('enquiryFormPanel');
53    const closeBtn = enquiryFormPanel.querySelector('.closeBtn');
54    const form = document.getElementById('enquiryForm');
55
56    function openForm() {
57        enquiryFormPanel.classList.add('open');
58        enquiryFormPanel.setAttribute('aria-hidden', 'false');
59        openFormLink.style.display = 'none';
60        document.getElementById('name').focus();
61    }
62
63    function closeForm() {
64        enquiryFormPanel.classList.remove('open');
65        enquiryFormPanel.setAttribute('aria-hidden', 'true');
66        openFormLink.style.display = 'block';
67        openFormLink.focus();
68    }
69
70    openFormLink.addEventListener('click', openForm);
71    openFormLink.addEventListener('keydown', (e) => {
72        if (e.key === 'Enter' || e.key === ' ') {
73            e.preventDefault();
74            openForm();
75        }
76    });
77
78    closeBtn.addEventListener('click', closeForm);
79
80    form.addEventListener('submit', (e) => {
81        e.preventDefault();
82        if (!form.checkValidity()) {
83            form.reportValidity();
84            return;
85        }
86        alert('Thank you for your enquiry, ' + form.name.value + '!');
87        form.reset();
88        closeForm();
89    });
90
91    // Close form if clicked outside panel
92    document.addEventListener('click', (e) => {
93        if (
94            enquiryFormPanel.classList.contains('open') &&
95            !enquiryFormPanel.contains(e.target) &&
96            e.target !== openFormLink
97        ) {
98            closeForm();
99        }
100    });
101    
102    // FAQ
103    document.addEventListener('DOMContentLoaded', () => {
104        const faqQuestions = document.querySelectorAll('.faq-question');
105
106        faqQuestions.forEach(question => {
107            question.addEventListener('click', () => {
108                const answer = question.nextElementSibling;
109
110                if (question.classList.contains('active')) {
111                    question.classList.remove('active');
112                    answer.classList.remove('active');
113                } else {
114                    // Close any other open FAQ items
115                    faqQuestions.forEach(q => {
116                        if (q.classList.contains('active')) {
117                            q.classList.remove('active');
118                            q.nextElementSibling.classList.remove('active');
119                        }
120                    });
121                    question.classList.add('active');
122                    answer.classList.add('active');
123                }
124            });
125        });
126    });
127
128    // Close form on ESC
129    document.addEventListener('keydown', (e) => {
130        if (e.key === 'Escape' && enquiryFormPanel.classList.contains('open')) {
131            closeForm();
132        }
133    });
134})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.