/**
 * Script personnalisé pour gérer l'expansion des sous-menus Freya
 * et ajouter les polyfills jQuery manquants
 */

// Polyfill pour $.isFunction (retiré de jQuery 3.5+)
if (typeof jQuery !== 'undefined' && typeof jQuery.isFunction === 'undefined') {
    jQuery.isFunction = function(obj) {
        return typeof obj === 'function';
    };
    console.log('✅ jQuery.isFunction polyfill ajouté');
}

document.addEventListener('DOMContentLoaded', function() {
    console.log('🔧 Custom menu script loaded');

    // Attendre que le DOM soit complètement chargé
    setTimeout(function() {
        setupFreyaMenuHandlers();
    }, 100);
});

function setupFreyaMenuHandlers() {
    console.log('🔧 Setting up Freya menu handlers');

    // Trouver tous les liens de sous-menu (ceux qui ont un <ul> enfant)
    var menuLinks = document.querySelectorAll('.layout-menu-container li > a');

    console.log('🔧 Found ' + menuLinks.length + ' menu links');

    menuLinks.forEach(function(link) {
        // Vérifier si ce lien a un ul enfant (donc c'est un submenu)
        var parentLi = link.parentElement;
        var submenuUl = parentLi.querySelector('ul');

        if (submenuUl) {
            console.log('🔧 Found submenu for:', link.textContent.trim());

            // Ajouter un event listener sur le lien
            link.addEventListener('click', function(e) {
                // Vérifier si le clic est sur l'icône toggler ou sur le lien lui-même
                var toggleIcon = link.querySelector('.layout-submenu-toggler');

                if (toggleIcon) {
                    e.preventDefault();
                    e.stopPropagation();

                    console.log('🔧 Toggling submenu:', link.textContent.trim());

                    // Toggle la classe active sur le <li>
                    parentLi.classList.toggle('active-menuitem');

                    // Toggle la visibilité du ul
                    if (submenuUl.style.display === 'block') {
                        submenuUl.style.display = 'none';
                        parentLi.classList.remove('active-menuitem');
                    } else {
                        submenuUl.style.display = 'block';
                        parentLi.classList.add('active-menuitem');
                    }
                }
            });

            // Ajouter aussi un listener direct sur l'icône toggle
            var toggleIcon = link.querySelector('.layout-submenu-toggler');
            if (toggleIcon) {
                toggleIcon.addEventListener('click', function(e) {
                    e.preventDefault();
                    e.stopPropagation();

                    console.log('🔧 Toggle icon clicked');

                    // Toggle la classe active
                    parentLi.classList.toggle('active-menuitem');

                    // Toggle l'affichage
                    if (submenuUl.style.display === 'block') {
                        submenuUl.style.display = 'none';
                    } else {
                        submenuUl.style.display = 'block';
                    }
                });
            }
        }
    });

    console.log('🔧 Menu handlers setup complete');
}
