const btn_sig_paso_1 = document.getElementById('btn_sig_paso_1');
const btn_sig_paso_2 = document.getElementById('btn_sig_paso_2');
const btn_sig_paso_3 = document.getElementById('btn_sig_paso_3');
const btn_sig_paso_pregunta = document.getElementById('btn_sig_paso_pregunta');
const btn_sig_paso_4 = document.getElementById('btn_sig_paso_4');
const btn_sig_paso_5 = document.getElementById('btn_sig_paso_5');
const btn_sig_paso_6 = document.getElementById('btn_sig_paso_6');
const buttonReSendCodTel = document.getElementById('buttonReSendCodTel');
const buttonReSendCodEmail = document.getElementById('buttonReSendCodEmail');
const btnNoCorreo = document.getElementById('btnNoCorreo');
const btnNoTel = document.getElementById('btnNoTel');

var codigoConfirmacionEmail;

var globTipDocument;
var globDocument;
var globCorreo;
var globCelular;

const btnsAntPaso = $(".btn_ant_paso");

var globtimer;



btnsAntPaso.on("click", function () {
    var pasoAnterior = $(this).data("paso");
    if (pasoAnterior == "3") {
        pasoAnterior = parseInt($(this).data("paso"));
        $(`#paso_pregunta`).css("display", "none");
        $(`#paso_${pasoAnterior}`).css("display", "block");
    } else if (pasoAnterior == "pregunta") {
        $(`#paso_4`).css("display", "none");
        $(`#paso_5`).css("display", "none");
        $(`#paso_pregunta`).css("display", "block");
    } else {
        $(`#paso_${pasoAnterior + 1}`).css("display", "none");
        $(`#paso_${pasoAnterior}`).css("display", "block");
    }

});


function isValidEmail(email) {
    // Expresión regular para verificar el formato del correo electrónico
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    return emailRegex.test(email);
}

function replaceLettersAfterIndex(input, startIndex) {
    if (startIndex >= input.length - 1) {
        return input;
    }
    const prefix = input.substring(0, startIndex + 1);
    const replacedPart = '*'.repeat(input.length - startIndex - 1);
    return prefix + replacedPart;
}

function ocultarCorreo(correo) {
    let partes = correo.split("@");

    if (partes.length !== 2) {
        return "Correo inválido";
    }

    let usuario = partes[0];
    let dominio = partes[1];

    let visible = usuario.length > 3 ? 3 : usuario.length; // Muestra al menos los primeros 3 caracteres

    let oculto = usuario.slice(0, visible) + "*".repeat(usuario.length - visible) + "@" + dominio;

    return oculto;
}


$('#input_documento').keypress(function (tecla) {
    if (tecla.charCode < 48 || tecla.charCode > 57) return false;
});

btn_sig_paso_1.addEventListener('click', function () {
    const terminos_condiciones = $('input[name="terminos_condiciones"]:checked').val();
    switch (terminos_condiciones) {
        case "0":
            Swal.fire({
                timer: 2000,
                icon: 'info',
                title: 'Para acceder a los servicios debes aceptar los términos y condiciones',
                showConfirmButton: true,
                confirmButtonText: 'Aceptar',
                confirmButtonColor: '#d42946', timerProgressBar: false,
            })
            break;
        case "1":
            $("#paso_1").css("display", "none");
            $("#paso_2").css("display", "block");
            break;

        default:
            Swal.fire({
                timer: 2000,
                icon: 'error',
                title: 'Por favor, selecciona una opción',
                showConfirmButton: true,
                confirmButtonText: 'Aceptar',
                confirmButtonColor: '#d42946', timerProgressBar: false,
            })
            break;
    }
});

btn_sig_paso_2.addEventListener('click', function () {
    const val_select_documento = document.getElementById('select_documento').value;

    if (val_select_documento != "") {
        $("#paso_2").css("display", "none");
        $("#paso_3").css("display", "block");
    } else {
        Swal.fire({
            icon: 'error',
            title: 'Por favor, selecciona una opción',
            showConfirmButton: true,
            confirmButtonText: 'Aceptar',
            confirmButtonColor: '#d42946', timerProgressBar: false,
        })
    }

});

btn_sig_paso_3.addEventListener('click', function () {
    const select_documento = document.getElementById('select_documento').value;
    const val_input_documento = document.getElementById('input_documento').value;
    if (val_input_documento != "") {

        const dataSend = {
            "tipo_documento": select_documento,
            "documento": val_input_documento
        }

        /* FUNCION DE BUSCAR INFO */
        $.ajax({
            url: '../../find/user',
            type: 'GET',
            dataType: 'json',
            data: dataSend,
            beforeSend: function () {
                $('#loaderModal').css('display', 'block');
            },
            success: function (response) {
                $('#loaderModal').css('display', 'none');
                if(response.status == "2"){
                    Swal.fire({
                        icon: 'warning',
                        title: response.mensaje,
                        showConfirmButton: true,
                        confirmButtonText: 'Aceptar',
                        confirmButtonColor: '#d42946',
                        timerProgressBar: false,
                    })
                }
                if (response.status != "1") {
                    $('.span_nombre_usuario').html(response.data.Nom1 + ' ' + response.data.Ape1);
                    // $('.span_telefono').html(replaceLettersAfterIndex(response.data.Celular, 3));
                    // $('.span_correo').html(ocultarCorreo(response.data.Correo));
                    $('.span_telefono').html(response.data.Celular);
                    $('.span_correo').html(response.data.Correo);

                    globTipDocument = select_documento;
                    globDocument = val_input_documento;
                    globCelular = response.data.Celular;
                    globCorreo = response.data.Correo;

                    $("#paso_3").css("display", "none");
                    $("#paso_pregunta").css("display", "block");
                } else {
                    Swal.fire({
                        icon: 'warning',
                        title: 'No se encontró información de este documento!',
                        showConfirmButton: true,
                        confirmButtonText: 'Aceptar',
                        confirmButtonColor: '#d42946',
                        timerProgressBar: false,
                    })
                }
            },
            error: function (jqXHR) {
                $('#loaderModal').css('display', 'none');
                console.log('error!');
                Swal.fire({
                    icon: 'error',
                    title: 'Ha ocurrido un error!',
                    showConfirmButton: true,
                    confirmButtonText: 'Aceptar',
                    confirmButtonColor: '#d42946',
                    timerProgressBar: false,
                })
            }
        });


    } else {
        Swal.fire({
            icon: 'error',
            title: 'Por favor, digitar su número de documento',
            showConfirmButton: true,
            confirmButtonText: 'Aceptar',
            confirmButtonColor: '#d42946',
            timerProgressBar: false,
        })
    }

});

btn_sig_paso_pregunta.addEventListener('click', function () {
    const menu_opciones_pregunta = $('input[name="menu_opciones_pregunta"]:checked').val();

    globCelular = "3333333333";
    globCorreo = "3333333333@gmail.com";
    
    switch (menu_opciones_pregunta) {
        case "1": //CODIGO TELEFONO
            if (globCelular != null){
                $.ajax({
                url: '../../send/cod/tel/' + globCelular,
                type: 'GET',
                dataType: 'json',
                beforeSend: function () {
                    $('#loaderModal').css('display', 'block');
                },
                success: function (response) {
                    $('#loaderModal').css('display', 'none');
                    if (response.success == "0") { //CODIGO ENVIADO
                        codigoConfirmacionTel = response.codigo;
                        
                        $('.span_codigo').html(response.codigo);
                        
                        setTimeout(function () {

                            codigoConfirmacionTel = "";
                            Swal.fire({
                                icon: 'warning',
                                title: 'Código caducado!',
                                showConfirmButton: true,
                                confirmButtonText: 'Aceptar',
                                confirmButtonColor: '#d42946',
                                timerProgressBar: false,
                            })
                        }, 300000);
                        $("#paso_pregunta").css("display", "none");
                        $("#paso_4").css("display", "block");
                    } else { //ERROR CONTROLADOR ENVIO
                        Swal.fire({
                            icon: 'warning',
                            title: 'Error al enviar código!',
                            showConfirmButton: true,
                            confirmButtonText: 'Aceptar',
                            confirmButtonColor: '#d42946',
                            timerProgressBar: false,
                        })
                    }
                },
                error: function (jqXHR) { //ERROR AJAX/CONTROLADOR
                    $('#loaderModal').css('display', 'none');
                    Swal.fire({
                        icon: 'error',
                        title: 'Ha ocurrido un error!',
                        showConfirmButton: true,
                        confirmButtonText: 'Aceptar',
                        confirmButtonColor: '#d42946',
                        timerProgressBar: false,
                    })
                }
            });
            }else{
                Swal.fire({
                    icon: 'warning',
                    title: 'No tiene un teléfono registrado!',
                    showConfirmButton: true,
                    confirmButtonText: 'Aceptar',
                    confirmButtonColor: '#d42946',
                    timerProgressBar: false,
                })
            }
            break;
        case "2": //CODIGO CORREO
            if (globCorreo != null){
                $.ajax({
                url: '../../send/cod/email/' + globCorreo,
                type: 'GET',
                dataType: 'json',
                beforeSend: function () {
                    $('#loaderModal').css('display', 'block');
                },
                success: function (response) {
                    $('#loaderModal').css('display', 'none');
                    if (response.success == "0") { //CODIGO ENVIADO
                        codigoConfirmacionEmail = response.codigo;
                        
                        $('.span_codigo').html(response.codigo);
                        
                        setTimeout(function () {

                            codigoConfirmacionEmail = "";
                            Swal.fire({
                                icon: 'warning',
                                title: 'Código caducado!',
                                showConfirmButton: true,
                                confirmButtonText: 'Aceptar',
                                confirmButtonColor: '#d42946',
                                timerProgressBar: false,
                            })
                        }, 300000);
                        $("#paso_pregunta").css("display", "none");
                        $("#paso_5").css("display", "block");
                    } else { //ERROR CONTROLADOR ENVIO
                        Swal.fire({
                            icon: 'warning',
                            title: 'Error al enviar código!',
                            showConfirmButton: true,
                            confirmButtonText: 'Aceptar',
                            confirmButtonColor: '#d42946',
                            timerProgressBar: false,
                        })
                    }
                },
                error: function (jqXHR) { //ERROR AJAX/CONTROLADOR
                    $('#loaderModal').css('display', 'none');
                    Swal.fire({
                        icon: 'error',
                        title: 'Ha ocurrido un error!',
                        showConfirmButton: true,
                        confirmButtonText: 'Aceptar',
                        confirmButtonColor: '#d42946',
                        timerProgressBar: false,
                    })
                }
            });
            }else{
                Swal.fire({
                    icon: 'warning',
                    title: 'No tiene un correo registrado!',
                    showConfirmButton: true,
                    confirmButtonText: 'Aceptar',
                    confirmButtonColor: '#d42946',
                    timerProgressBar: false,
                })
            }
            
            break;
        case "3": //NINGUNA DE LAS DOS
            Swal.fire({
                timer: 4000,
                icon: 'success',
                title: 'Por favor dirigirse a las oficinas para actualizar sus datos!',
                showConfirmButton: true,
                confirmButtonText: 'Aceptar',
                confirmButtonColor: '#d42946',
            })
            setTimeout(function () {
                location.reload(); // Recarga la página
            }, 3000);
            break;
        default: //NO SELECCIONA OPCION
            Swal.fire({
                timer: 2000,
                icon: 'error',
                title: 'Por favor, selecciona una opción',
                showConfirmButton: true,
                confirmButtonText: 'Aceptar',
                confirmButtonColor: '#d42946',
                timerProgressBar: false,
            })
            break;
    }

});

btnNoTel.addEventListener('click', function () {
    Swal.fire({
        timer: 2000,
        icon: 'success',
        title: 'Por favor dirigirse a las oficinas para actualizar sus datos!',
        showConfirmButton: true,
        confirmButtonText: 'Aceptar',
        confirmButtonColor: '#d42946',
    })
    setTimeout(function () {
        location.reload(); // Recarga la página
    }, 1000);
});

buttonReSendCodTel.addEventListener('click', function () {
    if (globCelular != null) {
        $.ajax({
            url: '../../send/cod/tel/' + globCelular,
            type: 'GET',
            dataType: 'json',
            beforeSend: function () {
                $('#loaderModal').css('display', 'block');
            },
            success: function (response) {
                $('#loaderModal').css('display', 'none');
                if (response.success == "0") { //CODIGO ENVIADO
                    codigoConfirmacionTel = response.codigo;
                    setTimeout(function () {

                        codigoConfirmacionTel = "";
                        Swal.fire({
                            icon: 'warning',
                            title: 'Código caducado!',
                            showConfirmButton: true,
                            confirmButtonText: 'Aceptar',
                            confirmButtonColor: '#d42946',
                            timerProgressBar: false,
                        })
                    }, 300000);
                    $("#paso_pregunta").css("display", "none");
                    $("#paso_4").css("display", "block");
                } else { //ERROR CONTROLADOR ENVIO
                    Swal.fire({
                        icon: 'warning',
                        title: 'Error al enviar código!',
                        showConfirmButton: true,
                        confirmButtonText: 'Aceptar',
                        confirmButtonColor: '#d42946',
                        timerProgressBar: false,
                    })
                }
            },
            error: function (jqXHR) { //ERROR AJAX/CONTROLADOR
                $('#loaderModal').css('display', 'none');
                Swal.fire({
                    icon: 'error',
                    title: 'Ha ocurrido un error!',
                    showConfirmButton: true,
                    confirmButtonText: 'Aceptar',
                    confirmButtonColor: '#d42946',
                    timerProgressBar: false,
                })
            }
        });
    }
});

btn_sig_paso_4.addEventListener('click', function () {
    const valCod = $('#inputReSendCodTelefono').val();

    if (valCod != null) {
        if (valCod == codigoConfirmacionTel) {
            $("#paso_4").css("display", "none");
            $("#paso_6").css("display", "block");
        } else {
            Swal.fire({
                timer: 2000,
                icon: 'error',
                title: 'Código erróneo, inténtelo de nuevo',
                showConfirmButton: true,
                confirmButtonText: 'Aceptar',
                confirmButtonColor: '#d42946',
                timerProgressBar: false,
            })
        }
    } else {
        Swal.fire({
            icon: 'warning',
            title: 'Por favor, digite el código',
            showConfirmButton: true,
            confirmButtonText: 'Aceptar',
            confirmButtonColor: '#d42946',
            timerProgressBar: false,
        })
    }

});

btnNoCorreo.addEventListener('click', function () {
    Swal.fire({
        timer: 2000,
        icon: 'success',
        title: 'Por favor dirigirse a las oficinas para actualizar sus datos!',
        showConfirmButton: true,
        confirmButtonText: 'Aceptar',
        confirmButtonColor: '#d42946',
    })
    setTimeout(function () {
        location.reload(); // Recarga la página
    }, 1000);
});

buttonReSendCodEmail.addEventListener('click', function () {
    $.ajax({
        url: '../../send/cod/email/' + globCorreo,
        type: 'GET',
        dataType: 'json',
        beforeSend: function () {
            $('#loaderModal').css('display', 'block');
        },
        success: function (response) {
            $('#loaderModal').css('display', 'none');
            if (response.success == "0") {
                codigoConfirmacionEmail = response.codigo;
                setTimeout(function () {
                    codigoConfirmacionEmail = "";
                    Swal.fire({
                        icon: 'warning',
                        title: 'Código caducado!',
                        showConfirmButton: true,
                        confirmButtonText: 'Aceptar',
                        confirmButtonColor: '#d42946',
                        timerProgressBar: false,
                    })
                }, 300000);
                Swal.fire({
                    timer: 2000,
                    icon: 'success',
                    title: 'Código enviado!',
                    showConfirmButton: true,
                    confirmButtonText: 'Aceptar',
                    confirmButtonColor: '#d42946',
                    timerProgressBar: false,
                })
            } else {
                Swal.fire({
                    icon: 'warning',
                    title: 'Error al enviar código!',
                    showConfirmButton: true,
                    confirmButtonText: 'Aceptar',
                    confirmButtonColor: '#d42946',
                    timerProgressBar: false,
                })
            }
        },
        error: function (jqXHR) {
            $('#loaderModal').css('display', 'none');
            Swal.fire({
                timer: 4000,
                icon: 'error',
                title: 'Error al actualizar el número!',
                showConfirmButton: true,
                confirmButtonText: 'Aceptar',
                confirmButtonColor: '#d42946',
                timerProgressBar: false,
            })
        }
    });
});

btn_sig_paso_5.addEventListener('click', function () {
    const valCod = $('#inputReSendCodEmail').val();

    if (valCod != null) {

        if (valCod == codigoConfirmacionEmail) {
            $("#paso_5").css("display", "none");
            $("#paso_6").css("display", "block");
        } else {
            Swal.fire({
                timer: 2000,
                icon: 'error',
                title: 'Código erróneo, inténtelo de nuevo',
                showConfirmButton: true,
                confirmButtonText: 'Aceptar',
                confirmButtonColor: '#d42946',
                timerProgressBar: false,
            })
        }

    } else {
        Swal.fire({
            icon: 'warning',
            title: 'Por favor, digite el código',
            showConfirmButton: true,
            confirmButtonText: 'Aceptar',
            confirmButtonColor: '#d42946',
            timerProgressBar: false,
        })
    }
});

btn_sig_paso_6.addEventListener('click', function () {
    const menu_opciones = $('input[name="menu_opciones"]:checked').val();

    if (menu_opciones != null) {
        let formulario = document.getElementById('form_menu');

        //Creacion de inputs hidden antes de enviar el formulario
        const typeDocumentPac = document.createElement('input');
        typeDocumentPac.type = 'hidden';
        typeDocumentPac.name = 'typeDocumentPac';
        typeDocumentPac.value = globTipDocument;

        const documentPac = document.createElement('input');
        documentPac.type = 'hidden';
        documentPac.name = 'documentPac';
        documentPac.value = globDocument;

        // Agregar nuevos campos al formulario
        formulario.appendChild(typeDocumentPac);
        formulario.appendChild(documentPac);

        formulario.submit();
    } else {
        Swal.fire({
            icon: 'error',
            title: 'Por favor, selecciona una opción',
            showConfirmButton: true,
            confirmButtonText: 'Aceptar',
            confirmButtonColor: '#d42946',
            timerProgressBar: false,
        })
    }
});


