(function () { 'use strict'; function trackEvent(action, params) { window.dataLayer = window.dataLayer || []; window.dataLayer.push(Object.assign({ event: 'nav_event', nav_action: action }, params)); } document.addEventListener('DOMContentLoaded', function () { // 1. Track clicks on the main logo var logo = document.querySelector('.main-nav-logo, .main-nav-logo img'); if (logo) { var a = logo.closest('a') || logo; a.addEventListener('click', function () { trackEvent('nav_logo_click', { event_label: 'EDD Home Logo', nav_type: 'desktop' }); }); } // 2. Track opening/closing of the mobile nav toggle var mobToggle = document.querySelector('.mobile-nav-toggle'); if (mobToggle) { mobToggle.addEventListener('click', function () { var open = this.getAttribute('aria-expanded') === 'true'; trackEvent(open ? 'mobile_nav_open' : 'mobile_nav_close', { event_label: 'Mobile Nav Toggle' }); }); } // 3. Direct listeners on every top-level button (bypasses any stopPropagation) var topButtons = document.querySelectorAll('button.main-nav-link, button.mobile-nav-link'); topButtons.forEach(function (btn) { btn.addEventListener('click', function () { var isMobile = !!btn.closest('.mobile-nav'), text = btn.textContent.trim(), hasExp = btn.hasAttribute('aria-expanded'), expanded = hasExp && btn.getAttribute('aria-expanded') === 'true', eventName; if (hasExp) { eventName = expanded ? (isMobile ? 'mobile_section_close' : 'desktop_section_close') : (isMobile ? 'mobile_section_open' : 'desktop_section_open'); } else { eventName = isMobile ? 'mobile_primary_button_click' : 'desktop_primary_button_click'; } trackEvent(eventName, { event_label: text, nav_type: isMobile ? 'mobile' : 'desktop' }); }); }); // 4. Delegate clicks on any sub-menu link document.body.addEventListener('click', function (e) { var sub = e.target.closest('ul.submenu a, ul.mobile-submenu a'); if (!sub) return; var child = sub.textContent.trim(), parentBtn = sub.closest('li').querySelector('button.main-nav-link, button.mobile-nav-link'), parent = parentBtn ? parentBtn.textContent.trim() : 'unknown', isMobile = !!sub.closest('.mobile-nav'); trackEvent('nav_submenu_click', { event_label: parent + ' → ' + child, nav_type: isMobile ? 'mobile' : 'desktop' }); }); // 5. Delegate clicks on the two static links in mobile nav document.body.addEventListener('click', function (e) { var staticLink = e.target.closest('.mobile-nav-list > li.mobile-nav-item > a'); if (!staticLink) return; trackEvent('mobile_primary_link_click', { event_label: staticLink.textContent.trim(), nav_type: 'mobile' }); }); }); })();