/* Minification failed. Returning unminified contents.
(175,62-63): run-time error JS1195: Expected expression: .
(179,9-10): run-time error JS1006: Expected ')': $
(184,5-6): run-time error JS1002: Syntax error: }
(187,49-50): run-time error JS1195: Expected expression: >
(188,47-48): run-time error JS1195: Expected expression: >
(190,9-10): run-time error JS1002: Syntax error: }
 */
(function () {
    const nua = navigator.userAgent;
    const isMobile =
        /Android|webOS|iPhone|iPad|iPod/i.test(nua) ||
        window.matchMedia('(pointer:coarse)').matches ||
        document.documentElement.offsetWidth < 840;

    const toggle = document.querySelector('#navigation_toggle');
    const nav = document.querySelector(
        '#' + toggle.getAttribute('aria-controls')
    );

    const primaryNavToggle = document.querySelectorAll(
        '.c-menu-main__list__item__toggle, .c-menu-main__subnav__toggle'
    );
    const primaryNavToggleProducts = document.querySelectorAll(
        '.c-menu-main__subnav__toggle-products'
    );
    const primaryNavHover = document.querySelectorAll(
        '.c-menu-main__list__item, .c-menu-main__subnav__item'
    );

    // Hamburger Menu
    toggle.addEventListener('click', function (e) {
        this.classList.toggle('is-active');

        if (this.classList.contains('is-active')) {
            nav.classList.add('is-active');
        } else {
            nav.classList.remove('is-active');

            // Should this be directed to mobile-only is active?
            const openSubNav = document.querySelectorAll('.c-menu-main .is-active');

            for (var x = 0; x < openSubNav.length; x++) {
                openSubNav[x].classList.remove('is-active');
            }
        }

        e.preventDefault();

        // when closed remove active classes from all subnav elements
    });

    function openSubNav(e) {
        const id = this.getAttribute('aria-controls');
        const menu = id ? document.querySelector('#' + id) : false;
        const current = this.parentNode;

        if (menu) {
            if (this.classList.contains('is-active')) {
                this.classList.remove('is-active');
                if (menu.classList.contains('c-menu-main__dropdown__products') && !isMobile) {
                    let menus = menu.querySelectorAll('.c-menu-main__subnav__list');
                    for (let i = 0; i < menus.length; ++i) {
                        menus[i].classList.remove('is-active');
                    }
                } else {
                    menu.classList.remove('is-active');
                }
            } else {
                this.classList.add('is-active');
                if (menu.classList.contains('c-menu-main__dropdown__products') && !isMobile) {
                    let menus = menu.querySelectorAll('.c-menu-main__subnav__list');
                    for (let i = 0; i < menus.length; ++i) {
                        menus[i].classList.add('is-active');
                    }
                } else {
                    menu.classList.add('is-active');
                }
            }
        }

        // Larger screens using mega menu; force open when primary  item is toggled
        if (this.classList.contains('c-menu-main__list__item__toggle')) {
            this.parentNode.classList.add('is-active');
        }

        // close all other open menus
        $(current)
            .siblings()
            .removeClass('is-active')
            .find('.is-active')
            .removeClass('is-active');
    }

    function openSubNavProducts(e) {
        const id = this.getAttribute('aria-controls');
        const menu = id ? document.querySelector('#' + id) : false;
        const current = this.closest('.c-menu-main__dropdown__column');

        if (menu) {
            if (this.classList.contains('is-active')) {
                this.classList.remove('is-active');
                menu.classList.remove('is-enabled');
            } else {
                this.classList.add('is-active');
                menu.classList.add('is-enabled');
            }
        }

        // Larger screens using mega menu; force open when primary  item is toggled
        // if (this.classList.contains("c-menu-main__list__item__toggle")) {
        //     this.parentNode.classList.add("is-active");
        // }

        // close all other open menus
        const siblings = $(current).siblings();
        siblings.find('.is-active').removeClass('is-active');
        siblings.find('.is-enabled').removeClass('is-enabled');
    }

    function pointerOpenSubNav(e) {
        const id = this.getAttribute('aria-controls');
        const menu = id ? document.querySelector('#' + id) : false;
        const current = this;

        if (menu) {
            if (this.classList.contains('is-active')) {
                this.classList.remove('is-active');
                if (menu.classList.contains('c-menu-main__dropdown__products')) {
                    let menus = menu.querySelectorAll('.c-menu-main__subnav__list');
                    for (let i = 0; i < menus.length; ++i) {
                        menus[i].classList.remove('is-active');
                    }
                } else {
                    menu.classList.remove('is-active');
                }
            } else {
                this.classList.add('is-active');
                if (menu.classList.contains('c-menu-main__dropdown__products')) {
                    let menus = menu.querySelectorAll('.c-menu-main__subnav__list');
                    for (let i = 0; i < menus.length; ++i) {
                        menus[i].classList.add('is-active');
                    }
                } else {
                    menu.classList.add('is-active');
                }
            }
        }

        // close all other open menus
        $(current)
            .siblings()
            .removeClass('is-active')
            .find('.is-active')
            .removeClass('is-active');
    }

    function pointerCloseSubNav(e) {
        $(this)
            .removeClass('is-active')
            .find('.is-active')
            .removeClass('is-active');
    }

    // Sub-navigation
    $(primaryNavToggle).on('click', openSubNav);
    $(primaryNavToggleProducts).on('click', openSubNavProducts);

    if (!isMobile) {
        $(primaryNavHover).on('mouseenter', pointerOpenSubNav);
        $(primaryNavHover).on('mouseleave', pointerCloseSubNav);
    }

    // Language / Search toggle
    $('.c-menu-main__list__item--dropdown > button').on('click', function (e) {
        const dropdown = this.getAttribute('aria-controls');
        const dropdownEl = document.querySelector('#' + dropdown);

        this.classList.toggle('is-open');
        dropdownEl.classList.toggle('is-open', this.classList.contains('is-open'));

        if (dropdownEl.classList.contains('is-open')) {
            dropdownEl.querySelector('input[type="search"]')?.focus();
        }

        // close all other dropdown menus
        $(this.parentNode)
            .siblings()
            .removeClass('is-open')
            .find('.is-open')
            .removeClass('is-open');
    });

    // Detect outside click and close menu, if applicable
    const onClickOutside = (element, callback) => {
        document.addEventListener('click', e => {
            if (!element.contains(e.target) && toggle.classList.contains('is-active')) callback();
        });
    };

    onClickOutside(document.querySelector(".c-menu-main"), () => isMobile && toggle.click());
})();
;
