import $ from 'jquery';
import('bootstrap');
import 'select2';

$(function () {
    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';
    }

    function getRole() {
        return $('#user_roles').val();
    }

    function getEmailExist(): string {
        switch (getLang()) {
            case 'de':
                return 'Diese E-Mail ist bereits mit dieser Rolle registriert! Sie können versuchen, die Benutzerrolle zu ändern';
            case 'en':
                return 'This email is already registered with this role! You can try changing the user’s role';
            case 'es':
                return 'Este correo electrónico ya está registrado con este rol. Puedes intentar cambiar el rol del usuario';
            case 'ru':
                return 'Этот email уже зарегистрирован с данной ролью! Вы можете попробовать изменить роль пользователя.';
            default:
                return 'Diese E-Mail ist bereits mit dieser Rolle registriert! Sie können versuchen, die Benutzerrolle zu ändern';
        }
    }


    const pathToUserCheck = decodeURIComponent(String($('#pathToUserCheck').val()));

    function checkEmail() {
        const role = getRole();
        let user_email = $('#user_email').val();

        if (role === 'ROLE_GUEST') {
            user_email += '#guest';
        }

        $.ajax({
            url: pathToUserCheck,
            data: { email: user_email },
            method: 'GET',
            success: function (response) {
                const message = getEmailExist()
                if (response.exists) {
                    $('#output_email').html(`<div class="alert alert-danger">${message}</div>`);
                    const submitButton = document.getElementById("submit_button") as HTMLButtonElement;
                    submitButton.disabled = true;

                } else {
                    $('#output_email').html('');
                    const submitButton = document.getElementById("submit_button") as HTMLButtonElement;
                    submitButton.disabled = false;

                }
            },
            error: function () {
                $('#output_email').html('<div class="alert alert-danger">Error to check email</div>');
                const submitButton = document.getElementById("submit_button");
                if (submitButton instanceof HTMLButtonElement) {
                    submitButton.disabled = true;
                }

            }
        });
    }

    // Проверка email при вводе
    $('#user_email').on("input", function () {
        checkEmail();
    });

    // Проверка email и логика отображения секции при изменении роли
    $('#user_roles').on('change', function () {
        checkEmail();
        if (getRole() === 'ROLE_GUEST') {
            $('#memberSection').show();
        } else {
            $('#memberSection').hide();
        }
    });

    // Инициализация select2
    $('.select2_contact_member').select2();
});
