// source --> https://lunter.com/wp-content/themes/lunter/assets/js/language-popup.js?ver=1777635192 
(function () {
    'use strict';

    var PREF_COOKIE = 'lunter_lang_pref';
    var COOKIE_DAYS = 90;
    var TAB_REDIRECT_KEY = 'lunter_lang_redirected';

    function isTabRedirectDone() {
        try { return sessionStorage.getItem(TAB_REDIRECT_KEY) === '1'; }
        catch (e) { return false; }
    }

    function markTabRedirectDone() {
        try { sessionStorage.setItem(TAB_REDIRECT_KEY, '1'); }
        catch (e) {}
    }

    function readCookie(name) {
        var prefix = name + '=';
        var parts = document.cookie ? document.cookie.split(';') : [];
        for (var i = 0; i < parts.length; i++) {
            var c = parts[i].replace(/^\s+/, '');
            if (c.indexOf(prefix) === 0) {
                return decodeURIComponent(c.substring(prefix.length));
            }
        }
        return '';
    }

    function writeCookie(name, value, days) {
        var secure = location.protocol === 'https:' ? '; Secure' : '';
        var expires = '';
        if (days) {
            var d = new Date();
            d.setTime(d.getTime() + days * 24 * 60 * 60 * 1000);
            expires = '; expires=' + d.toUTCString();
        }
        document.cookie = name + '=' + encodeURIComponent(value) +
            expires + '; path=/; SameSite=Lax' + secure;
    }

    var data = (typeof LunterLangData !== 'undefined') ? LunterLangData : null;
    var current = data && data.current ? String(data.current).toLowerCase() : '';
    var urls = (data && data.urls) ? data.urls : {};
    var pref = readCookie(PREF_COOKIE).toLowerCase();

    // Redirect to the preferred language only on the first load of each tab.
    // sessionStorage is scoped per tab, so opening a new tab triggers the
    // check again, but in-tab navigation (manual switches via header switcher
    // or anything else) is left alone.
    if (current && !isTabRedirectDone()) {
        markTabRedirectDone();
        if (pref && pref !== current && urls[pref]) {
            location.replace(urls[pref]);
            return;
        }
    }

    function initPopup() {
        var popup = document.getElementById('lang-popup');
        if (!popup) return;

        // Preference already set (chosen or dismissed) - skip popup.
        if (pref) return;

        popup.removeAttribute('hidden');
        void popup.offsetWidth;
        popup.classList.add('is-visible');

        function dismiss() {
            writeCookie(PREF_COOKIE, current, COOKIE_DAYS);
            popup.classList.remove('is-visible');
            setTimeout(function () {
                popup.setAttribute('hidden', '');
            }, 300);
        }

        var closeBtn = popup.querySelector('.lang-popup__close');
        if (closeBtn) {
            closeBtn.addEventListener('click', dismiss);
        }

        var backdrop = popup.querySelector('.lang-popup__backdrop');
        if (backdrop) {
            backdrop.addEventListener('click', dismiss);
        }

        var links = popup.querySelectorAll('.lang-popup__link');
        for (var i = 0; i < links.length; i++) {
            links[i].addEventListener('click', function (e) {
                var lang = (this.getAttribute('data-lang') || '').toLowerCase();
                writeCookie(PREF_COOKIE, lang, COOKIE_DAYS);
                if (lang && lang === current) {
                    e.preventDefault();
                    dismiss();
                }
            });
        }

        document.addEventListener('keydown', function (e) {
            if (e.key === 'Escape' || e.keyCode === 27) {
                dismiss();
            }
        });
    }

    function initSwitcher() {
        // Manual language switching via the header switcher updates the stored preference,
        // so the next session lands on whatever the user last chose.
        var switcherLinks = document.querySelectorAll('.language-switcher a[data-lang]');
        for (var i = 0; i < switcherLinks.length; i++) {
            switcherLinks[i].addEventListener('click', function () {
                var lang = (this.getAttribute('data-lang') || '').toLowerCase();
                if (lang) {
                    writeCookie(PREF_COOKIE, lang, COOKIE_DAYS);
                }
            });
        }
    }

    function init() {
        initPopup();
        initSwitcher();
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', init);
    } else {
        init();
    }
})();