PageSourceSearch

https://sport-retro.gr/wp-content/plugins/simple-facebook-plugin/assets/js/simple-facebook-plugin.js?ver=2.0.1

js sport-retro.gr collected 2026-10-02 13:48:06 UTC 7,604 bytes, 280 lines download raw bytes

1(function() {
2	var settings = window.sfpSettings || {};
3	var api = window.sfpPlugin || {};
4	var sdkPromise = null;
5	var sdkLoaded = false;
6
7	function getSetting(value, fallback) {
8		return typeof value === 'undefined' ? fallback : value;
9	}
10
11	function getLocale(container) {
12		if (settings.locale) {
13			return settings.locale;
14		}
15		if (container && container.dataset && container.dataset.sfpLocale) {
16			return container.dataset.sfpLocale;
17		}
18		return 'en_US';
19	}
20
21	function shouldLoadSdk() {
22		return getSetting(settings.shouldLoad, true) && getSetting(settings.hasConsent, true);
23	}
24
25	function ensureFbRoot() {
26		if (!document.getElementById('fb-root')) {
27			var fbRoot = document.createElement('div');
28			fbRoot.id = 'fb-root';
29			document.body.appendChild(fbRoot);
30		}
31	}
32
33	function loadSdk(container) {
34		if (sdkLoaded) {
35			return Promise.resolve();
36		}
37		if (sdkPromise) {
38			return sdkPromise;
39		}
40
41		sdkPromise = new Promise(function(resolve, reject) {
42			if (!shouldLoadSdk()) {
43				reject(new Error('Facebook SDK blocked by filters.'));
44				return;
45			}
46
47			ensureFbRoot();
48
49			var js = document.createElement('script');
50			js.id = 'facebook-jssdk';
51			js.async = true;
52			js.defer = true;
53			js.src = 'https://connect.facebook.net/' + getLocale(container) + '/sdk.js#xfbml=1&version=v19.0';
54			js.onload = function() {
55				sdkLoaded = true;
56				resolve();
57			};
58			js.onerror = function() {
59				reject(new Error('Facebook SDK failed to load.'));
60			};
61
62			document.head.appendChild(js);
63		});
64
65		return sdkPromise;
66	}
67
68	function setPlaceholderState(container, state) {
69		var placeholder = container.querySelector('.sfp-placeholder');
70		if (!placeholder) {
71			return null;
72		}
73
74		if (!placeholder.dataset.sfpOriginalText) {
75			placeholder.dataset.sfpOriginalText = placeholder.textContent;
76		}
77
78		var clickEnabled = container.dataset.sfpClickToLoad === '1';
79
80		if (state === 'loading') {
81			placeholder.classList.add('sfp-placeholder--loading');
82			placeholder.disabled = true;
83			placeholder.removeAttribute('hidden');
84			placeholder.removeAttribute('aria-hidden');
85			placeholder.setAttribute('aria-busy', 'true');
86			placeholder.style.display = '';
87			placeholder.textContent = '';
88			placeholder.setAttribute('aria-label', placeholder.dataset.sfpOriginalText || '');
89			return placeholder;
90		}
91
92		if (state === 'ready') {
93			placeholder.classList.remove('sfp-placeholder--loading');
94			placeholder.disabled = true;
95			placeholder.setAttribute('hidden', 'hidden');
96			placeholder.setAttribute('aria-hidden', 'true');
97			placeholder.removeAttribute('aria-busy');
98			placeholder.style.display = 'none';
99			placeholder.textContent = placeholder.dataset.sfpOriginalText || placeholder.textContent;
100			placeholder.removeAttribute('aria-label');
101			return placeholder;
102		}
103
104		placeholder.classList.remove('sfp-placeholder--loading');
105		placeholder.disabled = false;
106		placeholder.removeAttribute('hidden');
107		placeholder.removeAttribute('aria-hidden');
108		placeholder.removeAttribute('aria-busy');
109		placeholder.style.display = '';
110		placeholder.textContent = placeholder.dataset.sfpOriginalText || placeholder.textContent;
111		placeholder.removeAttribute('aria-label');
112		return placeholder;
113	}
114
115	function buildEmbed(container) {
116		if (!container || container.dataset.sfpLoaded === '1') {
117			return;
118		}
119
120		if (!shouldLoadSdk()) {
121			return;
122		}
123
124		container.dataset.sfpLoaded = '1';
125
126		var target = container.querySelector('.sfp-embed');
127		if (!target) {
128			return;
129		}
130
131		var placeholder = setPlaceholderState(container, 'loading');
132
133		var fbPage = document.createElement('div');
134		fbPage.className = 'fb-page';
135		fbPage.setAttribute('data-href', container.dataset.sfpUrl || '');
136		fbPage.setAttribute('data-width', container.dataset.sfpWidth || '');
137		fbPage.setAttribute('data-height', container.dataset.sfpHeight || '');
138		fbPage.setAttribute('data-hide-cover', container.dataset.sfpHideCover || 'false');
139		fbPage.setAttribute('data-show-facepile', container.dataset.sfpShowFacepile || 'true');
140		fbPage.setAttribute('data-small-header', container.dataset.sfpSmallHeader || 'false');
141		fbPage.setAttribute('data-tabs', container.dataset.sfpTabs || '');
142
143		target.appendChild(fbPage);
144
145		loadSdk(container).then(function() {
146			if (window.FB && window.FB.XFBML && typeof window.FB.XFBML.parse === 'function') {
147				window.FB.XFBML.parse(container, function() {
148					setPlaceholderState(container, 'ready');
149				});
150			} else {
151				setPlaceholderState(container, 'ready');
152			}
153		}).catch(function() {
154			container.dataset.sfpLoaded = '0';
155			setPlaceholderState(container, 'idle');
156			if (fbPage && fbPage.parentNode) {
157				fbPage.parentNode.removeChild(fbPage);
158			}
159		});
160	}
161
162	function isInView(element) {
163		var rect = element.getBoundingClientRect();
164		return rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.bottom >= 0;
165	}
166
167function setupLazyFallback(containers) {
168	var pending = Array.prototype.slice.call(containers);
169
170		function check() {
171			pending = pending.filter(function(container) {
172				if (container.dataset.sfpLoaded === '1') {
173					return false;
174				}
175
176				if (!isInView(container)) {
177					return true;
178				}
179
180		buildEmbed(container);
181
182				return false;
183			});
184
185			if (!pending.length) {
186				window.removeEventListener('scroll', check);
187				window.removeEventListener('resize', check);
188				window.removeEventListener('orientationchange', check);
189			}
190		}
191
192		window.addEventListener('scroll', check);
193		window.addEventListener('resize', check);
194		window.addEventListener('orientationchange', check);
195		check();
196	}
197
198	function initContainers() {
199		var containers = document.querySelectorAll('[data-sfp-embed="1"]');
200		if (!containers.length) {
201			return;
202		}
203
204		var observer = null;
205		if ('IntersectionObserver' in window) {
206			observer = new IntersectionObserver(function(entries) {
207				entries.forEach(function(entry) {
208					if (!entry.isIntersecting) {
209						return;
210					}
211
212					var container = entry.target;
213					observer.unobserve(container);
214					if (container.dataset.sfpLoaded === '1') {
215						return;
216					}
217
218					if (container.dataset.sfpLazy === '1' && container.dataset.sfpClickToLoad === '0') {
219						buildEmbed(container);
220					}
221				});
222			});
223		}
224
225		containers.forEach(function(container) {
226			var placeholder = container.querySelector('.sfp-placeholder');
227			var clickEnabled = container.dataset.sfpClickToLoad === '1';
228			var lazyEnabled = container.dataset.sfpLazy === '1';
229
230			if (placeholder) {
231				placeholder.addEventListener('click', function() {
232					buildEmbed(container);
233				});
234
235				if (!clickEnabled) {
236					placeholder.classList.add('sfp-placeholder--auto');
237				}
238			}
239
240			if (lazyEnabled && observer) {
241				observer.observe(container);
242			}
243
244			if (!lazyEnabled && !clickEnabled) {
245				buildEmbed(container);
246			}
247		});
248
249	if (!observer) {
250		var lazyFallbackTargets = Array.prototype.filter.call(containers, function(container) {
251			return container.dataset.sfpLazy === '1' && container.dataset.sfpClickToLoad === '0';
252		});
253
254		if (lazyFallbackTargets.length) {
255			setupLazyFallback(lazyFallbackTargets);
256		}
257		}
258	}
259
260	api.loadEmbed = function(container) {
261		buildEmbed(container);
262	};
263
264	api.loadAll = function() {
265		var containers = document.querySelectorAll('[data-sfp-embed="1"]');
266		Array.prototype.forEach.call(containers, function(container) {
267			if (container.dataset.sfpLoaded !== '1') {
268				buildEmbed(container);
269			}
270		});
271	};
272
273	window.sfpPlugin = api;
274
275	if (document.readyState === 'loading') {
276		document.addEventListener('DOMContentLoaded', initContainers);
277	} else {
278		initContainers();
279	}
280})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.