// ================================
// VALIDACIÓN DEL FORMULARIO
// ================================
function validarFormulario() {
    const nombre = document.querySelector('input[name="nombre"]').value.trim(); // Obtiene y limpia el nombre
    const apellido = document.querySelector('input[name="apellido"]').value.trim(); // Obtiene y limpia el apellido
    const telefono = document.querySelector('input[name="telefono"]').value.trim(); // Teléfono limpio
    const habitacion = document.querySelector('input[name="habitacion"]').value.trim(); // Habitación limpia
    const fechaEntrada = document.querySelector('input[name="fecha_entrada"]').value; // Fecha entrada sin trim
    const fechaSalida = document.querySelector('input[name="fecha_salida"]').value; // Fecha salida
    const precio = document.querySelector('input[name="precio"]').value.trim(); // Precio limpio

    // Verifica que todos los campos estén completos
    if (!nombre || !apellido || !telefono || !habitacion || !fechaEntrada || !fechaSalida || !precio) {
        alert("Por favor, completa todos los campos.");
        return false; // Cancela el envío si falta algo
    }

    // Verifica que el precio sea un número válido y positivo
    if (isNaN(precio) || precio <= 0) {
        alert("El precio debe ser un número positivo.");
        return false;
    }

    // Verifica que la fecha de entrada sea anterior a la fecha de salida
    if (new Date(fechaEntrada) >= new Date(fechaSalida)) {
        alert("La fecha de entrada debe ser anterior a la fecha de salida.");
        return false;
    }

    return true; // Si pasa todas las validaciones, permite enviar
}

// ================================
// CONFIRMACIÓN DE ELIMINACIÓN
// ================================
function eliminarReservacion(id) {
    // Muestra un cuadro de confirmación antes de redirigir a delete.php
    if (confirm("¿Estás seguro de que deseas eliminar esta reservación?")) {
        window.location.href = `delete.php?delete_id=${id}`;
    }
}

// ================================
// FORMULARIO DE ACTUALIZACIÓN
// ================================
function mostrarFormularioActualizar(id, nombre, apellido, telefono, habitacion, fecha_entrada, fecha_salida, precio) {
    const formActualizar = document.createElement('div'); // Crea un contenedor para el formulario dinámico

    // Inserta HTML del formulario con valores precargados
    formActualizar.innerHTML = `
        <form action="update.php" method="POST">
            <input type="hidden" name="update_id" value="${id}">
            <input type="text" name="update_nombre" value="${nombre}" required>
            <input type="text" name="update_apellido" value="${apellido}" required>
            <input type="text" name="update_telefono" value="${telefono}" required>
            <input type="text" name="update_habitacion" value="${habitacion}" required>
            <input type="date" name="update_fecha_entrada" value="${fecha_entrada}" required>
            <input type="date" name="update_fecha_salida" value="${fecha_salida}" required>
            <input type="number" name="update_precio" value="${precio}" required>
            <button type="submit" name="update">Actualizar</button>
            <button type="button" onclick="cerrarFormularioActualizar()">Cancelar</button>
        </form>
    `;

    // Añade el formulario al final del <body>
    document.body.appendChild(formActualizar);
}

// ================================
// CERRAR EL FORMULARIO DE ACTUALIZACIÓN
// ================================
function cerrarFormularioActualizar() {
    const formActualizar = document.querySelector('form[action="update.php"]'); // Busca el formulario dinámico
    if (formActualizar) {
        formActualizar.remove(); // Lo elimina si existe
    }
}

// ================================
// BLOQUEO DE FECHAS PASADAS EN CALENDARIO
// ================================
d = new Date(); // Crea objeto con la fecha actual
const y = d.getFullYear(); // Año actual
const m = String(d.getMonth() + 1).padStart(2, '0'); // Mes con formato doble dígito
const day = String(d.getDate()).padStart(2, '0'); // Día con formato doble dígito

// Establece como fecha mínima del input el día de hoy (no se puede seleccionar antes)
document.getElementById("reservation_date").min = `${y}-${m}-${day}`;

// Imprime la fecha mínima permitida en consola para verificación
console.log(`${y}-${m}-${day}`);
