document.addEventListener('DOMContentLoaded', function () {
    // Проверка, что мы на странице настроек урока
    const urlParams = new URLSearchParams(window.location.search);
    const isLessonSettingsPage = window.location.pathname.includes('/teach/control/lesson/update') && urlParams.get('part') === 'main';

    if (!isLessonSettingsPage) {
        return;
    }

    const lessonId = urlParams.get('id');
    const endpoint = '/chtm/database-for-levels';

    // Создаем новый раздел для выбора уровня
    const levelSection = document.createElement('div');
    levelSection.className = 'row';
    levelSection.style.marginTop = '20px';

    // Создаем заголовок
    const levelLabel = document.createElement('label');
    levelLabel.textContent = 'Выберите уровень урока';
    levelSection.appendChild(levelLabel);

    // Дефолтные уровни
    const levels = {
        1: "Экскурсия",
        2: "Активный поиск",
        3: "Просто отношения",
        4: "Творчество чувств",
        5: "Доступен всем"
    };

    // Функция для отправки данных на сервер
function sendLevelUpdate(level) {
    fetch(`${endpoint}?lessonId=${lessonId}`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({ level: level })
    }).then(response => response.json())
      .then(data => console.log('Success:', data))
      .catch(error => console.error('Error:', error));
}


    // Функция для обработки кликов по чекбоксам
    function handleCheckboxClick(event) {
        const level = event.target.dataset.level;
        
        if (level == 5 && event.target.checked) {
            // Если выбран "Доступен всем", делаем checked все остальные чекбоксы и отправляем 5
            checkboxes.forEach(checkbox => {
                checkbox.checked = true;
                if (checkbox.dataset.level != 5) {
                    checkbox.disabled = true;
                }
            });
            sendLevelUpdate('5');
        } else if (level == 5 && !event.target.checked) {
            // Если убираем галочку с "Доступен всем", снимаем все галочки и отправляем 5
            checkboxes.forEach(checkbox => {
                checkbox.checked = false;
                checkbox.disabled = false;
            });
            sendLevelUpdate('5');
        } else {
            // Если выбран конкретный уровень, убираем галочку с "Доступен всем"
            const mainCheckbox = checkboxes.find(checkbox => checkbox.dataset.level == 5);
            mainCheckbox.checked = false;

            // Проверяем, есть ли еще активные чекбоксы
            const selectedLevels = checkboxes
                .filter(checkbox => checkbox.checked && checkbox.dataset.level != 5)
                .map(checkbox => checkbox.dataset.level)
                .join(',');

            // Если никаких уровней не выбрано, отправляем 5 (урок доступен всем)
            if (selectedLevels.length === 0) {
                sendLevelUpdate('5');
            } else {
                sendLevelUpdate(selectedLevels);
            }
        }
    }

    // Создаем чекбоксы
    const checkboxes = Object.keys(levels).map(key => {
        const checkboxContainer = document.createElement('div');
        
        const checkbox = document.createElement('input');
        checkbox.type = 'checkbox';
        checkbox.id = `level-${key}`;
        checkbox.dataset.level = key;
        checkbox.checked = key == 5; // По умолчанию выбран "Доступен всем"
        checkbox.disabled = key != 5; // Остальные задисейблены
        checkbox.addEventListener('click', handleCheckboxClick);

        const label = document.createElement('label');
        label.setAttribute('for', `level-${key}`);
        label.textContent = levels[key];

        checkboxContainer.appendChild(checkbox);
        checkboxContainer.appendChild(label);

        levelSection.appendChild(checkboxContainer);

        return checkbox;
    });

    // Функция для проставления галочек на основе данных с сервера
    function updateCheckboxes(selectedLevels) {
        if (selectedLevels.includes('5')) {
            // Если "Доступен всем", то все остальные активны
            checkboxes.forEach(checkbox => {
                if (checkbox.dataset.level != 5) {
                    checkbox.checked = true;
                    checkbox.disabled = true;
                } else {
                    checkbox.checked = true;
                }
            });
        } else {
            // Устанавливаем галочки в соответствии с полученными уровнями
            checkboxes.forEach(checkbox => {
                checkbox.checked = selectedLevels.includes(checkbox.dataset.level);
                checkbox.disabled = false;
            });
        }
    }

    // Отправляем GET-запрос для получения отмеченных уровней
    fetch(`${endpoint}?lessonId=${lessonId}`)
        .then(response => response.json())
        .then(data => {
                const selectedLevels = data.status.lessonLevel.split(',');
                updateCheckboxes(selectedLevels);
        })
        .catch(error => console.error('Error:', error));

    // Вставляем раздел перед кнопкой сохранения
    const form = document.querySelector('form');
    const submitButtonRow = form.querySelector('.row.buttons');
    form.insertBefore(levelSection, submitButtonRow);
});
