$(function() {
    if (window.location.href == 'https://get-nechto.ru/teach/control/stream/index' || window.location.href == 'https://get-nechto.ru/teach/control/stream') {
        const table = document.querySelector('.stream-table');
        const rows = Array.from(table.querySelectorAll('tr'));

        const priorityIds = ["934475739", "934558973"];

        rows.sort((a, b) => {
          const aId = a.getAttribute('data-training-id');
          const bId = b.getAttribute('data-training-id');

          // Если оба имеют priorityIds, сортируем по их порядку в массиве priorityIds
          if (priorityIds.includes(aId) && priorityIds.includes(bId)) {
            return priorityIds.indexOf(aId) - priorityIds.indexOf(bId);
          }

          // Если только a приоритетный - он раньше
          if (priorityIds.includes(aId)) return -1;

          // Если только b приоритетный - он раньше
          if (priorityIds.includes(bId)) return 1;

          // Оба не приоритетные, без изменений (можно добавить другую сортировку, если нужно)
          return 0;
        });

        // Удаляем существующие строки из таблицы
        rows.forEach(row => row.remove());

        // Вставляем строки обратно в таблицу
        const tbody = table.querySelector('tbody') || table;
        rows.forEach(row => tbody.appendChild(row));

    }
    function createElement(tag, className) {
        const element = document.createElement(tag);
        if (className) element.className = className;
        return element;
    }
    
    const mainContainer = $('.xdget-block.xdget-training.xdget-common-container');
    
    if (!window.location.href.includes('system') && !window.location.href.includes('/sales/shop/')) {
        
        const infoButtons = createElement('div', 'info-buttons');
        rightPanelInformatoinBlock.forEach(button => { //rightPanelInformatoinBlock глобальная переменная
            const infoButton = createElement('a', 'info-button');
            infoButton.href = button.link;
            const infoButtonIcon = createElement('div', 'info-btn-icon');
            infoButtonIcon.style.backgroundImage = `url(${button.icon})`;
            const infoButtonText = createElement('span', 'info-btn-text');
            infoButtonText.textContent = button.title;
            infoButton.appendChild(infoButtonIcon);
            infoButton.appendChild(infoButtonText);
            infoButtons.appendChild(infoButton);
        }); //rightPanelInformatoinBlock глобальная переменная
        const infoHeader = createElement('div', 'info-header');
        const infoHeaderText = createElement('span', 'info-header-text');
        infoHeaderText.textContent = 'ИНФОРМАЦИЯ';
        infoHeader.appendChild(infoHeaderText);
        const infoBlock = createElement('div', 'info-block');
        infoBlock.appendChild(infoHeader);
        infoBlock.appendChild(infoButtons);
        const calendarBlock = createElement('div', 'calendar-block');
        const ultimaBlock = createElement('div', 'ultima-block');
        const ultima = createElement('a', 'ultima');
        ultima.href = 'https://zrc4dw.csb.app/';
        ultima.textContent = 'ULTIMA ДАШБОРД';
        ultimaBlock.appendChild(ultima);
        const ratingBlock = createElement('div', 'rating-block');
        const rightPanel = createElement('div', 'right-panel');
        rightPanel.appendChild(infoBlock);
        rightPanel.appendChild(calendarBlock);
        rightPanel.appendChild(ultimaBlock);
        rightPanel.appendChild(ratingBlock);
        $('.xdget-root').append(rightPanel);
        

        // Собираем все id из ссылок в обоих массивах
        function extractIds(arr, linkKey = "link") {
            return arr
                .map(item => {
                    const link = item[linkKey] || "";
                    const match = link.match(/id\/(\d+)/);
                    return match ? match[1] : null;
                })
                .filter(Boolean);
        }

        const idsFromRightPanel = extractIds(rightPanelInformatoinBlock);
        const idsFromSeason8 = extractIds(season8Trainings);
        const allTrainingIds = [...new Set([...idsFromRightPanel])];

        // Проходим по всем .stream-table .training-row и удаляем те, у кого data-training-id совпадает
        document.querySelectorAll('.stream-table .training-row').forEach(row => {
            const trainingId = row.getAttribute('data-training-id');
            if (allTrainingIds.includes(trainingId)) {
                row.remove();
            }
        });
    }


    if (window.location.href.includes('view/id/934489129')) {   //8 сезон
        if (!window.userInfo.isAdmin) {
            var row = document.querySelector('tr[data-training-id="934982023"]');
            if (row) {
              row.remove();
            }
            var row = document.querySelector('li[data-lesson-id="345404400"]');
            if (row) {
              row.remove();
            }
        }
        
        const idsFromSeason8 = extractIds(season8Trainings);
		const allTrainingIds = [...new Set([...idsFromSeason8])];


        // Проходим по всем .stream-table .training-row и удаляем те, у кого data-training-id совпадает
        document.querySelectorAll('.stream-table .training-row').forEach(row => {
            const trainingId = row.getAttribute('data-training-id');
            if (allTrainingIds.includes(trainingId)) {
                row.remove();
            }
        });

        const processBonusBanner = (banner) => {
            const bonusBanner = createElement('a', 'banner');
            const bannerImage = createElement('img', 'bonus-banner');
            bannerImage.src = banner.img;
            bannerImage.alt = 'Нажмите на баннер';
            bannerImage.title = 'Нажмите на баннер';
            bonusBanner.appendChild(bannerImage);
            bonusBanner.href = banner.link;
            mainContainer.prepend(bonusBanner);
        };
        //topPanel.forEach(processBonusBanner);

        const trainingsGroup = createElement('div', 'trainings-group');
        const processTraining = (training) => {
            if (!training.link) return;
            const trainingElement = createElement('a', 'training-link');
            trainingElement.href = training.link;
            const trainingImage = createElement('img', 'training-image');
            trainingImage.src = training.icon;
            trainingImage.alt = training.alt;
            trainingElement.appendChild(trainingImage);
            trainingsGroup.appendChild(trainingElement);
        };
        [...season8Trainings].forEach(processTraining);
        mainContainer.prepend(trainingsGroup);
        
        const mapPanel = createElement('div', 'map-panel');
        mapPanel.addEventListener('click', (event) => {
            window.open('https://miro.com/app/board/uXjVJC0VNHw=/?share_link_id=644352893994', '_blank');
        });
        const mapLogo = createElement('img', 'map-logo');
        mapLogo.src = gcLogoLink;
        const mapTitle = createElement('span', 'map-title');
        mapTitle.textContent = 'Добро пожаловать в Нечто!';
        const mapDescription = createElement('span', 'map-description');
        mapDescription.textContent = 'Сделайте первый шаг к новым знаниям и единомышленникам!';
        const mapButton = createElement('button', 'map-button');
        mapButton.textContent = 'Продолжить';
        mapPanel.appendChild(mapLogo);
        mapPanel.appendChild(mapTitle);
        mapPanel.appendChild(mapDescription);
        //mapPanel.appendChild(mapFrame);
        mapPanel.appendChild(mapButton);
        mainContainer.prepend(mapPanel);

    }
    if (window.location.href.includes('view/id/934646494')) { //Все о десятках
        // Ждем появления контейнера
        const waitForContainer = setInterval(() => {
            const lessonContainer = $('.col-gc-8');
            if (lessonContainer.length) {
                lessonContainer.prepend($(`<a class="training-banner" href="https://docs.google.com/spreadsheets/d/1gWzmF7GVJK3Bk6XHShKArIl9aENw-CZ2hli5bmBm4Ig/edit?gid=0#gid=0">
                    <span class="training-banner-title">Таблица десяток</span>
                </a>`));
                clearInterval(waitForContainer);
            }
        }, 100);
    }else if (window.location.href.includes('/control/stream/view/id/') || window.location.href.includes('/control/stream/view?id=')) {
        const mainContainer = $('.xdget-block.xdget-training.xdget-common-container');
        mainContainer.prepend($('.page-header'));
        const processBonusBanner = (banner) => {
            const bonusBanner = $(`<a class="bonus-banner" href="${banner.link}">
                <img src="${banner.img}" alt="Нажмите на баннер" title="Нажмите на баннер">
                </a>`);
            mainContainer.prepend(bonusBanner);
        };
        topPanel.forEach(processBonusBanner);
    }
});