$(document).ready(function() {
    const regionList = $('#region-list');
    const userInfo = $('#user-info');
    const userList = $('#user-list');
    const curentRegion = $('#curent-region')
    const pagination = $('#pagination');
    let regions = [];
    let users = [];
    let selectedRegionName = null;
    let selectedRegionId = null;
    const regionsPerPage = 10;
    let currentPage = 1;

    // Загрузка регионов
    function loadRegions() {
        $.getJSON('/telezab/regions/get', function(data) {
            regions = data;
            regions.sort((a, b) => a.region_id - b.region_id); // Сортировка по региону
            renderRegions();
            renderPagination();
        }).fail(function() {
            console.error("Не удалось получить регионы.");
        });
    }

    // Загрузка пользователей
    function loadUsers() {
        $.getJSON('/telezab/users/get', function(data) {
            users = data;
        }).fail(function() {
            console.error("Не удалось получить пользователей.");
        });
    }

    // Отрисовка списка регионов
    function renderRegions() {
        regionList.empty();
        const start = (currentPage - 1) * regionsPerPage;
        const end = start + regionsPerPage;
        const paginatedRegions = regions.slice(start, end);

        paginatedRegions.forEach(region => {
            const listItem = $('<a>', {
                href: '#',
                class: 'list-group-item list-group-item-action',
                text: `${region.region_name} (${region.region_id})`,
                'data-region-id': region.region_id,
                'data-region-name': region.region_name
            }).on('click', function() {
                selectedRegionId = $(this).data('region-id');
                selectedRegionName = $(this).data('region-name');
                showRegionDetails();
            });
            regionList.append(listItem);
        });
    }

    // Отрисовка кнопок пагинации
    function renderPagination() {
        pagination.empty();
        const totalPages = Math.ceil(regions.length / regionsPerPage);

        for (let i = 1; i <= totalPages; i++) {
            const pageItem = $('<li>', {
                class: `page-item ${i === currentPage ? 'active' : ''}`
            }).append($('<a>', {
                class: 'page-link',
                href: '#',
                text: i
            }).on('click', function(e) {
                e.preventDefault();
                currentPage = i;
                renderRegions();
                renderPagination();
            }));
            pagination.append(pageItem);
        }
    }

    // Показать детали региона
    function showRegionDetails() {
        userInfo.empty();
        userList.empty();
        curentRegion.empty(); // Очистить текущий элемент

        // Найти текущий регион по selectedRegionId
        const selectedRegion = regions.find(region => region.region_name === selectedRegionName);

        // Проверить, что регион найден
        if (selectedRegion) {
            // Создать и добавить заголовок h3 с именем региона
            var newHeading = $('<h3>').text(selectedRegion.region_name);
            $('#curent-region').append(newHeading);
        } else {
            $('#curent-region').text('Регион не найден.');
        }

        // Фильтровать пользователей, подписанных на этот регион
        const subscribedUsers = users.filter(user =>
            user.subscriptions.split(', ').includes(selectedRegionId.toString())
        );

        // Показать список пользователей или сообщение, если подписчиков нет
        if (subscribedUsers.length > 0) {
            subscribedUsers.forEach(user => {
                userList.append(`<li>${user.email}</li>`);
            });
        } else {
            userInfo.text('Нет подписчиков на этот регион.');
        }
    }


    // Инициализация
    loadRegions();
    loadUsers();

    // Обработчики кнопок в модальном окне
    $('#delete-region').on('click', function() {
        // Функция удаления региона
        console.log('Удалить регион', selectedRegionId);
    });

    $('#disable-region').on('click', function() {
        // Функция отключения региона
        console.log('Отключить регион', selectedRegionId);
    });

    $('#activate-region').on('click', function() {
        // Функция активации региона
        console.log('Активировать регион', selectedRegionId);
    });
});
