In Memoriam: Remembering 46 Indigenous Defenders Who Were Murdered in 2025 in Latin America

11 Maret 2026
In Memoriam: Remembering 46 Indigenous Defenders Who Were Murdered in 2025 in Latin America
Country

jamie


Issues
Program
5
Main Image
Page Section

‘;
document.body.appendChild(lightbox);
}

var closeBtn = document.getElementById(‘gp-close’);
var titleEl = document.getElementById(‘gp-title’);
var subEl = document.getElementById(‘gp-sub’);
var bodyEl = document.getElementById(‘gp-body’);
var prevBtn = document.getElementById(‘gp-prev’);
var nextBtn = document.getElementById(‘gp-next’);

function isOpen() {
return lightbox.getAttribute(‘aria-hidden’) === ‘false’;
}

function setOpen(open) {
lightbox.setAttribute(‘aria-hidden’, open ? ‘false’ : ‘true’);
document.body.classList.toggle(‘mem-modal-open’, open);
if (!open) bodyEl.innerHTML = ”;
}

function getCards() {
return Array.prototype.slice.call(document.querySelectorAll(‘.mem-card’));
}

var cards = getCards();
var currentIndex = -1;
var lastFocusEl = null;

function normalizeIndex(idx) {
if (!cards.length) return -1;
if (idx < 0) return cards.length – 1;
if (idx >= cards.length) return 0;
return idx;
}

function isPlaceholderImage(src) {
if (!src) return false;
return src.toLowerCase().indexOf(‘in-memoriam_0.png’) !== -1;
}

function buildBodyFromCard(card) {
var imgEl = card.querySelector(‘.mem-card-image img’);
var imgSrc = imgEl ? imgEl.getAttribute(‘src’) : ”;
var caption = card.getAttribute(‘data-caption’) || ”;

var descEl = card.querySelector(‘.mem-card-description’);
var descHtml = descEl ? descEl.innerHTML : ‘

Details coming soon.

‘;

var showImage = imgSrc && !isPlaceholderImage(imgSrc);

var imgBlock = ”;
if (showImage) {
imgBlock =

‘ +
‘ +
(caption ? ‘
‘ + caption + ‘

‘ : ”) +

‘;
}

return (

‘ +
imgBlock +
‘ + descHtml + ‘

‘ +


);
}

function applyImageLayout() {
var overlayImg = bodyEl.querySelector(‘.mem-overlay-image img’);
var overlayBox = bodyEl.querySelector(‘.mem-overlay-image’);
if (!overlayImg || !overlayBox) return;

function classify() {
overlayBox.classList.remove(‘portrait’, ‘landscape’);
if (overlayImg.naturalHeight > overlayImg.naturalWidth) {
overlayBox.classList.add(‘portrait’);
} else {
overlayBox.classList.add(‘landscape’);
}
}

if (overlayImg.complete) {
classify();
} else {
overlayImg.onload = classify;
}
}

function openModalAt(idx) {
cards = getCards();
if (!cards.length) return;

currentIndex = normalizeIndex(idx);
var card = cards[currentIndex];
if (!card) return;

var h3 = card.querySelector(‘.mem-card-text h3’);
var h4 = card.querySelector(‘.mem-card-text h4’);
var title = h3 ? (h3.innerText || ”).trim() : ”;
var sub = h4 ? (h4.innerText || ”).trim() : ”;

titleEl.textContent = title;
subEl.textContent = sub;

bodyEl.innerHTML = buildBodyFromCard(card);
bodyEl.scrollTop = 0;

applyImageLayout();

lastFocusEl = document.activeElement;
setOpen(true);
closeBtn.focus();
}

function closeModal() {
if (!isOpen()) return;
setOpen(false);
if (lastFocusEl && typeof lastFocusEl.focus === ‘function’) {
lastFocusEl.focus();
}
}

function openFromElement(el) {
cards = getCards();
var card = el.closest(‘.mem-card’);
var idx = cards.indexOf(card);
if (idx >= 0) openModalAt(idx);
}

document.addEventListener(‘click’, function (e) {
var openEl = e.target.closest(‘[data-mem-open]’);
if (openEl) {
e.preventDefault();
openFromElement(openEl);
return;
}

if (isOpen() && !e.target.closest(‘.gp-dialog’)) {
closeModal();
}
});

closeBtn.addEventListener(‘click’, function (e) {
e.preventDefault();
closeModal();
});

prevBtn.addEventListener(‘click’, function (e) {
e.preventDefault();
openModalAt(currentIndex – 1);
});

nextBtn.addEventListener(‘click’, function (e) {
e.preventDefault();
openModalAt(currentIndex + 1);
});

document.addEventListener(‘keydown’, function (e) {
if (!isOpen()) return;

if (e.key === ‘Escape’) {
e.preventDefault();
closeModal();
return;
}

if (e.key === ‘ArrowLeft’) {
e.preventDefault();
openModalAt(currentIndex – 1);
return;
}

if (e.key === ‘ArrowRight’) {
e.preventDefault();
openModalAt(currentIndex + 1);
return;
}
});

window.memOpenAt = openModalAt;
})();

cards.forEach(function(card) { var imageWrap = card.querySelector('.mem-card-image'); var titleEl = card.querySelector('.mem-card-text h3'); var descEl = card.querySelector('.mem-card-description');

if (!imageWrap || !titleEl || !descEl) return;

/* Avoid duplicating if script runs more than once */ if (imageWrap.querySelector('.mem-card-hover')) return;

var title = (titleEl.innerText || '').trim(); var fullText = (descEl.innerText || '').replace(/s+/g, ' ').trim();

/* Try a slightly longer excerpt first, then trim */ var excerptLength = 140; var excerpt = fullText;

if (excerpt.length > excerptLength) { excerpt = excerpt.slice(0, excerptLength);

/* trim back to last full word */ var lastSpace = excerpt.lastIndexOf(' '); if (lastSpace > 80) { excerpt = excerpt.slice(0, lastSpace); }

excerpt += '…'; }

var hover = document.createElement('div'); hover.className = 'mem-card-hover'; hover.innerHTML = '

' + '' + escapeHtml(title) + '' + '' + escapeHtml(excerpt) + '' + '

‘;

imageWrap.appendChild(hover);
});
}

function escapeHtml(str) {
return str
.replace(/&/g, ‘&’)
.replace(//g, ‘>’)
.replace(/”/g, ‘”‘)
.replace(/’/g, ”’);
}

if (document.readyState === ‘loading’) {
document.addEventListener(‘DOMContentLoaded’, buildHoverExcerpts);
} else {
buildHoverExcerpts();
}
})();