let fechaHoyElem, santoDelDiaElem, indicadorLiturgicoElem, cabeceraHoy; function inicializarVariables() { cabeceraHoy = document.getElementById('header-hoy'); fechaHoyElem = document.getElementById('fecha-hoy'); nombreCicloElem = document.getElementById('nombre_ciclo'); cicloParImparElem = document.getElementById('ciclo_par_impar'); santoDelDiaElem = document.getElementById('santo-del-dia'); descripcionSantoDelDiaElem = document.getElementById('descripcion-santo-del-dia'); indicadorLiturgicoElem = document.getElementById('indicador-liturgico'); errorElem = document.getElementById('__error'); difuntoHoyElem = document.getElementById('difunto-hoy'); salmoDelDiaElem = document.getElementById('__salmo'); } async function cargarYActualizarTodo() { // 1. Obtener fecha de hoy en formato YYYY-MM-DD (ISO) const hoy = new Date(); const fechaISO = hoy.toISOString().split('T')[0]; if (hoy.getFullYear() % 2 === 0) { cicloParImparElem.textContent = "Año Par"; } else { cicloParImparElem.textContent = "Año Impar"; } if (hoy.getFullYear() % 3 === 0) { nombreCicloElem.textContent = "Ciclo C -"; } else if (hoy.getFullYear() % 3 === 1) { nombreCicloElem.textContent = "Ciclo A -"; } else { nombreCicloElem.textContent = "Ciclo B -"; } try { // 2. Cargar el JSON unificado (enero/febrero que creamos) const respuesta = await fetch('data/calendario-liturgico.json'); const datosCalendario = await respuesta.json(); // 3. Buscar el objeto del día de hoy const datosHoy = datosCalendario.find(dia => dia.fecha === fechaISO); const colorDiaCirculo = document.querySelector('.color-dia'); const nombreTiempoText = document.querySelector('.nombre-color'); if (datosHoy) { // Mapeo de colores (puedes añadir los hex exactos aquí) const mapaColores = { "verde": "#2d5a27", "morado": "#5d2d91", "blanco": "#f0f0f0", "rojo": "#b30000", "azul": "#0074d9", "rosa": "#e7b1cc" }; // Actualizamos Indicador Litúrgico cabeceraHoy.style.backgroundColor = mapaColores[datosHoy.color]; // Fondo para toda la cabecera indicadorLiturgicoElem.textContent = datosHoy.tiempo; //indicadorLiturgicoElem.style.color = mapaColores[datosHoy.color]; if (datosHoy.color === "blanco" || datosHoy.color === "rosa") { indicadorLiturgicoElem.style.color = "#000000"; // Texto oscuro para fondos claros } else { indicadorLiturgicoElem.style.color = "#ffffff"; // Texto claro para fondos oscuros } } else { indicadorLiturgicoElem.textContent = "-"; } } catch (error) { console.error("Error cargando el calendario:", error); errorElem.textContent = "Error cargando el calendario: " + error.message; } } async function difuntos() { const hoy = new Date(); const mesHoy = hoy.getMonth() + 1; const diaHoy = hoy.getDate(); try { const res = await fetch('data/difuntos.json'); const listaDifuntos = await res.json(); // Buscamos si alguien cumple aniversario de fallecimiento hoy const elDifunto = listaDifuntos.find(d => { if (!d.fallecimiento || d.fallecimiento.includes('XXXX')) return false; const f = d.fallecimiento.split('-'); return parseInt(f[1]) === mesHoy && parseInt(f[2]) === diaHoy; }); if (elDifunto && difuntoHoyElem) { let infoAniversario = ""; let infoVida = ""; // 1. Calcular años desde el fallecimiento const anioFallecimiento = parseInt(elDifunto.fallecimiento.split('-')[0]); const anosPasados = hoy.getFullYear() - anioFallecimiento; infoAniversario = `${anosPasados}º aniversario`; // 2. Calcular edad que tenía al fallecer (si hay fecha de nacimiento) if (elDifunto.nacimiento && !elDifunto.nacimiento.includes('XXXX')) { const nacion = new Date(elDifunto.nacimiento); const fallecio = new Date(elDifunto.fallecimiento); let edad = fallecio.getFullYear() - nacion.getFullYear(); // Ajuste por si no había cumplido años ese año const m = fallecio.getMonth() - nacion.getMonth(); if (m < 0 || (m === 0 && fallecio.getDate() < nacion.getDate())) { edad--; } infoVida = `Vivió ${edad} años`; } else if (elDifunto.nota) { // Si no hay fecha exacta pero sí una nota manual (ej. "77 años") infoVida = elDifunto.nota; } // 3. Renderizar en el HTML con el detalle de oración difuntoHoyElem.innerHTML = `DEP 🕊️ ${elDifunto.nombre}`; // También actualizamos la sección de intención principal si existe const intencionGral = document.querySelector('.intencion'); if (intencionGral) { intencionGral.innerHTML = `