document.addEventListener("DOMContentLoaded", function () {
    const form = document.getElementById("Registrar_Chofer");

    // Convierte a mayúsculas al escribir
    ["nombres", "apellidos", "categoria_licencia"].forEach(id => {
        const input = document.getElementById(id);
        input.addEventListener("input", () => {
            input.value = input.value.toUpperCase();
        });
    });

    // Validación al enviar
    form.addEventListener("submit", function (e) {
        e.preventDefault();

        const campos = [
            { id: "nombres", mensaje: "Solo letras y espacios.", regex: /^[A-Z\s]+$/ },
            { id: "apellidos", mensaje: "Solo letras y espacios.", regex: /^[A-Z\s]+$/ },
            { id: "dni", mensaje: "Debe contener exactamente 8 dígitos numéricos.", regex: /^\d{8}$/ },
            { id: "categoria_licencia", mensaje: "Este campo es obligatorio." },
            { id: "telefono", mensaje: "Debe contener exactamente 9 dígitos numéricos.", regex: /^\d{9}$/ }
        ];

        let esValido = true;

        campos.forEach(({ id, mensaje, regex }) => {
            const input = document.getElementById(id);
            const valor = input.value.trim();
            const feedback = input.nextElementSibling;

            if (!valor || (regex && !regex.test(valor))) {
                input.classList.add("is-invalid");
                input.classList.remove("is-valid");
                if (feedback) {
                    feedback.textContent = mensaje;
                    feedback.style.display = "block";
                }
                esValido = false;
            } else {
                input.classList.remove("is-invalid");
                input.classList.add("is-valid");
                if (feedback) {
                    feedback.textContent = "";
                    feedback.style.display = "none";
                }
            }
        });

        if (esValido) {
            form.submit();
        }
    });

    // Restringe campos numéricos
    document.getElementById("telefono").addEventListener("input", function () {
        this.value = this.value.replace(/\D/g, '').slice(0, 9);
    });

    document.getElementById("dni").addEventListener("input", function () {
        this.value = this.value.replace(/\D/g, '').slice(0, 8);
    });

    // Botón de borrar datos
    document.getElementById("btn-reset").addEventListener("click", function () {
        form.reset();
        form.querySelectorAll("input").forEach(input => {
            input.classList.remove("is-invalid", "is-valid");
            const feedback = input.nextElementSibling;
            if (feedback) {
                feedback.textContent = "";
                feedback.style.display = "none";
            }
        });
    });
});
