$(document).ready(function(){
    load(1); // Carga inicial

    // Eventos de búsqueda instantánea
    $("#f_descripcion").on("input", function() {
        load(1);
    });

    $("#f_tipo").on("change", function() {
        load(1);
    });
});

// --- FUNCIÓN PRINCIPAL: CARGAR Y FILTRAR ---
function load(page, highlightId){
    var rubro = $("#f_tipo").val();
    var texto = $("#f_descripcion").val();
    
    $.ajax({
        type: "POST",
        url: "./ajax/buscar_productos_finales.php",
        data: {
            action: 'ajax',
            page: page,
            tipo: rubro,
            descripcion: texto
        },
        success: function(data){
            $(".outer_div").html(data);
            // Si nos piden resaltar un producto, enfocarlo y resaltarlo brevemente
            if (typeof highlightId !== 'undefined' && highlightId) {
                var $row = $("#pf_" + highlightId);
                if ($row.length) {
                    // Desplazar página hasta la fila (suavemente)
                    $('html, body').animate({scrollTop: $row.offset().top - 80}, 500);
                    // Resaltar con fondo temporal
                    var originalBg = $row.css('background-color');
                    $row.css('background-color', '#ffff99');
                    setTimeout(function(){
                        $row.css('background-color', originalBg);
                    }, 2000);
                }
            }
        }
    });
}

// --- FUNCIÓN: ELIMINAR ---
function eliminar(id){
    if (confirm("¿Realmente deseas eliminar el producto final?")){    
        $.ajax({
            type: "GET",
            url: "./ajax/buscar_productos_finales.php",
            data: "id="+id,
            success: function(datos){
                $("#resultados").html(datos);
                load(1);
            }
        });
    }
}

// --- FUNCIÓN: GUARDAR NUEVO ---
$( "#guardar_producto_final" ).submit(function( event ) {
    $('#guardar_datos').attr("disabled", true);
    var parametros = $(this).serialize();
    $.ajax({
        type: "POST",
        url: "ajax/nuevo_producto_final.php",
        data: parametros,
        success: function(datos){
            $("#resultados_ajax").html(datos);
            $('#guardar_datos').attr("disabled", false);
            load(1);
        }
    });
    event.preventDefault();
});

// --- FUNCIÓN: EDITAR EXISTENTE ---
$( "#editar_producto_final" ).submit(function( event ) {
    $('#actualizar_datos').attr("disabled", true);
    var parametros = $(this).serialize();
    $.ajax({
        type: "POST",
        url: "ajax/editar_producto_final.php",
        data: parametros,
        success: function(datos){
            $("#resultados_ajax2").html(datos);
            $('#actualizar_datos').attr("disabled", false);
            load(1);
        }
    });
    event.preventDefault();
});

// --- FUNCIONES DE COMPOSICIÓN (RECETAS) ---
function abrir_composicion(id){
    $("#id_producto_final").val(id);
    load_composiciones(id);
    $("#composicionModal").modal("show");
}

function load_composiciones(id){
    $.ajax({
        type: "GET",
        url: "ajax/cargar_composiciones.php",
        data: "id=" + id,
        success: function(data){
            $("#composiciones").html(data);
        }
    });
}

// --- ACTUALIZAR CANTIDAD ---
$(document).on('click', '.editar-cantidad', function(e) {
    e.preventDefault();
    
    const id = $(this).data('id');
    const cantidad = $(this).closest('tr').find('.cantidad-input').val();

    $.ajax({
        type: "POST",
        url: "ajax/editar_composicion.php",
        // Cambié 'id' por 'id_composicion' para que tu PHP lo reconozca
        data: { id_composicion: id, cantidad: cantidad }, 
        success: function(datos) {
            alert(datos); // Mostrará "Cantidad actualizada exitosamente"
        }
    });
});

// --- BORRAR INGREDIENTE ---
$(document).on('click', '.borrar-composicion', function(e) {
    e.preventDefault();
    
    const id = $(this).data('id');
    const fila = $(this).closest('tr');

    if (confirm("¿Estás seguro de que deseas eliminar este ingrediente?")) {
        $.ajax({
            type: "POST",
            url: "ajax/borrar_composicion.php",
            // Cambié 'id' por 'id_composicion' para que coincida con tu PHP
            data: { id_composicion: id }, 
            success: function(datos) {
                alert(datos); // Mostrará "Composición eliminada exitosamente"
                fila.remove();
            }
        });
    }
});
$( "#agregar_composicion" ).submit(function( event ) {
    var parametros = $(this).serialize();
    $.ajax({
        type: "POST",
        url: "ajax/agregar_composicion.php",
        data: parametros,
        success: function(datos){
            // alert(datos); // Opcional por si quieres confirmación
            var id = $("#id_producto_final").val();
            load_composiciones(id);
            $("#agregar_composicion")[0].reset();
        }
    });
    event.preventDefault();
});

// --- FUNCIÓN: PASAR DATOS AL MODAL DE EDICIÓN ---
function obtener_datos(id){
    var tipo = $("#tipo"+id).val();
    var descripcion = $("#descripcion"+id).val();
    $("#mod_id_producto_final").val(id);
    $("#tipo2").val(tipo);
    $("#descripcion2").val(descripcion);
}

// Cuando se cierre el modal de composiciones, recargar la lista de productos finales
$(document).ready(function(){
    $('#composicionModal').on('hidden.bs.modal', function () {
        // recarga la primera página con los filtros actuales y resalta el producto editado
        var id_pf = $("#id_producto_final").val();
        load(1, id_pf);
        // mostrar mensaje breve de confirmación
        var msg = '<div id="msg_composicion" class="alert alert-success" style="margin-top:10px;">Precio actualizado</div>';
        $('#loader').html(msg);
        setTimeout(function(){
            $('#msg_composicion').fadeOut(400, function(){ $(this).remove(); });
        }, 1800);
    });
});