let ivaActivo = true;

// Calcular importe por fila
function calcularImporte(input) {
    const fila = input.closest("tr");
    const cantidad = parseFloat(fila.querySelector('input[name="cantidad[]"]').value) || 0;
    const precio = parseFloat(fila.querySelector('input[name="precio[]"]').value) || 0;

    const importe = cantidad * precio;
    fila.querySelector('input[name="importe[]"]').value = importe.toFixed(2);

    calcularTotales();
}

// Calcular subtotal, IVA y total
function calcularTotales() {
    let subtotal = 0;

    document.querySelectorAll('input[name="importe[]"]').forEach(campo => {
        subtotal += parseFloat(campo.value) || 0;
    });

    document.getElementById("subtotal").value = subtotal.toFixed(2);

    let iva = ivaActivo ? subtotal * 0.16 : 0;
    document.getElementById("iva").value = iva.toFixed(2);

    let total = subtotal + iva;
    document.getElementById("total").value = total.toFixed(2);
}

// Agregar fila
function agregarFila() {
    const tabla = document.querySelector("#tablaMateriales tbody");

    const fila = document.createElement("tr");
    fila.innerHTML = `
        <td><input type="text" name="descripcion_mat[]"></td>
        <td><input type="number" name="cantidad[]" step="1" min="1" oninput="calcularImporte(this)"></td>
        <td><input type="number" name="precio[]" step="0.01" min="0" oninput="calcularImporte(this)"></td>
        <td><input type="number" name="importe[]" step="0.01" readonly></td>
        <td><button type="button" onclick="eliminarFila(this)">X</button></td>
    `;

    tabla.appendChild(fila);
}

// Eliminar fila
function eliminarFila(boton) {
    const fila = boton.closest("tr");
    fila.remove();
    calcularTotales();
}

// Activar o desactivar IVA
function toggleIVA() {
    ivaActivo = !ivaActivo;
    calcularTotales();
}

// Mostrar vista previa
function mostrarVistaPrevia() {
    const modal = document.getElementById("modalPreview");
    const iframe = document.getElementById("iframePreview");

    // Enviar formulario a preview.php sin guardar
    const form = document.getElementById("formCotizacion");
    const formData = new FormData(form);

    fetch("preview.php", {
        method: "POST",
        body: formData
    })
    .then(res => res.text())
    .then(html => {
        iframe.srcdoc = html;
        modal.style.display = "block";
    });
}

// Cerrar modal
function cerrarModal() {
    document.getElementById("modalPreview").style.display = "none";
}
