Gemeinde zu Ehren der Heiligen Dreiheit zu Dortmund
Berliner Diözese der Russisch-Orthodoxen Kirche des Moskauer Patriarchats
Impressum
Übersetzt aus dem Russischen mit DeepL©
Alle Angaben ohne Gewähr

Russisch-Orthodoxe Kirchengemeinde zu Dortmund

Flurstraße 39
44145 Dortmund
Tel: (0231) 700 58 36
E-Mail: info@nadegda.de

 

Rechtliche Angaben:

Priester Vadim Abramov (Gemeindevorsteher)
Tel.: +49 (157) 763 02 897
E-Mail: do-kirche@nadegda.de
E-Mail: abramov1966@gmail.com

 

Technische Angaben:

Grigor Wassilew
E-Mail: info@nadegda.de

 

   Trotz sorgfältiger inhaltlicher Kontrolle übernehmen wir keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich. Alle hier verwendeten Namen, Begriffe, Zeichen und Grafiken können Marken- oder Warenzeichen im Besitze ihrer rechtlichen Eigentümer sein. Die Rechte aller erwähnten und benutzten Marken- und Warenzeichen liegen ausschließlich bei deren Besitzern.

'; } 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(); })();