$(document).ready(function () {

    var emailModalElement = document.getElementById('sendEirEmailModal');
    var emailModal = emailModalElement && window.mdb && mdb.Modal ? new mdb.Modal(emailModalElement) : null;

    $('.email-link').on('click', function (e) {
        e.preventDefault();
        var targetUrl = new URL($(this).attr('href'), window.location.origin);
        var pathParts = targetUrl.pathname.split('/').filter(Boolean);

        $('#sendEirEmailGateEventId').val(targetUrl.searchParams.get('id') || pathParts[pathParts.length - 1] || '');
        $('#sendEirEmailReturnUrl').val(targetUrl.searchParams.get('returnUrl') || '');
        $('#sendEirEmailDescription').text($(this).text().trim());
        $('#eirEmailInput').val('');

        if (emailModal) {
            emailModal.show();
        }
    });

    $('#sendEirEmailModal').on('shown.mdb.modal', function () {
        $('#eirEmailInput').trigger('focus');
    });

    function bindDatatableSearch(tableId, searchInputId) {
        var tableDiv = document.getElementById(tableId);
        if (!tableDiv || !window.mdb || !mdb.Datatable) {
            return;
        }

        const dataTable = mdb.Datatable.getInstance(tableDiv);
        if (!dataTable) {
            return;
        }

        $(searchInputId).on('input', (e) => {
            dataTable.search(e.target.value);
        });
    }

    bindDatatableSearch("GateEventsTable", "#GateSearchInput");
    bindDatatableSearch("AcceptanceItems", "#AcceSearchInput");
    bindDatatableSearch("BookingItems", "#BookSearchInput");
});
