function show_error(message){
    $('#error_alert').slideDown(500);
    $('#success_alert').hide();
    $('#error_alert').delay(5000).slideUp();
    $('#alert_error_text').empty();
    if (message)
        $('#alert_error_text').append(message)
}

function show_success(message){
    $('#success_alert').slideDown(500);
    $('#success_alert').delay(5000).slideUp();
    $('#alert_success_text').empty();
    if (message)
        $('#alert_success_text').append(message);
}



function validate_length(val, dest_len){
    if(val.length < dest_len){
        return false;
    }
    return true;
}





$(document).ready(function(){
    $("#select-all").on("click", function() {
    $("input[name='god_zapros']").prop("checked", true);
    });
    $("#select-all2").on("click", function() {
    $("input[name='god_zapros2']").prop("checked", true);
    });

    $("#postal_code").change(function(){
        $('#passport_issued_by').empty();
        $('#passport_issued_by').append('<option disabled="" selected="">Кем выдан паспорт</option>')
        for(i in UFMS_list[$(this).val()])
        {
            item = UFMS_list[$(this).val()][i];
            $('#passport_issued_by').append('<option>'+item+'</option>');
        }
//        $('#passport_issued_by').select2("change");
    });


        $("#postal_codenal").change(function(){
        $('#passport_issued_bynal').empty();
        $('#passport_issued_bynal').append('<option disabled="" selected="">Кем выдан паспорт</option>')
        for(i in UFMS_list[$(this).val()])
        {
            item = UFMS_list[$(this).val()][i];
            $('#passport_issued_bynal').append('<option>'+item+'</option>');
        }
//        $('#passport_issued_by').select2("change");
    });


        $("#postal_code1").change(function(){
        $('#passport_issued_by1').empty();
        $('#passport_issued_by1').append('<option disabled="" selected="">Кем выдан паспорт</option>')
        for(i in UFMS_list[$(this).val()])
        {
            item = UFMS_list[$(this).val()][i];
            $('#passport_issued_by1').append('<option>'+item+'</option>');
        }
//        $('#passport_issued_by').select2("change");
    });

    const statusesMain = ["Я являюсь налогоплательщиком", "Мать", "Отец", "Сын", "Дочь", "Муж", "Жена", "Опекун"];
    const selectMain = document.getElementById("taxpayer_status");

    statusesMain.forEach(status => {
        selectMain.innerHTML += `<option>${status}</option>`;
    });

    const statusesZapros = ["Мать", "Отец", "Сын", "Дочь", "Муж", "Жена", "Опекун"];
    const selectZapros = document.getElementById("taxpayer_status_zapros");

    statusesZapros.forEach(status => {
        selectZapros.innerHTML += `<option>${status}</option>`;
    });





    $('#passportBtn').on('click', function() {
    $('#passportFields').removeClass('d-none');
    $('#INNpacientFields').addClass('d-none');
    $('#SvidetelstvoFields').addClass('d-none');
    });





    // При нажатии на кнопку "ИНН пациента"
    $('#INNpacientBtn').on('click', function() {
    $('#INNpacientFields').removeClass('d-none');
    $('#passportFields').addClass('d-none');
    $('#SvidetelstvoFields').addClass('d-none');
    });

    $('#SvidetelstvoBth').on('click', function() {
    $('#SvidetelstvoFields').removeClass('d-none');
    $('#passportFields').addClass('d-none');
    $('#INNpacientFields').addClass('d-none');
    });


    const validateEmail = (email) => {
        return email.match(
        /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
        );
    };

    const validate = (selector) => {
      const email = $(selector).val();
      if (validateEmail(email)) {
        $(selector).parent().removeClass('errors-field').addClass('success-field');
      } else {
        $(selector).parent().removeClass('success-field').addClass('errors-field');
      }
    };

    const sanitizeEmailInput = (selector) => {
      $(selector).on('input', function () {
        let input = $(this).val();
        // Разрешаем только буквы, цифры, точки, дефисы и подчеркивания
        input = input.replace(/[^a-zA-Z0-9._@-]/g, '');
        // Обновляем поле ввода
        $(this).val(input);
        validate(selector);
      });
    };

    // Вызов валидации для каждого поля email
    sanitizeEmailInput('#email');
    sanitizeEmailInput('#email1');


    $('body').append('<div id="error_alert" class="alert alert-danger" role="alert" style="position: fixed; top: 50px; left: 10%; right: 10%; z-index: 9999; display: none;">Ошибка<br><small id="alert_error_text"></small></div>');
    $('body').append('<div id="success_alert" class="alert alert-success" role="alert" style="position: fixed; top: 50px; left: 10%; right: 10%; z-index: 9999; display: none;">Успех<br><small id="alert_success_text"></small></div>');

    $('#fio').on('input', function () {
    let input = $(this).val();

    // Убираем все лишние символы, кроме букв и пробелов
    input = input.replace(/[^a-zA-Zа-яА-ЯёЁ ]/g, '');

    // Преобразуем каждое слово, чтобы оно начиналось с заглавной буквы
    let formattedInput = input.split(' ').map(word => {
        if (word.length > 0) {
            return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
        }
        return ''; // Пустые слова не трогаем
    }).join(' '); // Объединяем обратно с пробелами

    // Обновляем поле ввода с отформатированным текстом
    $(this).val(formattedInput);

    // Проверяем количество слов
    let words = formattedInput.trim().split(/\s+/); // Убираем лишние пробелы
    if (words.length < 3 || words.some(word => word.length < 2)) {
        $(this).parent().removeClass('success-field').addClass('errors-field'); // Подсветить поле
    } else {
        $(this).parent().removeClass('errors-field').addClass('success-field'); // Убрать подсветку
    }
    });


    $('#fio1').on('input', function () {
    let input = $(this).val();

    // Убираем все лишние символы, кроме букв и пробелов
    input = input.replace(/[^a-zA-Zа-яА-ЯёЁ ]/g, '');

    // Преобразуем каждое слово, чтобы оно начиналось с заглавной буквы
    let formattedInput = input.split(' ').map(word => {
        if (word.length > 0) {
            return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
        }
        return ''; // Пустые слова не трогаем
    }).join(' '); // Объединяем обратно с пробелами

    // Обновляем поле ввода с отформатированным текстом
    $(this).val(formattedInput);

    // Проверяем количество слов
    let words = formattedInput.trim().split(/\s+/); // Убираем лишние пробелы
    if (words.length < 3 || words.some(word => word.length < 2)) {
        $(this).parent().removeClass('success-field').addClass('errors-field'); // Подсветить поле
    } else {
        $(this).parent().removeClass('errors-field').addClass('success-field'); // Убрать подсветку
    }
    });



    $('#fional').on('input', function () {
    let input = $(this).val();

    // Убираем все лишние символы, кроме букв и пробелов
    input = input.replace(/[^a-zA-Zа-яА-ЯёЁ ]/g, '');

    // Преобразуем каждое слово, чтобы оно начиналось с заглавной буквы
    let formattedInput = input.split(' ').map(word => {
        if (word.length > 0) {
            return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
        }
        return ''; // Пустые слова не трогаем
    }).join(' '); // Объединяем обратно с пробелами

    // Обновляем поле ввода с отформатированным текстом
    $(this).val(formattedInput);

    // Проверяем количество слов
    let words = formattedInput.trim().split(/\s+/); // Убираем лишние пробелы
    if (words.length < 3 || words.some(word => word.length < 2)) {
        $(this).parent().removeClass('success-field').addClass('errors-field'); // Подсветить поле
    } else {
        $(this).parent().removeClass('errors-field').addClass('success-field'); // Убрать подсветку
    }
    });


    $('#patient_fio').on('input', function () {
    let input = $(this).val();

    // Убираем все лишние символы, кроме букв и пробелов
    input = input.replace(/[^a-zA-Zа-яА-ЯёЁ ]/g, '');

    // Преобразуем каждое слово, чтобы оно начиналось с заглавной буквы
    let formattedInput = input.split(' ').map(word => {
        if (word.length > 0) {
            return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
        }
        return ''; // Пустые слова не трогаем
    }).join(' '); // Объединяем обратно с пробелами

    // Обновляем поле ввода с отформатированным текстом
    $(this).val(formattedInput);

    // Проверяем количество слов
    let words = formattedInput.trim().split(/\s+/); // Убираем лишние пробелы
    if (words.length < 3 || words.some(word => word.length < 2)) {
        $(this).parent().removeClass('success-field').addClass('errors-field'); // Подсветить поле
    } else {
        $(this).parent().removeClass('errors-field').addClass('success-field'); // Убрать подсветку
    }
    });



    $('#tel').on('change', function() {
        if($(this).val().length != 16){
            $(this).parent().removeClass('success-field').addClass('errors-field');
        } else{
            $(this).parent().removeClass('errors-field').addClass('success-field');
        }
    });




    $('#svedetelstvo').on('input', function() {
    let value = $(this).val();
    // Оставляем только первый найденный пробел, если он есть
    const parts = value.split(' ');
    if (parts.length > 2) {
        value = parts[0] + ' ' + parts.slice(1).join('');
    }
    $(this).val(value);
    });


       // Проверка на дату рождения (не старше 80 лет)
    $('#dob').on('change', function() {
        const dob = new Date($(this).val());
        const currentDate = new Date();
        const age = currentDate.getFullYear() - dob.getFullYear();

        // Проверка на возраст (не старше 80 лет)
        if (age > 100 || (age === 100 && (currentDate.getMonth() < dob.getMonth() || (currentDate.getMonth() === dob.getMonth() && currentDate.getDate() < dob.getDate())))) {
            // Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
            $(this).parent().removeClass('success-field').addClass('errors-field');
        } else {
            // Если возраст нормален, подсвечиваем ячейку как успешную
            $(this).parent().removeClass('errors-field').addClass('success-field');
        }
    });


    $('#dob1').on('change', function() {
        const dob1 = new Date($(this).val());
        const currentDate = new Date();
        const age = currentDate.getFullYear() - dob1.getFullYear();

        // Проверка на возраст (не старше 80 лет)
        if (age > 100 || (age === 100 && (currentDate.getMonth() < dob1.getMonth() || (currentDate.getMonth() === dob1.getMonth() && currentDate.getDate() < dob1.getDate())))) {
            // Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
            $(this).parent().removeClass('success-field').addClass('errors-field');
        } else {
            // Если возраст нормален, подсвечиваем ячейку как успешную
            $(this).parent().removeClass('errors-field').addClass('success-field');
        }
    });


    $('#dobnal').on('change', function() {
        const dobnal = new Date($(this).val());
        const currentDate = new Date();
        const age = currentDate.getFullYear() - dobnal.getFullYear();

        // Проверка на возраст (не старше 80 лет)
        if (age > 100 || (age === 100 && (currentDate.getMonth() < dobnal.getMonth() || (currentDate.getMonth() === dobnal.getMonth() && currentDate.getDate() < dobnal.getDate())))) {
            // Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
            $(this).parent().removeClass('success-field').addClass('errors-field');
        } else {
            // Если возраст нормален, подсвечиваем ячейку как успешную
            $(this).parent().removeClass('errors-field').addClass('success-field');
        }
    });


    $('#postal_code').on('input', function() {
    let input = $(this).val();
    // Удаляем все символы, кроме цифр
    input = input.replace(/\D/g, '');
    // Форматируем ввод в "000-000" только при наличии 4 и более цифр
    if (input.length > 3) {
        input = input.replace(/(\d{3})(\d{0,3})/, '$1-$2');
    }
    // Ограничиваем длину до "000-000"
    if (input.length > 7) {
        input = input.slice(0, 7);
    }
    // Обновляем поле ввода
    $(this).val(input);

        // Проверка на минимальную длину (не менее 11 символов)
    if (input.length < 7) {
        // Если введено меньше цифр, показываем ошибку
        $(this).parent().removeClass('success-field').addClass('errors-field');
    } else {
        // Если введено достаточно цифр, показываем успех
        $(this).parent().removeClass('errors-field').addClass('success-field');
    }
    });


    $('#postal_code1').on('input', function() {
    let input = $(this).val();
    // Удаляем все символы, кроме цифр
    input = input.replace(/\D/g, '');
    // Форматируем ввод в "000-000" только при наличии 4 и более цифр
    if (input.length > 3) {
        input = input.replace(/(\d{3})(\d{0,3})/, '$1-$2');
    }
    // Ограничиваем длину до "000-000"
    if (input.length > 7) {
        input = input.slice(0, 7);
    }
    // Обновляем поле ввода
    $(this).val(input);

        // Проверка на минимальную длину (не менее 11 символов)
    if (input.length < 7) {
        // Если введено меньше цифр, показываем ошибку
        $(this).parent().removeClass('success-field').addClass('errors-field');
    } else {
        // Если введено достаточно цифр, показываем успех
        $(this).parent().removeClass('errors-field').addClass('success-field');
    }
    });


    $('#postal_codenal').on('input', function() {
    let input = $(this).val();
    // Удаляем все символы, кроме цифр
    input = input.replace(/\D/g, '');
    // Форматируем ввод в "000-000" только при наличии 4 и более цифр
    if (input.length > 3) {
        input = input.replace(/(\d{3})(\d{0,3})/, '$1-$2');
    }
    // Ограничиваем длину до "000-000"
    if (input.length > 7) {
        input = input.slice(0, 7);
    }
    // Обновляем поле ввода
    $(this).val(input);

        // Проверка на минимальную длину (не менее 11 символов)
    if (input.length < 7) {
        // Если введено меньше цифр, показываем ошибку
        $(this).parent().removeClass('success-field').addClass('errors-field');
    } else {
        // Если введено достаточно цифр, показываем успех
        $(this).parent().removeClass('errors-field').addClass('success-field');
    }
    });




    $('#passport').on('input', function() {
    let input = $(this).val();
    // Удаляем все символы, кроме цифр
    input = input.replace(/\D/g, '');
    // Форматируем ввод в "000-000" только при наличии 4 и более цифр
    if (input.length > 4) {
        input = input.replace(/(\d{4})(\d{0,4})/, '$1 $2');
    }
    // Ограничиваем длину до "000-000"
    if (input.length > 11) {
        input = input.slice(0, 11);
    }
    // Обновляем поле ввода
    $(this).val(input);

        // Проверка на минимальную длину (не менее 11 символов)
    if (input.length < 11) {
        // Если введено меньше цифр, показываем ошибку
        $(this).parent().removeClass('success-field').addClass('errors-field');
    } else {
        // Если введено достаточно цифр, показываем успех
        $(this).parent().removeClass('errors-field').addClass('success-field');
    }
    });

    $('#passport1').on('input', function() {
    let input = $(this).val();
    // Удаляем все символы, кроме цифр
    input = input.replace(/\D/g, '');
    // Форматируем ввод в "000-000" только при наличии 4 и более цифр
    if (input.length > 4) {
        input = input.replace(/(\d{4})(\d{0,4})/, '$1 $2');
    }
    // Ограничиваем длину до "000-000"
    if (input.length > 11) {
        input = input.slice(0, 11);
    }
    // Обновляем поле ввода
    $(this).val(input);

        // Проверка на минимальную длину (не менее 11 символов)
    if (input.length < 11) {
        // Если введено меньше цифр, показываем ошибку
        $(this).parent().removeClass('success-field').addClass('errors-field');
    } else {
        // Если введено достаточно цифр, показываем успех
        $(this).parent().removeClass('errors-field').addClass('success-field');
    }
    });


    $('#passportnal').on('input', function() {
    let input = $(this).val();
    // Удаляем все символы, кроме цифр
    input = input.replace(/\D/g, '');
    // Форматируем ввод в "000-000" только при наличии 4 и более цифр
    if (input.length > 4) {
        input = input.replace(/(\d{4})(\d{0,4})/, '$1 $2');
    }
    // Ограничиваем длину до "000-000"
    if (input.length > 11) {
        input = input.slice(0, 11);
    }
    // Обновляем поле ввода
    $(this).val(input);

        // Проверка на минимальную длину (не менее 11 символов)
    if (input.length < 11) {
        // Если введено меньше цифр, показываем ошибку
        $(this).parent().removeClass('success-field').addClass('errors-field');
    } else {
        // Если введено достаточно цифр, показываем успех
        $(this).parent().removeClass('errors-field').addClass('success-field');
    }
    });

    $("#inn").attr('maxlength','12');
    $('#inn').on('input', function() {
    let input = $(this).val();
    // Убираем все символы, кроме цифр
    input = input.replace(/\D/g, '');
    // Ограничиваем длину до 12 символов
    if (input.length > 12) {
        input = input.slice(0, 12);
    }
    // Обновляем значение в поле ввода
    $(this).val(input);
    if (input.length < 12) {
        // Если введено меньше цифр, показываем ошибку
        $(this).parent().removeClass('success-field').addClass('errors-field');
    } else {
        // Если введено достаточно цифр, показываем успех
        $(this).parent().removeClass('errors-field').addClass('success-field');
    }
    });



    $("#inn1").attr('maxlength','12');
    $('#inn1').on('input', function() {
    let input = $(this).val();
    // Убираем все символы, кроме цифр
    input = input.replace(/\D/g, '');
    // Ограничиваем длину до 12 символов
    if (input.length > 12) {
        input = input.slice(0, 12);
    }
    // Обновляем значение в поле ввода
    $(this).val(input);
    if (input.length < 12) {
        // Если введено меньше цифр, показываем ошибку
        $(this).parent().removeClass('success-field').addClass('errors-field');
    } else {
        // Если введено достаточно цифр, показываем успех
        $(this).parent().removeClass('errors-field').addClass('success-field');
    }
    });


    $("#innnal").attr('maxlength','12');
    $('#innnal').on('input', function() {
    let input = $(this).val();
    // Убираем все символы, кроме цифр
    input = input.replace(/\D/g, '');
    // Ограничиваем длину до 12 символов
    if (input.length > 12) {
        input = input.slice(0, 12);
    }
    // Обновляем значение в поле ввода
    $(this).val(input);
    if (input.length < 12) {
        // Если введено меньше цифр, показываем ошибку
        $(this).parent().removeClass('success-field').addClass('errors-field');
    } else {
        // Если введено достаточно цифр, показываем успех
        $(this).parent().removeClass('errors-field').addClass('success-field');
    }
    });


    $('#passport_date').on('change', function() {
        const dob = new Date($(this).val());
        const currentDate = new Date();
        const age = currentDate.getFullYear() - dob.getFullYear();

        // Проверка на возраст (не старше 80 лет)
        if (age > 100 || (age === 100 && (currentDate.getMonth() < dob.getMonth() || (currentDate.getMonth() === dob.getMonth() && currentDate.getDate() < dob.getDate())))) {
            // Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
            $(this).parent().removeClass('success-field').addClass('errors-field');
        } else {
            // Если возраст нормален, подсвечиваем ячейку как успешную
            $(this).parent().removeClass('errors-field').addClass('success-field');
        }
    });


    $('#passport_datenal').on('change', function() {
        const dob = new Date($(this).val());
        const currentDate = new Date();
        const age = currentDate.getFullYear() - dob.getFullYear();

        // Проверка на возраст (не старше 80 лет)
        if (age > 100 || (age === 100 && (currentDate.getMonth() < dob.getMonth() || (currentDate.getMonth() === dob.getMonth() && currentDate.getDate() < dob.getDate())))) {
            // Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
            $(this).parent().removeClass('success-field').addClass('errors-field');
        } else {
            // Если возраст нормален, подсвечиваем ячейку как успешную
            $(this).parent().removeClass('errors-field').addClass('success-field');
        }
    });



    $('#passport_date1').on('change', function() {
        const dob = new Date($(this).val());
        const currentDate = new Date();
        const age = currentDate.getFullYear() - dob.getFullYear();

        // Проверка на возраст (не старше 80 лет)
        if (age > 100 || (age === 100 && (currentDate.getMonth() < dob.getMonth() || (currentDate.getMonth() === dob.getMonth() && currentDate.getDate() < dob.getDate())))) {
            // Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
            $(this).parent().removeClass('success-field').addClass('errors-field');
        } else {
            // Если возраст нормален, подсвечиваем ячейку как успешную
            $(this).parent().removeClass('errors-field').addClass('success-field');
        }
    });


    $("#kod").attr('maxlength','4');
    $('#kod').on('input', function() {
    let input = $(this).val();
    // Удаляем все символы, кроме цифр
    input = input.replace(/\D/g, '');
    // Обновляем поле ввода
    $(this).val(input);

        // Проверка на минимальную длину (не менее 11 символов)
    if (input.length < 4) {
        // Если введено меньше цифр, показываем ошибку
        $(this).parent().removeClass('success-field').addClass('errors-field');
    } else {
        // Если введено достаточно цифр, показываем успех
        $(this).parent().removeClass('errors-field').addClass('success-field');
    }
    });

//    function verification(){
//        $("#form_submit").children(".spinner-border").removeClass('d-none');
//        $("#form_submit").attr("disabled", true);
//        message = {}



//        if(!(validate_length($('#fio').val(), 3)))
//        {
//            show_error('Введите ФИО', false);
//            $("#form_submit").children(".spinner-border").addClass('d-none');
//            $("#form_submit").removeAttr("disabled");
//            return;
//        }
//
//        if(!(validate_length($('#tel').val(), 16)))
//        {
//            show_error('Введите Телефон', false);
//            $("#form_submit").children(".spinner-border").addClass('d-none');
//            $("#form_submit").removeAttr("disabled");
//            return;
//        }
//
//        if ($('#dob').val().length !== 10 || new Date().getFullYear() - new Date($('#dob').val()).getFullYear() > 100) {
//            show_error('Дата рождения должна быть корректной и возраст не более 80 лет', false);
//            $("#form_submit").children(".spinner-border").addClass('d-none');
//            $("#form_submit").removeAttr("disabled");
//            return;
//        }
//
//        if ($('#dob').val().length !== 10 || new Date().getFullYear() < new Date($('#dob').val()).getFullYear()) {
//            show_error('Проверьте дату ввода, вы указали дату больше чем сегодняшняя дата', false);
//            $("#form_submit").children(".spinner-border").addClass('d-none');
//            $("#form_submit").removeAttr("disabled");
//            return;
//        }


        function verificationpacient(){
        $("#form_submit").children(".spinner-border").removeClass('d-none');
        $("#form_submit").attr("disabled", true);

        let message = {};
        $('.tg_input').each(function() {
            message[$(this).attr("id")] = $(this).val();
        });

        show_success("Ваши данные отправлены на проверку.");

        $.ajax({
            type: "POST",
            url: "/request_patient2",
            contentType: "application/json",  // <-- Указываем JSON
            data: JSON.stringify(message),  // <-- Преобразуем объект в JSON
            success: function(data) {
                console.log(data);
                if (data.success) {
                    $('.primary-field').hide();
                    $('.verification').hide();
                    $('.verificationpacient').show();
                    $('#fio1').val(data.fio);
                    $('#fio1').prop('readonly', true);

                    $('#dob1').val(data.js_formatted_birthdate);
                    $('#dob1').prop('readonly', true);


                    if (data.pct_doc_ind == 2) {
                        // Заполняем данные свидетельства
                        $('#svedetelstvo').val(data.pct_doc_ser + ' ' + data.pct_doc_nom);
                        $('#svedetelstvo_date').val(data.js_formatted_passport_date);
                        $('#svedetelstvo_issued_by').val(data.pct_doc_org_name);
                    } else if (data.pct_doc_ind == 1) {
                        // Заполняем данные паспорта
                        $('#passport1').val(data.pct_doc_ser + ' ' + data.pct_doc_nom);
                        $('#passport_date1').val(data.js_formatted_passport_date);
                        $('#postal_code1').val(data.pct_doc_org_kod);

                        // Обрабатываем код подразделения
                         for(i in UFMS_list[data.pct_doc_org_kod])
                    {
                        item = UFMS_list[data.pct_doc_org_kod][i];
                        console.log(item.toLowerCase())
                        console.log(data.pct_doc_org_name.toLowerCase())
                        console.log(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
                        if(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
                        {
                            $('#passport_issued_by1').append('<option selected>'+item+'</option>');
                        }
                        else{
                            $('#passport_issued_by1').append('<option>'+item+'</option>');
                        }
                    }
                    }

//                    $('#passport1').val(data.pct_doc_ser + ' ' + data.pct_doc_nom);
//
//                    $('#passport_date1').val(data.js_formatted_passport_date);
//
//                    $('#postal_code1').val(data.pct_doc_org_kod);
//
//                    for(i in UFMS_list[data.pct_doc_org_kod])
//                    {
//                        item = UFMS_list[data.pct_doc_org_kod][i];
//                        console.log(item.toLowerCase())
//                        console.log(data.pct_doc_org_name.toLowerCase())
//                        console.log(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
//                        if(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
//                        {
//                            $('#passport_issued_by1').append('<option selected>'+item+'</option>');
//                        }
//                        else{
//                            $('#passport_issued_by1').append('<option>'+item+'</option>');
//                        }
//                    }

                    $('#inn1').val(data.pct_inn);
                    $('#taxpayer_status_zapros').val(data.taxpayer_status_zapros);
                    $('#email1').val(data.pct_email);


//                    $('#svedetelstvo').val(data.pct_doc_ser + ' ' + data.pct_doc_nom);
//                    $('#svedetelstvo_date').val(data.js_formatted_passport_date);
//                    $('#svedetelstvo_issued_by').val(data.pct_doc_org_name);

                    $('#fional').val(data.plc_fio);
                    $('#dobnal').val(data.js_formatted_birthdate_plc);
                    $('#innnal').val(data.plc_inn);
                    $('#passportnal').val(data.plc_doc_ser + ' ' + data.plc_doc_nom);
                    $('#passport_datenal').val(data.js_formatted_passport_date_plc);
                    $('#postal_codenal').val(data.plc_doc_org_kod);
                    for(i in UFMS_list[data.plc_doc_org_kod])
                    {
                        item = UFMS_list[data.plc_doc_org_kod][i];
                        console.log(item.toLowerCase())
                        console.log(data.plc_doc_org_kod.toLowerCase())
                        console.log(item.toLowerCase()==data.plc_doc_org_kod.toLowerCase())
                        if(item.toLowerCase()==data.plc_doc_org_kod.toLowerCase())
                        {
                            $('#passport_issued_bynal').append('<option selected>'+item+'</option>');
                        }
                        else{
                            $('#passport_issued_bynal').append('<option>'+item+'</option>');
                        }
                    }



                } else {
                    show_error(data.error);
                }
                $("#form_submit").children(".spinner-border").addClass('d-none');
                $("#form_submit").removeAttr("disabled");
            },
            error: function(jqXHR) {
                show_error('Что-то пошло не так');
                $("#form_submit").children(".spinner-border").addClass('d-none');
                $("#form_submit").removeAttr("disabled");
            }
        });
    }



    function verificationnalogoplat(){
        $("#form_submit").children(".spinner-border").removeClass('d-none');
        $("#form_submit").attr("disabled", true);

        let message = {};
        $('.tg_input').each(function() {
            message[$(this).attr("id")] = $(this).val();
        });

        show_success("Ваши данные отправлены на проверку.");

        $.ajax({
            type: "POST",
            url: "/request_patient",
            contentType: "application/json",  // <-- Указываем JSON
            data: JSON.stringify(message),  // <-- Преобразуем объект в JSON
            success: function(data) {
                console.log(data);
                if (data.success) {
                    $('.primary-field').hide();
                    $('.verification').show();
                    $('.verificationpacient').hide();

                    $('#fio').val(data.fio);
                    $('#fio').prop('readonly', true);

                    $('#dob').val(data.js_formatted_birthdate);
                    $('#dob').prop('readonly', true);

                    $('#passport').val(data.pct_doc_ser + ' ' + data.pct_doc_nom);

                    $('#passport_date').val(data.js_formatted_passport_date);

                    $('#postal_code').val(data.pct_doc_org_kod);

                    for(i in UFMS_list[data.pct_doc_org_kod])
                    {
                        item = UFMS_list[data.pct_doc_org_kod][i];
                        console.log(item.toLowerCase())
                        console.log(data.pct_doc_org_name.toLowerCase())
                        console.log(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
                        if(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
                        {
                            $('#passport_issued_by').append('<option selected>'+item+'</option>');
                        }
                        else{
                            $('#passport_issued_by').append('<option>'+item+'</option>');
                        }
                    }

                    $('#inn').val(data.pct_inn);

                    $('#email').val(data.pct_email);

                } else {
                    show_error(data.error);
                }
                $("#form_submit").children(".spinner-border").addClass('d-none');
                $("#form_submit").removeAttr("disabled");
            },
            error: function(jqXHR) {
                show_error('Что-то пошло не так');
                $("#form_submit").children(".spinner-border").addClass('d-none');
                $("#form_submit").removeAttr("disabled");
            }
        });
    }


    $("#form_submit").click(function() {
        let selectedValue = $("#taxpayer_status").val(); // Получаем выбранное значение

        if (selectedValue === "Я являюсь налогоплательщиком") {
            verificationnalogoplat();
        } else {
            console.log("Выбрано другое значение:", selectedValue);
            verificationpacient();
            // Тут можно добавить вызов других функций, если нужно
        }
    });

    $("#code_submit").click(function(){

        $(this).children(".spinner-border").removeClass('d-none');
        $(this).attr("disabled", true);
        message = {}



        if(!(validate_length($('#fio').val(), 3)))
        {
            show_error('Введите ФИО', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }



        if ($('#dob').val().length !== 10 || new Date().getFullYear() - new Date($('#dob').val()).getFullYear() > 100) {
            show_error('Дата рождения должна быть корректной и возраст не более 80 лет', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }

        if(!(validate_length($('#passport').val(), 11)))
        {
            show_error('Введите серию и номер паспорта', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }

        if ($('#passport_date').val().length !== 10 || (new Date($('#passport_date').val()).getFullYear() - new Date($('#dob').val()).getFullYear()) < 13) {
            show_error('Проверьте дату выдачи паспорта, паспорт РФ может быть выдан с 14 лет', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }

        if(!(validate_length($('#postal_code').val(), 7)))
        {
            show_error('Введите код подразделения', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }



        if($('#passport_issued_by').val() == null){
            show_error("Выберите кем выдан паспорт");
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }

        if(!(validate_length($('#inn').val(), 12)))
        {
            show_error('Введите ИНН', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }

        if ($("input[name='god_zapros']:checked").length === 0) {
            show_error("Выберите хотя бы один год запроса");
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }


            // Добавление значений с чекбоксов (годы)
        let selectedYears = [];
        $("input[name='god_zapros']:checked").each(function() {
            selectedYears.push($(this).val());
        });

        if (selectedYears.length > 0) {
            message['selected_years'] = selectedYears;
        }

        $.each($('.tg_input'), function(e) {
            message[$(this).prop("id")] = $(this).val();
        });


        $.ajax({
            type: "post",
            url: "/sending_patient",
            processData: false,  // tell jQuery not to process the data
            contentType: false,  // tell jQuery not to set contentType
            async: true,
            data: JSON.stringify(message),
            success: (data) => {
                if(data.success==true){
                    $('.primary-field').hide();
                    $('.verification').hide();
                    $('.success_window').show();
                }
                else{
                    show_error(data.error);
                    $(this).children(".spinner-border").addClass('d-none');
                    $(this).removeAttr("disabled");
                }
            },
            error:function (jqXHR, exception) {
                $(this).children(".spinner-border").addClass('d-none');
                $(this).removeAttr("disabled");
                show_error('Что-то пошло не так', false)
            }
        });
    });



    $("#code_submit2").click(function(){

        $(this).children(".spinner-border").removeClass('d-none');
        $(this).attr("disabled", true);
        message = {}

        if(!(validate_length($('#fio1').val(), 3)))
        {
            show_error('Введите ФИО пациента', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }


        if ($('#dob1').val().length !== 10 || new Date().getFullYear() - new Date($('#dob1').val()).getFullYear() > 100) {
            show_error('Дата рождения пациента должна быть корректной и возраст не более 100 лет', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }

        if(!(validate_length($('#fional').val(), 3)))
        {
            show_error('Введите ФИО налогоплательщика', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }

        if ($('#dobnal').val().length !== 10 || new Date().getFullYear() - new Date($('#dobnal').val()).getFullYear() > 100) {
            show_error('Дата рождения налогоплательщика должна быть корректной и возраст не более 100 лет', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }

        if(!(validate_length($('#innnal').val(), 12)))
        {
            show_error('Введите ИНН налогоплательщика', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }




        if(!(validate_length($('#passportnal').val(), 11)))
        {
            show_error('Введите серию и номер паспорта налогоплательщика', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }



        if ($('#passport_datenal').val().length !== 10 || (new Date($('#passport_datenal').val()).getFullYear() - new Date($('#dobnal').val()).getFullYear()) < 13) {
            show_error('Проверьте дату выдачи паспорта, паспорт РФ может быть выдан с 14 лет', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }




        if(!(validate_length($('#postal_codenal').val(), 7)))
        {
            show_error('Введите код подразделения налогоплательщика', false);
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }



        if($('#passport_issued_bynal').val() == null){
            show_error("Выберите кем выдан паспорт налогоплательщика");
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }




        if ($("input[name='god_zapros2']:checked").length === 0) {
            show_error("Выберите хотя бы один год запроса");
            $(this).children(".spinner-border").addClass('d-none');
            $(this).removeAttr("disabled");
            return;
        }


        let selectedYears = [];
        $("input[name='god_zapros2']:checked").each(function() {
            selectedYears.push($(this).val());
        });
        if (selectedYears.length > 0) {
            message['selected_years'] = selectedYears;
        }

        $.each($('.tg_input'), function(e) {
            message[$(this).prop("id")] = $(this).val();
        });


        $.each($('.tg_input'), function(e) {
            message[$(this).prop("id")] = $(this).val();
        });


        $.ajax({
            type: "POST",
            url: "/sending_patient2",
            contentType: "application/json",
            data: JSON.stringify(message),
            success: (data) => {
                if (data.success) {
                    $('.primary-field').hide();
                    $('.verification').hide();
                    $('.verificationpacient').hide();
                    $('.success_window').show();
                } else {
                    show_error(data.error);
                    $("#code_submit2").children(".spinner-border").addClass('d-none');
                    $("#code_submit2").removeAttr("disabled");
                }
            },
            error: function (jqXHR) {
                $("#code_submit2").children(".spinner-border").addClass('d-none');
                $("#code_submit2").removeAttr("disabled");

                // Попробуем получить сообщение об ошибке из ответа сервера
                let errorMessage = 'Что-то пошло не так';
                if (jqXHR.responseJSON && jqXHR.responseJSON.error) {
                    errorMessage = jqXHR.responseJSON.error;
                }

                show_error(errorMessage, false);
            }
        });
    });









//    $('.alert-placeholder').mouseenter(function(){
//        var popOverSettings = {
//            placement: 'bottom',
//            content: $(this).data('content'),
//            trigger: 'hover',
//            container: this,
//            offset: '0'
//        }
//        $(this).popover(popOverSettings);
//        $(this).popover('show');
//        $('.popover').addClass('alert-popover');
//    });
//    $('.alert-placeholder').mouseleave(function(){
//        $('.alert-popover').remove()
//    });



    let phoneStr = '';
    let formattedStr = '';
    let deleteMode = false;
    const phoneInput = document.querySelector('#tel');
    const defaultFormat = '+7({0}{1}{2}){3}{4}{5}-{6}{7}-{8}{9}';
//    phoneInput.value = formatPhoneString();

//    phoneInput.addEventListener('keydown', (e) => {
//      if (e.key === 'Backspace')
//        deleteMode = true;
//      else
//        deleteMode = false;
//    });
//
//    phoneInput.addEventListener('input', (e) => {
//      if (deleteMode) {
//        phoneInput.value = phoneInput.value;
//        phoneStr = parsePhoneString(phoneInput.value.replace("+7", "").replace("-", ""));
//      } else {
//        if (e.inputType == 'insertText' && !isNaN(parseInt(e.data))) {
//          if (phoneStr.length <= 9)
//            phoneStr += e.data;
//        }
//        phoneInput.value = formatPhoneString();
//      }
//    });

    function formatPhoneString() {
      let strArr = phoneStr.split('');
      formattedStr = defaultFormat;
      for (let i = 0; i < strArr.length; i++) {
        formattedStr = formattedStr.replace(`{${i}}`, strArr[i]);
      }

      if (formattedStr.indexOf('{') === -1)
      {
        return formattedStr;
      }
      else
      {
        return formattedStr.substring(0, formattedStr.indexOf('{'));
      }
    }

    function parsePhoneString(str) {
      return str.replace(' ', '').replace('(', '').replace(')', '').replace('-', '');
    }
});


