(function() { // 1. Interceptar fetch para recetas_con_foto.json y redirigirlo a la biblioteca de medios var originalFetch = window.fetch; window.fetch = function(url, options) { if (typeof url === 'string' && url.indexOf('recetas_con_foto.json') !== -1) { console.log('[Interceptor] Redirigiendo fetch de recetas_con_foto.json a la biblioteca de medios.'); url = 'https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/recetas_con_foto.txt'; } return originalFetch(url, options); }; // Mapeo completo de imágenes estáticas del tema a la biblioteca de medios var imageMappings = { "arepa_pad_thai.png": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/arepa_pad_thai.jpg", "arepa_birria.png": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/arepa_birria.jpg", "arepa_cachopo.png": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/arepa_cachopo.jpg", "arepa_spain_oviedo.png": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/arepa_spain_oviedo.jpg", "arepa_thailand_bangkok.png": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/arepa_thailand_bangkok.jpg", "arepa_mexico_guadalajara.png": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/arepa_mexico_guadalajara.jpg", "chef_andel.png": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/chef_andel.png", "chef_martita.jpg": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/chef_martita.jpg", "botchef_avatar.png": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/botchef_avatar.png", "mesa-chefs-hero.jpg": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/mesa-chefs-hero.jpg", "arepa_poutine.png": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/arepa_poutine.jpg", "arepa_bac_kan.png": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/arepa_bac_kan.jpg", "arepa_labs_hero_v3.jpg": "https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/arepa_labs_hero_v3.jpg" }; // 2. Corregir imágenes estáticas rotas en el DOM (chefs, mini-cards, hero) y dinámicas del carrusel function fixImages() { var imgs = document.querySelectorAll('img'); var themeImages = [ "arepa_australia_australia.png", "arepa_austria_austria.png", "arepa_bac_kan.png", "arepa_birria.png", "arepa_borscht.png", "arepa_cachopo.png", "arepa_canada_toronto.png", "arepa_japan_japan.png", "arepa_mexico_guadalajara.png", "arepa_pad_thai.png", "arepa_poutine.png", "arepa_spain_oviedo.png", "arepa_thailand_bangkok.png", "arepa_ukraine_kiev.png", "arepa_venezuela_venezuela.png", "arepa_vietnam_bc-kn.png", "botchef_avatar.png", "chef_andel.png", "chef_martita.jpg", "mesa-chefs-hero.jpg", "arepa_labs_hero_v3.jpg" ]; imgs.forEach(function(img) { var src = img.getAttribute('src') || ''; var basename = src.substring(src.lastIndexOf('/') + 1); // Si la imagen está en el mapeo directo if (imageMappings[basename]) { if (img.src !== imageMappings[basename]) { img.src = imageMappings[basename]; console.log('[Interceptor] Corregido src de img (mapeo):', basename); } } // Si es una imagen de arepa del tema que NO existe en la carpeta del tema (dinámicas del atlas) else if (src.indexOf('/themes/') !== -1 && basename.indexOf('arepa_') === 0) { if (themeImages.indexOf(basename) === -1) { var newUrl = 'https://www.diamundialdelaarepa.com/wp-content/uploads/2026/06/' + basename; if (img.src !== newUrl) { img.src = newUrl; console.log('[Interceptor] Corregida img del atlas dinámico:', basename); } } } }); // Corregir imágenes de fondo inline var els = document.querySelectorAll('*[style*="background"]'); els.forEach(function(el) { var style = el.getAttribute('style') || ''; for (var filename in imageMappings) { if (style.indexOf(filename) !== -1) { var newStyle = style.replace(new RegExp('[^\\(\\)\\\'\\"]*' + filename + '[^\\(\\)\\\'\\"]*', 'g'), imageMappings[filename]); if (el.getAttribute('style') !== newStyle) { el.setAttribute('style', newStyle); console.log('[Interceptor] Corregido background inline:', filename); } } } }); } // 3. Corregir enlaces de las categorías en la Home para ir a la página de países con filtro function fixCategoryLinks() { var catCards = document.querySelectorAll('.cat-card'); catCards.forEach(function(card) { var category = card.getAttribute('data-category'); if (category) { var btn = card.querySelector('.btn-explore-cat'); if (btn) { var targetUrl = '/recetas/?categoria=' + category; if (btn.getAttribute('href') !== targetUrl) { btn.href = targetUrl; console.log('[Interceptor] Corregido enlace de categoría:', category); } } } }); } // 4. Corregir enlaces a recetas estrella en el hero para ir a la ruta absoluta correcta function fixHeroLinks() { var links = document.querySelectorAll('a[href*="arepa-cachopo-oviedo-espana"], a[href*="arepa-pad-thai-bangkok-tailandia"], a[href*="arepa-birria-guadalajara-mexico"]'); links.forEach(function(link) { var href = link.getAttribute('href') || ''; if (href.indexOf('arepa-cachopo-oviedo-espana') !== -1 && link.getAttribute('href') !== '/arepa-cachopo-oviedo-espana/') { link.href = '/arepa-cachopo-oviedo-espana/'; } else if (href.indexOf('arepa-pad-thai-bangkok-tailandia') !== -1 && link.getAttribute('href') !== '/arepa-pad-thai-bangkok-tailandia/') { link.href = '/arepa-pad-thai-bangkok-tailandia/'; } else if (href.indexOf('arepa-birria-guadalajara-mexico') !== -1 && link.getAttribute('href') !== '/arepa-birria-guadalajara-mexico/') { link.href = '/arepa-birria-guadalajara-mexico/'; } }); // Corregir enlace del botón del mapa mundi si está incorrecto var mapLinks = document.querySelectorAll('a[href*="#categorias"], a[href*="mapa-mundi.html"]'); mapLinks.forEach(function(link) { if (link.textContent.indexOf('MAPA CULINARIO') !== -1 && link.getAttribute('href') !== '/mapa-mundi/') { link.href = '/mapa-mundi/'; console.log('[Interceptor] Corregido enlace del mapa mundi a /mapa-mundi/'); } }); } // 5. Inicializar la lógica del Menú Responsivo (Hamburguesa) function initResponsiveMenu() { var toggle = document.querySelector('.mobile-toggle'); var nav = document.getElementById('main-nav'); if (toggle && nav && !toggle.hasAttribute('data-responsive-init')) { toggle.setAttribute('data-responsive-init', 'true'); console.log('[Interceptor] Inicializando menú responsivo.'); // Eliminar listeners previos clonando el nodo si hiciera falta var newToggle = toggle.cloneNode(true); toggle.parentNode.replaceChild(newToggle, toggle); newToggle.addEventListener('click', function(e) { e.preventDefault(); nav.classList.toggle('active'); newToggle.classList.toggle('active'); document.body.classList.toggle('nav-open'); }); var navLinks = nav.querySelectorAll('a'); navLinks.forEach(function(link) { link.addEventListener('click', function() { nav.classList.remove('active'); newToggle.classList.remove('active'); document.body.classList.remove('nav-open'); }); }); } } // 6. Corregir y reemplazar el footer por el gourmet premium con redes sociales function fixFooter() { var footer = document.querySelector('footer'); if (footer && !footer.querySelector('.social-icons')) { console.log('[Interceptor] Reemplazando footer por la versión premium con redes sociales.'); // Creamos el nuevo footer var newFooter = document.createElement('footer'); newFooter.id = 'footer'; newFooter.className = 'site-footer'; newFooter.innerHTML = `
`; // Reemplazamos el footer actual footer.parentNode.replaceChild(newFooter, footer); } } // 7. Reconstruir layout gourmet en las recetas individuales de producción function fixGourmetRecipePage() { var recipeGlass = document.querySelector('.recipe-body .recipe-glass'); var recipeContent = document.querySelector('.recipe-content'); if (recipeGlass && recipeContent && !recipeGlass.querySelector('.recipe-featured-image-wrap')) { console.log('[Interceptor] Detectada página de receta individual. Reconstruyendo layout gourmet.'); // 1. Extraer país y ciudad desde el div de Origen var originDiv = recipeContent.querySelector('div[style*="margin-bottom"]'); var originText = ""; if (originDiv) { originText = originDiv.textContent.replace('Origen:', '').trim(); } else { // Fallback si no está el div: usar el título del hero o la URL var heroTitle = document.querySelector('.recipe-hero-content h1'); if (heroTitle) originText = heroTitle.textContent; } var pais = 'Desconocido'; var ciudad = 'Desconocido'; var paisesComunes = [ 'Maldives', 'Turkey', 'Guatemala', 'Dominican Republic', 'Pakistan', 'Syria', 'Cuba', 'Uzbekistan', 'El Salvador', 'Yemen', 'Vietnam', 'Turkmenistan', 'Costa Rica', 'Oman', 'Tajikistan', 'United Arab Emirates', 'Belize', 'Qatar', 'Aruba', 'Guadeloupe', 'West Bank', 'Anguilla', 'Antigua And Barbuda', 'Barbados', 'British Virgin Islands', 'Cayman Islands', 'Dominica', 'Grenada', 'Spain', 'Mexico', 'Thailand', 'Ukraine', 'Canada', 'United States', 'Argentina', 'Chile', 'Colombia', 'Zambia', 'Australia', 'Austria', 'Japan', 'Venezuela' ]; var foundCountry = ''; for (var i = 0; i < paisesComunes.length; i++) { var p = paisesComunes[i]; if (originText.toLowerCase().indexOf(p.toLowerCase()) === 0) { foundCountry = p; break; } } if (foundCountry) { pais = foundCountry; ciudad = originText.substring(foundCountry.length).trim(); if (!ciudad) ciudad = pais; } else { // Separar por el primer espacio var parts = originText.split(' '); pais = parts[0] || 'Desconocido'; ciudad = parts.slice(1).join(' ') || pais; } // Mapear banderas a códigos ISO2 var flags = { 'Maldives': 'mv', 'Turkey': 'tr', 'Guatemala': 'gt', 'Dominican Republic': 'do', 'Pakistan': 'pk', 'Syria': 'sy', 'Cuba': 'cu', 'Uzbekistan': 'uz', 'El Salvador': 'sv', 'Yemen': 'ye', 'Vietnam': 'vn', 'Turkmenistan': 'tm', 'Costa Rica': 'cr', 'Oman': 'om', 'Tajikistan': 'tj', 'United Arab Emirates': 'ae', 'Belize': 'bz', 'Qatar': 'qa', 'Aruba': 'aw', 'Guadeloupe': 'gp', 'West Bank': 'ps', 'Anguilla': 'ai', 'Antigua And Barbuda': 'ag', 'Barbados': 'bb', 'British Virgin Islands': 'vg', 'Cayman Islands': 'ky', 'Dominica': 'dm', 'Grenada': 'gd', 'Spain': 'es', 'Mexico': 'mx', 'Thailand': 'th', 'Ukraine': 'ua', 'Canada': 'ca', 'United States': 'us', 'Argentina': 'ar', 'Chile': 'cl', 'Colombia': 'co', 'Zambia': 'zm', 'Australia': 'au', 'Austria': 'at', 'Japan': 'jp', 'Venezuela': 've' }; var iso2 = flags[pais] || ''; var flagHtml = '🌍'; if (iso2) { flagHtml = `Debido al uso de ingredientes compuestos, aderezos comerciales, condimentos o productos industriales complejos referenciados en esta receta (como salsas preparadas, caldos o embutidos), pueden existir alérgenos ocultos o adicionales no detectados por nuestro motor heurístico virtual. El usuario final es el responsable directo y exclusivo de comprobar detalladamente las etiquetas físicas de cada ingrediente antes de su preparación. Si padece alergias o intolerancias alimentarias graves y no está plenamente seguro de la composición exacta de los ingredientes locales seleccionados, se desaconseja y no se recomienda en ningún caso la preparación ni el consumo de esta receta.
Arepa Labs IA es un laboratorio gastronómico virtual y experimental. Las más de 28,000 recetas de relleno de fusión que cubren el planeta han sido formuladas y estructuradas de forma conceptual mediante modelos avanzados de Inteligencia Artificial (IA).
Aunque nuestro equipo realiza auditorías algorítmicas de los contenidos, es deber y responsabilidad exclusiva del usuario revisar y asegurar la idoneidad, frescura y calidad higiénico-sanitaria de todos los ingredientes antes de su adquisición y preparación, prestando especial atención a posibles intolerancias, alérgenos y aptitud para el consumo humano.
La preparación, cocción y consumo final de estas recetas queda bajo la entera responsabilidad del cocinero. Los desarrolladores y creadores declinan cualquier tipo de responsabilidad civil, penal o de salud por perjuicios o afecciones derivadas de la réplica física de las formulaciones sugeridas.
`; // F) cta-challenge var paisSlug = pais.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/(^-|-$)/g, ''); var ciudadSlug = ciudad.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/(^-|-$)/g, ''); var challengeDiv = document.createElement('div'); challengeDiv.className = 'cta-challenge'; challengeDiv.innerHTML = `Prepara esta receta en tu cocina, sube tu foto y comparte tus comentarios de Chef para ganar puntos de embajador y competir por un lugar de honor en la Mesa de los Chefs.
SUBIR MI CREACIÓN DE EMBAJADOR → `; // 5. Insertar todo en orden en el DOM recipeGlass.insertBefore(metaDiv, recipeContent); recipeGlass.insertBefore(allergensDiv, recipeContent); recipeGlass.insertBefore(imageWrapDiv, recipeContent); recipeGlass.appendChild(juiceDiv); recipeGlass.appendChild(disclaimerDiv); recipeGlass.appendChild(challengeDiv); // Remover/ocultar el div de Origen original para no duplicar visualmente if (originDiv) { originDiv.style.display = 'none'; } } } // Ejecución segura continua con setInterval para interceptar elementos cargados dinámicamente function runCorrections() { fixImages(); fixCategoryLinks(); fixHeroLinks(); initResponsiveMenu(); fixFooter(); fixGourmetRecipePage(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', runCorrections); } else { runCorrections(); } // Intervalo continuo de seguridad para renderizado asíncrono setInterval(runCorrections, 400); })();