// ===== MARQUEE LOGOS =====
document.addEventListener('DOMContentLoaded', function() {
function initMarquee() {
// Buscar la seccion de marcas por su titulo
var sections = document.querySelectorAll('section, .s_allow_columns');
var brandSection = null;
sections.forEach(function(sec) {
var h2 = sec.querySelector('h2, h3');
if (h2 && h2.textContent.trim().includes('Marcas que distribuimos')) {
brandSection = sec;
}
});
if (!brandSection) return;
// Ya fue inicializado?
if (brandSection.querySelector('.nexusm2-marquee-wrapper')) return;
// Recolectar todos los links con imagenes
var logoLinks = brandSection.querySelectorAll('a[href]');
var logos = [];
logoLinks.forEach(function(link) {
var img = link.querySelector('img');
if (img) {
logos.push({ src: img.src, alt: img.alt || '', href: link.href });
}
});
if (logos.length === 0) return;
// Ocultar el grid original
var grid = brandSection.querySelector('.s_nb_column_fixed, [class*="row"], .o_grid_mode');
if (!grid) {
// buscar el contenedor de logos directamente
var allImgs = brandSection.querySelectorAll('img');
if (allImgs.length > 0) {
grid = allImgs[0].closest('div.row, div[class*="col"]');
if (grid) grid = grid.parentElement;
}
}
if (grid) grid.style.display = 'none';
// Crear el marquee
var wrapper = document.createElement('div');
wrapper.className = 'nexusm2-marquee-wrapper';
var track = document.createElement('div');
track.className = 'nexusm2-marquee-track';
// Duplicar para loop infinito
[logos, logos].forEach(function(set) {
set.forEach(function(logo) {
var a = document.createElement('a');
a.href = logo.href;
var img = document.createElement('img');
img.src = logo.src;
img.alt = logo.alt;
a.appendChild(img);
track.appendChild(a);
});
});
wrapper.appendChild(track);
// Insertar despues del grid
if (grid) {
grid.parentNode.insertBefore(wrapper, grid.nextSibling);
} else {
brandSection.appendChild(wrapper);
}
}
initMarquee();
setTimeout(initMarquee, 800);
setTimeout(initMarquee, 2000);
});
// Ocultar grid original de logos despues del marquee
function hideOriginalGrid() {
document.querySelectorAll('section, .s_allow_columns').forEach(function(sec) {
var h2 = sec.querySelector('h2, h3');
if (!h2 || !h2.textContent.trim().includes('Marcas que distribuimos')) return;
var marquee = sec.querySelector('.nexusm2-marquee-wrapper');
if (!marquee) return;
// Ocultar todos los divs directos que tengan imagenes de logos (no el marquee)
sec.querySelectorAll(':scope > div').forEach(function(child) {
if (!child.classList.contains('nexusm2-marquee-wrapper')) {
var hasLogos = child.querySelector('a img');
if (hasLogos) child.style.setProperty('display', 'none', 'important');
}
});
// Ocultar contenedor .o_grid_mode dentro de la seccion
sec.querySelectorAll('.o_grid_mode, [class*="s_col"]').forEach(function(el) {
el.style.setProperty('display', 'none', 'important');
});
});
}
setTimeout(hideOriginalGrid, 500);
setTimeout(hideOriginalGrid, 1500);
setTimeout(hideOriginalGrid, 3000);
// Metodo alternativo: ocultar el ancestro de los logo-links del grid original
function hideLogoGrid() {
var h2Els = document.querySelectorAll('h2, h3');
var brandSection = null;
h2Els.forEach(function(h) {
if (h.textContent.trim().includes('Marcas que distribuimos')) {
brandSection = h.closest('section') || h.parentElement;
}
});
if (!brandSection) return;
if (!brandSection.querySelector('.nexusm2-marquee-wrapper')) return;
// Buscar el primer link de logo y subir hasta el contenedor del grid
var firstLogo = brandSection.querySelector('a[href*="search="] img');
if (!firstLogo) return;
var logoContainer = firstLogo.parentElement; // el
var gridDiv = logoContainer.parentElement; // div inmediato padre del
// Subir hasta encontrar un div que no sea el nexusm2-marquee-track
while (gridDiv && gridDiv.classList.contains('nexusm2-marquee-track')) {
gridDiv = gridDiv.parentElement.parentElement;
if (!gridDiv) return;
firstLogo = null;
break;
}
if (gridDiv && !gridDiv.classList.contains('nexusm2-marquee-wrapper') && !gridDiv.classList.contains('nexusm2-marquee-track')) {
// Subir un nivel mas para ocultar todo el contenedor
var toHide = gridDiv.parentElement || gridDiv;
if (toHide && !toHide.classList.contains('nexusm2-marquee-wrapper')) {
toHide.style.setProperty('display', 'none', 'important');
}
}
}
setTimeout(hideLogoGrid, 1000);
setTimeout(hideLogoGrid, 2500);
// Ocultar grid mediante segundo hijo de la seccion
function hideByChildren() {
document.querySelectorAll('section').forEach(function(sec) {
var h = sec.querySelector('h2, h3');
if (!h || !h.textContent.includes('Marcas que distribuimos')) return;
if (!sec.querySelector('.nexusm2-marquee-wrapper')) return;
Array.from(sec.children).forEach(function(child) {
if (child.classList.contains('nexusm2-marquee-wrapper')) return;
if (child.querySelector && child.querySelector('img')) {
child.style.setProperty('display','none','important');
}
});
});
}
setTimeout(hideByChildren, 400);
setTimeout(hideByChildren, 1200);
// Asegurar que el marquee sea visible y el grid este oculto
function fixMarqueeVisibility() {
// Mostrar el marquee si fue ocultado por error
document.querySelectorAll('.nexusm2-marquee-wrapper').forEach(function(w) {
w.style.removeProperty('display');
w.style.setProperty('display', 'block', 'important');
});
// Ocultar solo los elementos o_grid_mode dentro de la seccion de marcas
document.querySelectorAll('section').forEach(function(sec) {
var h = sec.querySelector('h2, h3');
if (!h || !h.textContent.includes('Marcas que distribuimos')) return;
sec.querySelectorAll('.o_grid_mode').forEach(function(g) {
g.style.setProperty('display', 'none', 'important');
});
});
}
setTimeout(fixMarqueeVisibility, 600);
setTimeout(fixMarqueeVisibility, 1500);
setTimeout(fixMarqueeVisibility, 3000);