var appUrl="https://0sa1.elglobo.com.mx",appUrlSuc="https://0sa1.elglobo.com.mx",appUrlDeliv="https://0sa1.elglobo.com.mx",sucursales_hardcodeadas=[],currentTime=new Date,allowHideProductos=!1,p_sortered=!1,p_filtered=!1,allFetchedProducts=[],allFetchedFilteredProducts=[],sucursal,mbProductos=localStorage.getItem("mbProductos"),dirsuc=localStorage.getItem("suc_dir"),cartSubmit=0,discount_param="";const sucursales_lealtad=["S3014","S3131","S3155","S3099","S3140","S3470","S3143","S3426","S3008","S3063","S3008","S3065","S3040","S3071","S3043","S3424","S3080","S3003","S3066","S3144","S3323","S3267","S3052","S3002","S3027","S3012","S3054","S3085","S3428","S3131","S3155","S3099","S3140","S3470","S3143","S3426","S3063","S3008","S3065","S3040","S3071","S3043","S3424","S3080","S3003","S3144","S3323","S3267","S3052","S3002","S3027","S3012","S3054","S3085","S3428","S3005","S3444","S3091","S3018","S3095","S3011","S3475","S3007","S3137","S3025","S3029","S3057","S3126","S3251","S3088","S3431","S3084","S3262","S3288","S3036","S3439","S3041","S3010","S3202","S3114","S3035","S3121","S3039","S3024","S3016","S3147","S3067","S3188","S3066","S3265","S3449","S3038","S3047","S3446","S3458","S3019","S3435","S3009","S3056","S3204","S3182","S3357","S3061","S3372","S3092","S3175","S3148","S3072","S3073","S3142","S3280","S3133","S3463","S3285","S3432","S3045","S3430","S3139","S3109","S3206","S3094","S3077","S3118","S3108","S3127","S3189","S3102","S3116","S3462","S3293","S3192","S3086","S3473","S3059","S3413","S3076","S3436","S3396","S3117","S3461","S3452","S3089","S3377","S3120","S3441","S3198","S3467","S3474","S3466","S3310","S3081","S3478","S3050","S3145","S3454","S3103","S3058","S3129","S3442","S3486","S3391","S3425","S3465","S3199","S3472","S3055","S3181","S3321","S3105","S3021","S3272","S3476","S3172","S3456","S3445","S3477","S3355","S3480","S3468","S3460","S3374","S3030","S3469","S3020","S3104","S3115","S3464","S3331","S3332","S3082","S3277","S3275","S3453","S3457","S3434","S3479"],sucursales_delivery=["S3085","S3027","S3077","S3426","S3025","S3008"],queryString=window.location.search,urlParams=new URLSearchParams(queryString),test_param=urlParams.get("test");if(test_param=="true"?(localStorage.setItem("released","true"),console.log(test_param)):localStorage.getItem("released")!="true"&&localStorage.removeItem("released"),dirsuc==null?sucursal=null:sucursal=localStorage.getItem("sucursal"),console.log(sucursal),sucursal==null)console.log("Sucursal no ha sido seleccionada");else{var cartAttributes={attributes:{sucursal:localStorage.getItem("sucursal"),direccionSucursal:localStorage.getItem("suc_dir"),horarioSucursal:localStorage.getItem("suc_horario"),telefonoSucursal:localStorage.getItem("suc_tel"),latSucursal:localStorage.getItem("suc_lat"),lonSucursal:localStorage.getItem("suc_lon"),lonCliente:localStorage.getItem("dir_lon"),latCliente:localStorage.getItem("dir_lat"),uberQuoteId:localStorage.getItem("quote_id"),uberQuoteExpiration:localStorage.getItem("quote_expiration"),direccionCliente:localStorage.getItem("dir_street")+" "+localStorage.getItem("dir_city")+" "+localStorage.getItem("dir_postal_code")+" "+localStorage.getItem("dir_country")}};$.post("/cart/update.js",cartAttributes),sucursal=sucursal.replace("S",""),console.log("La sucursal elegida es: "+sucursal),getProductos(),showBebidas()}function getProductos(){console.log("obtener los productos de la sucursal: "+sucursal);var params="?";params+="suc="+sucursal;var requestOptions={method:"GET",redirect:"follow"};console.log(appUrl+"/shopify/getproductos"+params),fetch(appUrl+"/shopify/getproductos"+params,requestOptions).then(response=>response.json()).then(function(data){localStorage.setItem("mbProductosJSN",JSON.stringify(data)),mbProductos=data,localStorage.setItem("mbProductos",mbProductos)}).catch(error=>console.log("error",error))}function buscarProductoInfoPorSku(sku){if(typeof mbProductos<"u"){for(var k in mbProductos)if(mbProductos[k].sku==sku)return mbProductos[k]}}function removeCliDirection(){localStorage.removeItem("dir_firstname"),localStorage.removeItem("dir_lastname"),localStorage.removeItem("dir_telephone"),localStorage.removeItem("dir_street"),localStorage.removeItem("dir_apartment"),localStorage.removeItem("dir_postal_code"),localStorage.removeItem("dir_city"),localStorage.removeItem("dir_state"),localStorage.removeItem("dir_country"),localStorage.removeItem("dir_reference"),localStorage.removeItem("dir_indications"),localStorage.removeItem("dir_lat"),localStorage.removeItem("dir_lon"),localStorage.removeItem("address1"),localStorage.removeItem("address2"),localStorage.removeItem("zip"),localStorage.removeItem("city"),localStorage.removeItem("suggestion_lat"),localStorage.removeItem("suggestion_lon")}function removeSucData(){localStorage.removeItem("suc_dir"),localStorage.removeItem("suc_name"),localStorage.removeItem("suc_lat"),localStorage.removeItem("suc_lon"),localStorage.removeItem("sucursal")}function removeUberQuote(){localStorage.removeItem("quote_fee"),localStorage.removeItem("quote_id"),localStorage.removeItem("quote_duration")}var isFiltering=!1,initialLoadCompleted=!1;function hideProductos(){console.log("Ejecutando hideProductos durante el filtrado..."),mbProductos&&Array.isArray(mbProductos)?$("[data-sga-prd-sku]").each(function(){var element=$(this),sku=element.attr("data-sga-prd-sku"),button_id=element.attr("data-addtc-button"),prod_type=$(element).attr("data-type-prod"),productoData=buscarProductoInfoPorSku(sku);productoData&&productoData.qty>0?(element.find(".quantity-selector").show(),$("#"+button_id).show(),element.find(".no-stock-message").hide()):prod_type!=="BEBIDAS"&&(element.find(".quantity-selector").hide(),$("#"+button_id).hide(),element.find(".no-stock-message").show())}):console.error("Error: Los datos de inventario no est\xE1n disponibles.")}function showBebidas(){$.each($("[data-sga-prd-sku]"),function(index,element){var tags=$(element).attr("data-sga-tags");tags.indexOf("visibleallways")>=0&&$(element).show()})}function validateMaxQty(element){var qty=parseInt($(element).val()),frm=$(element).closest("form"),sku=$(frm).find("input[data-sku]").attr("data-sku");if(sku==""||typeof sku>"u")var sku=$(frm).find('input[name="sku"]').val();var productoData=buscarProductoInfoPorSku(sku);typeof productoData<"u"&&(current_collection=="BEBIDAS"||qty>parseInt(productoData.qty)&&(parseInt(productoData.qty)==0||$(element).val(productoData.qty)))}function validateCartMaxQty(element,type){var qty=parseInt($(element).val()),parent=$(element).closest("tr"),sku=$(parent).attr("data-sku");type=="btn-mas"&&(qty=qty+1),type=="btn-menos"&&(qty=qty-1),console.log("carrito val"),console.log(sku+":"+qty);var productoData=buscarProductoInfoPorSku(sku);console.log(productoData),typeof productoData<"u"&&qty>parseInt(productoData.qty)&&(type=="btn-mas"&&$(parent).find('[data-action="increase-quantity"]').attr("data-quantity",productoData.qty),type=="btn-menos"&&$(parent).find('[data-action="decrease-quantity"]').attr("data-quantity",productoData.qty-1),type=="input"&&$(element).val(productoData.qty))}function validarHorarioSucursal(element){console.log("validarHorarioSucursal: ");var params="?";params+="suc="+sucursal;var requestOptions={method:"GET",redirect:"follow"};fetch(appUrl+"/shopify/validarhorariosucursal"+params,requestOptions).then(response=>response.json()).then(function(data){data.en_horario=!0,console.log("En horario: "),console.log(data.en_horario),data.en_horario?(localStorage.setItem("en_horario","true"),cartSubmit=1,$('#frm-cart-recap button[name="checkout"]').click()):(localStorage.setItem("en_horario","false"),$("modal-horario-horarios").text(data.horario_apertura+" hrs"),$("#modal-horario-nbrsuc").text(localStorage.getItem("suc_name")),$("#modal-horario").fadeIn("fast").focus(),$(".backdrop").fadeIn("fast"))}).catch(error=>console.log("error",error))}const config={attributes:!0,childList:!0,subtree:!0},targetNode=document.getElementById("collection__dynamic-part");let collectionObserver;function attachCollectionObserver(){}function detachCollectionObserver(){collectionObserver&&collectionObserver.disconnect()}function hideBuscadorProductos(){if(!Array.isArray(mbProductos)||mbProductos.length===0){const stored=localStorage.getItem("mbProductosJSN");if(stored)try{mbProductos=JSON.parse(stored)}catch{mbProductos=[]}if(!Array.isArray(mbProductos)||mbProductos.length===0)return getProductos().then(hideBuscadorProductos)}$(".collection__dynamic-part [data-sga-prd-sku]").each(function(){const $el=$(this),sku=$el.data("sga-prd-sku")+"",tags=$el.data("sga-tags")||"",tipoProd=$el.data("type-prod")||"",productoData=buscarProductoInfoPorSku(sku),visibleAlways=tags.includes("visibleallways"),hayStock=productoData&&productoData.qty>0,$form=$el.find(".product-item__action-list"),$btn=$el.find(".product-link"),$qty=$el.find(".quantity-selector"),$opciones=$el.find(".bold_options");let $msg=$el.find(".no-stock-message");$msg.length||($msg=$('
').css({marginTop:"0.5em",fontWeight:"bold"}).appendTo($el.find(".item-details-col").last())),tipoProd.toUpperCase()==="BEBIDAS"&&($opciones.hide(),$form.css("display","block"),$btn.removeClass().addClass("icon-addtocart-button product-item__action-button product-item__action-button--list-view-only button button--small button--primary").css({display:"block"})),hayStock||visibleAlways?($form.show(),$btn.show(),$qty.show(),$msg.hide()):($form.hide(),$btn.hide(),$qty.hide(),$msg.show())})}$(document).ready(function(){sucursales_lealtad.includes(localStorage.getItem("sucursal"))&&$(".lealtad").show(),$(document).on("input change",'input[name="quantity"]',function(){validateMaxQty(this)}),$(document).on("click",'[data-action="decrease-picker-quantity"]',function(){var frm=$(this).closest("form"),input=$(frm).find('input[name="quantity"]');validateMaxQty(input)}),$(document).on("click",'[data-action="increase-picker-quantity"]',function(){var frm=$(this).closest("form"),input=$(frm).find('input[name="quantity"]');validateMaxQty(input)}),$(document).on("input change","input.quantity-selector__value",function(){validateCartMaxQty(this,"input")}),$(document).on("click",'[data-action="custom-increase-quantity"]',function(){var parent=jQuery(this).closest("div[data-sga-prd-sku]"),qty=jQuery(parent).find('input[name="quantity"]').val();qty=parseInt(qty)+1,jQuery(parent).find('input[name="quantity"]').val(qty);var input=$(parent).find('input[name="quantity"]');validateMaxQty(input)}),$(document).on("click",'[data-action="custom-decrease-quantity"]',function(){var parent=jQuery(this).closest("div[data-sga-prd-sku]"),qty=jQuery(parent).find('input[name="quantity"]').val();qty=parseInt(qty)-1,qty<1&&(qty=1),jQuery(parent).find('input[name="quantity"]').val(qty);var input=$(parent).find('input[name="quantity"]');validateMaxQty(input)}),$(document).on("submit","#frm-cart-recap",function(e){cartSubmit==0&&(e.preventDefault(),validarHorarioSucursal(this))}),setTimeout(function(){$(".eg-megamenu-item span:contains('FAVORITOS DEL MES')").parent().parent().parent().remove()},500)});var misPuntos=0;async function PLConsultaPuntos(){const $msg=$("#programaLealtadMsg"),$loader=$("#PLLoadingImg"),$container=$("#PLContainer"),clientId=$("#PLClientId").val();$msg.text(""),$container.hide(),$loader.show();try{const data=await(await fetch(`${appUrl}/shopify/plconsultapuntos?cliId=${clientId}`)).json();$loader.hide(),$container.show(),data.status?(misPuntos=data.puntos,$("#misPuntosInfo, #misPuntosInfo2").text(data.puntos),$(".sin-redimir").hide()):($("#txtPuntos, #btnUsarPuntos, .aplica-puntos").remove(),$msg.html(data.message||"No est\xE1s dado de alta en el programa de lealtad."))}catch(error){console.error("Error al consultar puntos:",error),$loader.hide(),$msg.html("No pudimos obtener tus puntos. Intenta m\xE1s tarde.")}}async function PLUsarPuntos(){const $msg=$("#programaLealtadMsg"),$btn=$("#btnUsarPuntos"),amt=parseInt($("#txtPuntos").val(),10),data={cliId:$("#PLClientId").val(),monto:amt,sucNum:sucursal,sucNom:localStorage.getItem("suc_name")};$btn.prop("disabled",!0).text("Procesando..."),$msg.text("");try{const result=await(await fetch(appUrl+"/shopify/plusarpuntos",{method:"POST",body:JSON.stringify(data),redirect:"follow"})).json();if(!result.status){$msg.html("Error al aplicar los puntos. Intenta de nuevo."),$btn.prop("disabled",!1).text("Usar puntos");return}if(!result.descuento.saldoSuficiente){$msg.html("Saldo insuficiente para aplicar el descuento."),$btn.prop("disabled",!1).text("Usar puntos");return}$.post("/cart/update.js","attributes[folioRedencion]="+result.descuento.folio),$("#btnCancelarPuntos").attr("data-folio",result.descuento.folio),$('#frm-cart-recap [name="discount"]').val(result.descuento.code),$("#puntosAplicados").text(amt),$("#frmPuntos").hide(),$(".podria-acumular").hide(),$("#dsctoPuntosInfo").show(),$("#dsctoPuntosInfo1").show(),$("#prevPuntosContainer").hide(),discount_param=result.descuento.code,await PLConsultaPuntos(),$msg.html('\xA1Listo! ser\xE1n aplicados previo a tu pago')}catch(error){console.error("Error de red:",error),$msg.html("No se pudo conectar con el servidor. Intenta m\xE1s tarde.")}finally{$btn.prop("disabled",!1).text("Usar puntos")}}async function PLCancelarPuntos(folio){const $msg=$("#programaLealtadMsg"),$loader=$("#PLLoadingImg"),$container=$("#PLContainer"),clientId=$("#PLClientId").val();$msg.text("Cancelando puntos..."),$loader.show(),$container.hide();try{const data=await(await fetch(`${appUrl}/shopify/plcancelarpuntos?cliId=${clientId}&folio=${folio}&sucNum=${sucursal}&sucNom=${localStorage.getItem("suc_name")}`)).json();if($loader.hide(),$container.show(),!data.status){$msg.html("No pudimos devolver tus puntos. Intenta de nuevo.");return}await PLConsultaPuntos(),$.post("/cart/update.js","attributes[folioRedencion]="),$('#frm-cart-recap [name="discount"]').val(""),$("#frmPuntos").show(),$(".podria-acumular").show(),$("#dsctoPuntosInfo, #dsctoPuntosInfo1").hide(),$("#puntosAplicados").text(0),$("#prevPuntosContainer").show(),$msg.html('Recuerda que 1 punto es igual a 1 peso')}catch(error){console.error("Error al cancelar puntos:",error),$msg.html("Hubo un error al cancelar los puntos. Intenta m\xE1s tarde.")}finally{$loader.hide(),$container.show()}}async function PLPrevioPuntos(){try{const cartJson=await(await fetch("/cart.js")).json(),data={cliId:$("#PLClientId").val(),sucNum:sucursal,sucNom:localStorage.getItem("suc_name"),cart:cartJson},result=await(await fetch(appUrl+"/shopify/plpreviopuntos",{method:"POST",body:JSON.stringify(data),redirect:"follow"})).json();result.status&&$("#prevPuntosInfo").text(result.puntos)}catch(error){console.error("Error en PLPrevioPuntos:",error)}}async function PLGetDescuentoActivo(){try{const cliId=$("#PLClientId").val(),data=await(await fetch(appUrl+"/shopify/plgetdescuentoactivo",{method:"POST",body:JSON.stringify({cliId}),redirect:"follow"})).json();data.status&&($.post("/cart/update.js","attributes[folioRedencion]="+data.descuento.folio),$("#btnCancelarPuntos").attr("data-folio",data.descuento.folio),discount_param=data.descuento.code,$("#frm-cart-recap").attr("action",$("#frm-cart-recap").attr("action")+"&discount="+discount_param),$("#puntosAplicados").text(data.descuento.monto),$(".podria-acumular").hide(),$("#prevPuntosContainer").hide(),$("#frmPuntos").hide(),$("#dsctoPuntosInfo").show(),$("#dsctoPuntosInfo1").show(),setTimeout(()=>{$('#frm-cart-recap [name="discount"]').val(data.descuento.code)},2500))}catch(error){console.error("Error en PLGetDescuentoActivo:",error)}}$(document).on("click","#btnUsarPuntos",function(){var raw=$("#txtPuntos").val(),amt=parseInt(raw,10);if($("#txtPuntos").val(amt),raw===""||isNaN(amt)||!/^\d+$/.test(raw)){$("#programaLealtadMsg").html("Debes ingresar un n\xFAmero entero de puntos");return}amt>parseFloat(misPuntos)?($("#PLLoadingImg").hide(),$("#programaLealtadMsg").html("Solo puedes canjear "+misPuntos+" puntos como m\xE1ximo")):PLUsarPuntos()}),$(document).on("click","#btnCancelarPuntos",function(){var folio=$("#btnCancelarPuntos").attr("data-folio");folio!=null?PLCancelarPuntos(folio):($("#frmPuntos").show(),$("#dsctoPuntosInfo").hide(),$("#dsctoPuntosInfo1").hide())});function fillDeliveryInfo(){console.log("Ejecutando fillDeliveryInfo");let sucName=localStorage.getItem("suc_name"),sucDir=localStorage.getItem("suc_dir"),sucHorario=localStorage.getItem("suc_horario"),sucTel=localStorage.getItem("suc_tel");if(!sucName||!sucDir||!sucHorario||!sucTel){const cookies=document.cookie.split(";").reduce((acc,cookie)=>{const[key,value]=cookie.trim().split("=");return acc[key]=decodeURIComponent(value),acc},{});if(cookies.sucursalBackup)try{const sucursal2=JSON.parse(cookies.sucursalBackup);sucName=sucursal2.name,sucDir=sucursal2.dir,sucHorario=sucursal2.horario,sucTel=sucursal2.tel,console.log("Sucursal recuperada de cookie",sucursal2)}catch(e){console.warn("No se pudo leer la cookie de respaldo",e)}}$("#cart-suc-name").html(sucName||"Sucursal no disponible"),$("#cart-suc-dir").html(sucDir||""),$("#cart-suc-horario").html(sucHorario||""),$("#cart-suc-tel").html(sucTel||""),localStorage.getItem("delivery_type")==="domicilio"?($("#cart-dom-name").html("RECIBE: "+localStorage.getItem("dir_firstname")),$("#cart-dom-tel").html("Tel. "+localStorage.getItem("dir_telephone")),$("#cart-dom-dir").html(localStorage.getItem("dir_street")+" "+localStorage.getItem("dir_city")+" "+localStorage.getItem("dir_state")),$("#cart-dom-indic").html(localStorage.getItem("dir_indications"))):$(".cart-domicilio").hide()}var timer_id;is_mobile?timer_id="countdown-mobile":timer_id="countdown";var timer;function startTimer(){var total_seconds;timer=new Timer;var timer_cookie=getCookie("timerstarted");if($("#"+timer_id).fadeIn(),console.log("start timer "+timer_id),timer_cookie){var current_time=new Date,elapsed_time=current_time/1e3-timer_cookie;total_seconds=300-elapsed_time,console.log("elapsed_time "+elapsed_time+" total_seconds "+total_seconds+" timer_cookie "+timer_cookie),timer.start({countdown:!0,startValues:{seconds:Math.trunc(parseFloat(total_seconds))}})}else{var start_time=new Date;setCookie("timerstarted",start_time/1e3,1),timer.start({countdown:!0,startValues:{seconds:300}})}$("#"+timer_id+" .values").html(timer.getTimeValues().toString(["minutes","seconds"])),timer.addEventListener("secondsUpdated",function(e){$("#"+timer_id+" .values").html(timer.getTimeValues().toString(["minutes","seconds"]))}),timer.addEventListener("targetAchieved",function(e){$(".backdrop").fadeIn(),$("#timeout").fadeIn(),eraseCookie("timerstarted"),setCookie("timercomplete","true",1)})}function stopTimer(){timer.stop(),$("#"+timer_id).fadeOut(),eraseCookie("timercomplete"),eraseCookie("timerstarted")}$(document).ready(function(){getCookie("timerstarted")&&localStorage.getItem("delivery_type")=="domicilio"&&startTimer(),getCookie("timercomplete")&&($("#"+timer_id+" .values").css("font-size","20px").css("line-height","20px").html("SE ACABO TU TIEMPO"),eraseCookie("timercomplete"),eraseCookie("timerstarted"))});function getLocation2(){navigator.geolocation?navigator.geolocation.getCurrentPosition(position=>{document.getElementById("lat1").value=position.coords.latitude,document.getElementById("lon1").value=position.coords.longitude,getSucursales1(),console.log("buscando sucursales por ubicacion "+position.coords.latitude+" "+position.coords.longitude)},error=>alert(error.message),{enableHighAccuracy:!1,timeout:5e3}):alert("Tu navegador no soporta la geolocalizaci\xF3n.")}$(document).on("click","#mi-ubicacion",function(){notInSucList1=!0,getLocation2()});var cartEndpoint="/cart.js";function fetchMTCart(){return new Promise(function(resolve,reject){var xhr=new XMLHttpRequest;xhr.open("GET","https://www.elglobo.com.mx"+cartEndpoint),xhr.setRequestHeader("Content-Type","application/json"),xhr.onload=function(){if(xhr.status===200){var cart=JSON.parse(xhr.responseText);resolve(cart)}else reject(xhr.statusText)},xhr.onerror=function(){reject(xhr.statusText)},xhr.send()})}function fetchMTDCart(callback){var xhr=new XMLHttpRequest;xhr.open("GET","https://www.elglobo.com.mx"+cartEndpoint),xhr.setRequestHeader("Content-Type","application/json"),xhr.onload=function(){if(xhr.status===200){var cart=JSON.parse(xhr.responseText);callback(null,cart)}else callback(xhr.statusText)},xhr.onerror=function(){callback(xhr.statusText)},xhr.send()}$(document).on("click","#btnComprarAhora",function(e){e.preventDefault();var productoData=buscarProductoInfoPorSku($('input[name="id"]').data("sku"));fetchMTDCart(function(error,cart){if(error)console.error(error);else{var productId=$('input[name="id"]').val(),productExists=!1,productQuantity=0,prod;cart.items.forEach(function(item){console.log("item.id: ",item.id),item.id===parseInt(productId)&&(productExists=!0,productQuantity=item.quantity,prod=item)}),productExists?(console.log("item ",cart),parseInt(productQuantity)Error cargando productos. Intenta de nuevo.
")})}function renderProducts(products,sorting,mbProductosJSN){if($(".collection_backdrop").hide(),products=products.filter(product=>product.product_type!=="EXTRAS"&&product.product_type!=="OPTIONS_HIDDEN_PRODUCT"&&product.product_type!=="CAMBIO DE LECHE"),sorting!=="false"){let sortedResults=p_filtered?[...allFetchedFilteredProducts]:[...products];sortedResults.sort((a,b)=>sortLogic(a,b,sorting)),products=sortedResults,products.forEach(product=>assignStock(product,mbProductosJSN)),allFetchedProducts=products}else products.forEach(product=>assignStock(product,mbProductosJSN)),products.sort((a,b)=>b.mbqty-a.mbqty);let product_items="",batchSize=24,currentPage=1,totalPages=Math.ceil(products.length/batchSize);function renderBatch(startIndex){const batch=products.slice(startIndex,startIndex+batchSize),totalItems=products.length;if(batch.forEach((product,index)=>{const globalIndex=startIndex+index;if(globalIndex%batchSize===0){const batchStart=globalIndex+1,batchEnd=Math.min(globalIndex+batchSize,totalItems),batchRange=`${batchStart}-${batchEnd}`;$(".custom_pagination_container").append(`${currentPage}`),currentPage++}const pageClass=`page_${Math.ceil((globalIndex+1)/batchSize)}`;product_items+=buildProductItem(product,pageClass)}),startIndex+batchSizeNo se encontraron productos con el filtro seleccionado.
";return}};function mostrarLoadingIcon(){const container=document.getElementById("gf-products");if(!container)return;const existente=document.getElementById("prd-loading-icon");existente&&existente.remove();const loadingIcon=document.createElement("div");loadingIcon.id="prd-loading-icon",loadingIcon.style.textAlign="center",loadingIcon.style.width="100%",loadingIcon.innerHTML='