// Validar el formulario antes de enviarlo
function validarFormulario() {
    const nombre = document.querySelector('input[name="nombre"]').value.trim(); // Obtiene y limpia el valor del campo 'nombre'
    const apellido = document.querySelector('input[name="apellido"]').value.trim(); // Obtiene y limpia el apellido
    const telefono = document.querySelector('input[name="telefono"]').value.trim(); // Obtiene y limpia el teléfono
    const habitacion = document.querySelector('input[name="habitacion"]').value.trim(); // Obtiene y limpia el número de habitación
    const fechaEntrada = document.querySelector('input[name="fecha_entrada"]').value; // Obtiene la fecha de entrada (sin trim porque es tipo date)
    const fechaSalida = document.querySelector('input[name="fecha_salida"]').value; // Obtiene la fecha de salida
    const precio = document.querySelector('input[name="precio"]').value.trim(); // Obtiene y limpia el valor del precio

    if (!nombre || !apellido || !telefono || !habitacion || !fechaEntrada || !fechaSalida || !precio) {
        alert("Por favor, completa todos los campos."); // Alerta si algún campo está vacío
        return false; // Detiene el envío del formulario
    }

    if (isNaN(precio) || precio <= 0) {
        alert("El precio debe ser un número positivo."); // Alerta si el precio no es válido
        return false;
    }

    if (new Date(fechaEntrada) >= new Date(fechaSalida)) {
        alert("La fecha de entrada debe ser anterior a la fecha de salida."); // Alerta si las fechas no tienen sentido lógico
        return false;
    }

    return true; // Si todo es válido, permite que el formulario se envíe
}

// Confirmación antes de eliminar una reservación
function eliminarReservacion(id) {
    if (confirm("¿Estás seguro de que deseas eliminar esta reservación?")) { // Confirma con el usuario antes de continuar
        window.location.href = `delete.php?delete_id=${id}`; // Redirige al archivo PHP que maneja la eliminación
    }
}

// Mostrar el formulario de actualización con los datos del registro cargados
function mostrarFormularioActualizar(id, nombre, apellido, telefono, habitacion, fecha_entrada, fecha_salida, precio) {
    const formActualizar = document.createElement('div'); // Crea dinámicamente un <div> para contener el formulario
    formActualizar.innerHTML = `
        <form action="update.php" method="POST"> <!-- Formulario para actualizar información -->
            <input type="hidden" name="update_id" value="${id}"> <!-- ID oculto que identifica la reservación -->
            <input type="text" name="update_nombre" value="${nombre}" required> <!-- Campo precargado con nombre -->
            <input type="text" name="update_apellido" value="${apellido}" required> <!-- Apellido -->
            <input type="text" name="update_telefono" value="${telefono}" required> <!-- Teléfono -->
            <input type="text" name="update_habitacion" value="${habitacion}" required> <!-- Habitación -->
            <input type="date" name="update_fecha_entrada" value="${fecha_entrada}" required> <!-- Fecha entrada -->
            <input type="date" name="update_fecha_salida" value="${fecha_salida}" required> <!-- Fecha salida -->
            <input type="number" name="update_precio" value="${precio}" required> <!-- Precio -->
            <button type="submit" name="update">Actualizar</button> <!-- Botón para enviar -->
            <button type="button" onclick="cerrarFormularioActualizar()">Cancelar</button> <!-- Botón para cerrar -->
        </form>
    `;

    document.body.appendChild(formActualizar); // Añade el formulario generado al cuerpo del documento
}

// Cerrar el formulario de actualización si está activo
function cerrarFormularioActualizar() {
    const formActualizar = document.querySelector('form[action="update.php"]'); // Busca el formulario por su acción
    if (formActualizar) {
        formActualizar.remove(); // Lo elimina del DOM si existe
    }
}
