document.addEventListener('DOMContentLoaded', () => {
    const form = document.getElementById('formCambiarPassword');
    if (!form) return;

    const msgDiv = document.getElementById('cambiarPasswordMsg');
    const modalEl = document.getElementById('modalCambiarPassword');
    const modal = new bootstrap.Modal(modalEl);

    form.addEventListener('submit', async (e) => {
        e.preventDefault();

        const formData = new FormData(form);
        const data = Object.fromEntries(formData.entries());

        msgDiv.className = 'alert d-none'; // Resetear mensaje

        try {
            const response = await fetch('../src/cambiar_password.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify(data)
            });

            const result = await response.json();

            if (response.ok && result.success) {
                msgDiv.className = 'alert alert-success';
                msgDiv.textContent = result.message;
                form.reset();
                setTimeout(() => {
                    document.activeElement.blur(); // Quitar el foco antes de ocultar
                    modal.hide();
                    msgDiv.className = 'alert d-none';
                }, 2000);
            } else {
                msgDiv.className = 'alert alert-danger';
                msgDiv.textContent = result.error || 'Ocurrió un error inesperado.';
            }
        } catch (error) {
            msgDiv.className = 'alert alert-danger';
            msgDiv.textContent = 'Error de conexión. Por favor, inténtalo de nuevo más tarde.';
        }
    });

    // Limpiar formulario y mensaje cuando el modal se cierra
    modalEl.addEventListener('hidden.bs.modal', function () {
        form.reset();
        msgDiv.className = 'alert d-none';
    });
});