Welcome to the detailed analysis for fgr.org.mx. This domain is officially recognized as Fiscalía General de la República. According to their official web presence, their primary focus is: "Fiscalía General de la República".
"Galerías // ===== VARIABLES GLOBALES ===== let galerias = []; let currentGallery = null; let currentImageIndex = 0; let isLightboxOpen = false; const MAX_GALERIAS = 2; // <<<<<<<<<<<<<<<<<<<<<<<<<<< NUEVA CONSTANTE: Número máximo de galerías a mostrar // ===== FUNCIÓN PARA FORMATEAR FECHA (SIN PROCESAR) ===== function formatearFecha(fechaStr) { if (!fechaStr) return 'Fecha no disponible'; return fechaStr; } // ===== CARGAR DATOS DESDE JSON EXTERNO ===== async function cargarDatos() { const loadingIndicator = document.getElementById('loadingIndicator'); try { const response = await fetch('https://stastdgv2portfgr032.blob.core.windows.net/fgr/JSON/FGR_home_galeria.json'); if (!response.ok) { throw new Error(`Error al cargar el JSON: ${response.status}`); } galerias = await response.json(); // Ordenar por fecha (más reciente primero) galerias.sort((a, b) => { if (a.fecha < b.fecha) return 1; if (a.fecha > b.fecha) return -1; return 0; }); if (loadingIndicator) { loadingIndicator.style.display = 'none'; } renderGaleries(); } catch (error) { console.error('Error:', error); if (loadingIndicator) { loadingIndicator.innerHTML = ` <div class="error-message"> <i class="bi bi-exclamation-triangle-fill"></i> <p style="color: var(--rojo); font-size: 1.8rem;">Error al cargar las galerías</p> <p style="font-size: 1.4rem; color: var(--color02); margin-top: 10px;">${error.message}</p> <button class="btn-reintentar" onclick="cargarDatos()"> <i class="bi bi-arrow-repeat"></i> Reintentar </button> </div> `; } } } // ===== RENDERIZAR GALERÍAS ===== function renderGaleries() { const grid = document.getElementById('galeriasGrid'); grid.innerHTML = ''; // ===== FILTRAR: SOLO LOS DOS ÚLTIMOS IDs ===== // Tomar solo los primeros N elementos (los más recientes por el orden) const galeriasMostrar = galerias.slice(0, MAX_GALERIAS); if (galeriasMostrar.length === 0) { grid.innerHTML = ` <div style="text-align: center; padding: 60px 20px; color: var(--color02); grid-column: 1 / -1;"> <i class="bi bi-inbox" style="font-size: 4rem; color: var(--color01);"></i> <p style="margin-top: 15px; font-size: 1.8rem;">No hay galerías disponibles</p> </div> `; return; } galeriasMostrar.forEach((galeria, index) => { // El index real en el array original lo necesitamos para el lightbox const realIndex = galerias.indexOf(galeria); const card = document.createElement('div'); card.className = 'galeria-card'; const thumbs = galeria.imagenes ? galeria.imagenes.slice(0, 3) : []; const totalImagenes = galeria.imagenes ? galeria.imagenes.length : 0; const fecha = galeria.fecha || 'Fecha no disponible'; // Construir miniaturas let thumbsHTML = ''; if (thumbs.length === 0) { thumbsHTML = ` <div class="galeria-thumb" style="display: flex; align-items: center; justify-content: center; color: #ccc;"> <i class="bi bi-image" style="font-size: 3rem;"></i> </div> `; } else { thumbsHTML = thumbs.map((img, i) => { // Si es la tercera imagen (índice 2) y hay más de 3 imágenes if (i === 2 && totalImagenes > 3) { return ` <div class="galeria-thumb" onclick="openGallery(${realIndex})" style="position: relative;"> <img src="${img}" alt="${galeria.titulo}"> <div class="overlay" style="background: rgba(0,0,0,0.5); opacity: 1;"> <span class="mas-imagenes" style="color: #fff; font-size: 2.4rem; font-weight: 700; background: none; text-shadow: 0 2px 10px rgba(0,0,0,0.8);"> +${totalImagenes - 3} </span> </div> </div> `; } return ` <div class="galeria-thumb" onclick="openGallery(${realIndex})"> <img src="${img}" alt="${galeria.titulo}"> <div class="overlay"> <i class="bi bi-search"></i> </div> </div> `; }).join(''); } card.innerHTML = ` <div class="galeria-header"> <div class="galeria-header-top"> <h2>${galeria.titulo || 'Sin título'}</h2> <span class="galeria-fecha"> <i class="bi bi-calendar3"></i> ${fecha} </span> </div> ${galeria.descripcion ? `<p>${galeria.descripcion}</p>` : ''} ${galeria.comunicado ? ` <div class="galeria-comunicado"> <a href="${galeria.comunicado}" target="_blank" rel="noopener noreferrer"> <i class="bi bi-file-earmark-text"></i> Ver Comunicado <i class="bi bi-box-arrow-up-right" style="font-size: 1rem;"></i> </a> </div> ` : ''} </div> <div class="galeria-thumbs"> ${thumbsHTML} </div> <div class="galeria-footer"> <span><i class="bi bi-image"></i> ${totalImagenes} imágenes</span> <button class="btn-ver-galeria" onclick="openGallery(${realIndex})"> Ver galería </button> </div> `; grid.appendChild(card); }); } // ===== ABRIR GALERÍA EN LIGHTBOX ===== function openGallery(index) { if (!galerias[index]) return; currentGallery = index; currentImageIndex = 0; isLightboxOpen = true; const galeria = galerias[index]; document.getElementById('lightboxTitle').textContent = galeria.titulo || 'Galería'; const lightbox = document.getElementById('lightboxGallery'); lightbox.style.display = 'flex'; document.body.style.overflow = 'hidden'; updateLightboxImage(0); } // ===== CERRAR LIGHTBOX ===== function closeLightbox() { isLightboxOpen = false; document.getElementById('lightboxGallery').style.display = 'none'; document.body.style.overflow = 'auto'; } // ===== ACTUALIZAR IMAGEN EN LIGHTBOX ===== function updateLightboxImage(index) { if (currentGallery === null) return; const galeria = galerias[currentGallery]; if (!galeria || !galeria.imagenes || !galeria.imagenes.length) { document.getElementById('lightboxImage').src = ''; document.getElementById('imageCounter').textContent = '0 / 0'; document.getElementById('lightboxThumbnails').innerHTML = ''; return; } if (index < 0) index = galeria.imagenes.length - 1; if (index >= galeria.imagenes.length) index = 0; currentImageIndex = index; document.getElementById('lightboxImage').src = galeria.imagenes[index]; document.getElementById('imageCounter').textContent = `${index + 1} / ${galeria.imagenes.length}`; const thumbnailsContainer = document.getElementById('lightboxThumbnails'); thumbnailsContainer.innerHTML = ''; galeria.imagenes.forEach((img, i) => { const thumb = document.createElement('div'); thumb.className = `lb-thumb ${i === index ? 'active' : ''}`; thumb.innerHTML = `<img src="${img}" alt="Miniatura ${i + 1}">`; thumb.onclick = () => updateLightboxImage(i); thumbnailsContainer.appendChild(thumb); }); } // ===== CAMBIAR IMAGEN EN LIGHTBOX ===== function changeLightboxImage(direction) { if (currentGallery === null) return; const galeria = galerias[currentGallery]; if (!galeria || !galeria.imagenes || !galeria.imagenes.length) return; let newIndex = currentImageIndex + direction; if (newIndex < 0) newIndex = galeria.imagenes.length - 1; if (newIndex >= galeria.imagenes.length) newIndex = 0; updateLightboxImage(newIndex); } // ===== CONTROLES DE TECLADO ===== document.addEventListener('keydown', function(e) { if (!isLightboxOpen) return; if (e.key === 'ArrowLeft') { changeLightboxImage(-1); e.preventDefault(); } else if (e.key === 'ArrowRight') { changeLightboxImage(1); e.preventDefault(); } else if (e.key === 'Escape') { closeLightbox(); e.preventDefault(); } }); // ===== INICIALIZAR ===== cargarDatos();"
By comparing fgr.org.mx to other leading websites in its niche, marketers and researchers can identify key traffic sources and growth opportunities. Explore our related resources below to find websites similar to fgr.org.mx.
Yes, according to our latest analysis, we detected a valid SSL certificate ensuring a secure connection.
As of July 24, 2026, fgr.org.mx holds an estimated domain authority score of 88/100 based on our VisitRank tracking algorithms.
You can find the best alternatives and similar sites to fgr.org.mx in our explore section, which includes competitors in the E-commerce & Retail sector.
Common Misspellings & Typo Domains for fgr.org.mx:
"La Fiscalía General de la República (FGR); es un órgano constitucional autónomo. Tiene como fines la investigación de los delitos y el esclarecimiento de los hechos; otorgar una procuración de justicia eficaz, efectiva, apegada a derecho, que contribuya a combatir la inseguridad y disminuirla; la prevención del delito; fortalecer el Estado de derecho en México; procurar que el culpable no quede impune; así como promover, proteger, respetar y garantizar los derechos de verdad, reparación integral y de no repetición de las víctimas, ofendidos en particular y de la sociedad en general."
"La Fiscalía General de la República se rige por los principios de autonomía, legalidad, objetividad, eficiencia, profesionalismo, honradez, respeto a los derechos humanos, perspectiva de género, interculturalidad, perspectiva de niñez y adolescencia, accesibilidad, debida diligencia e imparcialidad."
"Con el propósito de prevenir, detectar y enfrentar actos de soborno en el proceso de gestión documental de la Fiscalía General de la República, la Jefatura de Oficina del Fiscal General de la República ha implementado un Sistema de Gestión Antisoborno (SGAS), que engloba directrices, procedimientos y controles basados en la Norma ISO 37001:2016, para que las actividades de la Administración Especializada de Ventanilla de Documentación y Análisis se desarrollen bajo una cultura de rechazo al soborno y que coadyuve para continuar trabajando con apego a la legalidad, responsabilidad y transparencia."