// JAVASCRIPT

// Validar el formulario antes de enviar (este es para el formulario de CREAR)
function validarFormulario() {
    const nombre = document.querySelector('input[name="nombre"]').value.trim();
    const apellido = document.querySelector('input[name="apellido"]').value.trim();
    const telefono = document.querySelector('input[name="telefono"]').value.trim();
    const habitacion = document.querySelector('input[name="habitacion"]').value.trim();
    const fechaEntrada = document.querySelector('input[name="fecha_entrada"]').value;
    const fechaSalida = document.querySelector('input[name="fecha_salida"]').value;
    const precio = document.querySelector('input[name="precio"]').value.trim();

    if (!nombre || !apellido || !telefono || !habitacion || !fechaEntrada || !fechaSalida || !precio) {
        alert("Por favor, completa todos los campos.");
        return false;
    }

    if (isNaN(precio) || parseFloat(precio) <= 0) { // Usar parseFloat para precios
        alert("El precio debe ser un número positivo.");
        return false;
    }

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

    return true;
}

// Confirmación antes de eliminar una reservación
function eliminarReservacion(id) {
    if (confirm("¿Estás seguro de que deseas eliminar esta reservación?")) {
        window.location.href = `delete.php?delete_id=${id}`;
    }
}

// Mostrar el formulario de actualización con los datos cargados
function mostrarFormularioActualizar(id, nombre, apellido, telefono, habitacion, fecha_entrada, fecha_salida, precio) {
    // Primero, cierra cualquier formulario de actualización que ya esté abierto
    cerrarFormularioActualizar();

    // Cambiado: Ahora seleccionamos el div específico con id="formActualizar"
    const formActualizarContainer = document.getElementById('formActualizar'); 
    
    // Si no se encuentra el contenedor específico, aún podemos usar .container como fallback
    const targetContainer = formActualizarContainer || document.querySelector('.container');

    const formActualizarDiv = document.createElement('div');
    formActualizarDiv.classList.add('update-form-container'); // Añadir una clase para estilizar y seleccionar fácilmente

    formActualizarDiv.innerHTML = `
        <h3>Actualizar Reservación</h3>
        <form id="form-actualizar-reservacion" action="update.php" method="POST" onsubmit="return validarFormularioActualizacion()">
            <input type="hidden" name="id" value="${id}">
            <input type="text" name="nombre" value="${nombre}" placeholder="Nombre" required>
            <input type="text" name="apellido" value="${apellido}" placeholder="Apellido" required>
            <input type="text" name="telefono" value="${telefono}" placeholder="Teléfono" required>
            <input type="text" name="habitacion" value="${habitacion}" placeholder="Habitación" required>
            <input type="date" name="fecha_entrada" value="${fecha_entrada}" required>
            <input type="date" name="fecha_salida" value="${fecha_salida}" required>
            <input type="number" name="precio" value="${precio}" placeholder="Precio en COP" step="0.01" required>
            <button type="submit" name="update">Actualizar</button>
            <button type="button" onclick="cerrarFormularioActualizar()">Cancelar</button>
        </form>
    `;

    // Asegurarse de que el contenedor de destino existe antes de añadir
    if (targetContainer) {
        targetContainer.appendChild(formActualizarDiv); // Añade el formulario dentro del contenedor principal
    } else {
        console.error("No se encontró ningún contenedor (ni #formActualizar ni .container) para añadir el formulario de actualización.");
    }
}

// Nueva función para validar el formulario de actualización
function validarFormularioActualizacion() {
    console.log("--- Iniciando validación del formulario de ACTUALIZACIÓN ---");

    const formContainer = document.querySelector('.update-form-container');
    if (!formContainer) {
        console.error("Error: No se encontró el contenedor del formulario de actualización (.update-form-container).");
        return false;
    }

    const nombre = formContainer.querySelector('input[name="nombre"]').value.trim();
    const apellido = formContainer.querySelector('input[name="apellido"]').value.trim();
    const telefono = formContainer.querySelector('input[name="telefono"]').value.trim();
    const habitacion = formContainer.querySelector('input[name="habitacion"]').value.trim();
    const fechaEntrada = formContainer.querySelector('input[name="fecha_entrada"]').value;
    const fechaSalida = formContainer.querySelector('input[name="fecha_salida"]').value;
    const precio = formContainer.querySelector('input[name="precio"]').value.trim();

    console.log("Valores capturados para actualización:");
    console.log("Nombre:", nombre);
    console.log("Apellido:", apellido);
    console.log("Teléfono:", telefono);
    console.log("Habitación:", habitacion);
    console.log("Fecha Entrada:", fechaEntrada);
    console.log("Fecha Salida:", fechaSalida);
    console.log("Precio:", precio);

    if (!nombre || !apellido || !telefono || !habitacion || !fechaEntrada || !fechaSalida || !precio) {
        alert("Por favor, completa todos los campos para la actualización.");
        console.log("Fallo: Algún campo está vacío.");
        return false;
    }

    if (isNaN(parseFloat(precio)) || parseFloat(precio) <= 0) { // Usar parseFloat para la verificación
        alert("El precio debe ser un número positivo para la actualización.");
        console.log("Fallo: El precio no es un número válido o es <= 0.");
        return false;
    }

    if (new Date(fechaEntrada) >= new Date(fechaSalida)) {
        alert("La fecha de entrada debe ser anterior a la fecha de salida para la actualización.");
        console.log("Fallo: La fecha de entrada es igual o posterior a la de salida.");
        return false;
    }

    console.log("Validación de actualización exitosa.");
    return true; // Si todo es válido
}


// Cerrar el formulario de actualización
function cerrarFormularioActualizar() {
    const formActualizar = document.querySelector('.update-form-container');
    if (formActualizar) {
        formActualizar.remove();
    }
}