';
} else {
html = '
%20+%20')
';
}
mediaEl.innerHTML = html;
// Navegación en carrusel
var diapositiva actual = 0;
mediaEl.querySelectorAll( '.gchs-ig-modal__nav' ).forEach( function( nav ) {
nav.addEventListener( 'click', function() {
var slides = mediaEl.querySelectorAll( '.gchs-ig-modal__slide' );
var dots = mediaEl.querySelectorAll( '.gchs-ig-modal__dot' );
slides[ currentSlide ].classList.remove( 'gchs-ig-modal__slide--active' );
if ( dots[ currentSlide ] ) dots[ currentSlide ].classList.remove( 'gchs-ig-modal__dot--active' );
currentSlide = ( currentSlide + parseInt( nav.dataset.dir ) + slides.length ) % slides.length;
slides[ currentSlide ].classList.add( 'gchs-ig-modal__slide--active' );
if ( dots[ currentSlide ] ) dots[ currentSlide ].classList.add( 'gchs-ig-modal__dot--active' );
} );
} );
/ Información
modal.querySelector( '.gchs-ig-modal__caption' ).textContent = post.caption || '';
modal.querySelector( '.gchs-ig-modal__likes span' ).textContent = ( post.like_count || 0 ).toLocaleString();
modal.querySelector( '.gchs-ig-modal__comments span' ).textContent = ( post.comments_count || 0 ).toLocaleString();
modal.querySelector( '.gchs-ig-modal__permalink' ).href = post.permalink;
var date = new Date( post.timestamp );
modal.querySelector( '.gchs-ig-modal__date' ).textContent = date.toLocaleDateString( 'en-US', { month: 'short', day: 'numeric', year: 'numeric' } );
// Sincronizar la altura del modal con la altura de la imagen cargada.
syncModalHeight( mediaEl, modal.querySelector( '.gchs-ig-modal__info' ) );
modal.setAttribute( 'aria-hidden', 'false' );
document.body.style.overflow = 'hidden';
// Renderizar el rastro de la pata en la superposición (solo en escritorio).
Si (window.innerWidth > 768 && !window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
renderPawTrail(modal.querySelector('.gchs-ig-modal__overlay'));
}
}
function renderPawTrail(overlay) {
/ Eliminar rastro anterior.
var old = overlay.querySelector('.gchs-paw-trail');
if (old) old.remove();
var trail = document.createElement('div');
trail.className = 'gchs-paw-trail';
trail.style.cssText = 'position:absolute;inset:0;pointer-events:none;overflow:hidden;';
var pawUrl = 'https://dev.gchscc.org/wp-content/uploads/2026/03/paws.svg';
var w = overlay.offsetWidth;
var h = overlay.offsetHeight;
/ // Aleatoriza la ruta de desplazamiento cada vez.
var rand = function( min, max ) { return min + Math.random() * ( max - min ); };
/ // Elige un borde aleatorio para comenzar y camina hacia el área opuesta.
var paths = [
// De abajo a la izquierda a arriba a la derecha.
{ sx: rand(0.03, 0.15), sy: rand(0.80, 0.95), ex: rand(0.75, 0.95), ey: rand(0.05, 0.20) },
// De abajo a la derecha a arriba a la izquierda.
{ sx: rand(0.80, 0.95), sy: rand(0.80, 0.95), ex: rand(0.05, 0.20), ey: rand(0.05, 0.20) },
/ De izquierda a derecha (centro).
{ sx: rand(0.02, 0.10), sy: rand(0.50, 0.70), ex: rand(0.85, 0.97), ey: rand(0.10, 0.35) },
/ De abajo (centro) a arriba (izquierda).
{ sx: rand(0.35, 0.55), sy: rand(0.88, 0.97), ex: rand(0.03, 0.18), ey: rand(0.05, 0.18) },
/ De la derecha al centro y de la izquierda a la parte superior.
{ sx: rand(0.88, 0.97), sy: rand(0.45, 0.65), ex: rand(0.05, 0.20), ey: rand(0.08, 0.25) },
];
var path = paths[ Math.floor( Math.random() * paths.length ) ];
var startX = w * path.sx;
var startY = h * path.sy;
var endX = w * path.ex;
var endY = h * path.ey;
// Parámetros fijos por recorrido.
var steps = Math.floor( rand( 6, 10 ) );
var wobbleAmt = rand( 0.04, 0.09 );
var wobbleFreq = rand( 1.2, 2.0 ); // Frecuencia fija: sin inversión de dirección.
var strideLen = rand( 38, 50 );
var mainAngle = Math.atan2( endY - startY, endX - startX );
// Precalcular todas las posiciones para que el ángulo de cada paso se base en los vecinos reales.
var positions = [];
for ( var i = 0; i = 2 ) {
applyHeight();
} else {
firstMedia.addEventListener( 'load', applyHeight );
firstMedia.addEventListener('loadedmetadata', applyHeight);
}
}
function closeIgModal() {
var modal = document.getElementById('gchs-ig-modal');
if (!modal || modal.getAttribute('aria-hidden') === 'true') return;
modal.setAttribute('aria-hidden', 'true');
document.body.style.overflow = '';
/ Detener la reproducción de cualquier vídeo.
modal.querySelectorAll('video').forEach(function(v) { v.pause(); });
/ Restablecer alturas.
var mediaEl = modal.querySelector('.gchs-ig-modal__media');
var infoEl = modal.querySelector( '.gchs-ig-modal__info' );
if ( mediaEl ) mediaEl.style.height = '';
if ( infoEl ) infoEl.style.height = '';
}
function esc( s ) { var d = document.createElement( 'div' ); d.textContent = s || ''; return d.innerHTML; }
} )();