document.querySelectorAll('.accordion-header').forEach(button => {
    button.addEventListener('click', () => {
        const accordionContent = button.nextElementSibling;

        button.classList.toggle('active');

        if (button.classList.contains('active')) {
            accordionContent.style.maxHeight = accordionContent.scrollHeight + 'px';
        } else {
            accordionContent.style.maxHeight = 0;
        }

        // Close other open accordion items
        document.querySelectorAll('.accordion-header').forEach(otherButton => {
            if (otherButton !== button) {
                otherButton.classList.remove('active');
                otherButton.nextElementSibling.style.maxHeight = 0;
            }
        });
    });
});

// Меню-------------------------

    document.addEventListener('DOMContentLoaded', function () {
        const mobileMenuButton = document.querySelector('.header__mobile-menu');
        const menu = document.querySelector('.header__menu');
        const burger = document.querySelector('.burger');

        mobileMenuButton.addEventListener('click', function () {
            menu.classList.toggle('active');
            burger.classList.toggle('active');
        });
    });


// Redirect

function redirectJs(e) {
    e.preventDefault();
    let idp = this.getAttribute('data-idp');
    let label = this.getAttribute('data-label');
    let customUrl = this.getAttribute('data-url');
    let page = window.location.href;

    let redirectForm = document.createElement('form');
    redirectForm.target = '_blank';
    redirectForm.method = 'POST';
    redirectForm.action = 'redirecting.php';

    let redirectInput2 = document.createElement('input');
    redirectInput2.type = 'hidden';
    redirectInput2.name = 'idpage';
    redirectInput2.value = idp;
    redirectForm.appendChild(redirectInput2);

    let redirectInput3 = document.createElement('input');
    redirectInput3.type = 'hidden';
    redirectInput3.name = 'page';
    redirectInput3.value = page;
    redirectForm.appendChild(redirectInput3);

    let redirectInput4 = document.createElement('input');
    redirectInput4.type = 'hidden';
    redirectInput4.name = 'label';
    redirectInput4.value = label;
    redirectForm.appendChild(redirectInput4);

    // Добавляем custom_url если есть
    if (customUrl) {
        let redirectInput5 = document.createElement('input');
        redirectInput5.type = 'hidden';
        redirectInput5.name = 'custom_url';
        redirectInput5.value = customUrl;
        redirectForm.appendChild(redirectInput5);
    }

    document.body.appendChild(redirectForm);
    redirectForm.submit();
}

let redirectButtons = document.querySelectorAll('.redirect-js');

for (let i = 0; i < redirectButtons.length; i++) {
    redirectButtons[i].addEventListener('click', redirectJs);
}

document.addEventListener('DOMContentLoaded', function () {
    var bLazy = new Blazy({
        selector: '.lazy',  // Класс для ленивой загрузки
    });
});

// Автоматическое оборачивание всех таблиц в table-wrap
(function() {
    function wrapTables(container) {
        if (!container || !container.querySelectorAll) {
            return;
        }

        const tables = container.querySelectorAll('table:not(.table-wrapped)');

        tables.forEach(function(table) {
            // Проверяем, не обёрнута ли уже таблица
            if (table.parentElement && table.parentElement.classList.contains('table-wrap')) {
                table.classList.add('table-wrapped');
                return;
            }

            // Создаём обёртку
            const wrapper = document.createElement('div');
            wrapper.className = 'table-wrap';

            // Вставляем обёртку перед таблицей
            table.parentNode.insertBefore(wrapper, table);

            // Перемещаем таблицу внутрь обёртки
            wrapper.appendChild(table);

            // Помечаем таблицу как обёрнутую
            table.classList.add('table-wrapped');
        });
    }

    function initTableWrapping() {
        // Оборачиваем все существующие таблицы
        wrapTables(document.body);

        // Повторно проверяем через небольшую задержку (для динамического контента)
        setTimeout(function() {
            wrapTables(document.body);
        }, 500);

        setTimeout(function() {
            wrapTables(document.body);
        }, 1500);
    }

    // Запускаем при загрузке
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initTableWrapping);
    } else {
        initTableWrapping();
    }

    // Наблюдаем за изменениями DOM (для динамического контента из TinyMCE)
    const observer = new MutationObserver(function(mutations) {
        let shouldProcess = false;

        mutations.forEach(function(mutation) {
            if (mutation.addedNodes.length) {
                mutation.addedNodes.forEach(function(node) {
                    if (node.nodeType === 1) {
                        // Если добавлена таблица или контейнер с таблицей
                        if (node.tagName === 'TABLE' || (node.querySelectorAll && node.querySelectorAll('table').length > 0)) {
                            shouldProcess = true;
                        }
                    }
                });
            }
        });

        if (shouldProcess) {
            wrapTables(document.body);
        }
    });

    // Запускаем наблюдатель
    function startObserver() {
        if (document.body) {
            observer.observe(document.body, {
                childList: true,
                subtree: true
            });
        }
    }

    if (document.body) {
        startObserver();
    } else {
        document.addEventListener('DOMContentLoaded', startObserver);
    }
})();

// Автоматическое добавление rel="nofollow noopener" target="_blank" ко всем внешним ссылкам
(function() {
    const currentHost = window.location.hostname;

    function processExternalLinks(container) {
        if (!container || !container.querySelectorAll) {
            return;
        }

        // Находим все ссылки в контейнере
        const allLinks = container.querySelectorAll('a[href]');

        allLinks.forEach(function(link) {
            // Пропускаем уже обработанные ссылки
            if (link.hasAttribute('data-external-processed')) {
                return;
            }

            const href = link.getAttribute('href');

            // Пропускаем пустые, якорные ссылки, относительные пути и специальные протоколы
            if (!href || href.startsWith('#') || href.startsWith('javascript:') ||
                href.startsWith('mailto:') || href.startsWith('tel:') || href.startsWith('/')) {
                return;
            }

            try {
                // Проверяем, является ли ссылка внешней
                let isExternal = false;

                // Если ссылка начинается с http:// или https://
                if (href.startsWith('http://') || href.startsWith('https://')) {
                    const linkUrl = new URL(href);
                    isExternal = (linkUrl.hostname !== currentHost);
                }

                // Если это внешняя ссылка, добавляем атрибуты
                if (isExternal) {
                    link.setAttribute('rel', 'nofollow noopener');
                    link.setAttribute('target', '_blank');
                    link.setAttribute('data-external-processed', 'true');
                }
            } catch (e) {
                // Если возникла ошибка при парсинге URL, игнорируем
                console.warn('Unable to parse URL:', href, e);
            }
        });
    }

    function initExternalLinks() {
        // Обрабатываем все ссылки на странице
        processExternalLinks(document.body);

        // Повторно обрабатываем через небольшую задержку (для динамического контента)
        setTimeout(function() {
            processExternalLinks(document.body);
        }, 500);

        setTimeout(function() {
            processExternalLinks(document.body);
        }, 1500);
    }

    // Обрабатываем существующие ссылки при загрузке
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initExternalLinks);
    } else {
        // DOM уже загружен
        initExternalLinks();
    }

    // Наблюдаем за изменениями DOM (для динамического контента, включая TinyMCE)
    const observer = new MutationObserver(function(mutations) {
        let shouldProcess = false;

        mutations.forEach(function(mutation) {
            if (mutation.addedNodes.length) {
                mutation.addedNodes.forEach(function(node) {
                    if (node.nodeType === 1) { // Element node
                        shouldProcess = true;
                    }
                });
            }
        });

        if (shouldProcess) {
            processExternalLinks(document.body);
        }
    });

    // Запускаем наблюдатель после загрузки DOM
    function startObserver() {
        if (document.body) {
            observer.observe(document.body, {
                childList: true,
                subtree: true
            });
        }
    }

    if (document.body) {
        startObserver();
    } else {
        document.addEventListener('DOMContentLoaded', startObserver);
    }
})();