import $ from 'jquery';
import 'datatables.net-bs5';
import 'bootstrap';

$(function () {
    const modalElement = document.getElementById('deleteConfirmModal');
    if (modalElement && modalElement.parentElement !== document.body) {
        document.body.appendChild(modalElement);
    }

    function getLang() {
        if (window.location.href.indexOf("/de/") > -1) {
            return 'de';
        }
        if (window.location.href.indexOf("/en/") > -1) {
            return 'en';
        }
        if (window.location.href.indexOf("/es/") > -1) {
            return 'es';
        }
        if (window.location.href.indexOf("/ru/") > -1) {
            return 'ru';
        }
        return 'de';
    }
    const languageOptions = {
        'de': {
            searchPlaceholder: 'Suchen',
            lengthMenu: 'Einträge anzeigen _MENU_'
        },
        'en': {
            searchPlaceholder: 'Search',
            lengthMenu: 'Show _MENU_ entries'
        },
        'es': {
            searchPlaceholder: 'Buscar',
            lengthMenu: 'Mostrar _MENU_ entradas'
        },
        'ru': {
            searchPlaceholder: 'Поиск',
            lengthMenu: 'Показать _MENU_ записей'
        }
    };
    const lang = getLang();

    const langOptions = languageOptions[lang] || languageOptions['en']; // используем английский по умолчанию


    const userRole: string = $('#role').val() as string;
    $('#user_roles').val(userRole);

    const table = $('.table-responsive');

    table.on('show.bs.dropdown', function () {
        $('#userTable').css('overflow', 'inherit');
    });

    table.on('hide.bs.dropdown', function () {
        $('#userTable').css('overflow', 'auto');
    });

    let deleteLink : string;
    
    $(document).on('click', '.button-delete-ts', function () {
        deleteLink = $(this).data('delete-link');
        console.log('Delete link saved:', deleteLink);
        
        const modal = document.getElementById('deleteConfirmModal');
        if (modal && modal.parentElement !== document.body) {
            document.body.appendChild(modal);
        }
    });
    
    $(document).on('show.bs.modal', '#deleteConfirmModal', function () {
        const modal = this;
        if (modal.parentElement !== document.body) {
            document.body.appendChild(modal);
        }
    });

    $(document).on('click', '#confirmDeleteBtn', function (e) {
        e.preventDefault();
        e.stopPropagation();
        if (deleteLink) {
            console.log('Deleting user:', deleteLink);
            window.location.href = deleteLink;
        } else {
            console.error('No delete link set for deletion');
            const modalElement = document.getElementById('deleteConfirmModal');
            if (modalElement && (window as any).bootstrap) {
                const modal = (window as any).bootstrap.Modal.getInstance(modalElement);
                if (modal) {
                    modal.hide();
                }
            }
        }
    });

    $('#userTable').DataTable({
        initComplete: function (settings, json) {
            $('input[type="search"]').first().focus();
        },

        stateSave: true,
        autoWidth: true,
        paging: true,
        pagingType: 'simple_numbers',
        ordering: true,
        order: [[3, 'asc']],
        columnDefs: [
            {targets: 5, orderable: false},
            {targets: 6, orderable: false},
        ],
        language: {
            search: '',
            searchPlaceholder: langOptions.searchPlaceholder,
            lengthMenu: langOptions.lengthMenu,
            paginate: {
                previous: '<',
                next: '>'
            }
        },
        lengthChange: false,
        lengthMenu: [],
        pageLength: 5,
        dom: 'lfrtp',

    });
});
