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",
                },
                {
                    data: "role_id",
                    visible: false,
                },
            ],
            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) {
    console.log(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("role_id").change() = true;
    $("#idrol").val(item.role_id).change();
    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();
