Gemeinde zu Ehren der Heiligen Dreiheit zu Dortmund
Berliner Diözese der Russisch-Orthodoxen Kirche des Moskauer Patriarchats
Rückblick auf ein vergangenes Jahr.....
Rückblick auf ein vergangenes Jahr.....
Übersetzt aus dem Russischen mit DeepL©
Alle Angaben ohne Gewähr

Vor uns liegen Fotos - Momente aus dem Leben unserer Gemeinde. Wie immer war das vergangene Jahr mit vielen wichtigen und interessanten Ereignissen gefüllt. Mögen wir lernen, das vergangene Jahr mit stiller Freude über das Gute und stiller Traurigkeit über das Traurige zu betrachten!

Priester Vadim Abramov 

Galerie

'; } function start() { if (!bindRoot()) return; const lang = language(); const attached = frame && frameHost.contains(frame); if (attached && phase === 'loading' && lang === activeLanguage) return; if (attached && phase === 'ready' && loadedDay === day() && lang === activeLanguage) return; clearAttempt(); activeLanguage = lang; retry.textContent = labels[lang].retry; sourceLink.textContent = labels[lang].source; sourceLink.href = sources[lang].page; root.setAttribute('aria-label', labels[lang].title); showState('loading'); const bytes = new Uint32Array(4); crypto.getRandomValues(bytes); token = Array.from(bytes).map(value => value.toString(16)).join('-'); frame = document.createElement('iframe'); frame.title = labels[lang].title; frame.setAttribute('sandbox', 'allow-scripts allow-popups allow-popups-to-escape-sandbox'); frame.setAttribute('referrerpolicy', 'no-referrer'); frame.hidden = true; const saved = cache[lang]; frame.srcdoc = createDocument(lang, token, saved && saved.day === day() ? saved.html : ''); frameHost.appendChild(frame); timer = setTimeout(fail, timeoutMs); } function resize(height) { if (frame && Number.isFinite(height) && height > 0 && height < 50000) { frame.style.height = Math.max(120, Math.ceil(height)) + 'px'; } } window.addEventListener('message', event => { const message = event.data; if (!frame || event.source !== frame.contentWindow || !message || message.channel !== 'nadegda-calendar-v1' || message.token !== token) return; if (message.state === 'ready' && phase === 'loading') { clearTimeout(timer); timer = null; loadedDay = day(); if (typeof message.html === 'string' && message.html.length < 1000000) { cache[activeLanguage] = { day: loadedDay, html: message.html }; } showState('ready'); frame.hidden = false; resize(message.height); } else if (message.state === 'resize' && phase === 'ready') { resize(message.height); } else if (message.state === 'error') { fail(); } }); function close() { clearAttempt(); phase = 'idle'; if (bindRoot()) { root.dataset.state = 'idle'; root.setAttribute('aria-busy', 'false'); } } function refresh() { if (refreshQueued) return; refreshQueued = true; requestAnimationFrame(() => { refreshQueued = false; const modal = document.getElementById('elementor-popup-modal-' + popupId); if (modal && modal.getClientRects().length && getComputedStyle(modal).display !== 'none') start(); }); }function hookPopup() { if (hooked || !window.jQuery) return; hooked = true; window.jQuery(document).on('elementor/popup/show.nadegdaCalendar', function (event, id) { if (Number(id) === popupId) start(); }).on('elementor/popup/hide.nadegdaCalendar', function (event, id) { if (Number(id) === popupId) close(); }); } // Capture the first click even when LiteSpeed has not loaded jQuery yet. document.addEventListener('click', event => { const trigger = event.target.closest && event.target.closest('a[href], [data-e-action-hash]'); if (!trigger) return; const value = trigger.getAttribute('data-e-action-hash') || trigger.getAttribute('href') || ''; try { const action = decodeURIComponent(value); if (!action.includes('action=popup:open')) return; const match = action.match(/(?:&|\?)settings=([^&]+)/); if (match && Number(JSON.parse(atob(match[1])).id) === popupId) refresh(); } catch (error) { /* Other site links are unrelated to the calendar. */ } hookPopup(); }, true); hookPopup(); document.addEventListener('DOMContentLoaded', hookPopup, { once: true }); document.addEventListener('DOMContentLiteSpeedLoaded', hookPopup); window.addEventListener('elementor/popup/show', event => { if (Number(event.detail && event.detail.id) === popupId) start(); }); window.addEventListener('elementor/popup/hide', event => { if (Number(event.detail && event.detail.id) === popupId) close(); }); // Elementor removes and recreates popup markup. Keep listeners and the // same-day calendar snapshot outside those disposable widget copies. window.nadegdaCalendarLoader = { refresh: refresh }; bindRoot(); refresh(); })();