const inputIdentificacion = document.getElementById("identificacion");
const formulario = document.getElementById("usuario_form");
const csrfToken = document.head.querySelector("[name~=csrf-token][content]").content;
bsCustomFileInput.init();

const validarCedula = (cedula) => {
    try {
        var auxCedula = cedula;
        if (auxCedula.length !== 10) {
            return false;
        }
        var primeros2 = +auxCedula.substr(0, 2);
        if (primeros2 < 1 || primeros2 > 24) {
            return false;
        }
        var digitoVerificador = +auxCedula.split("").slice(-1);
        var coeficientes_1 = [2, 1, 2, 1, 2, 1, 2, 1, 2];
        var sumaT = auxCedula
            .substr(0, 9)
            .split("")
            .reduce(function (p, c, i) {
                var aux = 0;
                var mult = +c * coeficientes_1[i];
                aux = mult > 9 ? mult - 9 : mult;
                return p + aux;
            }, 0);
        var residuo = sumaT % 10;
        return residuo === 0 ?
            digitoVerificador === 0 :
            10 - residuo === digitoVerificador;
    } catch (error) {
        return false;
    }
};
const validarRuc = (ruc) => {
    if (ruc.length == 13) {
        if (ruc.substring(10, 13) == "001") {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
};
const validarIdentificacion = (e) => {
    const respuesta = validarCedula(e.target.value);
    if (!respuesta) {
        document
            .querySelector(`#grupo__usuario .formulario__input-error`)
            .classList.add("formulario__input-error-activo");
    } else {
        document
            .querySelector("#grupo__usuario .formulario__input-error")
            .classList.remove("formulario__input-error-activo");
    }

};
const validarIdentificacionSelect = (e) => {
    if (e.target.value == "C" && inputIdentificacion.value.length >= 10) {
        const respuesta = validarCedula(inputIdentificacion.value);
        if (!respuesta) {
            document
                .querySelector(`#grupo__usuario .formulario__input-error`)
                .classList.add("formulario__input-error-activo");
        } else {
            document
                .querySelector("#grupo__usuario .formulario__input-error")
                .classList.remove("formulario__input-error-activo");
        }
    } else if (
        e.target.value == "R" &&
        inputIdentificacion.value.length >= 10
    ) {
        const respuesta = validarRuc(inputIdentificacion.value);
        if (!respuesta) {
            document
                .querySelector(`#grupo__usuario .formulario__input-error`)
                .classList.add("formulario__input-error-activo");
        } else {
            document
                .querySelector("#grupo__usuario .formulario__input-error")
                .classList.remove("formulario__input-error-activo");
        }
    }
};
const validacionGeneral = (tipo = "C") => {
    if (tipo == "C" && inputIdentificacion.value.length >= 10) {
        const respuesta = validarCedula(inputIdentificacion.value);
        if (!respuesta) {
            return false;
        }
    } else if (tipo == "R" && inputIdentificacion.value.length >= 10) {
        const respuesta = validarRuc(inputIdentificacion.value);
        if (!respuesta) {
            return false;
        }
    } else {
        return false;
    }
    return true;
};
inputIdentificacion.addEventListener("keyup", validarIdentificacion);

$("form#usuario_form").submit(function (e) {
    e.preventDefault();
    MostrarLoader();
    const formData = new FormData(this);
    $.ajax({
        url: "/mantenimiento/crearUsuario",
        type: "POST",
        data: formData,
        success: function (data) {
            OcultarLoader();
            if (data.status == "ok") {
                Limpiar();
                toastr.success(data.message);
                setTimeout(function() {
                    location.reload();
                }, 1200);
            } else {
                toastr.error(data.message);
            }
        },
        cache: false,
        contentType: false,
        processData: false,
    });

});


//editar usuario
function CargarBusquedaUsuarios() {
    $('#tblBuscarUsuarios').DataTable({
        "processing": true,
        "destroy": true,
        "serverSide": true,
        "responsive": true,
        "lengthChange": false,
        "autoWidth": false,
        "select": true,
        "ajax": {
            'url': '/mantenimiento/listarUsuarios', 'headers': {
                'Content-Type': 'application/json',
                "X-CSRF-Token": $("meta[name='csrf-token']").attr("content")
            }
        },
        "columns": [{
            data: 'id'
        },
        {
            data: 'name'
        },
        {
            data: 'email'
        },
        {
            data: 'cedula'
        }
        ],
        "language": {
            "lengthMenu": "Mostrar _MENU_ registros por página",
            "zeroRecords": "No se encontró nada - lo siento",
            "info": "Mostrando la página _PAGE_ de _PAGES_",
            "infoEmpty": "No hay registros disponibles",
            "infoFiltered": "(filtrado de _MAX_ registros totales)",
            "search": "Buscar Socio:",
            "paginate": {
                "previous": "Anterior",
                "next": "siguiente"
            }
        },

    }).buttons().container().appendTo('#tblBuscarUsuarios_wrapper .col-md-6:eq(0)');

    var table = $('#tblBuscarUsuarios').DataTable();
    $('#tblBuscarUsuarios tbody').on('click', 'tr', function () {
        var row = table.row(this).data();
        CargarDatosUsuario(row);
    });

}

CargarBusquedaUsuarios();


function CargarDatosUsuario(item) {

    document.getElementById("id_usuario").value = item.id;
    document.getElementById("nombre").value = item.name;
    document.getElementById("identificacion").value = item.cedula;
    document.getElementById("correo").value = item.email;
    //document.getElementById("idrol").value = item.id_rol;
    document.getElementById("idrol").disabled = true;
    document.getElementById("identificacion").disabled = true;
    
    $("#modal-buscar-usuarios").modal('hide');
}

function CargarBusqueda(){
    var table = $('#tblBuscarUsuarios').DataTable();
    table.ajax.reload();

    $("#modal-buscar-usuarios").modal('show');
}


const Limpiar = () => formulario.reset();



