PageSourceSearch

https://www.poznan.pl/mim/wspolne/layout/mim2024/dist/mim/js/main.js?_sst=1790944022806

js www.poznan.pl collected 2026-10-09 04:38:46 UTC 287,717 bytes, 7,124 lines download raw bytes

1/*!
2 * jquery oembed plugin
3 *
4 * Copyright (c) 2009 Richard Chamorro
5 * Licensed under the MIT license
6 *
7 * Orignal Author: Richard Chamorro
8 * Forked by Andrew Mee to Provide a slightly diffent kind of embedding experience
9 */
10(function ($) {
11		$.fn.oembed = function (url, options, embedAction) {
12				settings = $.extend(true, $.fn.oembed.defaults, options);
13				var shortURLList = ["0rz.tw", "1link.in", "1url.com", "2.gp", "2big.at", "2tu.us", "3.ly", "307.to", "4ms.me", "4sq.com", "4url.cc", "6url.com", "7.ly", "a.gg", "a.nf", "aa.cx", "abcurl.net",
14						"ad.vu", "adf.ly", "adjix.com", "afx.cc", "all.fuseurl.com", "alturl.com", "amzn.to", "ar.gy", "arst.ch", "atu.ca", "azc.cc", "b23.ru", "b2l.me", "bacn.me", "bcool.bz", "binged.it",
15						"bit.ly", "bizj.us", "bloat.me", "bravo.ly", "bsa.ly", "budurl.com", "canurl.com", "chilp.it", "chzb.gr", "cl.lk", "cl.ly", "clck.ru", "cli.gs", "cliccami.info",
16						"clickthru.ca", "clop.in", "conta.cc", "cort.as", "cot.ag", "crks.me", "ctvr.us", "cutt.us", "dai.ly", "decenturl.com", "dfl8.me", "digbig.com",
17						"http:\/\/digg\.com\/[^\/]+$", "disq.us", "dld.bz", "dlvr.it", "do.my", "doiop.com", "dopen.us", "easyuri.com", "easyurl.net", "eepurl.com", "eweri.com",
18						"fa.by", "fav.me", "fb.me", "fbshare.me", "ff.im", "fff.to", "fire.to", "firsturl.de", "firsturl.net", "flic.kr", "flq.us", "fly2.ws", "fon.gs", "freak.to",
19						"fuseurl.com", "fuzzy.to", "fwd4.me", "fwib.net", "g.ro.lt", "gizmo.do", "gl.am", "go.9nl.com", "go.ign.com", "go.usa.gov", "goo.gl", "goshrink.com", "gurl.es",
20						"hex.io", "hiderefer.com", "hmm.ph", "href.in", "hsblinks.com", "htxt.
20it", "huff.to", "hulu.com", "hurl.me", "hurl.ws", "icanhaz.com", "idek.net", "ilix.in", "is.gd",
21						"its.my", "ix.lt", "j.mp", "jijr.com", "kl.am", "klck.me", "korta.nu", "krunchd.com", "l9k.net", "lat.ms", "liip.to", "liltext.com", "linkbee.com", "linkbun.ch",
22						"liurl.cn", "ln-s.net", "ln-s.ru", "lnk.gd", "lnk.ms", "lnkd.in", "lnkurl.com", "lru.jp", "lt.tl", "lurl.no", "macte.ch", "mash.to", "merky.de", "migre.me", "miniurl.com",
23						"minurl.fr", "mke.me", "moby.to", "moourl.com", "mrte.ch", "myloc.me", "myurl.in", "n.pr", "nbc.co", "nblo.gs", "nn.nf", "not.my", "notlong.com", "nsfw.in",
24						"nutshellurl.com", "nxy.in", "nyti.ms", "o-x.fr", "oc1.us", "om.ly", "omf.gd", "omoikane.net", "on.cnn.com", "on.mktw.net", "onforb.es", "orz.se", "ow.ly", "ping.fm",
25						"pli.gs", "pnt.me", "politi.co", "post.ly", "pp.gg", "profile.to", "ptiturl.com", "pub.vitrue.com", "qlnk.net", "qte.me", "qu.tc", "qy.fi", "r.ebay.com", "r.im", "rb6.me", "read.bi",
26						"readthis.ca", "reallytinyurl.com", "redir.ec", "redirects.ca", "redirx.com", "retwt.me", "ri.ms", "rickroll.it", "riz.gd", "rt.nu", "ru.ly", "rubyurl.com", "rurl.org",
27						"rww.tw", "s4c.in", "s7y.us", "safe.mn", "sameurl.com", "sdut.us", "shar.es", "shink.de", "shorl.com", "short.ie", "short.to", "shortlinks.co.uk", "shorturl.com",
28						"shout.to", "show.my", "shrinkify.com", "shrinkr.com", "shrt.fr", "shrt.st", "shrten.com", "shrunkin.com", "simurl.com", "slate.me", "smallr.com", "smsh.me", "smurl.name",
29						"sn.im", "snipr.com", "snipurl.com", "snurl.com", "sp2.ro", "spedr.com", "srnk.net", "srs.li", "starturl.com", "stks.co", "su.pr", "surl.co.uk", "surl.hu", "t.cn", "t.co", "t.lh.com",
30						"ta.gd", "tbd.ly", "tcrn.ch", "tgr.me", "tgr.ph", "tighturl.com", "tiniuri.com", "tiny.cc", "tiny.ly", "tiny.pl", "tinylink.in", "tinyuri.ca", "tinyurl.com", "tk.", "tl.gd",
31						"tmi.me", "tnij.org", "tnw.to", "tny.com", "to.ly", "togoto.us", "totc.us", "toysr.us", "tpm.ly", "tr.im", "tra.kz", "trunc.it", "twhub.com", "twirl.at",
32						"twitclicks.com", "twitterurl.net", "twitterurl.org", "twiturl.de", "twurl.cc", "twurl.nl", "u.mavrev.com", "u.nu", "u76.org", "ub0.cc", "ulu.lu", "updating.me", "ur1.ca",
33						"url.az", "url.co.uk", "url.ie", "url360.me", "url4.eu", "urlborg.com", "urlbrief.com", "urlcover.com", "urlcut.com", "urlenco.de", "urli.nl", "urls.im",
34						"urlshorteningservicefortwitter.com", "urlx.ie", "urlzen.com", "usat.ly", "use.my", "vb.ly", "vevo.ly", "vgn.am", "vl.am", "vm.lc", "w55.de", "wapo.st", "wapurl.co.uk", "wipi.es",
35						"wp.me", "x.vu", "xr.com", "xrl.in", "xrl.us", "xurl.es", "xurl.jp", "y.ahoo.it", "yatuc.com", "ye.pe", "yep.it", "yfrog.com", "yhoo.it", "yiyd.com", "youtu.be", "yuarel.com",
36						"z0p.de", "zi.ma", "zi.mu", "zipmyurl.com", "zud.me", "zurl.ws", "zz.gd", "zzang.kr", "›.ws", "✩.ws", "✿.ws", "❥.ws", "➔.ws", "➞.ws", "➡.ws", "➨.ws", "➯.ws", "➹.ws", "➽.ws"];
37
38				if ($('#jqoembeddata').length === 0) $('<span id="jqoembeddata"></span>').appendTo('body');
39
40				return this.each(function () {
41						var container = $(this),
42								resourceURL = (url && (!url.indexOf('http://') || !url.indexOf('https://'))) ? url : container.attr("href"),
43								provider;
44
45						if (embedAction) {
46								settings.onEmbed = embedAction;
47						}
48						else if (!settings.onEmbed) {
49								settings.onEmbed = function (oembedData) {
50										$.fn.oembed.insertCode(this, settings.embedMethod, oembedData);
51								};
52						}
53
54						if (resourceURL !== null && resourceURL !== undefined) {
55								// Check if shorten URL
56								for (var j = 0, l = shortURLList.length; j < l; j++) {
57										var regExp = new RegExp('://' + shortURLList[j] + '/', "i");
58										if (resourceURL.match(regExp) !== null) {
59												var ajaxopts = $.extend({
60														url: "http://api.longurl.org/v2/expand",
61														dataType: 'jsonp',
62														data: {
63																url: resourceURL,
64																format: "json"
65																// callback: "?"
66														},
67														success: function (data) {
68																// this = $.fn.oembed;
69																resourceURL = data['long-url'];
70																provider = $.fn.oembed.getOEmbedProvider(data['long-url']);
71
72																// remove fallback
73																if (!!settings.fallback === false) {
74																		provider = provider.name.toLowerCase() === 'opengraph' ? null : provider;
75																}
76
77																if (provider !== null) {
78																		provider.params = getNormalizedParams(settings[provider.name]) || {};
79																		provider.maxWidth = settings.maxWidth;
80																		provider.maxHeight = settings.maxHeight;
81																		embedCode(container, resourceURL, provider);
82																} else {
83																		settings.onProviderNotFound.call(container, resourceURL);
84																}
85														},
86														error: function () {
87																settings.onError.call(container, resourceURL)
88														}
89												}, settings.longUrlAjaxOptions || settings.ajaxOptions || {});
90
91												$.ajax(ajaxopts);
92
93												return container;
94										}
95								}
96								provider = $.fn.oembed.getOEmbedProvider(resourceURL);
97
98								// remove fallback
99								if (!!settings.fallback === false) {
100										provider = provider.name.toLowerCase() === 'opengraph' ? null : provider;
101								}
102								if (provider !== null) {
103										provider.params = getNormalizedParams(settings[provider.name]) || {};
104										provider.maxWidth = settings.maxWidth;
105										provider.maxHeight = settings.maxHeight;
106										embedCode(container, resourceURL, provider);
107								} else {
108										settings.onProviderNotFound.call(container, resourceURL);
109								}
110						}
111						return container;
112				});
113		};
114
115		var settings;
116
117		// Plugin defaults
118		$.fn.oembed.defaults = {
119				fallback: true,
120				maxWidth: null,
121				maxHeight: null,
122				includeHandle: false,
123				embedMethod: 'fill',
124				// "auto", "append", "fill"
125				onProviderNotFound: function () {
126				},
127				beforeEmbed: function () {
128				},
129				afterEmbed: function () {
130				},
131				onEmbed: false,
132				onError: function (a, b, c, d) {
133    					console.log('err:', a, b, c, d)
134				},
135				ajaxOptions: {},
136				longUrlAjaxOptions: {}
137		};
138
139		/* Private functions */
140		function rand(length, current) { // Found on
141										// http://stackoverflow.com/questions/1349404/generate-a-string-of-5-random-characters-in-javascript
142				current = current ? current : '';
143				return length ? rand(--length, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(Math.random() * 60)) + current) : current;
144		}
145
146		function getRequestUrl(provider, externalUrl) {
147				var url = provider.apiendpoint,
148						qs = "",
149						i;
150				url += (url.indexOf("?") <= 0) ? "?" : "&";
151				url = url.replace('#', '%23');
152
153				if (provider.maxWidth !== null && (typeof provider.params.maxwidth === 'undefined' || provider.params.maxwidth === null)) {
154						provider.params.maxwidth = provider.maxWidth;
155				}
156
157				if (provider.maxHeight !== null && (typeof provider.params.maxheight === 'undefined' || provider.params.maxheight === null)) {
158						provider.params.maxheight = provider.maxHeight;
159				}
160
161				for (i in provider.params) {
162						// We don't want them to jack everything up by changing the callback
163			// parameter
164						if (i == provider.callbackparameter)
165								continue;
166
167						// allows the options to be set to null, don't send null values to
168			// the server as parameters
169						if (provider.params[i] !== null)
170								qs += "&" + escape(i) + "=" + provider.params[i];
171				}
172
173				url += "format=" + provider.format + "&url=" + escape(externalUrl) + qs;
174				if (provider.dataType != 'json')
175						url += "&" + provider.callbackparameter + "=?";
176
177				return url;
178		}
179
180		function success(oembedData, externalUrl, container) {
181				$('#jqoembeddata').data(externalUrl, oembedData.code);
182				settings.beforeEmbed.call(container, oembedData);
183				settings.onEmbed.call(container, oembedData);
184				settings.afterEmbed.call(container, oembedData);
185		}
186
187		function embedCode(container, externalUrl, embedProvider) {
188				if ($('#jqoembeddata').data(externalUrl) != undefined && embedProvider.embedtag.tag != 'iframe') {
189						var oembedData = {code: $('#jqoembeddata').data(externalUrl)};
190						success(oembedData, externalUrl, container);
191				} else if (embedProvider.yql) {
192						var from = embedProvider.yql.from || 'htmlstring';
193						var url = embedProvider.yql.url ? embedProvider.yql.url(externalUrl) : externalUrl;
194						var query = 'SELECT * FROM ' + from
195								+ ' WHERE url="' + (url) + '"'
196								+ " and " + (/html/.test(from) ? 'xpath' : 'itemPath') + "='" + (embedProvider.yql.xpath || '/') + "'";
197						if (from == 'html')
198								query += " and compat='html5'";
199						var ajaxopts = $.extend({
200								url: "//query.yahooapis.com/v1/public/yql",
201								dataType: 'jsonp',
202								data: {
203										q: query,
204										format: "json",
205										env: 'store://datatables.org/alltableswithkeys',
206										callback: "?"
207								},
208								success: function (data) {
209										var result;
210
211										if (embedProvider.yql.xpath && embedProvider.yql.xpath == '//meta|//title|//link') {
212												var meta = {};
213
214												if (data.query == null) {
215														data.query = {};
216												}
217												if (data.query.results == null) {
218														data.query.results = {"meta": []};
219												}
220												for (var i = 0, l = data.query.results.meta.length; i < l; i++) {
221														var name = data.query.results.meta[i].name || data.query.results.meta[i].property || null;
222														if (name == null)continue;
223														meta[name.toLowerCase()] = data.query.results.meta[i].content;
224												}
225												if (!meta.hasOwnProperty("title") || !meta.hasOwnProperty("og:title")) {
226														if (data.query.results.title != null) {
227																meta.title = data.query.results.title;
228														}
229												}
230												if (!meta.hasOwnProperty("og:image") && data.query.results.hasOwnProperty("link")) {
231														for (var i = 0, l = data.query.results.link.length; i < l; i++) {
232																if (data.query.results.link[i].hasOwnProperty("rel")) {
233																		if (data.query.results.link[i].rel == "apple-touch-icon") {
234																				if (data.query.results.link[i].href.charAt(0) == "/") {
235																						meta["og:image"] = url.match(/^(([a-z]+:)?(\/\/)?[^\/]+\/).*$/)[1] + data.query.results.link[i].href;
236																				} else {
237																						meta["og:image"] = data.query.results.link[i].href;
238																				}
239																		}
240																}
241														}
242												}
243												result = embedProvider.yql.datareturn(meta);
244										} else {
245												result = embedProvider.yql.datareturn ? embedProvider.yql.datareturn(data.query.results) : data.query.results.result;
246										}
247										if (result === false)return;
248										var oembedData = $.extend({}, result);
249										oembedData.code = result;
250										success(oembedData, externalUrl, container);
251								},
252								error: settings.onError.call(container, externalUrl, embedProvider)
253						}, settings.ajaxOptions || {});
254						$.ajax(ajaxopts);
255				} else if (embedProvider.templateRegex) {
256						if (embedProvider.embedtag.tag !== '') {
257								var flashvars = embedProvider.embedtag.flashvars || '';
258								var tag = embedProvider.embedtag.tag || 'embed';
259								var width = embedProvider.embedtag.width || 'auto';
260								var height = embedProvider.embedtag.height || 'auto';
261								var src = externalUrl.replace(embedProvider.templateRegex, embedProvider.apiendpoint);
262
263								if (!embedProvider.nocache) {
264										src += '&jqoemcache=' + rand(5);
265								}
266
267								if (embedProvider.apikey) {
268										src = src.replace('_APIKEY_', settings.apikeys[embedProvider.name]);
269								}
270
271								var code = $('<' + tag + '/>').attr('src', src).attr('width', width)
272										.attr('height', height)
273										.attr('allowfullscreen', embedProvider.embedtag.allowfullscreen || 'true')
274										.attr('allowscriptaccess', embedProvider.embedtag.allowfullscreen || 'always')
275										.css('max-height', settings.maxHeight || 'auto')
276										.css('max-width', settings.maxWidth || 'auto');
277
278								if (tag == 'embed') {
279										code.attr('type', embedProvider.embedtag.type || "application/x-shockwave-flash")
280												.attr('flashvars', externalUrl.replace(embedProvider.templateRegex, flashvars));
281								}
282
283								if (tag == 'iframe') {
284										code.attr('scrolling', embedProvider.embedtag.scrolling || "no")
285												.attr('frameborder', embedProvider.embedtag.frameborder || "0");
286
287								}
288
289								success({code: code}, externalUrl, container);
290						} else if (embedProvider.apiendpoint) {
291								// Add APIkey if true
292								if (embedProvider.apikey)
293										embedProvider.apiendpoint = embedProvider.apiendpoint.replace('_APIKEY_', settings.apikeys[embedProvider.name]);
294
295								ajaxopts = $.extend({
296										url: externalUrl.replace(embedProvider.templateRegex, embedProvider.apiendpoint),
297										dataType: 'jsonp',
298										success: function (data) {
299												var oembedData = $.extend({}, data);
300												oembedData.code = embedProvider.templateData(data);
301												success(oembedData, externalUrl, container);
302										},
303										error: settings.onError.call(container, externalUrl, embedProvider)
304								}, settings.ajaxOptions || {});
305								$.ajax(ajaxopts);
306						} else {
307								success({code: externalUrl.replace(embedProvider.templateRegex, embedProvider.template)}, externalUrl, container);
308						}
309				} else {
310
311						var requestUrl = getRequestUrl(embedProvider, externalUrl);
312						ajaxopts = $.extend({
313								url: requestUrl,
314								dataType: embedProvider.dataType || 'jsonp',
315								success: function (data) {
316										var oembedData = $.extend({}, data);
317										switch (oembedData.type) {
318												case "file": // Deviant Art has this
319												case "photo":
320														oembedData.code = $.fn.oembed.getPhotoCode(externalUrl, oembedData);
321														break;
322												case "video":
323												case "rich":
324														oembedData.code = $.fn.oembed.getRichCode(externalUrl, oembedData);
325														break;
326												default:
327														oembedData.code = $.fn.oembed.getGenericCode(externalUrl, oembedData);
328														break;
329										}
330										success(oembedData, externalUrl, container);
331								},
332								error: settings.onError.call(container, externalUrl, embedProvider)
333						}, settings.ajaxOptions || {});
334						$.ajax(ajaxopts);
335				}
336		}
337
338
339
340		function getNormalizedParams(params) {
341				if (params === null) return null;
342				var key, normalizedParams = {};
343				for (key in params) {
344						if (key !== null) normalizedParams[key.toLowerCase()] = params[key];
345				}
346				return normalizedParams;
347		}
348
349		/* Public functions */
350		$.fn.oembed.insertCode = function (container, embedMethod, oembedData) {
351				if (oembedData === null)
352						return;
353
354				if (embedMethod === 'auto' && container.attr('href') !== null) {
355						embedMethod = 'append';
356				} else if (embedMethod == 'auto') {
357						embedMethod = 'replace';
358				}
359				switch (embedMethod) {
360						case "replace":
361								container.replaceWith(oembedData.code);
362								break;
363						case "fill":
364								container.html(oembedData.code);
365								break;
366						case "append":
367								container.wrap('<div class="oembedall-container"></div>');
368								var oembedContainer = container.parent();
369								if (settings.includeHandle) {
370										$('<span class="oembedall-closehide">&darr;</span>').insertBefore(container).click(function () {
371												var encodedString = encodeURIComponent($(this).text());
372												$(this).html((encodedString == '%E2%86%91') ? '&darr;' : '&uarr;');
373												$(this).parent().children().last().toggle();
374										});
375								}
376								oembedContainer.append('<br/>');
377								try {
378										oembedData.code.clone().appendTo(oembedContainer);
379								} catch (e) {
380										oembedContainer.append(oembedData.code);
381								}
382								/*
383				 * Make videos semi-responsive If parent div width less than
384				 * embeded iframe video then iframe gets shrunk to fit smaller
385				 * width If parent div width greater thans embed iframe use the
386				 * max widht - works on youtubes and vimeo
387				 */
388								if (settings.maxWidth) {
389										var post_width = oembedContainer.parent().width();
390										if (post_width < settings.maxWidth) {
391												var iframe_width_orig = $('iframe', oembedContainer).width();
392												var iframe_height_orig = $('iframe', oembedContainer).height();
393												var ratio = iframe_width_orig / post_width;
394												$('iframe', oembedContainer).width(iframe_width_orig / ratio);
395												$('iframe', oembedContainer).height(iframe_height_orig / ratio);
396										} else {
397												if (settings.maxWidth) {
398														$('iframe', oembedContainer).width(settings.maxWidth);
399												}
400												if (settings.maxHeight) {
401														$('iframe', oembedContainer).height(settings.maxHeight);
402												}
403										}
404								}
405								break;
406				}
407		};
408
409		$.fn.oembed.getPhotoCode = function (url, oembedData) {
410				var code;
411				var alt = oembedData.title ? oembedData.title : '';
412				alt += oembedData.author_name ? ' - ' + oembedData.author_name : '';
413				alt += oembedData.provider_name ? ' - ' + oembedData.provider_name : '';
414
415				if (oembedData.url) {
416						code = '<div><a href="' + url + '" target=\'_blank\'><img src="' + oembedData.url + '" alt="' + alt + '"/></a></div>';
417				} else if (oembedData.thumbnail_url) {
418						var newURL = oembedData.thumbnail_url.replace('_s', '_b');
419						code = '<div><a href="' + url + '" target=\'_blank\'><img src="' + newURL + '" alt="' + alt + '"/></a></div>';
420				} else {
421						code = '<div>Error loading this picture</div>';
422				}
423
424				if (oembedData.html) {
425						code += "<div>" + oembedData.html + "</div>";
426				}
427
428				return code;
429		};
430
431		$.fn.oembed.getRichCode = function (url, oembedData) {
432				return oembedData.html;
433		};
434
435		$.fn.oembed.getGenericCode = function (url, oembedData) {
436				var title = ((oembedData.title) && (oembedData.title !== null)) ? oembedData.title : url;
437				var code = '<a href="' + url + '">' + title + '</a>';
438
439				if (oembedData.html) {
440						code += "<div>" + oembedData.html + "</div>";
441				}
442
443				return code;
444		};
445
446		$.fn.oembed.getOEmbedProvider = function (url) {
447				for (var i = 0; i < $.fn.oembed.providers.length; i++) {
448						for (var j = 0, l = $.fn.oembed.providers[i].urlschemes.length; j < l; j++) {
449								var regExp = new RegExp($.fn.oembed.providers[i].urlschemes[j], "i");
450							
451								if (url.match(regExp) !== null) {
452										return $.fn.oembed.providers[i];
453								}
454						}
455				}
456				return null;
457		};
458
459		// Constructor Function for OEmbedProvider Class.
460		$.fn.oembed.OEmbedProvider = function (name, type, urlschemesarray, apiendpoint, extraSettings) {
461				this.name = name;
462				this.type = type; // "photo", "video", "link", "rich", null
463				this.urlschemes = urlschemesarray;
464				this.apiendpoint = apiendpoint;
465				this.maxWidth = 500;
466				this.maxHeight = 400;
467				extraSettings = extraSettings || {};
468
469				if (extraSettings.useYQL) {
470
471						if (extraSettings.useYQL == 'xml') {
472								extraSettings.yql = {
473										xpath: "//oembed/html",
474										from: 'xml',
475										apiendpoint: this.apiendpoint,
476										url: function (externalurl) {
477												return this.apiendpoint + '?format=xml&url=' + externalurl
478										},
479										datareturn: function (results) {
480												return results.html.replace(/.*\[CDATA\[(.*)\]\]>$/, '$1') || ''
481										}
482								};
483						} else {
484								extraSettings.yql = {
485										from: 'json',
486										apiendpoint: this.apiendpoint,
487										url: function (externalurl) {
488												return this.apiendpoint + '?format=json&url=' + externalurl
489										},
490										datareturn: function (results) {
491												if (results.json.type != 'video' && (results.json.url || results.json.thumbnail_url)) {
492														return '<img src="' + (results.json.url || results.json.thumbnail_url) + '" />';
493												}
494												return results.json.html || ''
495										}
496								};
497						}
498						this.apiendpoint = null;
499				}
500
501
502				for (var property in extraSettings) {
503						this[property] = extraSettings[property];
504				}
505
506				this.format = this.format || 'json';
507				this.callbackparameter = this.callbackparameter || "callback";
508				this.embedtag = this.embedtag || {tag: ""};
509
510
511		};
512
513		/*
514	 * Function to update existing providers
515	 *
516	 * @param {String} name The name of the provider @param {String} type The
517	 * type of the provider can be "file", "photo", "video", "rich" @param
518	 * {String} urlshemesarray Array of url of the provider @param {String}
519	 * apiendpoint The endpoint of the provider @param {String} extraSettings
520	 * Extra settings of the provider
521	 */
522		$.fn.updateOEmbedProvider = function (name, type, urlschemesarray, apiendpoint, extraSettings) {
523				for (var i = 0; i < $.fn.oembed.providers.length; i++) {
524						if ($.fn.oembed.providers[i].name === name) {
525								if (type !== null) {
526										$.fn.oembed.providers[i].type = type;
527								}
528								if (urlschemesarray !== null) {
529										$.fn.oembed.providers[i].urlschemes = urlschemesarray;
530								}
531								if (apiendpoint !== null) {
532										$.fn.oembed.providers[i].apiendpoint = apiendpoint;
533								}
534								if (extraSettings !== null) {
535										$.fn.oembed.providers[i].extraSettings = extraSettings;
536										for (var property in extraSettings) {
537												if (property !== null && extraSettings[property] !== null) {
538														$.fn.oembed.providers[i][property] = extraSettings[property];
539												}
540										}
541								}
542						}
543				}
544		};
545
546//						
547
548		/* Native & common providers */
549		$.fn.oembed.providers = [
550				// Video
551				new $.fn.oembed.OEmbedProvider("youtube", "video", ["youtube\\.com/watch.+v=[\\w-]+&?", "youtu\\.be/[\\w-]+", "youtube.com/embed"], '//www.youtube.com/embed/$1?rel=0&wmode=transparent', {
552						templateRegex: /.*(?:v\=|be\/|embed\/)([\w\-]+)&?.*/, embedtag: {tag: 'iframe', width: '425', height: '350'}
553				}),
554				new $.fn.oembed.OEmbedProvider("videopoznan", "video", ["video\\.poznan\\.pl/.+", "video\\.poznan\\.pl/player/build_poznanpl/index\\.html\\?id=.+"]
555					, "//video.poznan.pl/player/build_poznanpl/index.html?id=$1&autoplay=false",
556					{
557						templateRegex: /.*build_poznanpl\/index\.html\?id=(\d+).*/,
558						embedtag: {tag: 'iframe', width: '100%', height: '450'},
559						nocache: 1
560					}),
561				new $.fn.oembed.OEmbedProvider("videopoznanproxy", "video", ["www\\.poznan\\.pl/player/build_poznanpl/index\\.html\\?id=.+"]
562					, "//www.poznan.pl/player/build_poznanpl/index.html?id=$1&autoplay=false",
563					{
564						templateRegex: /.*build_poznanpl\/index\.html\?id=(\d+).*/,
565						embedtag: {tag: 'iframe', width: '100%', height: '450'},
566						nocache: 1
567					}),
568				new $.fn.oembed.OEmbedProvider("wistia", "video", ["wistia.com/medias/.+", "wistia.com/m/.+", "wistia.com/embed/.+", "wi.st/m/.+", "wi.st/embed/.+"], 'http://fast.wistia.com/oembed', {useYQL: 'json'}),
569				new $.fn.oembed.OEmbedProvider("xtranormal", "video", ["xtranormal\\.com/watch/.+"], "http://www.xtranormal.com/xtraplayr/$1/$2", {
570						templateRegex: /.*com\/watch\/([\w\-]+)\/([\w\-]+).*/, embedtag: {tag: 'iframe', width: '320', height: '269'}}),
571				new $.fn.oembed.OEmbedProvider("scivee", "video", ["scivee.tv/node/.+"], "http://www.scivee.tv/flash/embedCast.swf?", {
572						templateRegex: /.*tv\/node\/(.+)/, embedtag: {width: '480', height: '400', flashvars: "id=$1&type=3"}}),
573				new $.fn.oembed.OEmbedProvider("veoh", "video", ["veoh.com/watch/.+"], "http://www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1337&permalinkId=$1&player=videodetailsembedded&videoAutoPlay=0&id=anonymous", {
574						templateRegex: /.*watch\/([^\?]+).*/, embedtag: {width: '410', height: '341'}}),
575				new $.fn.oembed.OEmbedProvider("gametrailers", "video", ["gametrailers\\.com/video/.+"], "http://media.mtvnservices.com/mgid:moses:video:gametrailers.com:$2", {
576						templateRegex: /.*com\/video\/([\w\-]+)\/([\w\-]+).*/, embedtag: {width: '512', height: '288' }}),
577				new $.fn.oembed.OEmbedProvider("funnyordie", "video", ["funnyordie\\.com/videos/.+"], "http://player.ordienetworks.com/flash/fodplayer.swf?", {
578						templateRegex: /.*videos\/([^\/]+)\/([^\/]+)?/, embedtag: {width: 512, height: 328, flashvars: "key=$1"}}),
579				new $.fn.oembed.OEmbedProvider("colledgehumour", "video", ["collegehumor\\.com/video/.+"], "http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=$1&use_node_id=true&fullscreen=1",
580						{templateRegex: /.*video\/([^\/]+).*/, embedtag: {width: 600, height: 338}}),
581				new $.fn.oembed.OEmbedProvider("metacafe", "video", ["metacafe\\.com/watch/.+"], "http://www.metacafe.com/fplayer/$1/$2.swf",
582						{templateRegex: /.*watch\/(\d+)\/(\w+)\/.*/, embedtag: {width: 400, height: 345}}),
583				new $.fn.oembed.OEmbedProvider("bambuser", "video", ["bambuser\\.com\/channel\/.*\/broadcast\/.*"], "http://static.bambuser.com/r/player.swf?vid=$1",
584						{templateRegex: /.*bambuser\.com\/channel\/.*\/broadcast\/(\w+).*/, embedtag: {width: 512, height: 339 }}),
585				new $.fn.oembed.OEmbedProvider("twitvid", "video", ["twitvid\\.com/.+"], "http://www.twitvid.com/embed.php?guid=$1&autoplay=0",
586						{templateRegex: /.*twitvid\.com\/(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }}),
587				new $.fn.oembed.OEmbedProvider("aniboom", "video", ["aniboom\\.com/animation-video/.+"], "http://api.aniboom.com/e/$1",
588						{templateRegex: /.*animation-video\/(\d+).*/, embedtag: {width: 594, height: 334}}),
589				new $.fn.oembed.OEmbedProvider("vzaar", "video", ["vzaar\\.com/videos/.+", "vzaar.tv/.+"], "http://view.vzaar.com/$1/player?",
590						{templateRegex: /.*\/(\d+).*/, embedtag: {tag: 'iframe', width: 576, height: 324 }}),
591				new $.fn.oembed.OEmbedProvider("snotr", "video", ["snotr\\.com/video/.+"], "http://www.snotr.com/embed/$1",
592						{templateRegex: /.*\/(\d+).*/, embedtag: {tag: 'iframe', width: 400, height: 330}, nocache: 1 }),
593				new $.fn.oembed.OEmbedProvider("youku", "video", ["v.youku.com/v_show/id_.+"], "http://player.youku.com/player.php/sid/$1/v.swf",
594						{templateRegex: /.*id_(.+)\.html.*/, embedtag: {width: 480, height: 400}, nocache: 1 }),
595				new $.fn.oembed.OEmbedProvider("tudou", "video", ["tudou.com/programs/view/.+\/"], "http://www.tudou.com/v/$1/v.swf",
596						{templateRegex: /.*view\/(.+)\//, embedtag: {width: 480, height: 400}, nocache: 1 }),
597				new $.fn.oembed.OEmbedProvider("embedr", "video", ["embedr\\.com/playlist/.+"], "http://embedr.com/swf/slider/$1/425/520/default/false/std?",
598						{templateRegex: /.*playlist\/([^\/]+).*/, embedtag: {width: 425, height: 520}}),
599				new $.fn.oembed.OEmbedProvider("blip", "video", ["blip\\.tv/.+"], "//blip.tv/oembed/"),
600				new $.fn.oembed.OEmbedProvider("minoto-video", "video", ["http://api.minoto-video.com/publishers/.+/videos/.+", "http://dashboard.minoto-video.com/main/video/details/.+", "http://embed.minoto-video.com/.+"], "http://api.minoto-video.com/services/oembed.json", {useYQL: 'json'}),
601				new $.fn.oembed.OEmbedProvider("animoto", "video", ["animoto.com/play/.+"], "http://animoto.com/services/oembed"),
602				new $.fn.oembed.OEmbedProvider("hulu", "video", ["hulu\\.com/watch/.*"], "//www.hulu.com/api/oembed.json"),
603				new $.fn.oembed.OEmbedProvider("ustream", "video", ["ustream\\.tv/recorded/.*"], "http://www.ustream.tv/oembed", {useYQL: 'json'}),
604				new $.fn.oembed.OEmbedProvider("videojug", "video", ["videojug\\.com/(film|payer|interview).*"], "http://www.videojug.com/oembed.json", {useYQL: 'json'}),
605				new $.fn.oembed.OEmbedProvider("sapo", "video", ["videos\\.sapo\\.pt/.*"], "http://videos.sapo.pt/oembed", {useYQL: 'json'}),
606				new $.fn.oembed.OEmbedProvider("vodpod", "video", ["vodpod.com/watch/.*"], "http://vodpod.com/oembed.js", {useYQL: 'json'}),
607				new $.fn.oembed.OEmbedProvider("vimeo", "video", ["www\.vimeo\.com\/groups\/.*\/videos\/.*", "www\.vimeo\.com\/.*", "vimeo\.com\/groups\/.*\/videos\/.*", "vimeo\.com\/.*"], "//vimeo.com/api/oembed.json"),
608				new $.fn.oembed.OEmbedProvider("dailymotion", "video", ["dailymotion\\.com/.+"], '//www.dailymotion.com/services/oembed'),
609				new $.fn.oembed.OEmbedProvider("5min", "video", ["www\\.5min\\.com/.+"], 'http://api.5min.com/oembed.xml', {useYQL: 'xml'}),
610				new $.fn.oembed.OEmbedProvider("National Film Board of Canada", "video", ["nfb\\.ca/film/.+"], 'http://www.nfb.ca/remote/services/oembed/', {useYQL: 'json'}),
611				new $.fn.oembed.OEmbedProvider("qik", "video", ["qik\\.com/\\w+"], 'http://qik.com/api/oembed.json', {useYQL: 'json'}),
612				new $.fn.oembed.OEmbedProvider("revision3", "video", ["revision3\\.com"], "http://revision3.com/api/oembed/"),
613				new $.fn.oembed.OEmbedProvider("dotsub", "video", ["dotsub\\.com/view/.+"], "http://dotsub.com/services/oembed", {useYQL: 'json'}),
614				new $.fn.oembed.OEmbedProvider("clikthrough", "video", ["clikthrough\\.com/theater/video/\\d+"], "http://clikthrough.com/services/oembed"),
615				new $.fn.oembed.OEmbedProvider("Kinomap", "video", ["kinomap\\.com/.+"], "http://www.kinomap.com/oembed"),
616				new $.fn.oembed.OEmbedProvider("VHX", "video", ["vhx.tv/.+"], "http://vhx.tv/services/oembed.json"),
617				new $.fn.oembed.OEmbedProvider("bambuser", "video", ["bambuser.com/.+"], "http://api.bambuser.com/oembed/iframe.json"),
618				new $.fn.oembed.OEmbedProvider("justin.tv", "video", ["justin.tv/.+"], 'http://api.justin.tv/api/embed/from_url.json', {useYQL: 'json'}),
619				new $.fn.oembed.OEmbedProvider("vine", "video", ["vine.co/v/.*"], null,
620						{
621								templateRegex: /https?:\/\/w?w?w?.?vine\.co\/v\/([a-zA-Z0-9]*).*/,
622								template: '<iframe src="https://vine.co/v/$1/embed/postcard" width="600" height="600" allowfullscreen="true" allowscriptaccess="always" scrolling="no" frameborder="0"></iframe>' +
623										'<script async src="//platform.vine.co/static/scripts/embed.js" charset="utf-8"></script>',
624								nocache: 1
625						}),
626				new $.fn.oembed.OEmbedProvider("boxofficebuz", "video", ["boxofficebuz\\.com\\/embed/.+"], "http://boxofficebuz.com/embed/$1/$2", {templateRegex: [/.*boxofficebuz\.com\/embed\/(\w+)\/([\w*\-*]+)/], embedtag: {tag: 'iframe', width: 480, height: 360 }}),
627				new $.fn.oembed.OEmbedProvider("clipsyndicate", "video", ["clipsyndicate\\.com/video/play/.+", "clipsyndicate\\.com/embed/iframe\?.+"], "http://eplayer.clipsyndicate.com/embed/iframe?pf_id=1&show_title=0&va_id=$1&windows=1", {templateRegex: [/.*www\.clipsyndicate\.com\/video\/play\/(\w+)\/.*/, /.*eplayer\.clipsyndicate\.com\/embed\/iframe\?.*va_id=(\w+).*.*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
628				new $.fn.oembed.OEmbedProvider("coub", "video", ["coub\\.com/.+"], "http://www.coub.com/embed/$1?muted=false&autostart=false&originalSize=false&hideTopBar=false&noSiteButtons=false&startWithHD=false", {templateRegex: [/.*coub\.com\/embed\/(\w+)\?*.*/, /.*coub\.com\/view\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
629				new $.fn.oembed.OEmbedProvider("discoverychannel", "video", ["snagplayer\\.video\\.dp\\.discovery\\.com/.+"], "http://snagplayer.video.dp.discovery.com/$1/snag-it-player.htm?auto=no", {templateRegex: [/.*snagplayer\.video\.dp\.discovery\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }}),
630				new $.fn.oembed.OEmbedProvider("telly", "video", ["telly\\.com/.+"], "http://www.telly.com/embed.php?guid=$1&autoplay=0", {templateRegex: [/.*telly\.com\/embed\.php\?guid=(\w+).*/, /.*telly\.com\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }}),
631				new $.fn.oembed.OEmbedProvider("minilogs", "video", ["minilogs\\.com/.+"], "http://www.minilogs.com/e/$1", {templateRegex: [/.*minilogs\.com\/e\/(\w+).*/, /.*minilogs\.com\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
632				new $.fn.oembed.OEmbedProvider("viddy", "video", ["viddy\\.com/.+"], "http://www.viddy.com/embed/video/$1", {templateRegex: [/.*viddy\.com\/embed\/video\/(\.*)/, /.*viddy\.com\/video\/(\.*)/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
633				new $.fn.oembed.OEmbedProvider("worldstarhiphop", "video", ["worldstarhiphop\\.com\/embed/.+"], "http://www.worldstarhiphop.com/embed/$1", {templateRegex: /.*worldstarhiphop\.com\/embed\/(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
634				new $.fn.oembed.OEmbedProvider("zapiks", "video", ["zapiks\\.fr\/.+"], "http://www.zapiks.fr/index.php?action=playerIframe&media_id=$1&autoStart=fals", {templateRegex: /.*zapiks\.fr\/index.php\?[\w\=\&]*media_id=(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
635
636				// Audio
637				new $.fn.oembed.OEmbedProvider("official.fm", "rich", ["official.fm/.+"], 'http://official.fm/services/oembed', {useYQL: 'json'}),
638				new $.fn.oembed.OEmbedProvider("chirbit", "rich", ["chirb.it/.+"], 'http://chirb.it/oembed.json', {useYQL: 'json'}),
639				new $.fn.oembed.OEmbedProvider("chirbit", "audio", ["chirb\\.it/.+"], "http://chirb.it/wp/$1", {templateRegex: [/.*chirb\.it\/wp\/(\w+).*/, /.*chirb\.it\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
640				new $.fn.oembed.OEmbedProvider("Huffduffer", "rich", ["huffduffer.com/[-.\\w@]+/\\d+"], "http://huffduffer.com/oembed"),
641				new $.fn.oembed.OEmbedProvider("Spotify", "rich", ["open.spotify.com/(track|album|user)/"], "https://embed.spotify.com/oembed/"),
642				new $.fn.oembed.OEmbedProvider("shoudio", "rich", ["shoudio.com/.+", "shoud.io/.+"], "http://shoudio.com/api/oembed"),
643				new $.fn.oembed.OEmbedProvider("mixcloud", "rich", ["mixcloud.com/.+"], 'http://www.mixcloud.com/oembed/', {useYQL: 'json'}),
644				new $.fn.oembed.OEmbedProvider("rdio.com", "rich", ["rd.io/.+", "rdio.com"], "http://www.rdio.com/api/oembed/"),
645				new $.fn.oembed.OEmbedProvider("Soundcloud", "rich", ["soundcloud.com/.+", "snd.sc/.+"], "//soundcloud.com/oembed", {format: 'js'}),
646				new $.fn.oembed.OEmbedProvider("bandcamp", "rich", ["bandcamp\\.com/album/.+"], null,
647						{
648								yql: {
649										xpath: "//meta[contains(@content, \\'EmbeddedPlayer\\')]",
650										from: 'html',
651										datareturn: function (results) {
652												return results.meta ? '<iframe width="400" height="100" src="' + results.meta.content + '" allowtransparency="true" frameborder="0"></iframe>' : false;
653										}
654								}
655						}),
656
657				// Photo
658				new $.fn.oembed.OEmbedProvider("deviantart", "photo", ["deviantart.com/.+", "fav.me/.+", "deviantart.com/.+"], "//backend.deviantart.com/oembed", {format: 'jsonp'}),
659				new $.fn.oembed.OEmbedProvider("skitch", "photo", ["skitch.com/.+"], null,
660						{
661								yql: {
662										xpath: "json",
663										from: 'json',
664										url: function (externalurl) {
665												return 'http://skitch.com/oembed/?format=json&url=' + externalurl
666										},
667										datareturn: function (data) {
668												return $.fn.oembed.getPhotoCode(data.json.url, data.json);
669										}
670								}
671						}),
672				new $.fn.oembed.OEmbedProvider("mobypicture", "photo", ["mobypicture.com/user/.+/view/.+", "moby.to/.+"], "http://api.mobypicture.com/oEmbed"),
673				new $.fn.oembed.OEmbedProvider("flickr", "photo", ["flickr\\.com/photos/.+"], "//flickr.com/services/oembed", {callbackparameter: 'jsoncallback'}),
674				new $.fn.oembed.OEmbedProvider("photobucket", "photo", ["photobucket\\.com/(albums|groups)/.+"], "http://photobucket.com/oembed/"),
675				new $.fn.oembed.OEmbedProvider("instagram", "photo", ["instagr\\.?am(\\.com)?/.+"], "//api.instagram.com/oembed"),
676				// new $.fn.oembed.OEmbedProvider("yfrog", "photo",
677		// ["yfrog\\.(com|ru|com\\.tr|it|fr|co\\.il|co\\.uk|com\\.pl|pl|eu|us)/.+"],
678		// "http://www.yfrog.com/api/oembed",{useYQL:"json"}),
679				new $.fn.oembed.OEmbedProvider("SmugMug", "photo", ["smugmug.com/[-.\\w@]+/.+"], "http://api.smugmug.com/services/oembed/"),
680				new $.fn.oembed.OEmbedProvider("dribbble", "photo", ["dribbble.com/shots/.+"], "http://api.dribbble.com/shots/$1?callback=?",
681						{
682								templateRegex: /.*shots\/([\d]+).*/,
683								templateData: function (data) {
684										if (!data.image_teaser_url) {
685												return false;
686										}
687										return  '<img src="' + data.image_teaser_url + '"/>';
688								}
689						}),
690				new $.fn.oembed.OEmbedProvider("chart.ly", "photo", ["chart\\.ly/[a-z0-9]{6,8}"], "http://chart.ly/uploads/large_$1.png",
691						{templateRegex: /.*ly\/([^\/]+).*/, embedtag: {tag: 'img'}, nocache: 1}),
692				// new $.fn.oembed.OEmbedProvider("stocktwits.com", "photo",
693		// ["stocktwits\\.com/message/.+"],
694		// "http://charts.stocktwits.com/production/original_$1.png?",
695				// { templateRegex: /.*message\/([^\/]+).*/, embedtag: { tag:
696		// 'img'},nocache:1 }),
697				new $.fn.oembed.OEmbedProvider("circuitlab", "photo", ["circuitlab.com/circuit/.+"], "https://www.circuitlab.com/circuit/$1/screenshot/540x405/",
698						{templateRegex: /.*circuit\/([^\/]+).*/, embedtag: {tag: 'img'}, nocache: 1}),
699				new $.fn.oembed.OEmbedProvider("23hq", "photo", ["23hq.com/[-.\\w@]+/photo/.+"], "http://www.23hq.com/23/oembed", {useYQL: "json"}),
700				new $.fn.oembed.OEmbedProvider("img.ly", "photo", ["img\\.ly/.+"], "//img.ly/show/thumb/$1",
701						{templateRegex: /.*ly\/([^\/]+).*/, embedtag: {tag: 'img'}, nocache: 1}),
702				new $.fn.oembed.OEmbedProvider("twitgoo.com", "photo", ["twitgoo\\.com/.+"], "http://twitgoo.com/show/thumb/$1",
703						{templateRegex: /.*com\/([^\/]+).*/, embedtag: {tag: 'img'}, nocache: 1}),
704				new $.fn.oembed.OEmbedProvider("imgur.com", "photo", ["imgur\\.com/gallery/.+"], "http://imgur.com/$1l.jpg",
705						{templateRegex: /.*gallery\/([^\/]+).*/, embedtag: {tag: 'img'}, nocache: 1}),
706				new $.fn.oembed.OEmbedProvider("visual.ly", "rich", ["visual\\.ly/.+"], null,
707						{
708								yql: {
709										xpath: "//a[@id=\\'gc_article_graphic_image\\']/img",
710										from: 'htmlstring'
711								}
712						}),
713				new $.fn.oembed.OEmbedProvider("achewood", "photo", ["achewood\\.com\\/index.php\\?date=.+"], "http://www.achewood.com/comic.php?date=$1", {templateRegex: /.*achewood\.com\/index.php\?date=(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
714				new $.fn.oembed.OEmbedProvider("fotokritik", "photo", ["fotokritik\\.com/.+"], "http://www.fotokritik.com/embed/$1", {templateRegex: [/.*fotokritik\.com\/embed\/(\w+).*/, /.*fotokritik\.com\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
715				new $.fn.oembed.OEmbedProvider("giflike", "photo", ["giflike\\.com/.+"], "http://www.giflike.com/embed/$1", {templateRegex: [/.*giflike\.com\/embed\/(\w+).*/, /.*giflike\.com\/a\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
716
717				// Rich
718				new $.fn.oembed.OEmbedProvider("twitter", "rich", ["twitter.com/.+"], "https://api.twitter.com/1/statuses/oembed.json"),
719				new $.fn.oembed.OEmbedProvider("gmep", "rich", ["gmep.imeducate.com/.*", "gmep.org/.*"], "http://gmep.org/oembed.json"),
720				new $.fn.oembed.OEmbedProvider("urtak", "rich", ["urtak.com/(u|clr)/.+"], "http://oembed.urtak.com/1/oembed"),
721				new $.fn.oembed.OEmbedProvider("cacoo", "rich", ["cacoo.com/.+"], "http://cacoo.com/oembed.json"),
722				new $.fn.oembed.OEmbedProvider("dailymile", "rich", ["dailymile.com/people/.*/entries/.*"], "http://api.dailymile.com/oembed"),
723				new $.fn.oembed.OEmbedProvider("documentcloud", "rich", ["documentcloud.org/documents/.+"], "https://www.documentcloud.org/api/oembed.json"),
724				new $.fn.oembed.OEmbedProvider("dipity", "rich", ["dipity.com/timeline/.+"], 'http://www.dipity.com/oembed/timeline/', {useYQL: 'json'}),
725				new $.fn.oembed.OEmbedProvider("sketchfab", "rich", ["sketchfab.com/show/.+"], 'http://sketchfab.com/oembed', {useYQL: 'json'}),
726				new $.fn.oembed.OEmbedProvider("speakerdeck", "rich", ["speakerdeck.com/.+"], 'http://speakerdeck.com/oembed.json', {useYQL: 'json'}),
727				new $.fn.oembed.OEmbedProvider("popplet", "rich", ["popplet.com/app/.*"], "http://popplet.com/app/Popplet_Alpha.swf?page_id=$1&em=1",
728						{
729								templateRegex: /.*#\/([^\/]+).*/,
730								embedtag: {
731										width: 460,
732										height: 460
733								}
734						}),
735
736				new $.fn.oembed.OEmbedProvider("pearltrees", "rich", ["pearltrees.com/.*"], "http://cdn.pearltrees.com/s/embed/getApp?",
737						{
738								templateRegex: /.*N-f=1_(\d+).*N-p=(\d+).*/,
739								embedtag: {
740										width: 460,
741										height: 460,
742										flashvars: "lang=en_US&amp;embedId=pt-embed-$1-693&amp;treeId=$1&amp;pearlId=$2&amp;treeTitle=Diagrams%2FVisualization&amp;site=www.pearltrees.com%2FF"
743								}
744						}),
745
746				new $.fn.oembed.OEmbedProvider("prezi", "rich", ["prezi.com/.*"], "//prezi.com/bin/preziloader.swf?",
747						{
748								templateRegex: /.*com\/([^\/]+)\/.*/,
749								embedtag: {
750										width: 550,
751										height: 400,
752										flashvars: "prezi_id=$1&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"
753								}
754						}),
755
756				new $.fn.oembed.OEmbedProvider("tourwrist", "rich", ["tourwrist.com/tours/.+"], null,
757						{
758								templateRegex: /.*tours.([\d]+).*/,
759								template: function (wm, tourid) {
760										setTimeout(function () {
761												if (loadEmbeds)loadEmbeds();
762										}, 2000);
763										return "<div id='" + tourid + "' class='tourwrist-tour-embed direct'></div> <script type='text/javascript' src='http://tourwrist.com/tour_embed.js'></script>";
764								}
765						}),
766
767				new $.fn.oembed.OEmbedProvider("meetup", "rich", ["meetup\\.(com|ps)/.+"], "http://api.meetup.com/oembed"),
768				new $.fn.oembed.OEmbedProvider("ebay", "rich", ["ebay\\.*"], "http://togo.ebay.com/togo/togo.swf?2008013100",
769						{
770								templateRegex: /.*\/([^\/]+)\/(\d{10,13}).*/,
771								embedtag: {
772										width: 355,
773										height: 300,
774										flashvars: "base=http://togo.ebay.com/togo/&lang=en-us&mode=normal&itemid=$2&query=$1"
775								}
776						}),
777				new $.fn.oembed.OEmbedProvider("wikipedia", "rich", ["wikipedia.org/wiki/.+"], "http://$1.wikipedia.org/w/api.php?action=parse&page=$2&format=json&section=0&callback=?", {
778						templateRegex: /.*\/\/([\w]+).*\/wiki\/([^\/]+).*/,
779						templateData: function (data) {
780								if (!data.parse)
781										return false;
782								var text = data.parse['text']['*'].replace(/href="\/wiki/g, 'href="http://en.wikipedia.org/wiki');
783								return  '<div id="content"><h3><a class="nav-link" href="http://en.wikipedia.org/wiki/' + data.parse['displaytitle'] + '">' + data.parse['displaytitle'] + '</a></h3>' + text + '</div>';
784						}
785				}),
786				new $.fn.oembed.OEmbedProvider("imdb", "rich", ["imdb.com/title/.+"], "http://www.imdbapi.com/?i=$1&callback=?",
787						{
788								templateRegex: /.*\/title\/([^\/]+).*/,
789								templateData: function (data) {
790										if (!data.Title)
791												return false;
792										return  '<div id="content"><h3><a class="nav-link" href="http://imdb.com/title/' + data.imdbID + '/">' + data.Title + '</a> (' + data.Year + ')</h3><p>Rating: ' + data.imdbRating + '<br/>Genre: ' + data.Genre + '<br/>Starring: ' + data.Actors + '</p></div>  <div id="view-photo-caption">' + data.Plot + '</div></div>';
793								}
794						}),
795				new $.fn.oembed.OEmbedProvider("livejournal", "rich", ["livejournal.com/"], "http://ljpic.seacrow.com/json/$2$4?jsonp=?"
796						, {
797								templateRegex: /(http:\/\/(((?!users).)+)\.livejournal\.com|.*users\.livejournal\.com\/([^\/]+)).*/,
798								templateData: function (data) {
799										if (!data.username)
800												return false;
801										return  '<div><img src="' + data.image + '" align="left" style="margin-right: 1em;" /><span class="oembedall-ljuser"><a href="http://' + data.username + '.livejournal.com/profile"><img src="http://www.livejournal.com/img/userinfo.gif" alt="[info]" width="17" height="17" /></a><a href="http://' + data.username + '.livejournal.com/">' + data.username + '</a></span><br />' + data.name + '</div>';
802								}
803						}),
804				new $.fn.oembed.OEmbedProvider("circuitbee", "rich", ["circuitbee\\.com/circuit/view/.+"], "http://c.circuitbee.com/build/r/schematic-embed.html?id=$1",
805						{
806								templateRegex: /.*circuit\/view\/(\d+).*/,
807								embedtag: {
808										tag: 'iframe',
809										width: '500',
810										height: '350'
811								}
812						}),
813
814				new $.fn.oembed.OEmbedProvider("googlecalendar", "rich", ["www.google.com/calendar/embed?.+"], "$1",
815						{templateRegex: /(.*)/, embedtag: {tag: 'iframe', width: '800', height: '600' }}),
816				new $.fn.oembed.OEmbedProvider("jsfiddle", "rich", ["jsfiddle.net/[^/]+/?"], "http://jsfiddle.net/$1/embedded/result,js,resources,html,css/?",
817						{templateRegex: /.*net\/([^\/]+).*/, embedtag: {tag: 'iframe', width: '100%', height: '300' }}),
818				new $.fn.oembed.OEmbedProvider("jsbin", "rich", ["jsbin.com/.+"], "http://jsbin.com/$1/?",
819						{templateRegex: /.*com\/([^\/]+).*/, embedtag: {tag: 'iframe', width: '100%', height: '300' }}),
820				new $.fn.oembed.OEmbedProvider("jotform", "rich", ["form.jotform.co/form/.+"], "$1?",
821						{templateRegex: /(.*)/, embedtag: {tag: 'iframe', width: '100%', height: '507' }}),
822				new $.fn.oembed.OEmbedProvider("reelapp", "rich", ["reelapp\\.com/.+"], "http://www.reelapp.com/$1/embed",
823						{templateRegex: /.*com\/(\S{6}).*/, embedtag: {tag: 'iframe', width: '400', height: '338'}}),
824				new $.fn.oembed.OEmbedProvider("linkedin", "rich", ["linkedin.com/pub/.+"], "https://www.linkedin.com/cws/member/public_profile?public_profile_url=$1&format=inline&isFramed=true",
825						{templateRegex: /(.*)/, embedtag: {tag: 'iframe', width: '368px', height: 'auto'}}),
826				new $.fn.oembed.OEmbedProvider("timetoast", "rich", ["timetoast.com/timelines/[0-9]+"], "http://www.timetoast.com/flash/TimelineViewer.swf?passedTimelines=$1",
827						{templateRegex: /.*timelines\/([0-9]*)/, embedtag: { width: 550, height: 400}, nocache: 1}),
828				new $.fn.oembed.OEmbedProvider("pastebin", "rich", ["pastebin\\.com/[\\S]{8}"], "http://pastebin.com/embed_iframe.php?i=$1",
829						{templateRegex: /.*\/(\S{8}).*/, embedtag: {tag: 'iframe', width: '100%', height: 'auto'}}),
830				new $.fn.oembed.OEmbedProvider("mixlr", "rich", ["mixlr.com/.+"], "http://mixlr.com/embed/$1?autoplay=ae",
831						{templateRegex: /.*com\/([^\/]+).*/, embedtag: {tag: 'iframe', width: '100%', height: 'auto' }}),
832				new $.fn.oembed.OEmbedProvider("pastie", "rich", ["pastie\\.org/pastes/.+"], null, {yql: {xpath: '//pre[@class="textmate-source"]'}}),
833				new $.fn.oembed.OEmbedProvider("github", "rich", ["gist.github.com/.+"], "https://github.com/api/oembed"),
834				new $.fn.oembed.OEmbedProvider("github", "rich", ["github.com/[-.\\w@]+/[-.\\w@]+"], "https://api.github.com/repos/$1/$2?callback=?"
835						, {templateRegex: /.*\/([^\/]+)\/([^\/]+).*/,
836								templateData: function (data) {
837										if (!data.data.html_url)return false;
838										return  '<div class="oembedall-githubrepos"><ul class="oembedall-repo-stats"><li>' + data.data.language + '</li><li class="oembedall-watchers"><a title="Watchers" href="' + data.data.html_url + '/watchers">&#x25c9; ' + data.data.watchers + '</a></li>'
839												+ '<li class="oembedall-forks"><a title="Forks" href="' + data.data.html_url + '/network">&#x0265; ' + data.data.forks + '</a></li></ul><h3><a href="' + data.data.html_url + '">' + data.data.name + '</a></h3><div class="oembedall-body"><p class="oembedall-description">' + data.data.description + '</p>'
840												+ '<p class="oembedall-updated-at">Last updated: ' + data.data.pushed_at + '</p></div></div>';
841								}
842						}),
843				new $.fn.oembed.OEmbedProvider("facebook", "rich", ["facebook.com"], null
844						, {templateRegex: /.*\/([^\/]+)\/([^\/]+).*/,
845								template: function (url) {
846										// adding script directly to DOM to make sure that it is
847					// loaded correctly.
848										if (!$.fn.oembed.facebokScriptHasBeenAdded) {
849												$('<div id="fb-root"></div>').appendTo('body');
850												var script = document.createElement('script');
851												script.type = 'text/javascript';
852												script.text = '(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0";fjs.parentNode.insertBefore(js, fjs);}(document, "script", "facebook-jssdk"));';
853												document.body.appendChild(script);
854												$.fn.oembed.facebokScriptHasBeenAdded = true;
855										}
856
857										// returning template with url of facebook post.
858										return '<div class="fb-post" data-href="' + url + '" data-width="520"><div class="fb-xfbml-parse-ignore"><a href="' + url + '"></div></div>';
859
860								}
861						}),
862				/*
863		 * // Saving old implementation of Facebook in case we will need it as
864		 * example in the future. new $.fn.oembed.OEmbedProvider("facebook",
865		 * "rich", ["facebook.com/(people/[^\\/]+/\\d+|[^\\/]+$)"],
866		 * "https://graph.facebook.com/$2$3/?callback=?"
867		 * ,{templateRegex:/.*facebook.com\/(people\/[^\/]+\/(\d+).*|([^\/]+$))/,
868		 * templateData : function(data){ if(!data.id)return false; var out = '<div
869		 * class="oembedall-facebook1"><div class="oembedall-facebook2"><a
870		 * href="http://www.facebook.com/">facebook</a> '; if(data.from) out += '<a
871		 * href="http://www.facebook.com/'+data.from.id+'">
871'+data.from.name+'</a>';
872		 * else if(data.link) out += '<a href="'+data.link+'">'+data.name+'</a>';
873		 * else if(data.username) out += '<a
874		 * href="http://www.facebook.com/'+data.username+'">'+data.name+'</a>';
875		 * else out += '<a
876		 * href="http://www.facebook.com/'+data.id+'">'+data.name+'</a>'; out += '</div><div
877		 * class="oembedall-facebookBody"><div class="contents">';
878		 * if(data.picture) out += '<a href="'+data.link+'"><img
879		 * src="'+data.picture+'"></a>'; else out += '<img
880		 * src="https://graph.facebook.com/'+data.id+'/picture">'; if(data.from)
881		 * out += '<a href="'+data.link+'">'+data.name+'</a>';
882		 * if(data.founded) out += 'Founded: <strong>'+data.founded+'</strong><br>';
883		 * if(data.category) out += 'Category: <strong>'+data.category+'</strong><br>';
884		 * if(data.website) out += 'Website: <strong><a
885		 * href="'+data.website+'">'+data.website+'</a></strong><br>';
886		 * if(data.gender) out += 'Gender: <strong>'+data.gender+'</strong><br>';
887		 * if(data.description) out += data.description + '<br>'; out += '</div></div>';
888		 * return out; } }),
889		 */
890				new $.fn.oembed.OEmbedProvider("stackoverflow", "rich", ["stackoverflow.com/questions/[\\d]+"], "http://api.stackoverflow.com/1.1/questions/$1?body=true&jsonp=?"
891						, {templateRegex: /.*questions\/([\d]+).*/,
892								templateData: function (data) {
893										if (!data.questions)
894												return false;
895										var q = data.questions[0];
896										var body = $(q.body).text();
897										var out = '<div class="oembedall-stoqembed"><div class="oembedall-statscontainer"><div class="oembedall-statsarrow"></div><div class="oembedall-stats"><div class="oembedall-vote"><div class="oembedall-votes">'
898												+ '<span class="oembedall-vote-count-post"><strong>' + (q.up_vote_count - q.down_vote_count) + '</strong></span><div class="oembedall-viewcount">vote(s)</div></div>'
899												+ '</div><div class="oembedall-status"><strong>' + q.answer_count + '</strong>answer</div></div><div class="oembedall-views">' + q.view_count + ' view(s)</div></div>'
900												+ '<div class="oembedall-summary"><h3><a class="oembedall-question-hyperlink" href="http://stackoverflow.com/questions/' + q.question_id + '/">' + q.title + '</a></h3>'
901												+ '<div class="oembedall-excerpt">' + body.substring(0, 100) + '...</div><div class="oembedall-tags">';
902										for (i in q.tags) {
903												out += '<a title="" class="oembedall-post-tag" href="http://stackoverflow.com/questions/tagged/' + q.tags[i] + '">' + q.tags[i] + '</a>';
904										}
905
906										out += '</div><div class="oembedall-fr"><div class="oembedall-user-info"><div class="oembedall-user-gravatar32"><a href="http://stackoverflow.com/users/' + q.owner.user_id + '/' + q.owner.display_name + '">'
907												+ '<img width="32" height="32" alt="" src="http://www.gravatar.com/avatar/' + q.owner.email_hash + '?s=32&amp;d=identicon&amp;r=PG"></a></div><div class="oembedall-user-details">'
908												+ '<a href="http://stackoverflow.com/users/' + q.owner.user_id + '/' + q.owner.display_name + '">' + q.owner.display_name + '</a><br><span title="reputation score" class="oembedall-reputation-score">'
909												+ q.owner.reputation + '</span></div></div></div></div></div>';
910										return out;
911								}
912						}),
913				new $.fn.oembed.OEmbedProvider("wordpress", "rich", ["wordpress\\.com/.+", "blogs\\.cnn\\.com/.+", "techcrunch\\.com/.+", "wp\\.me/.+"], "http://public-api.wordpress.com/oembed/1.0/?for=jquery-oembed-all"),
914				new $.fn.oembed.OEmbedProvider("screenr", "rich", ["screenr\.com"], "http://www.screenr.com/embed/$1",
915						{templateRegex: /.*\/([^\/]+).*/, embedtag: {tag: 'iframe', width: '650', height: 396}}) ,
916				new $.fn.oembed.OEmbedProvider("gigpans", "rich", ["gigapan\\.org/[-.\\w@]+/\\d+"], "http://gigapan.org/gigapans/$1/options/nosnapshots/iframe/flash.html",
917						{templateRegex: /.*\/(\d+)\/?.*/, embedtag: {tag: 'iframe', width: '100%', height: 400 }}),
918				new $.fn.oembed.OEmbedProvider("scribd", "rich", ["scribd\\.com/.+"], "http://www.scribd.com/embeds/$1/content?start_page=1&view_mode=list",
919						{templateRegex: /.*doc\/([^\/]+).*/, embedtag: {tag: 'iframe', width: '100%', height: 600}}),
920				new $.fn.oembed.OEmbedProvider("kickstarter", "rich", ["kickstarter\\.com/projects/.+"], "$1/widget/card.html",
921						{templateRegex: /([^\?]+).*/, embedtag: {tag: 'iframe', width: '220', height: 380}}),
922				new $.fn.oembed.OEmbedProvider("amazon", "rich", ["amzn.com/B+", "amazon.com.*/(B\\S+)($|\\/.*)"], "http://rcm.amazon.com/e/cm?t=_APIKEY_&o=1&p=8&l=as1&asins=$1&ref=qf_br_asin_til&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr",
923						{
924								apikey: true,
925								templateRegex: /.*\/(B[0-9A-Z]+)($|\/.*)/,
926								embedtag: {
927										tag: 'iframe',
928										width: '120px',
929										height: '240px'}
930						}),
931				new $.fn.oembed.OEmbedProvider("slideshare", "rich", ["slideshare\.net"], "//www.slideshare.net/api/oembed/2", {format: 'jsonp'}),
932				new $.fn.oembed.OEmbedProvider("roomsharejp", "rich", ["roomshare\\.jp/(en/)?post/.*"], "http://roomshare.jp/oembed.json"),
933				new $.fn.oembed.OEmbedProvider("lanyard", "rich", ["lanyrd.com/\\d+/.+"], null,
934						{
935								yql: {
936										xpath: '(//div[@class="primary"])[1]',
937										from: 'htmlstring',
938										datareturn: function (results) {
939												if (!results.result)
940														return false;
941												return '<div class="oembedall-lanyard">' + results.result + '</div>';
942										}
943								}
944						}),
945				new $.fn.oembed.OEmbedProvider("asciiartfarts", "rich", ["asciiartfarts.com/\\d+.html"], null,
946						{
947								yql: {
948										xpath: '//pre/font',
949										from: 'htmlstring',
950										datareturn: function (results) {
951												if (!results.result)
952														return false;
953												return '<pre style="background-color:#000;">' + results.result + '</div>';
954										}
955								}
956						}),
957				new $.fn.oembed.OEmbedProvider("coveritlive", "rich", ["coveritlive.com/"], null, {
958						templateRegex: /(.*)/,
959						template: '<iframe src="$1" allowtransparency="true" scrolling="no" width="615px" frameborder="0" height="625px"></iframe>'}),
960				new $.fn.oembed.OEmbedProvider("polldaddy", "rich", ["polldaddy.com/"], null, {
961						templateRegex: /(?:https?:\/\/w?w?w?.?polldaddy.com\/poll\/)([0-9]*)\//,
962						template: '<script async type="text/javascript" charset="utf-8" src="http://static.polldaddy.com/p/$1.js"></script>',
963						nocache: 1
964				}),
965				new $.fn.oembed.OEmbedProvider("360io", "rich", ["360\\.io/.+"], "http://360.io/$1", {templateRegex: /.*360\.io\/(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
966				new $.fn.oembed.OEmbedProvider("bubbli", "rich", ["on\\.bubb\\.li/.+"], "http://on.bubb.li/$1", {templateRegex: /.*on\.bubb\.li\/(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360}, nocache: 1 }),
967				new $.fn.oembed.OEmbedProvider("cloudup", "rich", ["cloudup\\.com/.+"], "http://cloudup.com/$1?chromeless", {templateRegex: [/.*cloudup\.com\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }}),
968				new $.fn.oembed.OEmbedProvider("codepen", "rich", ["codepen.io/.+"], "http://codepen.io/$1/embed/$2", {templateRegex: [/.*io\/(\w+)\/pen\/(\w+).*/, /.*io\/(\w+)\/full\/(\w+).*/], embedtag: {tag: 'iframe', width: '100%', height: '300'}, nocache: 1 }),
969				new $.fn.oembed.OEmbedProvider("googleviews", "rich", ["(.*maps\\.google\\.com\\/maps\\?).+(output=svembed).+(cbp=(.*)).*"], "https://maps.google.com/maps?layer=c&panoid=$3&ie=UTF8&source=embed&output=svembed&cbp=$5", {templateRegex: /(.*maps\.google\.com\/maps\?).+(panoid=(\w+)&).*(cbp=(.*)).*/, embedtag: {tag: 'iframe', width: 480, height: 360}, nocache: 1 }),
970				new $.fn.oembed.OEmbedProvider("googlemaps", "rich", ["google\\.com\/maps\/place/.+"], "http://maps.google.com/maps?t=m&q=$1&output=embed", {templateRegex: /.*google\.com\/maps\/place\/([\w\+]*)\/.*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
971				new $.fn.oembed.OEmbedProvider("imajize", "rich", ["embed\\.imajize\\.com/.+"], "http://embed.imajize.com/$1", {templateRegex: /.*embed\.imajize\.com\/(.*)/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
972				new $.fn.oembed.OEmbedProvider("mapjam", "rich", ["mapjam\\.com/.+"], "http://www.mapjam.com/$1", {templateRegex: /.*mapjam\.com\/(.*)/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
973				new $.fn.oembed.OEmbedProvider("polar", "rich", ["polarb\\.com/.+"], "http://assets-polarb-com.a.ssl.fastly.net/api/v4/publishers/unknown/embedded_polls/iframe?poll_id=$1", {templateRegex: /.*polarb\.com\/polls\/(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
974				new $.fn.oembed.OEmbedProvider("ponga", "rich", ["ponga\\.com/.+"], "https://www.ponga.com/embedded?id=$1", {templateRegex: [/.*ponga\.com\/embedded\?id=(\w+).*/, /.*ponga\.com\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}),
975
976				// Use Open Graph Where applicable
977				new $.fn.oembed.OEmbedProvider("opengraph", "rich", [".*"], null,
978						{
979								yql: {
980										xpath: "//meta|//title|//link",
981										from: 'html',
982										datareturn: function (results) {
983												if (!results['og:title'] && results['title'] && results['description'])
984														results['og:title'] = results['title'];
985
986												if (!results['og:title'] && !results['title'])
987														return false;
988
989												var code = $('<p/>');
990												if (results['og:video']) {
991														var embed = $('<embed src="' + results['og:video'] + '"/>');
992														embed.attr('type', results['og:video:type'] || "application/x-shockwave-flash")
993																.css('max-height', settings.maxHeight || 'auto')
994																.css('max-width', settings.maxWidth || 'auto');
995														if (results['og:video:width'])
996																embed.attr('width', results['og:video:width']);
997														if (results['og:video:height'])
998																embed.attr('height', results['og:video:height']);
999														code.append(embed);
1000												} else if (results['og:image']) {
1001														var img = $('<img src="' + results['og:image'] + '">');
1002														img.css('max-height', settings.maxHeight || 'auto').css('max-width', settings.maxWidth || 'auto');
1003														if (results['og:image:width'])
1004																img.attr('width', results['og:image:width']);
1005														if (results['og:image:height'])
1006																img.attr('height', results['og:image:height']);
1007														code.append(img);
1008												}
1009
1010												if (results['og:title'])
1011														code.append('<b>' + results['og:title'] + '</b><br/>');
1012
1013												if (results['og:description'])
1014														code.append(results['og:description'] + '<br/>');
1015												else if (results['description'])
1016														code.append(results['description'] + '<br/>');
1017
1018												return code;
1019										}
1020								}
1021						}
1022				)
1023
1024		];
1025})(jQuery);
1026// This is needed for gravatar :(
1027String.prototype.md5=function(){var a=function(a,b){var c=(a&65535)+(b&65535);var d=(a>>16)+(b>>16)+(c>>16);return d<<16|c&65535};var b=function(a,b){return a<<b|a>>>32-b};var c=function(c,d,e,f,g,h){return a(b(a(a(d,c),a(f,h)),g),e)};var d=function(a,b,d,e,f,g,h){return c(b&d|~b&e,a,b,f,g,h)};var e=function(a,b,d,e,f,g,h){return c(b&e|d&~e,a,b,f,g,h)};var f=function(a,b,d,e,f,g,h){return c(b^d^e,a,b,f,g,h)};var g=function(a,b,d,e,f,g,h){return c(d^(b|~e),a,b,f,g,h)};var h=function(b){var c,h,i,j,k,l=b.length;var m=1732584193;var n=-271733879;var o=-1732584194;var p=271733878;for(k=0;k<l;k+=16){c=m;h=n;i=o;j=p;m=d(m,n,o,p,b[k+0],7,-680876936);p=d(p,m,n,o,b[k+1],12,-389564586);o=d(o,p,m,n,b[k+2],17,606105819);n=d(n,o,p,m,b[k+3],22,-1044525330);m=d(m,n,o,p,b[k+4],7,-176418897);p=d(p,m,n,o,b[k+5],12,1200080426);o=d(o,p,m,n,b[k+6],17,-1473231341);n=d(n,o,p,m,b[k+7],22,-45705983);m=d(m,n,o,p,b[k+8],7,1770035416);p=d(p,m,n,o,b[k+9],12,-1958414417);o=d(o,p,m,n,b[k+10],17,-42063);n=d(n,o,p,m,b[k+11],22,-1990404162);m=d(m,n,o,p,b[k+12],7,1804603682);p=d(p,m,n,o,b[k+13],12,-40341101);o=d(o,p,m,n,b[k+14],17,-1502002290);n=d(n,o,p,m,b[k+15],22,1236535329);m=e(m,n,o,p,b[k+1],5,-165796510);p=e(p,m,n,o,b[k+6],9,-1069501632);o=e(o,p,m,n,b[k+11],14,643717713);n=e(n,o,p,m,b[k+0],20,-373897302);m=e(m,n,o,p,b[k+5],5,-701558691);p=e(p,m,n,o,b[k+10],9,38016083);o=e(o,p,m,n,b[k+15],14,-660478335);n=e(n,o,p,m,b[k+4],20,-405537848);m=e(m,n,o,p,b[k+9],5,568446438);p=e(p,m,n,o,b[k+14],9,-1019803690);o=e(o,p,m,n,b[k+3],14,-187363961);n=e(n,o,p,m,b[k+8],20,1163531501);m=e(m,n,o,p,b[k+13],5,-1444681467);p=e(p,m,n,o,b[k+2],9,-51403784);o=e(o,p,m,n,b[k+7],14,1735328473);n=e(n,o,p,m,b[k+12],20,-1926607734);m=f(m,n,o,p,b[k+5],4,-378558);p=f(p,m,n,o,b[k+8],11,-2022574463);o=f(o,p,m,n,b[k+11],16,1839030562);n=f(n,o,p,m,b[k+14],23,-35309556);m=f(m,n,o,p,b[k+1],4,-1530992060);p=f(p,m,n,o,b[k+4],11,1272893353);o=f(o,p,m,n,b[k+7],16,-155497632);n=f(n,o,p,m,b[k+10],23,-1094730640);m=f(m,n,o,p,b[k+13],4,681279174);p=f(p,m,n,o,b[k+0],11,-358537222);o=f(o,p,m,n,b[k+3],16,-722521979);n=f(n,o,p,m,b[k+6],23,76029189);m=f(m,n,o,p,b[k+9],4,-640364487);p=f(p,m,n,o,b[k+12],11,-421815835);o=f(o,p,m,n,b[k+15],16,530742520);n=f(n,o,p,m,b[k+2],23,-995338651);m=g(m,n,o,p,b[k+0],6,-198630844);p=g(p,m,n,o,b[k+7],10,1126891415);o=g(o,p,m,n,b[k+14],15,-1416354905);n=g(n,o,p,m,b[k+5],21,-57434055);m=g(m,n,o,p,b[k+12],6,1700485571);p=g(p,m,n,o,b[k+3],10,-1894986606);o=g(o,p,m,n,b[k+10],15,-1051523);n=g(n,o,p,m,b[k+1],21,-2054922799);m=g(m,n,o,p,b[k+8],6,1873313359);p=g(p,m,n,o,b[k+15],10,-30611744);o=g(o,p,m,n,b[k+6],15,-1560198380);n=g(n,o,p,m,b[k+13],21,1309151649);m=g(m,n,o,p,b[k+4],6,-145523070);p=g(p,m,n,o,b[k+11],10,-1120210379);o=g(o,p,m,n,b[k+2],15,718787259);n=g(n,o,p,m,b[k+9],21,-343485551);m=a(m,c);n=a(n,h);o=a(o,i);p=a(p,j)}return[m,n,o,p]};var i=function(a){var b="0123456789abcdef",c="",d,e=a.length*4;for(d=0;d<e;d++){c+=b.charAt(a[d>>2]>>d%4*8+4&15)+b.charAt(a[d>>2]>>d%4*8&15)}return c};var j=function(a){var b=(a.length+8>>6)+1;var c=[],d,e=b*16,f,g=a.length;for(d=0;d<e;d++){c.push(0)}for(f=0;f<g;f++){c[f>>
10272]|=(a.charCodeAt(f)&255)<<f%4*8}c[f>>2]|=128<<f%4*8;c[b*16-2]=g*8;return c};return i(h(j(this)))};
1028
1029
1030/*! Loading Overlay - v1.0.2 - 2014-02-19
1031* http://jgerigmeyer.github.io/jquery-loading-overlay/
1032* Copyright (c) 2014 Jonny Gerig Meyer; Licensed MIT */
1033!function(a){"use strict";var b={init:function(b){var c=a.extend({},a.fn.loadingOverlay.defaults,b),d=a(this).addClass(c.loadingClass),e='<div class="'+c.overlayClass+'"><p class="'+c.spinnerClass+'"><span class="'+c.iconClass+'"></span><span class="'+c.textClass+'">'+c.loadingText+"</span></p></div>";return d.data("loading-overlay")||d.prepend(a(e)).data("loading-overlay",!0),d},remove:function(b){var c=a.extend({},a.fn.loadingOverlay.defaults,b),d=a(this).data("loading-overlay",!1);return d.find("."+c.overlayClass).detach(),d.hasClass(c.loadingClass)?d.removeClass(c.loadingClass):d.find("."+c.loadingClass).removeClass(c.loadingClass),d},exposeMethods:function(){return b}};a.fn.loadingOverlay=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.loadingOverlay"):b.init.apply(this,arguments)},a.fn.loadingOverlay.defaults={loadingClass:"loading",overlayClass:"loading-overlay",spinnerClass:"loading-spinner",iconClass:"loading-icon",textClass:"loading-text",loadingText:""}}(jQuery);
1034
1035var COOKIE = {
1036	set: function(key, val, o){
1037		o = o||{};
1038		val = encodeURIComponent(val);
1039		if (o.domain) {
1040			val += '; domain=' + o.domain;
1041		}
1042		if (o.path) {
1043			val += '; path=' + o.path;
1044		}
1045		else {
1046			val += '; path=/';
1047		}
1048		if (o.duration) {
1049			var date = new Date();
1050			date.setTime(date.getTime() + o.duration*24*60*60*1000);
1051			val += '; expires=' + date.toGMTString();
1052		}
1053		if (o.secure) {
1054			val += '; secure';
1055		}
1056		document.cookie = key + '=' + val;
1057	},
1058
1059	get: function(key){
1060		var m = document.cookie.match('(?:^|;)\\s*?' + key + '=([^;]*)');
1061		return (m) ? decodeURIComponent(m[1]) : null;
1062	},
1063
1064	remove: function(key){
1065		return this.set(key, "", {duration: -1});
1066	}
1067}
1068
1069$jq(document).ready(function() {
1070	$jq("a.oembed").oembed();
1071	var hcfSetCSS = function(el) {
1072		var css = $jq(el).attr('data-css');
1073		$oldCSS = $jq('body').attr('className');
1074		if ($oldCSS != undefined) {
1075			$jq('body').removeClass($oldCSS);
1076		}
1077
1078		$jq('body').attr('className', '');
1079		if (css != 'default') {
1080			$jq('body').addClass('hc_'+css);
1081			$jq('body').attr('className', 'hc_'+css);
1082		}
1083		COOKIE.set('poznanpl_hc_style', $jq('body').attr('className'));
1084	}
1085
1086	$jq('#catalog_contrast ul li a').click(function(e) { e.preventDefault(); hcfSetCSS(this); });
1087	$jq('.icon-high-contrast-big').click(function(e){ e.preventDefault(); $jq('#ln_high_contrast > a').click(); $jq('#catalog_contrast').focus(); });
1088
1089/**
1090*  ZARZĄDZANIE COOKIES BEGIN MIM
1091**/
1092	// po kliknięciu na tekst w footerze strona się przeładuje i resetuje ciastka
1093	$jq('.footer_links').on('click', '#change-cookies-label', function() {
1094			COOKIE.remove('poznanpl_hc_style')
1095			COOKIE.remove('poznanpl_cookies_ok')
1096			COOKIE.remove('poznanpl_videos_autoplay')
1097			COOKIE.remove('poznanpl_cookies_accepted')
1098			location.reload(true);
1099	});
1100
1101	if(COOKIE.get('poznanpl_cookies_accepted')) {
1102		$jq("#cookies-box-content").css('display', 'none');
1103		$jq('body').removeClass('body-not-accepted-cookies');
1104	}
1105	else {
1106		$jq("#cookies-box-content").css('display', 'block');
1107		$jq('body').addClass('body-not-accepted-cookies');
1108
1109		var pickedCookiesOption = 0;
1110
1111		var cookiesValidator = function() {
1112			if(pickedCookiesOption >= 1) {
1113				COOKIE.set("poznanpl_hc_style", "true", {duration: 99999});
1114			}
1115			if(pickedCookiesOption >= 2) {
1116				COOKIE.set("poznanpl_cookies_ok", "true", {duration: 99999});
1117				COOKIE.set("poznanpl_videos_autoplay", "true", {duration: 99999})
1118			}
1119			COOKIE.set("poznanpl_cookies_accepted", "true", {duration: 99999});
1120			$jq('body').removeClass('body-not-accepted-cookies');
1121			$jq('#cookies_box_top').hide();
1122			$jq("#cookies-box-content").slideUp();
1123		}
1124
1125		$jq("#cookies-button-ok").click(function(e) {
1126			cookiesValidator()
1127		});
1128
1129		$jq("#cookies-exit").click(function(e) {
1130			cookiesValidator()
1131		});
1132
1133		var appendCookiesTopText = function(text) {
1134			$jq("#cookies-top-text").append(text)
1135		}
1136	
1137		var emptyCookiesText = function() {
1138			$jq("#cookies-top-text").empty()
1139		}
1140	
1141		var displayCookiesWrapper = function(display_value) {
1142			$jq("#cookies-checkboxes-wrapper").css("display", display_value)
1143		}
1144	
1145		var displayCookiesLaws = function(display_value) {
1146			$jq("#cookies-laws-wrapper").css("display", display_value)
1147		}
1148
1149		//zmiana kontentu cookies klikniecie na button Powrót / Szczegółowe Infromacje
1150		$jq('#cookies-button-desc').on('click', function(e) {
1151				e.stopImmediatePropagation();
1152	
1153				var button_type = $jq("#cookies-button-desc").html();
1154				if (button_type.indexOf("Powr") >= 0) {
1155								$jq("#cookies-button-desc").html('Ustawienia')
1156								displayCookiesWrapper("none")
1157								displayCookiesLaws("inline-block")
1158								//wyświetlanie tekstu nagłówka
1159								$jq('#text_1').css('display', 'block')
1160								$jq('#text_2').css('display', 'none')
1161								//ustawienie elementow '#cookies-laws ul li' na domyslne - opcja rozwiń i brak tła
1162								$jq('#cookies-laws .more').html('<sub>rozwiń</sub>')
1163								$jq('#cookies-laws > ul > li').css('background-color', '')
1164				}
1165				if (button_type.indexOf("Ustawienia") >= 0) {
1166								$jq("#cookies-button-desc").html('Powrót')
1167	
1168								//wyświetlanie tekstu nagłówka
1169								$jq('#text_2').css('display', 'block')
1170								$jq('#text_1').css('display', 'none')
1171	
1172								displayCookiesWrapper("inline-block")
1173								displayCookiesLaws("none")
1174				}
1175		});
1176
1177		//wybór zakresu plików cookies
1178		var all_cookies = 4
1179		var pickedOptions = function(id) {
1180				var for_i = 0
1181				if(id === '1') {
1182						for_i = all_cookies
1183						pickedCookiesOption = 2
1184				}
1185				if(id === '2') {
1186						for_i = 3
1187						pickedCookiesOption = 1
1188				}
1189				if(id === '3') {
1190						for_i = 2
1191						pickedCookiesOption = 0
1192				}
1193	
1194				for(i = 1; i <= all_cookies; i++) {
1195						id = $jq('#agreed-cookies > li:nth-child(' + i +') > div')
1196						$jq(id).removeClass('agreed')
1197						$jq(id).addClass('blocked')
1198				}
1199	
1200				for(i = 0; i < for_i; i++) {
1201						id = $jq('#agreed-cookies > li:nth-child(' + (all_cookies - parseInt(i)) + ') > div')
1202						$jq(id).removeClass('blocked')
1203						$jq(id).addClass('agreed')
1204				}
1205		}
1206
1207		$jq('.styled-checkbox').on('change', function() {
1208				var isChecked = $jq(this).is(":checked");
1209	
1210				if(isChecked) {
1211						var id = $jq(this).attr('id').substring(16)
1212						$jq('.styled-checkbox').not($jq(this)).prop('checked', false);
1213						pickedOptions(id)
1214				} else {
1215						$jq('.styled-checkbox').not($jq(this)).prop('checked', false);
1216						for(i = 1; i <= all_cookies - 1; i++) { //agreed ustawione zawsze dla ostatniego elementu listy
1217								id = $jq('#agreed-cookies > li:nth-child(' + i +') > div')
1218								$jq(id).removeClass('agreed')
1219								$jq(id).addClass('blocked')
1220								pickedCookiesOption = 0
1221						}
1222				}
1223		});
1224
1225
1226		/**
1227		*  window.width < 1024
1228		**/
1229		if ($jq(window).width() < 1024) {
1230			$jq('.law-number').on("click", function() {
1231				var id = $jq(this).attr('id').substring(14)
1232				var elem = $jq('#law-content-id-'  + id)
1233				if(elem.attr('value') == 'open') {
1234								elem.css('display', 'none')
1235								elem.attr('value', 'hidden')
1236				}
1237				else {
1238								$jq('.law-content').css('display', 'none')
1239								elem.attr('value', 'open')
1240								elem.css('display', 'block')
1241				}
1242			})
1243		}
1244	}
1245/**
1246*  ZARZĄDZANIE COOKIES END MIM
1247**/
1248
1249		var openJobIntroElement = function(elem, content_element){
1250			if (elem.hasClass('list-opened')) {
1251				elem.removeClass('list-opened');
1252				elem.addClass('list-closed');
1253				content_element.hide();
1254				return;
1255			}
1256			elem.removeClass('list-closed');
1257			elem.addClass('list-opened');
1258			content_element.show();
1259		}
1260
1261		$jq('footer.footer-container').on('click', "h1.footer_header", function (e) {
1262			openJobIntroElement($jq(this), $jq(this).parent().find('.footer_links'))
1263		});
1264		
1265	var css = COOKIE.get('poznanpl_hc_style');
1266	css ? $jq('body').attr('className', css) : null;
1267	$jq('body').addClass(css);
1268
1269	var showQr = function(e) {
1270		e.preventDefault();
1271		var img = $jq(this).attr('data-qrcode-url');
1272		showWithModal('<img src="' + img + '" />');
1273	}
1274	var showWithModal = function(content) {
1275		if ($jq('.modal').length == 0)
1276		{
1277			$jq('body').append('<div class="modal"><div id="modalcontent"></div><div class="modalbg"></div></div>');
1278			$jq('.modal').on('click', function() { $jq(this).remove(); })
1279		}
1280		$jq('#modalcontent').html(content);
1281		var w = $jq('#modalcontent').width();
1282		var h = $jq('#modalcontent').height();
1283		$jq('#modalcontent').css({
1284			'marginLeft': Math.round(w/-2) + 'px',
1285			'marginTop': Math.round(h/-2) + 'px'
1286		})
1287	}
1288
1289	var gotoFunc = function(e) {
1290		var goto = "" + $jq(this).data("target").replace(/[!"$%&'()*+,./:;<=>?@[\]^`{|}~]/g, "\\$&"),
1291		menuOffset = 0, extraOffset = $jq(this).data("extraOffset");
1292
1293		if (extraOffset === undefined) extraOffset = 0;
1294		if($jq(window).width() > 768) {
1295			menuOffset = $jq("div.header-container").height();
1296		}
1297		$jq("html, body").animate({
1298					scrollTop: $jq(goto).offset().top - menuOffset + extraOffset
1299			}, 500);
1300		$jq(goto).focus();
1301		if(e) e.preventDefault();
1302	};
1303
1304	$jq(".goto-anchor").click(gotoFunc);
1305	
1306	var menuHiderConfig = {
1307		top: $jq(window).scrollTop(),
1308		show: false,
1309		login: $jq('.with-login').length > 0 ? $jq('body > .login').height() : 0,
1310		header: $jq('.header-container').length > 0 ? $jq('.header-container').height() : 0
1311	}
1312	var menuHider = function() {
1313		var top = $jq(window).scrollTop();
1314
1315		if (top != menuHiderConfig.top)
1316		{
1317			menuHiderConfig.show = top < menuHiderConfig.top;
1318			menuHiderConfig.top = top;
1319		}
1320
1321		if (top > menuHiderConfig.header + menuHiderConfig.login)
1322			$jq('body').addClass('fixed-menu');
1323		else
1324			$jq('body').removeClass('fixed-menu');
1325
1326		if (menuHiderConfig.show)
1327			$jq('body').addClass('show-fixed-menu');
1328		else
1329			$jq('body').removeClass('show-fixed-menu');
1330	}
1331
1332	$jq(window).scroll(function(){
1333		var wrap = $jq("div.menu-container");
1334		var aTop = $jq('div.header-container').height();
1335		if($jq(this).scrollTop() > aTop) {
1336
1337			mhq = $jq('.header-container');
1338			if (mhq.length !== 0) {
1339				mim_headers = mhq.height();
1340			}
1341			if (wrap.css("position") === "fixed") {
1342				mim_headers  = 0;
1343				$jq(".menu-container-fixed").css("top", mim_headers + "px");
1344			}
1345		} else {
1346			if (document.querySelectorAll('.menu-container-fixed').length !== 0) {
1347				$jq(".menu-container-fixed").css("top", "0");
1348				wrap.removeClass("menu-container-fixed");
1349			}
1350		}
1351	});
1352
1353	// rolled up / down elements
1354	$jq('[data-blockroll]').blockRoll ? $jq('[data-blockroll]').blockRoll() : null;
1355
1356	var filterResults = function() {
1357		if ($jq('.inline-filter input').length)
1358		{
1359			var _filter_input = $jq('.inline-filter input');
1360			var _filter_pattern = $jq(_filter_input.attr('data-filter-pattern'));
1361			var _filter = function(e) {
1362				e.preventDefault();
1363				var val = _filter_input.val();
1364				if (val != '')
1365				{
1366					$jq('[data-blockroll]').blockRollDisable();
1367				}
1368				else
1369				{
1370					$jq('[data-blockroll]').blockRollEnable();
1371				}
1372				_filter_to(val);
1373			}
1374			var _filter_to = function(val) {
1375				var val = val;
1376				var pattern = new RegExp(val, 'gi');
1377				_filter_pattern.each(function() {
1378					var el = $jq(this);
1379					if (el.text().match(pattern))
1380					{
1381						el.parent().show();
1382					}
1383					else
1384					{
1385						el.parent().hide();
1386					}
1387				});
1388			}
1389			$jq('.inline-filter').submit(_filter);
1390			$jq('.inline-filter input').keyup(_filter);
1391		}
1392	}
1393	filterResults();
1394
1395	var pozResizeFonts = function(e) {
1396		e.preventDefault();
1397		var body = $jq('body');
1398		if (body.hasClass('font-size-1')) { body.removeClass('font-size-1').addClass('font-size-2'); COOKIE.set('poznanpl_font_size', 2); }
1399		else if (body.hasClass('font-size-2')) { body.removeClass('font-size-2'); COOKIE.remove('poznanpl_font_size'); }
1400		else { body.addClass('font-size-1'); COOKIE.set('poznanpl_font_size', 1); }
1401	}
1402
1403
1404	var toggleMainMenu = function (e) {
1405		e.preventDefault();
1406		$jq('body').addClass('open-main-menu-mobile');
1407        if($jq('#head-sticky-main-page').length >0){
1408                        var headerTop = setMenuMobileTop();
1409
1410        }
1411        $jq("#menu-mobile-poznan").css({'top':headerTop,'height': `calc(100vh - ${headerTop}px)`});
1412        $jq("#menu-mobile-poznan").addClass('open-main-menu');
1413	}
1414	$jq('.menu-navigation .main-menu, .header-container nav > .main-menu > .close').on('click', toggleMainMenu);
1415
1416	var pozResizeMenu = function() {
1417		$jq('.wrapper.submenu').each(function() {
1418			var s = $jq(this);
1419			var h = s.css('height', 'auto').height() + 100;
1420			s.css('height', '0').attr('data-maxh', h);
1421		});
1422	}
1423
1424	var pozRollup = function(e)
1425	{
1426		e.preventDefault();
1427		$jq(this).parents('.rollup').toggleClass('open');
1428	}
1429
1430	var pozToolset = function(e)
1431	{
1432		e.preventDefault();
1433		$jq(this).parents('.toolset').toggleClass('open');
1434	}
1435
1436	var pozSlider = function(context)
1437	{
1438		var context = $jq(context);
1439		var slider = $jq(context).find('.slider');
1440		var is_looped = context.hasClass('loop');
1441		var blocked = slider.hasClass('blocked');
1442
1443		if(blocked){
1444			return;
1445		}
1446
1447		if (is_looped)
1448		{
1449			slider.html(slider.html() + slider.html());
1450		}
1451
1452		var nav = context.find('nav');
1453		var nav_button = nav.find('a');
1454		var max, max_width, step, slide = 1, page = 0, init = Number(slider.css('marginLeft').replace('px', ''));
1455		var is_big_slider = context.hasClass('slider-big');
1456		var timeout = Number(context.attr('data-slider-timeout')), interval, vis;
1457		var max_step = Number(context.attr('data-slider-step'));
1458		var step_margin_right = 0, vis_wrapper = 0;
1459
1460		var _fn_resize = function() {
1461			step = slider.find('.column:not(.big)').width() + 0;
1462			if (slider.find('.column:not(.big)').length > 0) {
1463				step_margin_right = parseInt(slider.find('.column:not(.big)').css('marginRight').replace('px', ''));
1464			}
1465			step = step + step_margin_right;
1466			if (document.querySelectorAll('.first-slider-big').length !== 0) {
1467			}
1468			vis_wrapper = Math.ceil((context.find('.wrapper').width() - 2 * init));
1469			vis = Math.ceil((context.find('.wrapper').width() - 2 * init) / step);
1470			max = -1 * Math.ceil(slider.find('.column').length + slider.find('.column.big').length - vis);
1471			slide = max_step > 0 ? max_step : vis;
1472			if (step * 2 > vis_wrapper) {
1473				max = max - 1;
1474			}
1475					if(document.getElementById('slider-mobile')){
1476
1477            			    slide=1;
1478            			}
1479		}
1480
1481		var _fn_break_timeout = function(e) {
1482			if (interval)
1483			{
1484				clearInterval(interval);
1485				interval = null;
1486			}
1487		}
1488
1489		var _fn_navigate_swipe = function(context, direction)
1490		{
1491			$jq(context).prev().find('a').get(direction).click();
1492		}
1493
1494		var _fn_navigate = function(e) {
1495			if (slider.find('.column').length < 5){
1496				if (e) {
1497					e.preventDefault();
1498				}
1499				return;
1500			}
1501			var e = e || null;
1502			e && e.preventDefault ? e.preventDefault() : null;
1503			var _t = e && e.currentTarget ? $jq(e.currentTarget) : $jq(nav);
1504
1505
1506			var isExist = document.getElementsByClassName('icon icon-prev hide-text');
1507			var isExist2 = document.getElementsByClassName('icon icon-prev-black hide-text');
1508			if (isExist.length > 0 || isExist2.length > 0) {
1509				if (isExist.length > 0) {
1510					page += (_t.hasClass('icon-prev') ? slide : -slide);
1511				} else if (isExist2.length > 0) {
1512					page += (_t.hasClass('icon-prev-black') ? slide : -slide);
1513				}
1514			}
1515
1516			slider.removeClass('reset-easing');
1517
1518			if (is_looped && page > 0)
1519			{
1520				page = (max - 1) / 2 - 2;
1521				slider.addClass('reset-easing');
1522				var pos = (step * page) + init;
1523				slider.css('marginLeft', pos + 'px');
1524				setTimeout(function() { _fn_navigate(); }, 10)
1525				return false;
1526			}
1527			else if (is_looped && page < max)
1528			{
1529				page = (max - 1) / 2 + 3; // ??
1530				slider.addClass('reset-easing');
1531				var pos = (step * page) + init;
1532				slider.css('marginLeft', pos + 'px');
1533				setTimeout(function() { _fn_navigate(); }, 10)
1534				return false;
1535			}
1536
1537			if (page > 0) {page = 0;}
1538			else if (is_big_slider && page == -1 && $jq(this).hasClass('icon-prev')) {page = 0;}
1539			else if (is_big_slider && page == -1 && $jq(this).hasClass('icon-prev-black')) {page = 0;}
1540			else if (is_big_slider && page == -1 && !document.getElementById('slider-mobile')) {page = -2;}
1541			else if (page <= max) {page = max;}
1542
1543			if (step * page === 0){
1544				var pos = init;
1545				slider.css('marginLeft', pos + 'px');
1546			} else {
1547				var pos = (step * page) + init;
1548				slider.css('marginLeft', pos + 'px');
1549			}
1550			var scrollBar = document.querySelector('.scrollbar-slider-big');
1551            var scrollBarBackground = (page / max) * 100;
1552            if(scrollBar){
1553            scrollBar.style.setProperty('background-position', scrollBarBackground + '% 100%');
1554            }
1555            			var progressBar = document.querySelector('.progress-bar-slider-big');
1556            			if(progressBar){
1557                        var progressBarBackground = (page / (max+1)) * 100;
1558                        progressBar.style.setProperty('background-size', progressBarBackground + '% 100%');
1559                        }
1560		}
1561
1562		var _fn_init_slider = function() {
1563			var wWidth = $jq(window).width();
1564			_fn_resize();
1565			nav_button.on('click', function(e) {
1566				_fn_break_timeout(e);
1567				_fn_navigate(e);
1568			});
1569			if (wWidth > 700) {
1570				slider.on("swipeleft", function (e) {
1571					_fn_break_timeout(e);
1572					_fn_navigate_swipe(this, 1);
1573				}).on("swiperight", function (e) {
1574					_fn_break_timeout(e);
1575					_fn_navigate_swipe(this, 0);
1576				});
1577			}
1578		}
1579
1580		if (timeout) {
1581			interval = setInterval(_fn_navigate, timeout);
1582		}
1583
1584		_fn_init_slider();
1585	}
1586
1587	var pozBlock = function(context) {
1588		var context = $jq(context);
1589		var parent = context.parent().parent().parent();
1590
1591		var url = context.attr('data-pzn-url');
1592		var val = context.val();
1593		var page = 1;
1594
1595		var pozBlockPaginator = function(context) {
1596
1597			var context = $jq(context);
1598			page = context.find('.column-container').attr('data-pzn-rotator-page');
1599			var pmax = context.find('.column-container').attr('data-pzn-rotator-pages');
1600			var nav = context.find('nav');
1601				nav.html('');
1602
1603			var links = Array();
1604			for (var i = 1; i <= pmax; i++)
1605			{
1606				links.push('<a href="#strona' + i + '" data-page="' + i + '" armin-label="Strona ' + i + '"' + (i == page ? ' class="active" ' : '') + '>' + i + '</a>');
1607			}
1608			nav.html(links.join(' '));
1609
1610			nav.find('a').on('click', function(e) {
1611				e.preventDefault();
1612				$jq(this).parent().find('a').removeClass('active');
1613				$jq(this).addClass('active');
1614				page = $jq(this).attr('data-page');
1615				_fn_change(e);
1616			});
1617		}
1618
1619		var _fn_change_with_page = function(e) {
1620			page = 1;
1621			_fn_change(e);
1622		};
1623
1624		var _fn_change = function(e) {
1625			val = context.val();
1626
1627			parent.find('.column-container').hide();
1628			parent.find('.column-loader').show();
1629
1630			var _fn_restore = function() {
1631				parent.find('.column-container').show();
1632				parent.find('.column-loader').hide();
1633			}
1634
1635			if (url !== undefined) {
1636				if (url === '#main_news_'){
1637					parent.find('.column-container').html($jq("#main_news_" + val).html());
1638					pozBlockPaginator(parent);
1639					_fn_restore();
1640					$jq(".box-aktualnosci .box-container div.column-container .column .dotdotdot").dotdotdot();
1641				} else if (url === '#wydarzenia_'){
1642					if (page === undefined) {
1643						page = 1;
1644					}
1645					var id = "#wydarzenia_paginator_" + val + "_" + page;
1646					var content = $jq("#wydarzenia_paginator_" + val + "_" + page).html();
1647					if (content === undefined) {
1648						content = "<div class=\"column-container clearfix\" data-pzn-rotator-pages=\"0\" data-pzn-rotator-page=\"0\"><span class=\"no-data\">Brak danych</span></div>";
1649					}
1650					var test = parent.find('.column-container');
1651					parent.find('.column-container').replaceWith(content);
1652					pozBlockPaginator(parent);
1653					_fn_restore();
1654					$jq("div.box-container div.column-container .column.column-event .dotdotdot").dotdotdot();
1655				} else {
1656					$jq.ajax({
1657						url: url,
1658						data: {
1659							id: val,
1660							page: page
1661						},
1662						complete: function() {
1663							pozBlockPaginator(parent);
1664							_fn_restore();
1665						},
1666						success: function(res) {
1667							parent.find('.column-container').remove();
1668							parent.append(res);
1669							pozBlockPaginator(parent);
1670							_fn_restore();
1671						},
1672						error: function() {
1673							alert('Wystąpił błąd');
1674						}
1675					});
1676				}
1677			}
1678		};
1679		context.on('change', _fn_change_with_page);
1680		pozBlockPaginator(parent);
1681	}
1682
1683	var pozCatalog = function(e) {
1684		$jq('.main-header-row1 div').removeClass('opened');
1685        $jq('#backdrop-menu-desktop').css('display','none');
1686        $jq('body').removeClass('open-main-menu');
1687		$jq(".main_categories > li").css("border-right","2px solid black");
1688		$jq(".first_column_menu li").css("border-right","0px solid black");
1689
1690		$jq(".dropdown-vertically ul").css("border-top", "0px solid black");
1691		$jq(".dropdown-vertically ul li").css({
1692			"visibility": "visible",
1693			"display" :  "block"
1694		});
1695		$jq(".dropdown-vertically ul li").removeClass("bolded-rows");
1696		$jq(".dropdown-vertically ul li").css("display", "flex");
1697		$jq(".dropdown-vertically ul li").css("font-size", "12px");
1698
1699		$jq(".dropdown-vertically ul li ul").css("visibility", "hidden");
1700		$jq(".dropdown-vertically ul li ul").css("display", "none");
1701
1702		$jq(".line").css("display", "none");
1703		$jq(".line_menu2").css("display", "none");
1704
1705		for (let i = 0; i < 12; i++){
1706			$jq("ul.sub-menu_" +i).css("visibility","hidden");
1707		}
1708		if (search_dialog_opened) return;
1709
1710        var $t = $jq(e.target);
1711	    if ($t.is('[data-css]') || $t.closest('li').hasClass('opened')) {
1712		    return;
1713	    }
1714	    $jq('.header-container nav ul > li').removeClass('opened');
1715        $jq('#backdrop-menu-desktop').css('display','none');
1716        $jq('body').removeClass('open-main-menu');
1717		var cl = $jq(e.currentTarget).data("pzn-menu");
1718        var wWidth = $jq(window).width();
1719
1720        $jq("li[data-pzn-menu =" + cl + "]").addClass("bolded-rows")
1721
1722        $jq("a.links-header").removeClass("bolded-rows");
1723
1724        $jq("a[data-pzn-menu =" + cl + "]").addClass("bolded-rows")
1725
1726		if (wWidth >=1100) {
1727			var line = $jq("li[data-pzn-menu =" + cl + "]");
1728			line.children('.line').each(function () {
1729				$jq(this).css("display", "block");
1730			});
1731		}
1732
1733		$jq('.wrapper.submenu').css('height', '0');
1734		$jq('#' + cl).height("650px");
1735
1736		if (cl == "catalog_1" || cl == "catalog_2") {
1737			$jq('#' + cl).height("350px");
1738		}
1739
1740		if (wWidth <1100) {
1741			$jq('.main_categories').css('display', 'none');
1742		} else $jq('.main_categories').css('display', 'block');
1743
1744
1745		if (wWidth <= 830) {
1746			$jq(".dropdown-vertically ul li").css("display", "block");
1747			$jq(".close-submenu").css("display", "none");
1748			$jq(".dropdown-vertically .close").css("display", "block");
1749			$jq('#' + cl).height("auto");
1750		} else $jq('#' + cl).css("z-index", "2");
1751
1752        _additional_header_height  = $jq("div.header-container header").outerHeight();
1753        if( _additional_header_height <180){
1754            _additional_header_height  = $jq("div.header-container header").offset().top + $jq("div.header-container header").outerHeight();
1755        }
1756
1757		$jq('#' + cl).css("top", _additional_header_height + "px");
1758		$jq('#' + cl).css("z-index", "25");
1759		$jq('#' + cl).css("overflow-y", "auto");
1760
1761		if ($jq(e.currentTarget).parent().hasClass('opened')) {
1762			$jq(e.currentTarget).parent().removeClass('opened');
1763			$jq('#backdrop-menu-desktop').css('display','none');
1764			$jq('body').removeClass('open-main-menu');
1765			$jq(e.currentTarget).children('div.links-menu-header-arrow').removeClass('links-menu-header-arrow-opened').addClass('links-menu-header-arrow-closed');
1766			$jq('.wrapper.submenu').css('display', 'none');
1767
1768
1769		} else {
1770  var mobileHrefLinkDivs = document.querySelectorAll('.mobile-href-link-div');
1771  mobileHrefLinkDivs.forEach(function(element) {
1772    element.classList.remove('opened');
1773        var arrowElement = element.querySelector('div.links-menu-header-arrow');
1774        if (arrowElement) {
1775          arrowElement.classList.remove('links-menu-header-arrow-opened');
1776          arrowElement.classList.add('links-menu-header-arrow-closed');
1777
1778        }});
1779
1780			$jq(e.currentTarget).parent().addClass('opened');
1781			    $jq('#backdrop-menu-desktop').css('display','block');
1782			    $jq('body').addClass('open-main-menu');
1783			$jq(e.currentTarget).children('div.links-menu-header-arrow').removeClass('links-menu-header-arrow-closed').addClass('links-menu-header-arrow-opened');
1784
1785
1786                    var wWidth = $jq(window).width();
1787                     var offsetTop;
1788                    if(wWidth<=700){
1789        			     offsetTop = $jq(e.currentTarget).offset().top - 143;
1790        			     $jq('.wrapper.submenu').css('display', 'block');
1791                                 			    $jq('.wrapper.submenu').css('top', offsetTop + 'px');
1792        			     }
1793
1794
1795                    $jq('.wrapper.submenu').css('display', 'block');
1796
1797		}
1798
1799
1800		e.preventDefault();
1801	};
1802
1803	$jq('.close-submenu').on('click', function(e) {
1804		$jq(".dropdown-vertically ul").css("border-top", "0px solid black");
1805
1806		$jq(".dropdown-vertically ul li").removeClass("bolded-rows");
1807		$jq(".dropdown-vertically ul li").css("visibility", "visible");
1808		$jq(".dropdown-vertically ul li").css("display", "block");
1809		$jq(".dropdown-vertically ul li").css("font-size", "12px");
1810
1811		$jq(".dropdown-vertically ul li ul").css("visibility", "hidden");
1812		$jq(".dropdown-vertically ul li ul").css("display", "none");
1813
1814		$jq(".close-submenu").css("display", "none");
1815		$jq(".dropdown-vertically .close").css("display", "block");
1816	});
1817
1818
1819
1820	$jq('.dropdown-vertically .close').on('click', function(e) {
1821		e.preventDefault();
1822		$jq('.wrapper.submenu').css('height', '0').css('top','');
1823		$jq('.header-container nav ul li').removeClass('opened');
1824		$jq('.main-header-row1 div').removeClass('opened');
1825		$jq('#backdrop-menu-desktop').css('display','none');
1826		 $jq('body').removeClass('open-main-menu');
1827		$jq("a.links-header").removeClass("bolded-rows");
1828		$jq('.main-header-row1 div a').removeClass("bolded-rows");
1829		$jq('.main-header-row1 div > a').css("font-weight","400")
1830	});
1831
1832  	$jq('.header-container .submenu-container > .close').on('click', function(e) {
1833         e.preventDefault();
1834         $jq('.header-container nav ul li').removeClass('opened');
1835         $jq('.wrapper.submenu').css('height', '0').css('min-height', '');
1836
1837         $jq('.wrapper.submenu').css('height', '0').css('top','');
1838
1839         $jq('.main-header-row1 div').removeClass('opened');
1840         $jq('.main-header-row1 div a').removeClass("bolded-rows");
1841         $jq('.main-header-row1 div > a').css("font-weight","400");
1842	});
1843
1844	var pozSubMenu = function (e) {
1845		var wWidth = $jq(window).width();
1846
1847		if(wWidth >830) $jq(".first_column_menu > li").css("border-right","2px solid black");
1848		$jq(".dropdown-vertically ul li ul").css("display", "none");
1849		$jq(".dropdown-vertically ul li").css("font-weight", "400");
1850		$jq(".dropdown-vertically ul li").removeClass("bolded-rows");
1851		$jq(".dropdown-vertically ul").css("border-top", "0px solid black");
1852
1853		if (wWidth <= 830){
1854			$jq(".dropdown-vertically .close").css("display", "none");
1855
1856			$jq(".dropdown-vertically ul li").css("visibility", "hidden");
1857			$jq(".dropdown-vertically ul li").css("display", "none");
1858			$jq(".dropdown-vertically ul").css("border-top", "2px solid black");
1859			$jq(".dropdown-vertically ul li ul").css("border-top", "0px solid black");
1860
1861			$jq("div.opened .close-submenu").css("display", "block");
1862		}
1863
1864		$jq(e.currentTarget).css("visibility", "visible");
1865		$jq(e.currentTarget).css("display", "flex");
1866		$jq('.main-header-row1 div > a').css("font-weight","400")
1867		$jq(e.currentTarget).addClass("bolded-rows")
1868
1869		var cl = $jq(e.currentTarget).data("pzn-menu");
1870
1871		for (let i = 0; i < 12; i++){
1872			$jq("ul.sub-menu_" +i).css("visibility","hidden");
1873		}
1874
1875		$jq('.' + cl).css("visibility", "visible");
1876		$jq('.' + cl).css("display", "block");
1877		$jq('.' + cl).removeClass("bolded-rows");
1878		$jq('.' + cl).css("position","absolute");
1879
1880		$jq('.' + cl + ' li').css("visibility", "visible");
1881		$jq('.' + cl + ' li').css("display", "block");
1882
1883		var catalog_number = $jq(e.currentTarget.offsetParent.parentNode.parentNode).attr('id');
1884		$jq("li[data-pzn-menu =" + catalog_number + "]").addClass("bolded-rows")
1885		$jq("a[data-pzn-menu =" + catalog_number + "]").addClass("bolded-rows")
1886
1887		$jq(".line_menu2").css("display", "none");
1888		if (wWidth >=840) $jq(e.currentTarget).children('.line_menu2').css("display","block");
1889
1890		if (wWidth <= 830) {
1891			$jq(e.currentTarget).css("display", "block");
1892			$jq('.' + cl).css("position","sticky");
1893			$jq(e.currentTarget).css("font-size","15px");
1894		} else if (wWidth <= 915) {
1895			$jq('.' + cl).css("left","100%");
1896		} else if (wWidth <= 1100) {
1897			$jq('.' + cl).css("left", "90%");
1898		}
1899	};
1900
1901	$jq('[data-pzn-bind]').each(function() {
1902
1903		switch($jq(this).attr('data-pzn-bind')) {
1904			case 'catalog':
1905				/* otwieramy / zamykamy blok po kliknieciu w link katalogu */
1906				$jq(this).on('click', pozCatalog);
1907				break;
1908
1909			case 'rollup':
1910				$jq(this).on('click', pozRollup);
1911				break;
1912
1913			case 'toolset':
1914				$jq(this).on('click', pozToolset);
1915				break;
1916
1917			case 'slider':
1918				/* slider */
1919				pozSlider(this);
1920				break;
1921
1922			case 'font':
1923				/* zmiena wielkości czcionki */
1924				$jq(this).on('click', pozResizeFonts);
1925				break;
1926			case 'print':
1927				$jq(this).on('click', function(){window.print();});
1928				break;
1929			case 'qr':
1930				$jq(this).on('click', showQr);
1931				break;
1932
1933			case 'option':
1934				/* przeladowanie bloku wydarzen itp. */
1935				pozBlock(this);
1936				break;
1937
1938			case 'language':
1939				$jq(this).find('a').on('click', function(e) {
1940					e.preventDefault();
1941					$jq(this).parent().parent().find('li').removeClass('active');
1942					$jq(this).parent().addClass('active');
1943				});
1944				break;
1945
1946			case 'sub-menu':
1947				$jq(this).on('click', pozSubMenu).on('focus',pozSubMenu);
1948				break;
1949		}
1950
1951		pozResizeMenu();
1952	});
1953
1954	var search_dialog_opened = false, last_focus;
1955	var _fn_search_menu_open = function(e) {
1956		e.preventDefault();
1957		$jq('link[href$="forms.css"]').prop('disabled', true);
1958
1959		$search = $jq('.search-container');
1960		$search.attr('tabindex', '-1');
1961		$jq('body').css('overflow','hidden');
1962		search_dialog_opened = true;
1963		last_focus = document.activeElement;
1964
1965		$search.css('top', 0).addClass('visible');
1966		$jq('#string').focus();
1967		setTimeout(function() { $search.css('opacity', 1) }, 10);
1968		$jq(document).on('focusin', function(e) {
1969			if (search_dialog_opened && !$jq.contains($search.get(0), e.target)) {
1970					e.stopPropagation();
1971					$jq('#string').focus();
1972			}
1973		});
1974	};
1975
1976	var _fn_search_menu_close = function(e) {
1977		e.preventDefault();
1978		$jq('link[href$="forms.css"]').prop('disabled', false);
1979
1980		$jq('.search-container').css('opacity', 0);
1981		setTimeout(function() { $jq('.search-container').removeClass('visible') }, 350);
1982		$jq('body').css('overflow','visible');
1983		search_dialog_opened = false;
1984		last_focus.focus();
1985		$jq(document).off('focusin');
1986	}
1987
1988	$jq('#main_search').on('click', _fn_search_menu_open);
1989
1990	$jq(document).on('click','.search-container a.close', _fn_search_menu_close);
1991	$jq(document).on('keydown','.search-container', function(e) {
1992		if (e.keyCode === 27) {
1993			_fn_search_menu_close(e);
1994		}
1995		e.stopPropagation();
1996	});
1997
1998	var resizeInterval;
1999
2000	var _fn_boxResize = function() {
2001		$jq('.content-container .menu-container > .container').each(function() {
2002			if($jq(this).parent().width() < 250 && $jq(this).attr('style') !== undefined) {
2003				$jq(this).removeAttr('style');
2004			}
2005		});
2006	};
2007
2008	var _adjust_body_padding = function() {
2009		var winWidth = $jq(window).width();
2010		var _additional_height = 0;
2011		var _header_container_height = 0;
2012
2013		if ($jq("body.with-login section.login").length > 0) {
2014			_additional_height  = $jq("body.with-login section.login").height();
2015		}
2016		if ($jq("body div.header-container").length > 0) {
2017			_header_container_height  = $jq("body div.header-container").height();
2018		}
2019		if ($jq("#eto_header").length > 0 && $jq("#eto_body").length > 0) {
2020			var kiosk_header_height = $jq("#eto_header").height();
2021			var kiosk_body_height = $jq("#eto_body").height();
2022			kiosk_body_height = kiosk_body_height - kiosk_header_height - 50;
2023			$jq("#eto_body").css("height", (kiosk_body_height) + "px");
2024			var kiosk_iframe_height = kiosk_body_height - kiosk_header_height;
2025			if (kiosk_iframe_height < 100) {
2026				kiosk_iframe_height = 100;
2027			}
2028			$jq("#eto_iframe").css("height", kiosk_iframe_height + "px");
2029		}
2030
2031		if ($jq('section.top-container').length > 0) {
2032			mw0 = $jq('section.top-container').innerWidth() - 25;
2033			mw1 = $jq('section.top-container div.wrapper h2').width();
2034			if (mw0 < mw1) {
2035				$jq('section.top-container div.wrapper h2 > a').css('font-size', '24px');
2036			} else {
2037				$jq('section.top-container div.wrapper h2 > a').css('font-size', 'unset');
2038			}
2039		}
2040
2041		changeBodyPadding();
2042	}
2043
2044
2045	$jq(window).on('resize', function(e) {
2046		if (resizeInterval)
2047		{
2048			clearTimeout(resizeInterval);
2049			resizeInterval = null;
2050		};
2051		resizeInterval = setTimeout(function() {
2052			_fn_boxResize();
2053			_adjust_body_padding();
2054			slickSliderWuiaUpdate();
2055		}, 500);
2056	}).resize();
2057
2058
2059	$jq('a.att_openkiosk').on('click', function(e) {
2060		var att_local_link = $jq(this).attr('data-att_local_link');
2061		var preview_id = $jq(this).attr('data-preview_id');
2062		e.preventDefault();
2063
2064		var div_preview = $jq("div#" + preview_id);
2065		div_preview.html('');
2066		div_preview.loadingOverlay();
2067
2068		//var view_link = 'https://docs.google.com/viewer?embedded=true&url=' + att_local_link;
2069		var view_link = 'https://www.poznan.pl/pdfviewer/?url_address=' + att_local_link;
2070
2071		$jq("div#" + preview_id).append('<iframe scrolling="no" class="" src="' + view_link + '" style="border: 0; width:100%; height:500px;overflow: hidden;"></iframe>');
2072		var div_preview_iframe = $jq("div#" + preview_id + " iframe");
2073
2074		var timerId = setInterval(function() {
2075			div_preview_iframe.attr('src', view_link);
2076		}, 3000);
2077
2078		div_preview_iframe.on('load', function() {
2079			div_preview.loadingOverlay('remove');
2080			clearInterval(timerId);
2081		});
2082	});
2083
2084
2085	$jq("button[data-theme]").click(function() {
2086		$jq("head link#css_font_theme").attr("href", $jq(this).data("theme"));
2087		return false;
2088	});
2089
2090	if (lightbox) {
2091		// add content for lightbox navigation keys
2092		lightbox.$lightbox.find('.lb-next').append('<span class="visuallyhidden">%1</span>'.replace(/%1/g, lightbox.options.nextLabel));
2093		lightbox.$lightbox.find('.lb-prev').append('<span class="visuallyhidden">%1</span>'.replace(/%1/g, lightbox.options.prevLabel));
2094	}
2095
2096	var $body = $jq('body'), f_size = COOKIE.get('poznanpl_font_size');
2097	if (f_size !== null)
2098		$body.addClass('font-size-' + f_size);
2099
2100	slickSlider();
2101
2102    // Workaround for Chrome not marking download links with :visited
2103	$jq('a').click(function(){
2104	    markLinkAsVisited($jq(this).attr('href'));
2105	});
2106});
2107
2108function isHistoryAPISupported() {
2109    if(!window.history) return false;
2110    if(!history.replaceState) return false;
2111    return true;
2112}
2113
2114/** Remembers a href as visited, causing any <a> tags
2115    with the same href to have the :visited pseudoclass.
2116
2117   Returns true on success, false on failure.
2118*/
2119function markLinkAsVisited(href) {
2120
2121    if(!isHistoryAPISupported()) {
2122        return false;
2123    }
2124    // note: replaceState(_,_,href) fails with an exception
2125    // if href has different origin from current URL
2126    try {
2127        const oldState = window.history.state;
2128        const oldHref = window.location.href;
2129        window.history.replaceState({},"",href);
2130        window.history.replaceState(oldState,"",oldHref);
2131        return true;
2132    } catch(e) {
2133        return false;
2134    }
2135}
2136
2137$jq(window).load(function() {
2138 	$jq(".content-container .body-container article .description.dotdotdot .news-list-item-abstract p").dotdotdot({
2139 		watch: "window",
2140 		tolerance: 4
2141 	});
2142 		$jq(".slider-box-name .slider-box-name-text").dotdotdot({
2143     		watch: "window",
2144     		tolerance: 1
2145     	});
2146	$jq(".content-container .body-container .slider-big-v02 .column article a h2").dotdotdot({
2147		watch: "window",
2148		tolerance: 4
2149	});
2150	$jq(".content-container .body-container .slider-big-v02 .column article a .slider-header-mobile").dotdotdot({
2151    		watch: "window",
2152    		tolerance: 1
2153    	});
2154    	$jq(".slider-abstract-mobile").dotdotdot({
2155            		watch: "window",
2156            		tolerance: 1
2157            	});
2158	$jq(".content-container .body-container .slider-big-v02 .column article a span").dotdotdot({
2159		watch: "window",
2160		tolerance: 4
2161	});
2162	$jq(".content-container .body-container .events-list .events-block .event-box .description-event .description-event-title-link .description-event-title").dotdotdot({
2163		watch: "window",
2164		tolerance: 4
2165	});
2166	$jq(".content-container .body-container .events-list .events-block .event-box .description-event .description-event-place").dotdotdot({
2167		watch: "window",
2168		tolerance: 4
2169	});
2170
2171	$jq(".content-container .body-container .all-news-container .side-news-container .main-news-container .main-news-text-box .main-news-text .main-text-H3").dotdotdot({
2172         		watch: "window",
2173         		tolerance: 2
2174         	});
2175    		$jq(".content-container .body-container .all-news-container .side-news-container .main-news-container .main-news-text-box .main-news-text  .main-text p").dotdotdot({
2176         		watch: "window",
2177         		tolerance: 2
2178         	});
2179         		$jq(".content-container .body-container .all-news-container .side-news-container .main-news-container .main-news-text-box .main-news-text  .main-text ").dotdotdot({
2180                     		watch: "window",
2181                     		tolerance: 2
2182                     	});
2183
2184
2185                $jq(".content-container .body-container .all-news-container .side-news-container .news-title-container .news-title-box a").dotdotdot({
2186                    watch: "window",
2187                    tolerance: 2
2188                    });
2189
2190         		$jq(".content-container .body-container .all-news-container .side-news-container .side-news-container .news-second-textbox .news-second-text .main-text-H4").dotdotdot({
2191                     watch: "window",
2192                     tolerance: 2
2193                     });
2194
2195
2196
2197         	$jq(".content-container .body-container .all-news-container .side-news-container .side-news-container .news-second-textbox .news-second-text .main-text").dotdotdot({
2198                watch: "window",
2199                 tolerance: 2
2200            });
2201
2202            $jq(".content-container .body-container .all-news-container .side-news-container .side-news-container .news-second-textbox .news-second-text .main-text p").dotdotdot({
2203                watch: "window",
2204                tolerance: 2
2205            });
2206	$jq(".content-container .body-container .events-list .events-block .event-box .description-event .description-event-category-label").dotdotdot({
2207		watch: "window",
2208		tolerance: 4
2209	});
2210
2211	$jq(".content-container .body-container article.event-box section.description-event div.description-event-category-label-after-click div.description-event-category-label").dotdotdot({
2212		watch: "window",
2213		tolerance: 4
2214	});
2215	$jq(".awarie-textbox .smartcity-text").dotdotdot({
2216    	watch: "window",
2217    	tolerance:1
2218    });
2219
2220    $jq(".zam-pub-title").dotdotdot({
2221        watch: "window",
2222        tolerance:1
2223    });
2224    $jq(".news_list_head").dotdotdot({
2225        watch: "window",
2226        tolerance:1
2227    });
2228    $jq(".video-new-desc").dotdotdot({
2229        watch: "window",
2230        tolerance:1
2231    });
2232        $jq(".different_news_box .news_box_textbox .text-caption").dotdotdot({
2233            watch: "window",
2234            tolerance:1
2235        });
2236        $jq(".see_more_news_text").dotdotdot({
2237            watch: "window",
2238            tolerance: 1
2239        });
2240        $jq(".seemore_news_H4").dotdotdot({
2241             watch: "window",
2242             tolerance: 1
2243        });
2244       $jq(".main-text-H3.slider-header-mobile").dotdotdot({
2245              watch: "window",
2246              tolerance: 1
2247       });
2248       $jq(".slider-banner-title").dotdotdot({
2249              watch: "window",
2250              tolerance:1
2251        });
2252       $jq(".curiosities_textbox.flex_column .text_body_small p").dotdotdot({
2253              watch: "window",
2254              tolerance:1
2255       });
2256       $jq(".wol_oferty div.work-place.dotdotdot").dotdotdot({
2257            watch: "window",
2258            tolerance:1
2259       });
2260
2261        $jq(".wol_oferty div.work-position.dotdotdot").dotdotdot({
2262                   watch: "window",
2263                   tolerance:1
2264              });
2265        $jq(".video-box .a_hover").dotdotdot({
2266                   watch: "window",
2267                   tolerance:1
2268        });
2269});
2270
2271function openReservationLink(new_url) {
2272	windowprops = "width=1000,height=700,resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no";
2273	window.open(new_url, 'Appoint', windowprops);
2274}
2275
2276$jq('a.tree-toggler').click(function () {
2277	var $me = $jq(this);
2278	var $ul = $me.parent().children('ul.tree');
2279
2280	if($me.attr("aria-expanded") === "true")
2281		$me.attr("aria-expanded", "false");
2282	else
2283		$me.attr("aria-expanded", "true");
2284
2285	$jq('ul.tree').not($ul).hide(300);
2286	$jq('.tree-toggler').not($me).attr("aria-expanded", "false");
2287	$ul.toggle(300);
2288	return false;
2289});
2290
2291var val = $jq("#sm_zgloszenia_odpowiedz").find("input[name='uz_odpowiedz']");
2292if(val.is(':checked')) {
2293		$jq("#sm_zgloszenia_odpowiedz_section").show();
2294} else {
2295		$jq("#sm_zgloszenia_odpowiedz_section").hide();
2296		$jq("input[name='uz_imie_nazwisko']").val('');
2297		$jq("input[name='uz_adres']").val('');
2298}
2299$jq("#sm_zgloszenia_odpowiedz").find("input[name='uz_odpowiedz']:checkbox").change(function() {
2300		if($jq(this).is(":checked")) {
2301				$jq("#sm_zgloszenia_odpowiedz_section").show();
2302		} else {
2303				$jq("#sm_zgloszenia_odpowiedz_section").hide();
2304				$jq("input[name='uz_imie_nazwisko']").val('');
2305				$jq("input[name='uz_adres']").val('');
2306		}
2307});
2308
2309var backgrounds = [{bg: "#ffffff", fonts:"black"}, {bg: "#00aeef", fonts:"white"}, {bg: "#d34500", fonts:"white"},
2310									{bg: "#9F3B84", fonts:"white"}, {bg: "#C8004C", fonts:"white"}, {bg: "#D34400", fonts:"white"},
2311									{bg: "#007DA0", fonts:"white"}, {bg: "#005678", fonts:"white"}, {bg: "#008933", fonts:"white"},
2312									{bg: "#00846E", fonts:"white"}, {bg: "#454344", fonts:"white"}, {bg: "#0b1c5b", fonts:"white"},
2313									{bg: "#0054a6", fonts:"white"}, {bg: "#efc500", fonts:"white"}, {bg: "#7d0579", fonts:"white"},
2314									{bg: "#74b620", fonts:"white"}, {bg: "#ba1319", fonts:"white"}, {bg: "#0755e3", fonts:"white"}];
2315$jq('.box.bg-switcher').click(function () {
2316	var $this = $jq(this);
2317	var idx = $this.data("bg-index"); // background index
2318	if (idx === undefined || idx >= backgrounds.length - 1) idx = -1;
2319	idx++;
2320	$this.data("bg-index", idx);
2321	var opt = backgrounds[idx];
2322	if(opt.fonts !== "white") {
2323		$this.removeClass("fonts-white");
2324	} else {
2325		$this.addClass("fonts-white");
2326	}
2327	var bg = $this.find(".background-color");
2328	bg.prop("style", "background-color:"+opt.bg);
2329	bg.text(opt.bg);
2330});
2331
2332$jq('#botwise-input').on( "keypress", function(event) {
2333	if (event.keyCode == 13 && !event.shiftKey) {
2334		event.preventDefault();
2335		$jq('#botwise-form').submit();
2336	}
2337});
2338
2339$jq('.kontakt-botwise-button').click(function (e) {
2340	var botwise_question = $jq('.botwise-input').val();
2341	if(botwise_question) {
2342		let botwise_link = $jq('.kontakt-botwise-button').data('bothref');
2343		$jq('.kontakt-botwise-button').attr('href', botwise_link + '?question=' + encodeURIComponent(botwise_question));
2344	}
2345});
2346
2347$jq('.faq-question').on('click', '.faq-arrow-down', function(e) {
2348	var id = $jq(this).attr("id").substring(13);
2349	$jq('#answer-number-'+id).addClass('opened');
2350	$jq('#faq-arrow-id-'+id).removeClass('faq-arrow-down').addClass('faq-arrow-up');
2351});
2352
2353$jq('.faq-question').on('click', '.faq-arrow-up', function(e) {
2354	var id = $jq(this).attr("id").substring(13);
2355	$jq('#answer-number-'+id).removeClass('opened');
2356	$jq('#faq-arrow-id-'+id).removeClass('faq-arrow-up').addClass('faq-arrow-down');
2357});
2358
2359$jq('#sitemap_list').on('click', '.open-element', function(e) {
2360    openSitemapElement($jq(this));
2361});
2362$jq('#sitemap_list .open-element').keypress(function(e) {
2363		openSitemapElement($jq(this));
2364});
2365var openSitemapElement = function(elem){
2366	var counter = elem.attr('counter');
2367    var element = $jq('#elem_' + counter);
2368
2369    if(elem.hasClass('list-opened')) {
2370         elem.removeClass('list-opened');
2371         elem.addClass('list-closed');
2372         element.css('display', 'none');
2373         return;
2374    }
2375
2376    elem.removeClass('list-closed');
2377    elem.addClass('list-opened');
2378    element.css('display', 'block');
2379}
2380
2381var changeBodyPadding = function(){
2382	let mim_headers = 0;
2383	let wWidth = $jq(window).width();
2384	mhq = $jq('.header-container');
2385	if (wWidth > 0) {
2386		//mhq.css("position", "fixed");
2387	}
2388	if (mhq.length !== 0) {
2389		mim_headers = mhq.height();
2390	}
2391	if (document.querySelectorAll('.vortal-header').length !== 0 && document.querySelectorAll('.top-bar').length !== 0) {
2392		if (mhq.css("position") === "fixed" || mhq.css("position") === "absolute") {
2393			$jq(".content-container").css("margin-top", mim_headers + "px");
2394		}
2395	} else if (document.querySelectorAll('.top-container').length !== 0) {
2396		if (mhq.css("position") === "fixed" || mhq.css("position") === "absolute") {
2397			$jq(".top-container").css("margin-top", mim_headers + "px");
2398		}
2399	} else {
2400		if (mhq.css("position") === "fixed"
2401			|| mhq.css("position") === "absolute") {
2402			$jq(".content-container").css("margin-top", mim_headers + "px");
2403		}
2404	}
2405	slickSliderUpdate();
2406}
2407
2408$jq('.popup').on('click', '.close', function(){
2409    $jq('.popup').css("display","none");
2410});
2411
2412// iad baza-referencyjna
2413$jq('#baza-referencyjna-list').on('click', '.faq-arrow-down', function(e) {
2414	var id = $jq(this).attr("id").substring(15);
2415	$jq('#baza_referencyjna_elem_'+id).css("display", "block");
2416	$jq('#baza-ref-lista-'+id).removeClass('faq-arrow-down').addClass('faq-arrow-up');
2417});
2418
2419$jq('#baza-referencyjna-list').on('click', '.faq-arrow-up', function(e) {
2420	var id = $jq(this).attr("id").substring(15);
2421	$jq('#baza_referencyjna_elem_'+id).css("display", "none");
2422	$jq('#baza-ref-lista-'+id).removeClass('faq-arrow-up').addClass('faq-arrow-down');
2423});
2424
2425var slickSlider = function (){
2426
2427    if ($jq(".slick-box-container-new-wortal .slick-slider").length > 0) {
2428    	var wWidth = $jq('.slick-box-container-new-wortal .slick-slider').width();
2429    	var noWidth = Math.floor(wWidth/200);
2430    	try {
2431    		$jq('.slick-box-container-new-wortal .slick-slider').slick({
2432    			slidesToShow: noWidth,
2433    			slidesToScroll: 1,
2434    			autoplay: false,
2435    			arrows: true,
2436    			variableWidth:false,
2437    			lazyLoad: 'ondemand',
2438    			infinite: false,
2439    				  responsive: [
2440                                    {
2441                                           breakpoint: 600,
2442                                           settings: {
2443                                                variableWidth:true
2444                                            }
2445                                    }
2446                   ]
2447    		});
2448    	} catch (e) {
2449
2450        }
2451    }
2452	if ($jq(".slick-box-container-new-wortal.slick-box-container .slick-slider").length > 0) {
2453		var wWidth = $jq('.slick-box-container-new-wortal.slick-box-container .slick-slider').width();
2454		var noWidth = Math.floor(wWidth/200);
2455		try {
2456			$jq('.slick-box-container-new-wortal.slick-box-container .slick-slider').slick({
2457				slidesToShow: noWidth,
2458				slidesToScroll: 1,
2459				autoplay: false,
2460				arrows: true,
2461				lazyLoad: 'ondemand',
2462				centerMode:false,
2463				infinite: true,
2464				 responsive: [{
2465                        breakpoint: 1282,
2466                        settings: {
2467                            variableWidth: true,
2468                            prevArrow: '<button class="slickslider-mobile-banner-arrow-box left"></button>',
2469                            nextArrow: '<button class="slickslider-mobile-banner-arrow-box right"></button>'
2470                        }}]
2471			});
2472		} catch (e) {
2473		}
2474
2475	}
2476	if ($jq(".slick-slider-new").length > 0) {
2477       var wWidth = $jq('.slick-slider-new').width();
2478       var noWidth = Math.floor(wWidth/200);
2479       try {
2480
2481        var slider = $jq('.slick-slider-new');
2482
2483
2484        slider.on('init', function(event, slick) {
2485            let currentSlide = slick.currentSlide;
2486            let visibleCount = slick.$slides.filter('.slick-active').length;
2487
2488            let totalVisible = currentSlide + visibleCount;
2489            if (totalVisible > slick.slideCount) {
2490                totalVisible = slick.slideCount;
2491            }
2492
2493            let calc = (totalVisible / slick.slideCount) * 100;
2494            let progressBarNews = $jq(this).closest('.slick-box-container').siblings('.progress-bar-news');
2495
2496            progressBarNews
2497                .css('background-size', calc + '% 100%')
2498                .attr('aria-valuenow', calc);
2499        });
2500        $jq('.slick-slider-new').slick({
2501        	slidesToShow: noWidth,
2502        	slidesToScroll: 1,
2503        	autoplay: false,
2504        	arrows: true,
2505        	variableWidth: false,
2506        	lazyLoad: 'ondemand',
2507        	centerMode: false ,
2508        	infinite: false,
2509        	responsive: [{
2510                 breakpoint: 350,
2511                 settings: {
2512                      variableWidth: true
2513                 }}]
2514        });
2515
2516
2517       } catch (e) {
2518
2519       console.log('error:',e);
2520       }
2521
2522    }
2523
2524
2525	if ($jq("section.video-poznan-vertical-slider").length > 0) {
2526		$jq(".video-poznan-vertical-slider").slick({
2527		   slidesToShow: 3,
2528		   slidesToScroll: 1,
2529		   variableWidth: false,
2530		   swipeToSlide: true,
2531		   touchMove: true,
2532		   autoplay: false,
2533		   infinite: true,
2534		   vertical: true});
2535	}
2536		if ($jq(".slick-box-container.news_slider_container .slick-slider-news-index").length > 0) {
2537
2538
2539    		var wWidth = $jq('.slick-box-container.news_slider_container .slick-slider-news-index').width();
2540    		var elementWidth = $jq(".slick-box-container.news_slider_container .slick-slider-news-index .news-column-smartcity").width();
2541
2542    		var noWidth = Math.floor(wWidth/elementWidth);
2543    		try {
2544
2545
2546    		    $jq('.slick-box-container.news_slider_container .slick-slider-news-index').css('display','block');
2547
2548    			$jq('.slick-box-container.news_slider_container .slick-slider-news-index').slick({
2549    			slidesToShow: noWidth,
2550				slidesToScroll: 3,
2551				autoplay: false,
2552				variableWidth: true,
2553				arrows: true,
2554				initialSlide: 0,
2555				lazyLoad: 'ondemand',
2556				infinite: true,
2557				  responsive: [{
2558                         breakpoint: 1024,
2559                         settings: {
2560                                slidesToScroll: 1,
2561                                slidesToShow: 2
2562                          }
2563                          }, {
2564                               breakpoint: 600,
2565                               settings: {
2566                                    slidesToScroll: 1,
2567                                    slidesToShow: 1,
2568                                    prevArrow: '<button class="slickslider-mobile-arrow-box left"></button>',
2569                                    nextArrow: '<button class="slickslider-mobile-arrow-box right"></button>'
2570                                }
2571                          }, {
2572                                breakpoint: 421,
2573                                 settings: {
2574                                    slidesToScroll: 1,
2575                                     slidesToShow: 1,
2576                                     variableWidth: false,
2577                                     prevArrow: '<button class="slickslider-mobile-arrow-box left"></button>',
2578                                     nextArrow: '<button class="slickslider-mobile-arrow-box right"></button>'
2579                                 },
2580                              }
2581
2582                                  ]
2583    			});
2584    			$jq('.slick-box-container.news_slider_container .slick-slider-news-index').css('overflow','unset');
2585    		} catch (e) {
2586    		}
2587
2588    	}
2589};
2590
2591var slickSliderUpdate = function (){
2592	if ($jq(".slick-box-container-new-wortal.slick-box-container .slick-slider").length > 0) {
2593		var wWidth = $jq('.slick-box-container-new-wortal.slick-box-container .slick-slider').width();
2594		var noWidth = Math.floor(wWidth/190);
2595		try{
2596			$jq('.slick-box-container-new-wortal.slick-box-container .slick-slider').slick('slickSetOption', 'slidesToShow', noWidth, true);
2597		} catch (e) {
2598		}
2599	}
2600
2601				var newsSliderMainPage=$jq(".slider-news-mainpage");
2602
2603        	if (newsSliderMainPage.length > 0 && $jq( window ).width()<994) {
2604        		var wWidth = newsSliderMainPage.width();
2605        		var elementWidth = $jq(".slider-news-mainpage .column").width();
2606        		var noWidth = Math.floor(wWidth/400);
2607        		try{
2608        			newsSliderMainPage.slick('slickSetOption', 'slidesToShow', noWidth, true);
2609        		} catch (e) {
2610        		}
2611        	}
2612			var curisitiesSlider=$jq(".curiosities_container");
2613
2614        	if (curisitiesSlider.length > 0 && $jq( window ).width()<725) {
2615        		var wWidth = curisitiesSlider.width();
2616        		var elementWidth = $jq(".curiosities_container .curiosities_box").width();
2617        		var noWidth = Math.floor(wWidth/400);
2618        		try{
2619        			curisitiesSlider.slick('slickSetOption', 'slidesToShow', noWidth, true);
2620        		} catch (e) {
2621        		}
2622        	}
2623   if ($jq(".slick-slider-new").length > 0) {
2624             var wWidth = $jq('.slick-slider-new').width();
2625             var noWidth = Math.floor(wWidth/190);
2626             try{
2627              $jq('.slick-slider-new').slick('slickSetOption', 'slidesToShow', noWidth, true);
2628             } catch (e) {
2629              console.log('error:',e);
2630
2631             }
2632   }
2633      if ($jq(".box.box-2-column.box-mapa.box-youtube-player.slider-video .slick-list").length > 0) {
2634                var wWidth = $jq('.box.box-2-column.box-mapa.box-youtube-player.slider-video .box-container.video_box').width();
2635                var noWidth = Math.floor(wWidth/400);
2636                try{
2637                 $jq('.box.box-2-column.box-mapa.box-youtube-player.slider-video').slick('slickSetOption', 'slidesToShow', noWidth, true);
2638                } catch (e) {
2639                 console.log('error:',e);
2640
2641                }
2642      }
2643         if ($jq(".different_news_container .slick-list").length > 0) {
2644                      var wWidth = $jq('.different_news_container .different_news_box').width();
2645                      var noWidth = Math.floor(wWidth/400);
2646                      try{
2647                       $jq('.different_news_container').slick('slickSetOption', 'slidesToShow', noWidth, true);
2648                      } catch (e) {
2649                       console.log('error:',e);
2650
2651                      }
2652            }
2653            		if ($jq(".slick-box-container.news_slider_container .slick-slider-news-index").length > 0) {
2654                		var wWidth = $jq('.slick-box-container.news_slider_container .slick-slider-news-index').width();
2655                		var noWidth = Math.floor(wWidth/400);
2656                		try{
2657                			$jq('.slick-box-container.news_slider_container .slick-slider-news-index').slick('slickSetOption', 'slidesToShow', noWidth, true);
2658                		} catch (e) {
2659                		}
2660                	}
2661};
2662
2663var slider = $jq('.slick-slider-new');
2664
2665slider.on('beforeChange', function(event, slick, currentSlide, nextSlide){
2666           var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
2667          var visibleCount = slick.$slides.filter('.slick-active').length;
2668            let progressBarNews = $jq(this).parent().parent().parent().siblings('.progress-bar-news');
2669          var calc = ( (visibleCount+nextSlide) / (slick.slideCount) ) * 100;
2670      progressBarNews
2671            .css('background-size', calc + '% 100%')
2672            .attr('aria-valuenow', calc );
2673});
2674var sliderDfrnt = $jq('.different_news_container');
2675var progressBarNewsDfrnt = $jq('#progress-bar-slider-news-dfrnt');
2676sliderDfrnt.on('beforeChange', function(event, slick, currentSlide, nextSlide){
2677      var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
2678      progressBarNewsDfrnt
2679            .css('background-size', calc + '% 100%')
2680            .attr('aria-valuenow', calc );
2681});
2682        var sliderNewsIndex = $jq('.slick-slider-news-index');
2683        var progressBarNewsIndex = $jq('#progress-bar-slider-big-news-index');
2684        sliderNewsIndex.on('beforeChange', function(event, slick, currentSlide, nextSlide){
2685          var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
2686          progressBarNewsIndex
2687                .css('background-size', calc + '% 100%')
2688                .attr('aria-valuenow', calc );
2689        });
2690var awarieShowHide = function(elem){
2691	if (elem.hasClass('awarie-opened')) {
2692		elem.removeClass('awarie-opened');
2693		elem.addClass('awarie-closed');
2694		return;
2695	}
2696	elem.removeClass('awarie-closed');
2697	elem.addClass('awarie-opened');
2698}
2699
2700$jq('.mobile-awarie-list').click( function (e) {
2701	awarieShowHide($jq('.mobile_news'));
2702});
2703
2704var mobileAwarieListArrow = function(elem){
2705	if (elem.hasClass('arrow-opened')) {
2706		elem.removeClass('arrow-opened');
2707		elem.addClass('arrow-closed');
2708		$jq('.mobile-awarie-text').text("Rozwiń");
2709		return;
2710	}
2711	elem.removeClass('arrow-closed');
2712	elem.addClass('arrow-opened');
2713	$jq('.mobile-awarie-text').text("Zwiń");
2714}
2715
2716$jq('.mobile-awarie-list').click( function (e) {
2717	mobileAwarieListArrow($jq('.awarie-pointer'));
2718});
2719var showSubmitCancel = function() {
2720	$jq('.iaro_edit_categories').hide();
2721	$jq('.iaro_notifier_submit').css("display", "inline-block");
2722	$jq('.iaro_cancel_categories').css("display", "inline-block");
2723}
2724var showEdit = function() {
2725	$jq('.iaro_cancel_categories').hide();
2726	$jq('.iaro_notifier_submit').hide();
2727	$jq('.iaro_edit_categories').show();
2728}
2729
2730$jq('.iaro_edit_categories').click(function (e) {
2731	showSubmitCancel();
2732});
2733
2734$jq('.iaro_cancel_categories').click(function (e) {
2735	showEdit();
2736});
2737
2738var checkIsLoginBarExistIaro = function () {
2739	var width = $jq(window).width();
2740	if($jq('.iaro_login_bar')[0] && width > 600){
2741		$jq('#google-widget-iaro').css("padding-top","30px");
2742	} else {
2743		$jq('#google-widget-iaro').css("padding-top","0px");
2744	}
2745}
2746checkIsLoginBarExistIaro();
2747$jq(window).on('resize', checkIsLoginBarExistIaro);
2748
2749var iaroFilterListArrow = function(elem){
2750	if (elem.hasClass('filter-opened')) {
2751		elem.removeClass('filter-opened');
2752		elem.addClass('filter-closed');
2753		return;
2754	}
2755	elem.removeClass('filter-closed');
2756	elem.addClass('filter-opened');
2757}
2758
2759var iaroFilterListToggle = function(elem, elem2){
2760	if (elem.hasClass('filter-list-opened')) {
2761		elem.removeClass('filter-list-opened');
2762		elem.addClass('filter-list-closed');
2763		if (elem2.hasClass('sorter-list-opened')) {
2764			elem2.addClass('sorter-bigger-margin');
2765		} else {
2766			$jq('.iaro-news-space').css("margin-top", "0px");
2767		}
2768		return;
2769	}
2770	elem.removeClass('filter-list-closed');
2771	elem.addClass('filter-list-opened');
2772	$jq('.iaro-news-space').css("margin-top", "265px");
2773	if (elem2.hasClass('sorter-list-opened')) {
2774		elem2.removeClass('sorter-bigger-margin');
2775	}
2776}
2777var iaroSorterListArrow = function(elem){
2778	if (elem.hasClass('sorter-opened')) {
2779		elem.removeClass('sorter-opened');
2780		elem.addClass('sorter-closed');
2781		return;
2782	}
2783	elem.removeClass('sorter-closed');
2784	elem.addClass('sorter-opened');
2785}
2786
2787var iaroSorterListToggle = function(elem, elem2){
2788	if (elem.hasClass('sorter-list-opened')) {
2789		elem.removeClass('sorter-list-opened');
2790		elem.addClass('sorter-list-closed');
2791		elem.removeClass("sorter-bigger-margin");
2792		if (elem2.hasClass('filter-list-closed')) {
2793			$jq('.iaro-news-space').css("margin-top", "0px");
2794		}
2795		return;
2796	}
2797	elem.removeClass('sorter-list-closed');
2798	elem.addClass('sorter-list-opened');
2799	if (elem2.hasClass('filter-list-closed')) {
2800		elem.addClass("sorter-bigger-margin");
2801		$jq('.iaro-news-space').css("margin-top", "265px");
2802	} else {
2803		elem.removeClass("sorter-bigger-margin");
2804	}
2805}
2806
2807$jq('.iaro-filter').click( function (e) {
2808	iaroFilterListArrow($jq('.iaro-filter-arrow'));
2809	iaroFilterListToggle($jq('.iaro-filter-list'), $jq('.iaro-sorter-list'));
2810});
2811
2812$jq('.iaro-sorter').click( function (e) {
2813	iaroSorterListArrow($jq('.iaro-sorter-arrow'));
2814	iaroSorterListToggle($jq('.iaro-sorter-list'), $jq('.iaro-filter-list'));
2815});
2816
2817$jq(document).ready(function() {
2818    if(document.getElementById("ws_street") !== null) {
2819        wasteCheckInput();
2820    }
2821
2822    if(document.getElementById("month_selector_0") !== null ) {
2823        const d = new Date();
2824        let month = d.getMonth() + 1;
2825        let year = d.getFullYear();
2826        if(!isEmpty($jq('.select_element[value=\'' + month + '.' + year + '\']'))) {
2827
2828            $jq('.select_element[value=\'' + month + '.' + year + '\']').trigger("click");
2829        } else {
2830            let value = $jq('.select_element').first().attr("value");
2831            $jq('.select_element[value=\'' + value + '\']').trigger("click");
2832        }
2833    }
2834});
2835
2836function showQr(el) {
2837    var os = $jq(el).attr("id").split("-")[2];
2838    $jq(el).siblings(".qr-button").removeClass("qr-button-active");
2839    $jq(el).addClass("qr-button-active");
2840    $jq("#qr-" + os).siblings().removeClass("qr-active");
2841    $jq("#qr-" + os).addClass("qr-active");
2842
2843}
2844function hidePopup(button){
2845    $jq(button).parent().parent().parent().addClass('hidden');
2846}
2847
2848function closeWasteAlert(){
2849    $jq('#waste-alert').css("display", "none");
2850    $jq('.shadow').css("display", "none");
2851}
2852
2853$jq(document).on('keyup', '#ws_street', wasteCheckInput);
2854$jq('#ws_street').on('autocomplete-click', wasteCheckInput);
2855$jq(document).on('keyup', '#ws_number', wasteCheckInput);
2856$jq('#ws_number').on('autocomplete-click', wasteCheckInput);
2857$jq(document).on('keyup', '#ws_object', wasteCheckInput);
2858$jq('#ws_object').on('autocomplete-click',wasteCheckInput);
2859
2860
2861function wasteCheckInput () {
2862        var street = document.getElementById("ws_street").value;
2863        var number = document.getElementById("ws_number").value;
2864        var object = document.getElementById("ws_object").value;
2865        if ((isEmpty(street) || (isEmpty(number) && isEmpty(object))) && isEmpty(object)) {
2866            $jq('#wasteSubmit').attr('disabled','disabled');
2867        } else  {
2868            wasteCheckAddress()
2869        }
2870}
2871
2872function wasteCheckAddress() {
2873    var street = $jq('#ws_street').val();
2874    var houseNo = $jq('#ws_number').val();
2875    var objectNo = $jq('#ws_object').val();
2876    $jq.get(ctxPath + "/wasteapi/get-address-count.json", {street: street, house_no: houseNo, object_no: objectNo})
2877        .done(function(data) {
2878             if(data > 0) {
2879                $jq('#wasteSubmit').removeAttr('disabled');
2880                if(!isEmpty(objectNo)) {
2881                    $jq('#wasteObjectError').addClass('hidden');
2882                }
2883             } else {
2884                 $jq('#wasteSubmit').attr('disabled','disabled');
2885                 if(!isEmpty(objectNo)) {
2886                     $jq('#wasteObjectError').removeClass('hidden');
2887                 }
2888             }
2889
2890        })
2891
2892}
2893
2894function updateWasteSchedule(el) {
2895    var month = $jq(el).attr('value');
2896    var index = $jq(el).parent().siblings('.select_div').attr("id").split("_")[2];
2897    $jq("#schedule_" + index).find(".waste-date").each(function() {
2898        var column = $jq(this).data("value");
2899        if(month == column){
2900            $jq(this).removeClass("hidden");
2901        } else {
2902            if(!$jq(this).hasClass("hidden")){
2903                $jq(this).addClass("hidden");
2904            }
2905        }
2906    })
2907}
2908
2909function showSmartCityQr(el) {
2910    $jq(".waste-smartCity").parent().removeClass("hidden");
2911
2912}
2913
2914function toggleSelect(element) {
2915	$jq(element).find('.arrow_down_select_input').toggleClass('rotated');
2916    let selectRows = $jq(element).siblings('#select_rows');
2917    let elementPosition = $jq(element).position();
2918    let elementHeight = $jq(element).outerHeight();
2919    selectRows.css({
2920        top: elementPosition.top + elementHeight + 'px'
2921         });
2922    selectRows.toggleClass('visible');
2923}
2924function toggleSelect(element) {
2925	$jq(element).toggleClass('selected');
2926	$jq(element).find('.arrow_down_select_input').toggleClass('rotated');
2927    let selectRows = $jq(element).siblings('#select_rows');
2928    let elementPosition = $jq(element).position();
2929    let elementHeight = $jq(element).outerHeight();
2930    selectRows.css({
2931        top: elementPosition.top + elementHeight + 'px'
2932         });
2933    selectRows.toggleClass('visible');
2934}
2935function changeSelectValue(element){
2936    let clickedElement = $jq(element);
2937    let name = clickedElement.attr('name');
2938    let value = clickedElement.attr('value');
2939    clickedElement.closest('.select_box').find('input').prop('disabled', false);
2940    let selectTextElement = clickedElement.closest('.select_box').find('input');
2941    let selectTextElementLabel = clickedElement.closest('.select_box').find('#select_text');
2942    selectTextElementLabel.html(name);
2943    clickedElement.closest('#select_rows').find('.select_element.selected').removeClass('selected');
2944    clickedElement.addClass('selected');
2945    selectTextElement.attr('value', value).trigger('change');
2946
2947}
2948$jq(document).on('click', function(event) {
2949    if (!$jq(event.target).closest('.select_div').length) {
2950        $jq('.select_div').each(function() {
2951            let element = $jq(this);
2952            if (!element.is(event.target) && !element.has(event.target).length && element.hasClass('selected')) {
2953                toggleSelect(element);
2954            }
2955        });
2956    }
2957});
2958
2959
2960function isEmpty(el){
2961   return (el == null || el.length == 0);
2962}
2963
2964var infoListDateToggleDesktop = function(elem) {
2965	if (elem.hasClass('info-list-date-desktop-opened')) {
2966		elem.removeClass('info-list-date-desktop-opened');
2967		elem.addClass('info-list-date-desktop-closed');
2968		return;
2969	}
2970	elem.removeClass('info-list-date-desktop-closed');
2971	elem.addClass('info-list-date-desktop-opened');
2972}
2973
2974var infoListArrowDateToggleDesktop = function(elem) {
2975	if (elem.hasClass('info-list-arrow-date-desktop-opened')) {
2976		elem.removeClass('info-list-arrow-date-desktop-opened');
2977		elem.addClass('info-list-arrow-date-desktop-closed');
2978		return;
2979	}
2980	elem.removeClass('info-list-arrow-date-desktop-closed');
2981	elem.addClass('info-list-arrow-date-desktop-opened');
2982}
2983
2984var infoListCountToggleDesktop = function(elem) {
2985	if (elem.hasClass('info-list-count-desktop-opened')) {
2986		elem.removeClass('info-list-count-desktop-opened');
2987		elem.addClass('info-list-count-desktop-closed');
2988		return;
2989	}
2990	elem.removeClass('info-list-count-destkop-closed');
2991	elem.addClass('info-list-count-desktop-opened');
2992}
2993
2994var infoListArrowCountToggleDesktop = function(elem) {
2995	if (elem.hasClass('info-list-arrow-count-desktop-opened')) {
2996		elem.removeClass('info-list-arrow-count-desktop-opened');
2997		elem.addClass('info-list-arrow-count-desktop-closed');
2998		return;
2999	}
3000	elem.removeClass('info-list-arrow-count-desktop-closed');
3001	elem.addClass('info-list-arrow-count-desktop-opened');
3002}
3003
3004var infoListDateToggleMobile = function(elem) {
3005	if (elem.hasClass('info-list-date-mobile-opened')) {
3006		elem.removeClass('info-list-date-mobile-opened');
3007		elem.addClass('info-list-date-mobile-closed');
3008		return;
3009	}
3010	elem.removeClass('info-list-date-mobile-closed');
3011	elem.addClass('info-list-date-mobile-opened');
3012}
3013
3014var infoListArrowDateToggleMobile = function(elem) {
3015	if (elem.hasClass('info-list-arrow-date-mobile-opened')) {
3016		elem.removeClass('info-list-arrow-date-mobile-opened');
3017		elem.addClass('info-list-arrow-date-mobile-closed');
3018		return;
3019	}
3020	elem.removeClass('info-list-arrow-date-mobile-closed');
3021	elem.addClass('info-list-arrow-date-mobile-opened');
3022}
3023
3024var infoListCountToggleMobile = function(elem) {
3025	if (elem.hasClass('info-list-count-mobile-opened')) {
3026		elem.removeClass('info-list-count-mobile-opened');
3027		elem.addClass('info-list-count-mobile-closed');
3028		return;
3029	}
3030	elem.removeClass('info-list-count-mobile-closed');
3031	elem.addClass('info-list-count-mobile-opened');
3032}
3033
3034var infoListArrowCountToggleMobile = function(elem) {
3035	if (elem.hasClass('info-list-arrow-count-mobile-opened')) {
3036		elem.removeClass('info-list-arrow-count-mobile-opened');
3037		elem.addClass('info-list-arrow-count-mobile-closed');
3038		return;
3039	}
3040	elem.removeClass('info-list-arrow-count-mobile-closed');
3041	elem.addClass('info-list-arrow-count-mobile-opened');
3042}
3043
3044var infoListCountToggleMobileBottom = function(elem) {
3045	if (elem.hasClass('info-list-count-mobile-bottom-opened')) {
3046		elem.removeClass('info-list-count-mobile-bottom-opened');
3047		elem.addClass('info-list-count-mobile-bottom-closed');
3048		return;
3049	}
3050	var sorterBottomMobile = $jq('.sorter_count_bottom_mobile');
3051
3052    var sorterBottomMobileBottom =  sorterBottomMobile.outerHeight();
3053    elem.css('top', sorterBottomMobileBottom);
3054	elem.removeClass('info-list-count-mobile-bottom-closed');
3055	elem.addClass('info-list-count-mobile-bottom-opened');
3056}
3057
3058var infoListArrowCountToggleMobileBottom = function(elem) {
3059	if (elem.hasClass('info-list-arrow-count-mobile-bottom-opened')) {
3060		elem.removeClass('info-list-arrow-count-mobile-bottom-opened');
3061		elem.addClass('info-list-arrow-count-mobile-bottom-closed');
3062		return;
3063	}
3064	elem.removeClass('info-list-arrow-count-mobile-bottom-closed');
3065	elem.addClass('info-list-arrow-count-mobile-bottom-opened');
3066}
3067
3068
3069$jq('.info-list-sorter-date-upper-desktop').click( function (e) {
3070	infoListDateToggleDesktop($jq('.info-list-sorter-date-links-desktop'));
3071	infoListArrowDateToggleDesktop($jq('.info-list-sorter-date-arrow-desktop'));
3072});
3073
3074$jq('.info-list-sorter-count-upper-desktop').click( function (e) {
3075	infoListCountToggleDesktop($jq('.info-list-sorter-count-links-desktop'));
3076	infoListArrowCountToggleDesktop($jq('.info-list-sorter-count-arrow-desktop'));
3077});
3078
3079$jq('.info-list-sorter-date-upper-mobile').click( function (e) {
3080	infoListDateToggleMobile($jq('.info-list-sorter-date-links-mobile'));
3081	infoListArrowDateToggleMobile($jq('.info-list-sorter-date-arrow-mobile'));
3082});
3083
3084$jq('.info-list-sorter-date-upper-mobile').on('keydown', function (e) {
3085	if (e.key === 'Enter') {
3086		$jq('.info-list-sorter-date-upper-mobile').trigger( "click" );
3087	}
3088});
3089
3090$jq('.info-list-sorter-count-upper-mobile').click( function (e) {
3091	infoListCountToggleMobile($jq('.info-list-sorter-count-links-mobile'));
3092	infoListArrowCountToggleMobile($jq('.info-list-sorter-count-arrow-mobile'));
3093});
3094
3095$jq('.info-list-sorter-count-upper-mobile').on('keydown', function (e) {
3096	if (e.key === 'Enter') {
3097		$jq('.info-list-sorter-count-upper-mobile').trigger( "click" );
3098	}
3099});
3100
3101$jq('.sorter_count_bottom_mobile.flex_row').click( function (e) {
3102
3103	infoListCountToggleMobileBottom($jq('.info-list-sorter-count-links-mobile-bottom'));
3104	infoListArrowCountToggleMobileBottom($jq('.info-list-sorter-count-arrow-mobile-bottom'));
3105});
3106
3107var cinemaTheaterToggle = function(elem) {
3108	if (elem.hasClass('cinema-theater-opened')) {
3109		elem.removeClass('cinema-theater-opened');
3110		elem.addClass('cinema-theater-closed');
3111		return;
3112	}
3113	elem.removeClass('cinema-theater-closed');
3114	elem.addClass('cinema-theater-opened');
3115}
3116
3117var cinemaTheaterToggleArrow = function(elem) {
3118	if (elem.hasClass('cinema-theater-arrow-opened')) {
3119		elem.removeClass('cinema-theater-arrow-opened');
3120		elem.addClass('cinema-theater-arrow-closed');
3121		$jq('.cinema-theater-button').css("background", "#FFFFFF");
3122		$jq('.cinema-theater-button-label').css("color", "#01070E");
3123		$jq('.cinema-theater-button-toggle-label').css("color", "#01407E");
3124		$jq('.cinema-theater-button-toggle-label').text("Rozwiń");
3125		return;
3126	}
3127	elem.removeClass('cinema-theater-arrow-closed');
3128	elem.addClass('cinema-theater-arrow-opened');
3129	$jq('.cinema-theater-button').css("background", "#0054A6");
3130	$jq('.cinema-theater-button-label').css("color", "#FFFFFF");
3131	$jq('.cinema-theater-button-toggle-label').css("color", "#FFFFFF");
3132	$jq('.cinema-theater-button-toggle-label').text("Zwiń");
3133}
3134
3135$jq('.cinema-theater-button').click( function (e) {
3136	cinemaTheaterToggle($jq('.cinema-theater-list'));
3137	cinemaTheaterToggleArrow($jq('.cinema-theater-button-toggle-arrow'));
3138});
3139
3140var eventsFilterMobileToggle = function(elem) {
3141	if (elem.hasClass('events-filter-mobile-opened')) {
3142		elem.removeClass('events-filter-mobile-opened');
3143		elem.addClass('events-filter-mobile-closed');
3144		return;
3145	}
3146	elem.removeClass('events-filter-mobile-closed');
3147	elem.addClass('events-filter-mobile-opened');
3148	$jq('.events-filter-mobile-button').css("border", "2px solid #009BDB");
3149}
3150
3151var eventsFilterMobileToggleArrow = function(elem) {
3152	if (elem.hasClass('events-filter-mobile-arrow-opened')) {
3153		elem.removeClass('events-filter-mobile-arrow-opened');
3154		elem.addClass('events-filter-mobile-arrow-closed');
3155		return;
3156	}
3157	elem.removeClass('events-filter-mobile-arrow-closed');
3158	elem.addClass('events-filter-mobile-arrow-opened');
3159}
3160
3161$jq('.events-filter-mobile').click( function (e) {
3162	eventsFilterMobileToggle($jq('.events-filter-mobile-list'));
3163	eventsFilterMobileToggleArrow($jq('.events-filter-mobile-arrow-toggle'));
3164});
3165
3166$jq('.event-calendar-button').click( function (e) {
3167	$jq('.calendar-event-modal').css("display", "block")
3168});
3169
3170
3171$jq('#area').on('change', function() {
3172    $jq('#lvl_1' ).find('option').filter(function () { return $jq(this).html().replace(/\s/g,'').toLowerCase() == $jq('#area').val().replace(/\s/g,'').toLowerCase(); }).prop('selected', 'selected');
3173});
3174$jq('#id_ulica_street_lookup_group').on('change', function() {
3175    $jq('#lvl_1' ).find('option').filter(function () { return $jq(this).html().replace(/\s/g,'').toLowerCase() == $jq('#id_ulica_street_lookup_group').val().replace(/\s/g,'').toLowerCase(); }).prop('selected', 'selected');
3176});
3177
3178var modal = document.getElementById("calendar-event-modal-id");
3179window.onclick = function(event) {
3180	if (event.target == modal) {
3181		modal.style.display = "none";
3182	}
3183}
3184
3185function showCatEventsPage(el) {
3186    let container = el.closest(".description-event-categories");
3187    $jq(".category-before-click-events", container).css("display","none");
3188    $jq(".events-cat-counter", container).css("display","none");
3189    $jq(".category-after-click-events", container).css("display","block");
3190    let box = el.closest(".event-box");
3191    $jq('.event-box').css("height", "unset");
3192}
3193
3194function showCat(el) {
3195    let container = el.closest(".event-mini-container");
3196    $jq('.events-cat-counter', container).css("display", "none");
3197    $jq('.category-before-click-events', container).css("display", "none");
3198    $jq('.category-after-click-events', container).css("display", "flex");
3199    $jq('.events-block-slider').css("max-height", "unset");
3200    let miniContainerW = $jq('.events-block-slider').height();
3201    $jq('.events-slickslider-mobile-arrow-box').css('top', miniContainerW + 39);
3202}
3203
3204$jq('.events-categories-link').on("click", function() {
3205    if($jq('.events-block-slider >.slick-list').width() !== undefined){
3206        if( $jq( window ).width() > 720) {
3207            $jq('.events-slickslider-mobile-arrow-box').css('top', '392px');
3208        } else {
3209            $jq('.events-slickslider-mobile-arrow-box').css('top', '405px');
3210        }
3211    }
3212});
3213
3214
3215function openCat(){
3216    $jq('.events-categories-mobile > .overlay').css("display", "block");
3217    $jq('.events-categories-mobile > .shadow').css("display", "block");
3218    $jq(document.body).css("overflow", 'hidden');
3219}
3220 function closeCat(){
3221    $jq('.events-categories-mobile > .overlay').css("display", "none");
3222    $jq('.events-categories-mobile > .shadow').css("display", "none");
3223    $jq(document.body).css("overflow", 'unset');
3224 }
3225
3226 $jq('.events-categories-link-mobile').on('click', function () {
3227    $jq('#events-categories-select > span').html(this.innerText);
3228    closeCat();
3229 });
3230
3231setTimeout(function() {
3232	$jq('.category-after-click-events').css("display", "none");
3233}, 2500);
3234
3235function openCatNews(){
3236    $jq('.news-categories-mobile > .overlay').css("display", "block");
3237    $jq('.news-categories-mobile > .shadow').css("display", "block");
3238    $jq(document.body).css("overflow", 'hidden');
3239}
3240
3241 function closeCatNews(){
3242    $jq('.news-categories-mobile > .overlay').css("display", "none");
3243    $jq('.news-categories-mobile > .shadow').css("display", "none");
3244    $jq(document.body).css("overflow", 'unset');
3245 }
3246
3247  $jq('.news-categories-overlay').on('click','li', function() {
3248     $jq('#news-categories-select > span').html(this.innerText);
3249     closeCatNews();
3250  });
3251
3252var languageToggle = function(elem) {
3253	if (elem.hasClass('language-list-opened')) {
3254		elem.removeClass('language-list-opened');
3255		elem.addClass('language-list-closed');
3256		return;
3257	}
3258	elem.removeClass('language-list-closed');
3259	elem.addClass('language-list-opened');
3260}
3261 var languageToggleMobile = function(elem) {
3262 	elem.addClass('active');
3263    $jq('#backdrop').removeClass('hidden-background');
3264   $jq('.icon.main-menu.hide-text').hide();
3265
3266 }
3267
3268
3269var languageArrowToggle = function(elem) {
3270	if (elem.hasClass('language-arrow-opened')) {
3271		elem.removeClass('language-arrow-opened');
3272		elem.addClass('language-arrow-closed');
3273		return;
3274	}
3275	elem.removeClass('language-arrow-closed');
3276	elem.addClass('language-arrow-opened');
3277}
3278
3279$jq('.language-upper').click( function (e) {
3280     var windowWidth = window.innerWidth;
3281
3282     if(windowWidth>857){
3283         languageToggle($jq('.language-list'));
3284         languageArrowToggle($jq('.language-arrow'));
3285     }else{
3286  	languageToggleMobile($jq('.language-list-mobile'));
3287  	}
3288});
3289$jq('.language-upper').on("keypress", function(event) {
3290    if (event.key === "Enter") {
3291        event.preventDefault();
3292        $jq(this).click();
3293      }
3294});
3295function hideLangMenu(){
3296    if ($jq('.language-list').hasClass('language-list-opened')) {
3297        $jq('.language-list').removeClass('language-list-opened');
3298        $jq('.language-list').addClass('language-list-closed');
3299        $jq('.language-upper .language-arrow').removeClass('language-arrow-opened');
3300        $jq('.language-upper .language-arrow').addClass('language-arrow-closed');
3301    }
3302}
3303 $jq('.language-list-links:last-child a').on('blur', function () {
3304
3305    setTimeout(function () {
3306           var focused = $jq(':focus-visible');
3307           if (!focused.is('.language-list-links a')) {
3308             hideLangMenu();
3309             }
3310     }, 30);
3311 });
3312
3313var accessToggle = function(elem) {
3314	if (elem.hasClass('access-main-page-list-opened')) {
3315		elem.removeClass('access-main-page-list-opened');
3316		hideContrastMenu();;
3317
3318		elem.addClass('access-main-page-list-closed');
3319		return;
3320	}
3321	elem.removeClass('access-main-page-list-closed');
3322	elem.addClass('access-main-page-list-opened');
3323}
3324  var accessToggleMobile = function(elem) {
3325		elem.addClass('active');
3326		$jq('.icon.main-menu.hide-text').hide();
3327		$jq('#backdrop').removeClass('hidden-background');
3328}
3329var accessArrowToggle = function(elem) {
3330	if (elem.hasClass('access-main-page-arrow-opened')) {
3331
3332		elem.removeClass('access-main-page-arrow-opened');
3333		elem.addClass('access-main-page-arrow-closed');
3334		return;
3335	}
3336
3337	elem.removeClass('access-main-page-arrow-closed');
3338	elem.addClass('access-main-page-arrow-opened');
3339}
3340
3341$jq('.access-main-page-upper').click( function (e) {
3342      var windowWidth = window.innerWidth;
3343
3344     if(windowWidth>857){
3345	accessToggle($jq('.access-main-page-list'));
3346	accessArrowToggle($jq('.access-main-page-arrow'));
3347	}else{
3348		accessToggleMobile($jq('.access-main-page-list-mobile'));
3349
3350	}
3351
3352});
3353function hideContrastMenu(){
3354           $jq('.access-main-page-link.bolded-rows').removeClass('bolded-rows');
3355           $jq('body').removeClass('open-main-menu');
3356           $jq('#backdrop-menu-desktop').css('display','none');
3357           $jq('#catalog_contrast').css('display','none') ;
3358}
3359var hideAccessMenu = function(elem) {
3360	if (elem.hasClass('access-main-page-list-opened')) {
3361		elem.removeClass('access-main-page-list-opened');
3362        $jq('.access-main-page-link.bolded-rows').removeClass('bolded-rows');
3363        $jq('body').removeClass('open-main-menu');
3364        $jq('#backdrop-menu-desktop').css('display','none');
3365        $jq('#catalog_contrast').css('display','none');
3366		elem.addClass('access-main-page-list-closed');
3367		$jq('.access-main-page-arrow').removeClass('access-main-page-arrow-opened');
3368		$jq('.access-main-page-arrow').addClass('access-main-page-arrow-closed');
3369		return;
3370	}
3371}
3372$jq(document).keydown(function(event) {
3373    if (event.key === "Escape" || event.keyCode === 27) {
3374        hideAccessMenu($jq('.access-main-page-list'));
3375    }
3376});
3377$jq(document).keydown(function(event) {
3378    if (event.key === "Escape" || event.keyCode === 27) {
3379       hideLangMenu();
3380    }
3381});
3382$jq('.access-main-page-link').on("keypress", function(event) {
3383    if (event.key === "Enter") {
3384        if($jq('#catalog_contrast').css('display') === 'block' && $jq(this).attr('data-pzn-menu') && $jq(this).attr('data-pzn-menu') ==='catalog_contrast'){
3385           event.preventDefault();
3386            hideContrastMenu();
3387        } else {
3388           $jq(this).click();
3389        }
3390      }
3391});
3392$jq('#ln_high_contrast .access-main-page-link:last').on('blur', function () {
3393    setTimeout(function () {
3394          var focused = $jq(':focus-visible');
3395          if (!focused.hasClass('access-main-page-link')) {
3396              hideAccessMenu($jq('.access-main-page-list'));
3397              $jq('.access-main-page-list').removeClass('access-main-page-list-opened');
3398              hideContrastMenu();
3399              $jq('.access-main-page-list').addClass('access-main-page-list-closed');
3400              $jq('.access-main-page-upper .access-main-page-arrow').removeClass('access-main-page-arrow-opened');
3401              $jq('.access-main-page-upper .access-main-page-arrow').addClass('access-main-page-arrow-closed');
3402          }
3403      }, 30);
3404});
3405var redBlockToggle = function(elem) {
3406	if (elem.hasClass('block-opened')) {
3407		elem.children('div.red-alert-up').children('div.red-alert-icon').removeClass('red-alert-icon-opened');
3408		elem.children('div.red-alert-up').children('div.red-alert-icon').addClass('red-alert-icon-closed');
3409		elem.children('div.red-alert-right-section').children('div.red-alert-collapse').removeClass('red-alert-collapse-opened');
3410		elem.children('div.red-alert-right-section').children('div.red-alert-collapse').addClass('red-alert-collapse-closed');
3411		elem.children('div.red-alert-up').children('div.red-alert-title').css('font-size', '12px');
3412		elem.children('div.red-alert-text').css('display', 'none');
3413		elem.removeClass('block-opened');
3414		elem.addClass('block-closed');
3415		return;
3416	}
3417	elem.children('div.red-alert-up').children('div.red-alert-icon').removeClass('red-alert-icon-closed');
3418	elem.children('div.red-alert-up').children('div.red-alert-icon').addClass('red-alert-icon-opened');
3419	elem.children('div.red-alert-right-section').children('div.red-alert-collapse').removeClass('red-alert-collapse-closed');
3420	elem.children('div.red-alert-right-section').children('div.red-alert-collapse').addClass('red-alert-collapse-opened');
3421	elem.children('div.red-alert-up').children('div.red-alert-title').css('font-size', '16px');
3422	elem.children('div.red-alert-text').css('display', 'block');
3423	elem.removeClass('block-closed');
3424	elem.addClass('block-opened');
3425}
3426
3427$jq('.red-alert-collapse').click( function (e) {
3428	redBlockToggle($jq(this).parent());
3429});
3430$jq('.red-alert-block').click( function (e) {
3431	redBlockToggle($jq(this));
3432
3433});
3434
3435$jq(document).ready(function() {
3436     var searchMainPageButton = document.querySelector('#search-main-page-button');
3437      var sessionContainer = document.querySelector('.session-container');
3438     if(searchMainPageButton){
3439                  searchMainPageButton.addEventListener('click', function() {
3440                      searchMainPageButton.classList.add('clicked');
3441                  });
3442     }
3443     if(sessionContainer){
3444       sessionContainer.addEventListener('click', function() {
3445                      sessionContainer.classList.add('clicked');
3446           });
3447     }
3448});
3449$jq('.access-main-page-upper').on("keypress", function(event) {
3450    if (event.key === "Enter") {
3451        event.preventDefault();
3452        $jq('.access-main-page-upper').click();
3453      }
3454});
3455
3456$jq('.red-alert-collapse').on("keypress", function(event) {
3457    if (event.key === "Enter") {
3458        event.preventDefault();
3459        $jq('.red-alert-collapse').click();
3460      }
3461});
3462$jq('.red-alert-block').on("keypress", function(event) {
3463    if (event.key === "Enter") {
3464        event.preventDefault();
3465         var linkElement = $jq(this).find('a.red-alert-link');
3466
3467               if (linkElement.length > 0 && typeof linkElement[0].click === 'function') {
3468                   linkElement[0].click();
3469               }
3470}
3471});
3472$jq(document).ready(function() {
3473//info blue bar menu and weather  responsive menu creation
3474function createInformationMenu() {
3475            const screenWidth = window.innerWidth;
3476
3477            if (screenWidth < 470) {
3478                    const elementsToMove = [];
3479                var infoMenu= document.getElementById('expand_info_menu');
3480                var infoMenuButton= document.querySelector('.info_menu_button');
3481                    if(infoMenu && infoMenuButton && $jq('#expand_info_menu').is(':empty')){
3482                       const topBarBlueLinks = document.querySelector(".top-bar-blue-links");
3483                        const children = topBarBlueLinks.children;
3484                        let totalWidth = 0;
3485                        const maxWidth = topBarBlueLinks.offsetWidth / 1.5;
3486                        let isFirst= true;
3487                        if(children.length < 3){
3488                            topBarBlueLinks.style.setProperty('display','none','important');
3489                            $jq('.name-lang-box').css('border-bottom','none');
3490                        }
3491                        else{
3492                            for (let i = 0; i < children.length-2; i++) {
3493
3494                            let cloned= false;
3495                            if(isFirst){
3496                            let text = children[i].textContent;
3497                                if(text.length > 15){
3498                                 var clonedElement = children[i].cloneNode(true); // Tworzenie głębokiej kopii elementu
3499                                  elementsToMove.push(clonedElement);
3500                                  cloned=true;
3501                                    children[i].textContent =  children[i].textContent.substring(0, 15) + '...';
3502                                }
3503                               isFirst=false;
3504                            }
3505                            totalWidth += children[i].offsetWidth;
3506                            if (totalWidth >= maxWidth) {
3507                            elementsToMove.push(children[i]);
3508                            }else if(!cloned){
3509                             var clonedElement = children[i].cloneNode(true);
3510                                elementsToMove.push(clonedElement);
3511                            }
3512                        }
3513
3514                          elementsToMove.forEach(element => {
3515                                    infoMenu.appendChild(element);
3516                                });
3517
3518                       if (infoMenu.children.length > 0) {
3519                           infoMenuButton.style.display = 'flex';
3520                       }
3521                       }
3522                }
3523            }
3524        }
3525        function createWeatherInfoMenu() {
3526            const screenWidth = window.innerWidth;
3527            var infoMenu= document.getElementById('expand_weather_info_menu');
3528            if (screenWidth < 694 && infoMenu) {
3529
3530                           infoMenu.style.setProperty('flex-direction','column');
3531                           var weatherInfoMenuButton= document.querySelector('.weather_info_menu_button');
3532                           const dateWeatherBox = document.querySelector(".date-weather-box");
3533
3534                           const boxAirQualityElements = document.querySelectorAll('.box-air-quality');
3535
3536                           boxAirQualityElements.forEach(element => {
3537                                        element.style.setProperty('justify-content','flex-start');
3538                           });
3539
3540
3541                           const infoRightElements = document.querySelectorAll('.info-right');
3542
3543                            boxAirQualityElements.forEach(element => {
3544                               infoMenu.append(element);
3545                           });
3546
3547                           infoRightElements.forEach(element => {
3548                               infoMenu.append(element);
3549                           });
3550
3551                            weatherInfoMenuButton.style.display = 'flex';
3552            }
3553        }
3554        createWeatherInfoMenu();
3555        createInformationMenu();
3556
3557            window.addEventListener('resize', createInformationMenu);
3558            const infoMenuButton = document.querySelector('.info_menu_button');
3559            const expandInfoMenu = document.getElementById('expand_info_menu');
3560
3561            const topBarMainPage = document.querySelector('.top-bar-main-page');
3562            const blueLinksTopBar =document.querySelector('.top-bar-blue-links');
3563            if(infoMenuButton){
3564                 var expandInfoMenuArrow = infoMenuButton.querySelector('#arrow-more');
3565                 infoMenuButton.addEventListener('click', function() {
3566                    if (expandInfoMenu.style.display === 'flex') {
3567                        expandInfoMenuArrow.classList.add('weather-arrow-closed');
3568                        expandInfoMenuArrow.classList.remove('weather-arrow-opened');
3569                        expandInfoMenu.style.display = 'none';
3570                        blueLinksTopBar.style.height ='60px';
3571                         $jq('#info_menu_button_text').text("Rozwiń");
3572                        $jq('.top-menu-button-link').not('#expand_info_menu .top-menu-button-link').css('display', 'flex');
3573                        $jq('#info_menu_button').css('margin-left','16px');
3574                    } else {
3575                        expandInfoMenuArrow.classList.add('weather-arrow-opened');
3576                        expandInfoMenuArrow.classList.remove('weather-arrow-closed');
3577                        expandInfoMenu.style.display = 'flex';
3578                        expandInfoMenu.style.height='auto';
3579                        $jq('.top-menu-button-link').not('#expand_info_menu .top-menu-button-link').css('display', 'none');
3580                        $jq('#info_menu_button_text').text("Zwiń");
3581
3582                        $jq('#info_menu_button').css('margin-left','auto');
3583                        topBarMainPage.style.height ='auto';
3584                        blueLinksTopBar.style.height ='auto';
3585                    }
3586            });
3587        }
3588        window.addEventListener('resize', createWeatherInfoMenu);
3589        const weatherInfoMenuButton = document.querySelector('.weather_info_menu_button');
3590        const expandWeatherInfoMenu = document.getElementById('expand_weather_info_menu');
3591        if(weatherInfoMenuButton){
3592        var expandInfoWeatherMenuArrow = weatherInfoMenuButton.querySelector('#arrow-more');
3593      //  const topBarMainPage = document.querySelector('.top-bar-main-page');
3594      //  const blueLinksTopBar =document.querySelector('.top-bar-blue-links');
3595
3596        weatherInfoMenuButton.addEventListener('click', function() {
3597            if (expandWeatherInfoMenu.style.display === 'flex') {
3598                expandInfoWeatherMenuArrow.classList.add('language-arrow-closed');
3599                expandInfoWeatherMenuArrow.classList.remove('language-arrow-opened');
3600                expandWeatherInfoMenu.style.display = 'none';
3601               // topBarMainPage.style.height ='120px';
3602               // blueLinksTopBar.style.height ='60px';
3603
3604            } else {
3605                expandInfoWeatherMenuArrow.classList.add('language-arrow-opened');
3606                expandInfoWeatherMenuArrow.classList.remove('language-arrow-closed');
3607                expandWeatherInfoMenu.style.display = 'flex';
3608                expandWeatherInfoMenu.style.height='auto';
3609              //  topBarMainPage.style.height ='auto';
3610              //  blueLinksTopBar.style.height ='auto';
3611            }
3612
3613});
3614}
3615
3616
3617var currentPath = window.location.pathname;
3618const targetNode = document.getElementById("google_translate_element");
3619console.debug("targetNode:" + targetNode);
3620if (targetNode !== null) {
3621	const config = { attributes: true, childList: true, subtree: true };
3622	const callback = (mutationList, observer) => {
3623		for (const mutation of mutationList) {
3624			if (mutation.type === "childList") {
3625				mutation.addedNodes.forEach((node) => {
3626
3627					if (node.nodeName === "OPTION") {
3628						if (node.textContent === "Wybierz język") {
3629							if (currentPath.includes('/en/') || currentPath.includes('/ua/')) {
3630								node.textContent = "TRANSLATE";
3631								$jq(".goog-te-combo").css("max-width", "125px");
3632							} else {
3633								node.textContent = "TŁUMACZ";
3634							}
3635						}
3636					}
3637				});
3638			}
3639		}
3640	};
3641	// Create an observer instance linked to the callback function
3642	const observer = new MutationObserver(callback);
3643
3644	// Start observing the target node for configured mutations
3645	observer.observe(targetNode, config);
3646};
3647
3648
3649
3650        var accessLabel= document.querySelector('.access-main-page-label');
3651
3652        if (accessLabel) {
3653            var labelText = accessLabel.textContent;
3654            var uppercasedText = labelText.toUpperCase();
3655            accessLabel.textContent = uppercasedText;
3656        }
3657
3658
3659		if ($jq('#n-t-necropolis-grupa-icon').length > 0) {
3660			$jq('#n-t-necropolis-grupa-icon').click(function () {
3661				 $jq( "#n-t-necropolis-dp" ).dialog( "close" );
3662			     $jq( "#n-t-necropolis-in" ).dialog( "close" );
3663			     $jq( "#n-t-necropolis-grupa" ).dialog( "open" );
3664			 });
3665		}
3666		
3667		if ($jq('#n-t-necropolis-grupa').length > 0) {
3668			 $jq( "#n-t-necropolis-grupa" ).dialog({ closeOnEscape: true, autoOpen: false, minHeight: 90, closeText: "zamknij", classes: {"ui-dialog": "necropolis-ui-dialog"}
3669			 , position: {my: "right+300 top", at: "left+20 bottom", of: "#n-t-necropolis-grupa-icon"} });
3670		}
3671		if ($jq('#n-t-necropolis-in-icon').length > 0) {
3672			$jq('#n-t-necropolis-in-icon').click(function () {
3673				 $jq( "#n-t-necropolis-grupa" ).dialog( "close" );
3674			     $jq( "#n-t-necropolis-dp" ).dialog( "close" );
3675			     $jq( "#n-t-necropolis-in" ).dialog( "open" );
3676			 });
3677		}
3678		
3679		if ($jq('#n-t-necropolis-in').length > 0) {
3680			 $jq( "#n-t-necropolis-in" ).dialog({ closeOnEscape: true, autoOpen: false, minHeight: 90, closeText: "zamknij", classes: {"ui-dialog": "necropolis-ui-dialog"}
3681			 , position: {my: "right+300 top", at: "left+20 bottom", of: "#n-t-necropolis-in-icon"} });
3682		}
3683		if ($jq('#n-t-necropolis-dp-icon').length > 0) {
3684			$jq('#n-t-necropolis-dp-icon').click(function () {
3685			     $jq( "#n-t-necropolis-grupa" ).dialog( "close" );
3686			     $jq( "#n-t-necropolis-in" ).dialog( "close" );
3687			     $jq( "#n-t-necropolis-dp" ).dialog( "open" );
3688			 });
3689		}
3690		if ($jq('#n-t-necropolis-dp').length > 0) {
3691			 $jq( "#n-t-necropolis-dp" ).dialog({ closeOnEscape: true, autoOpen: false, minHeight: 90, closeText: "zamknij", classes: {"ui-dialog": "necropolis-ui-dialog"}
3692			 , position: {my: "right+300 top", at: "left+20 bottom", of: "#n-t-necropolis-dp-icon"} });
3693		}
3694});
3695
3696
3697function setButtonKrajobrazowaEnabled(){
3698  var buttonNext = document.querySelector('.button_krajobrazowa_next');
3699  if(buttonNext.disabled){
3700  buttonNext.disabled = false;
3701  buttonNext.style.setProperty('cursor','pointer','important');
3702  buttonNext.style.backgroundColor = '#0054A6';
3703  }
3704}
3705function setButtonKrajobrazowaDisabled(){
3706  var buttonNext = document.querySelector('.button_krajobrazowa_next');
3707   var bottomContainer=document.querySelector('.bottom_container_search_krajobrazowa');
3708   if($jq(window).width()> 820){
3709    bottomContainer.style.setProperty('margin-top','272px');}
3710  if(!buttonNext.disabled){
3711   buttonNext.disabled = true;
3712  buttonNext.style.setProperty('cursor','not-allowed','important');
3713    buttonNext.style.backgroundColor = '#8C8F92';
3714  }
3715}
3716function setButtonWuiaDisabled(){
3717  var buttonNext = document.querySelector('.button_krajobrazowa_next');
3718   var bottomContainer=document.querySelector('.bottom_container_search_krajobrazowa');
3719  if(!buttonNext.disabled){
3720   buttonNext.disabled = true;
3721  buttonNext.style.setProperty('cursor','not-allowed','important');
3722    buttonNext.style.backgroundColor = '#8C8F92';
3723  }
3724}
3725function getArea() {
3726  var krajobrazowaAttempts=0;
3727  var maxAttempts=5;
3728  var currentPath = window.location.pathname;
3729  var lvl_1 = document.getElementById('lvl_1');
3730  var foundText=document.getElementById("foundText");
3731  var krajobrazowaFoundArea=document.querySelector('.krajobrazowa-found-container');
3732
3733    function performSearch() {
3734     krajobrazowaAttempts++;
3735      if (!lvl_1 || lvl_1.value === null || lvl_1.value === "") {
3736      if(krajobrazowaAttempts<maxAttempts){
3737        setTimeout(function () {
3738            getArea();
3739          }, 1000);
3740        }
3741         else {
3742                    if($jq(window).width() > 820){
3743                      bottomContainer.style.setProperty('margin-top','225px');
3744                    }
3745                   foundText.textContent ="Nie znaleziono obszaru";
3746                   setForAreaIndicatorKrajob();
3747                   krajobrazowaFoundArea.style.setProperty('display', 'flex', 'important');
3748                   var krajobrazowaFoundLocationBox = krajobrazowaFoundArea.querySelector('.krajobrazowa-found-location-box');
3749                   document.getElementById("areaFoundDesc").textContent = '';
3750                   document.getElementById("areaFoundDesc").style.setProperty('display', 'none', 'important');
3751                 if (krajobrazowaFoundLocationBox) {
3752                     krajobrazowaFoundLocationBox.style.setProperty('display', 'none', 'important');
3753                     }
3754                 }
3755          }
3756         else {
3757
3758        var selectedValue = lvl_1.value;
3759        var dane = {
3760          lvl_1: selectedValue,
3761           co: "getjson",
3762          action: "search"
3763        };
3764
3765        $jq.ajax({
3766          method: 'GET',
3767          url: currentPath,
3768          data: dane,
3769          dataType: 'json',
3770          success: function (data) {
3771
3772             if (data && data.lvl_1 && data.areaDesc) {
3773                   var idUlica = data.lvl_1;
3774                   var area = data.areaDesc;
3775                   document.getElementById("areaFoundDesc").textContent = area;
3776                   foundText.textContent ="Znaleziono:";
3777                   document.getElementById("areaStreet").textContent = document.getElementById("id_ulica_street_lookup").value;
3778                   var selectedOptionText = $jq("#lvl_1 option[value='" + idUlica + "']").text();
3779                   document.getElementById("areaName").textContent=selectedOptionText;
3780                   krajobrazowaFoundArea.style.setProperty('display', 'flex', 'important');
3781                      var krajobrazowaFoundLocationBox = krajobrazowaFoundArea.querySelector('.krajobrazowa-found-location-box');
3782                        if (krajobrazowaFoundLocationBox) {
3783                          krajobrazowaFoundLocationBox.style.setProperty('display', 'flex', 'important');
3784                          document.getElementById("areaFoundDesc").style.setProperty('display', 'flex', 'important');
3785                          }
3786                   var bottomContainer=document.querySelector('.bottom_container_search_krajobrazowa');
3787                   bottomContainer.style.setProperty('margin-top','0px');
3788                   setButtonKrajobrazowaEnabled();
3789                    setForAreaIndicatorKrajob();
3790                   } else {
3791                        var bottomContainer=document.querySelector('.bottom_container_search_krajobrazowa');
3792                         if($jq(window).width()> 820){
3793                        bottomContainer.style.setProperty('margin-top','225px');
3794                        }
3795
3796                        foundText.textContent ="Nie znaleziono obszaru";
3797                        setForAreaIndicatorKrajob();
3798                        krajobrazowaFoundArea.style.setProperty('display', 'flex', 'important');
3799                         var krajobrazowaFoundLocationBox = krajobrazowaFoundArea.querySelector('.krajobrazowa-found-location-box');
3800                            document.getElementById("areaFoundDesc").textContent = '';
3801                            document.getElementById("areaFoundDesc").style.setProperty('display', 'none', 'important');
3802                                  if (krajobrazowaFoundLocationBox) {
3803                                      krajobrazowaFoundLocationBox.style.setProperty('display', 'none', 'important');
3804                                  }
3805                   }
3806
3807          },
3808          error: function (xhr, status, error) {
3809            console.error('Błąd żądania:', status);
3810          }
3811        });
3812      }
3813  }
3814  performSearch();
3815}
3816function setForAreaIndicatorKrajob(){
3817        var ajaxIndicator=document.getElementById("ajax_indicator_area_search");
3818           var computedStyle = window.getComputedStyle(ajaxIndicator);
3819           var currentDisplay = computedStyle.getPropertyValue('display');
3820           if (currentDisplay === 'none') {
3821              ajaxIndicator.style.setProperty('display', 'block');
3822           }
3823           else{
3824                ajaxIndicator.style.setProperty('display', 'none');
3825           }
3826
3827}
3828function setForAreaIndicator(id){
3829        var ajaxIndicator=document.getElementById(id);
3830           var computedStyle = window.getComputedStyle(ajaxIndicator);
3831           var currentDisplay = computedStyle.getPropertyValue('display');
3832           if (currentDisplay === 'none') {
3833              ajaxIndicator.style.setProperty('display', 'block');
3834           }
3835           else{
3836                ajaxIndicator.style.setProperty('display', 'none');
3837           }
3838
3839}
3840function disableKrajobrazowaSearchBox(){
3841
3842            var krajobrazowaContainer=document.querySelector('.krajobrazowa-found-container');
3843                     var computedStyle = window.getComputedStyle(krajobrazowaContainer);
3844                     var currentDisplay = computedStyle.getPropertyValue('display');
3845                     if (currentDisplay === 'flex') {
3846                        krajobrazowaContainer.style.setProperty('display', 'none');
3847                     }
3848           setButtonKrajobrazowaDisabled();
3849}
3850function changeColorKrajobrazowaButton(element){
3851      element.style.backgroundColor = "#0054A6";
3852      element.style.color = "#ffffff";
3853      var arrowBackElement = element.querySelector('.arrow_back');
3854      if (arrowBackElement) {
3855         arrowBackElement.classList.remove("arrow_back");
3856         arrowBackElement.classList.add("arrow_back_white");
3857       }
3858
3859}
3860function restoreColorKrajobrazowaButton(element){
3861
3862        element.style.backgroundColor = "#ffffff";
3863        element.style.color = "#0054A6";
3864        var arrowBackElement = element.querySelector('.arrow_back_white');
3865        if (arrowBackElement) {
3866         arrowBackElement.classList.remove("arrow_back_white");
3867         arrowBackElement.classList.add("arrow_back");
3868        }
3869}
3870
3871function krajobrazowaGetNextLvl(ele){
3872    var currentPath = window.location.pathname;
3873
3874    while(ele.closest(".level-krajobrazowa").next() !== undefined){
3875        ele.closest(".level-krajobrazowa").next().remove();
3876    }
3877    var dane = {
3878          parentId: ele.value,
3879          lvl_name: ele.name,
3880          co: "getLevel"
3881    };
3882
3883    $jq.ajax({
3884      method: 'GET',
3885      url: currentPath,
3886      data: dane,
3887      dataType: 'text',
3888      success: function (data) {
3889            if(data.length > 0) {
3890                 $jq(".fieldset-krajobrazowa").append(data);
3891                 $jq('.levels-end').addClass('hide');
3892                 $jq('#krajobrazowaSubmit').attr('disabled','disabled');
3893            } else {
3894                $jq(".levels-end").removeClass("hide");
3895                $jq('#krajobrazowaSubmit').removeAttr('disabled');
3896                $jq('#krajobrazowaSubmit').removeClass('disabled');
3897            }
3898      },
3899      error: function (xhr, status, error) {
3900        console.error('Błąd żądania:', status);
3901      }
3902    });
3903}
3904
3905$jq(document).on('click',".option-krajobrazowa", function() {
3906    var element = $jq(":input", this)[0];
3907    element.checked = true;
3908    krajobrazowaGetNextLvl(element);
3909})
3910function resizeMapKrajobrazowa(){
3911    const krajobrazowaMap = document.querySelector('.krajobrazowa_map');
3912    if(krajobrazowaMap ){
3913        const mapLocator = document.getElementById('mapLocator');
3914    if($jq(window).width() <= 1190){
3915    const mapLocator = document.getElementById('mapLocator');
3916        const width = mapLocator.offsetWidth;
3917        mapLocator.style.height = width + 'px';
3918    }else{
3919        mapLocator.style.height = 495 + 'px';
3920
3921    }
3922    }
3923}
3924function moveKrajobrazowaBottomButton(){
3925
3926     const bottomContainer = document.querySelector(".bottom_container_search_krajobrazowa");
3927     if(bottomContainer){
3928         if( $jq(window).width() <= 820 ){
3929            bottomContainer.style.setProperty('margin-top', '21px');
3930            bottomContainer.style.setProperty('padding-left', '16px');
3931            bottomContainer.style.setProperty('padding-right', '16px');
3932            $jq('#signboard-form-step-1').append(bottomContainer);
3933            $jq('.krajobrazowa_searchbox .bottom_container_search_krajobrazowa').remove();
3934         }else if(!document.querySelector(".krajobrazowa_searchbox .bottom_container_search_krajobrazowa")){
3935                bottomContainer.style.setProperty('margin-top', '272px');
3936                bottomContainer.style.removeProperty('padding-left');
3937                bottomContainer.style.removeProperty('padding-right');
3938                    $jq('.bottom_container_search_krajobrazowa').remove();
3939
3940                $jq('.krajobrazowa_searchbox').append(bottomContainer);
3941         }
3942     }
3943
3944}
3945
3946
3947
3948$jq(window).on('resize', resizeMapKrajobrazowa).resize();
3949$jq(window).on('resize', moveKrajobrazowaBottomButton).resize();
3950
3951function coverNews(element){
3952	var imgNews1 =  element.querySelector('#img_news_1');
3953	element.classList.add('hovered');
3954}
3955
3956function uncoverNews(element){
3957	var imgNews1 =  element.querySelector('#img_news_1');
3958      	element.classList.remove('hovered');
3959}
3960
3961function coverSideNews(element){
3962	var imgNews1 =  element.querySelector('#img_news_side_1');
3963	var imgNews2 = element.querySelector('#img_news_side_2');
3964   
3965   	if (imgNews2) {
3966    	element.classList.add('hovered_2');
3967    } else{
3968      element.classList.add('hovered');
3969   }
3970}
3971function uncoverSideNews(element){
3972	var imgNews1 =  element.querySelector('#img_news_side_1');
3973	var imgNews2 =  element.querySelector('#img_news_side_2');
3974  
3975	if (imgNews2) {
3976    	element.classList.remove('hovered_2');
3977	} else{
3978        element.classList.remove('hovered');
3979  	}
3980}
3981 function collapseRedBlocks(){
3982
3983 if ($jq(window).width() <= 720) {
3984
3985 var redBlockList=document.querySelectorAll('.red-alert-block');
3986 if(redBlockList){
3987
3988 redBlockList.forEach(elem => {
3989
3990 if ($jq(elem).hasClass('block-opened')) {
3991          $jq(elem).children('div.red-alert-up').children('div.red-alert-icon').removeClass('red-alert-icon-opened');
3992 		 $jq(elem).children('div.red-alert-up').children('div.red-alert-icon').addClass('red-alert-icon-closed');
3993 		 $jq(elem).children('div.red-alert-right-section').children('div.red-alert-collapse').removeClass('red-alert-collapse-opened');
3994 		 $jq(elem).children('div.red-alert-right-section').children('div.red-alert-collapse').addClass('red-alert-collapse-closed');
3995 		 $jq(elem).children('div.red-alert-up').children('div.red-alert-title').css('font-size', '12px');
3996 		 $jq(elem).children('div.red-alert-text').css('display', 'none');
3997 		 $jq(elem).removeClass('block-opened');
3998 		 $jq(elem).addClass('block-closed');
3999 		return;
4000 	}
4001 });
4002
4003 }
4004 }
4005
4006 }
4007$jq(document).ready(function() {
4008$jq(document).mouseup(function (e) {
4009   var containers = $jq('.wrapper.submenu');
4010    var buttons = $jq('.mobile-href-link-div');
4011
4012    containers.each(function () {
4013        var container = $jq(this);
4014        var button = container.closest('.mobile-href-link-div');
4015
4016        if (!container.is(e.target) && container.has(e.target).length === 0 && container.css('display') === 'block') {
4017            button.removeClass('opened');
4018            $jq('#backdrop-menu-desktop').css('display','none');
4019            $jq('body').removeClass('open-main-menu');
4020            button.children('div.links-menu-header-arrow')
4021                .removeClass('links-menu-header-arrow-opened')
4022                .addClass('links-menu-header-arrow-closed');
4023            container.css('display', 'none');
4024        }
4025    });
4026
4027    if (buttons.has(e.target).length === 0) {
4028        buttons.removeClass('opened');
4029        $jq('#backdrop-menu-desktop').css('display','none');
4030        $jq('body').removeClass('open-main-menu');
4031        buttons.find('div.links-menu-header-arrow')
4032        .removeClass('links-menu-header-arrow-opened')
4033        .addClass('links-menu-header-arrow-closed');
4034        containers.css('display', 'none');
4035    }
4036});
4037
4038var searchColorInput = $jq('.searchColor');
4039  var searchElement = $jq('.search');
4040
4041  searchColorInput.focus(function() {
4042    searchElement.css({
4043      'outline': '2px solid #009BDB',
4044      'border': 'none'
4045    });
4046  });
4047    searchColorInput.blur(function() {
4048      // Przywróć oryginalne style .lupka
4049      searchElement.css({
4050        'outline': '',
4051        'border': ''
4052      });
4053    });
4054
4055collapseRedBlocks();
4056});
4057$jq(window).on('resize',function(){
4058collapseRedBlocks();
4059});
4060
4061
4062$jq(document).ready(function() {
4063
4064
4065     var secondaryButtonStyle = document.querySelectorAll('.secondary-button-style');
4066
4067     if(secondaryButtonStyle){
4068           secondaryButtonStyle.forEach(function(button) {
4069           button.addEventListener('click', function() {
4070           button.classList.add('clicked');
4071             });
4072           });
4073          }
4074});
4075var inputWithMagnifier = $jq(' .input-with-magnifier input');
4076
4077var searchColorInput = $jq(' .input-with-magnifier input');
4078  var inputWithMagnifier = $jq('.input-with-magnifier');
4079  var magnifier = $jq('.input-with-magnifier div[type="lupka"]');
4080
4081  searchColorInput.focus(function() {
4082    inputWithMagnifier.css({
4083      'border-left': '1px solid #009BDB',
4084      'border-top': '1px solid #009BDB',
4085      'border-bottom': '1px solid #009BDB',
4086    });
4087    magnifier.css({
4088          'border-left': '1px solid #009BDB',
4089          'border-top': '1px solid #009BDB',
4090          'border-bottom': '1px solid #009BDB',
4091    });
4092  });
4093  searchColorInput.blur(function() {
4094      inputWithMagnifier.css({
4095          'border-left': '',
4096          'border-top': '',
4097          'border-bottom': '',
4098      });
4099      magnifier.css({
4100          'border-left': '',
4101          'border-top': '',
4102          'border-bottom': '',
4103      });
4104  });
4105    var sliderSlider = $jq('.slick-slider');
4106    var progressBar = $jq('.progress-bar');
4107    sliderSlider.on('beforeChange', function(event, slick, currentSlide, nextSlide){
4108      var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
4109      progressBar
4110            .css('background-size', calc + '% 100%')
4111            .attr('aria-valuenow', calc );
4112    });
4113    var newsSliderMainPage=$jq(".slider-news-mainpage");
4114    var mainPageNewsProgressBar=$jq("#progress-bar-slider-news-main-page");
4115    newsSliderMainPage.on('beforeChange', function(event, slick, currentSlide, nextSlide){
4116        var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
4117        mainPageNewsProgressBar
4118                    .css('background-size', calc + '% 100%')
4119                    .attr('aria-valuenow', calc );
4120    });
4121    var sliderVideo = $jq('.box.box-2-column.box-mapa.box-youtube-player.slider-video');
4122    var progressBarVideo = $jq('.progress-bar-slider-big.progress-video');
4123    sliderVideo.on('beforeChange', function(event, slick, currentSlide, nextSlide){
4124
4125          var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
4126          progressBarVideo
4127                .css('background-size', calc + '% 100%')
4128                .attr('aria-valuenow', calc );
4129    });
4130    var sliderVideoWortal = $jq('.video-container-without-images-884 .box.box-2-column.box-mapa.box-youtube-player.slider-video');
4131    var progressBarVideoWortal = $jq('.video-player-884 .progress-bar-slider-big');
4132    sliderVideoWortal.on('beforeChange', function(event, slick, currentSlide, nextSlide){
4133
4134              var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
4135              progressBarVideoWortal
4136                    .css('background-size', calc + '% 100%')
4137                    .attr('aria-valuenow', calc );
4138    });
4139    $jq(document).ready(function() {
4140
4141         var mainButtonKrajobrazowa = document.querySelectorAll('.main_button_krajobrazowa');
4142         var buttonKrajobrazowa = document.querySelectorAll(' .krajobrazowa-button');
4143         var buttonKrajobrazowaNext = document.querySelectorAll('.button_krajobrazowa_next');
4144         var boxAwarieButton = document.querySelectorAll('.box_awarie_button');
4145         if(mainButtonKrajobrazowa){
4146             mainButtonKrajobrazowa.forEach(function(button) {
4147                     button.addEventListener('click', function() {
4148                         button.classList.add('clicked');
4149                     });
4150                 });
4151             }
4152             if(buttonKrajobrazowa){
4153              buttonKrajobrazowa.forEach(function(button) {
4154                      button.addEventListener('click', function() {
4155                          button.classList.add('clicked');
4156                      });
4157                  });
4158              }
4159              if(buttonKrajobrazowaNext){
4160                  buttonKrajobrazowaNext.forEach(function(button) {
4161                  button.addEventListener('click', function() {
4162                  button.classList.add('clicked');
4163                   });
4164                   });
4165              }
4166              if(boxAwarieButton){
4167                  boxAwarieButton.forEach(function(button) {
4168                         button.addEventListener('click', function() {
4169                         button.classList.add('clicked');
4170                         });
4171                  });
4172                 }
4173
4174        });
4175        	$jq('.content-container .menu-container > button.menu').on('click', function(e) {
4176        		e.preventDefault();
4177        		$jq(this).parent().toggleClass('opened').find('.container').slideToggle();
4178        		var arrow = document.querySelector("#arrow-menu-mobile");
4179                arrow.classList.toggle("opened");
4180        	});
4181
4182$jq(window).resize(function() {
4183      var screenWidth = $jq( window ).width();
4184      if(screenWidth > 871 && $jq('.box.box-2-column.box-mapa.box-youtube-player  >.slick-list').length > 0) {
4185            $jq('.box.box-2-column.box-mapa.box-youtube-player').slick('unslick');
4186      }else if(screenWidth < 871){
4187                 videoSlickSlider();
4188      }
4189});
4190$jq(window).resize(function() {
4191      var screenWidth = $jq( window ).width();
4192      if(screenWidth > 720 && $jq('.different_news_container  >.slick-list').length > 0) {
4193            $jq('.different_news_container').slick('unslick');
4194      }else if(screenWidth < 721){
4195          newsMainPageDfrntSlickSlider();
4196      }
4197});
4198  $jq('.events-block-slider').on('afterChange', function(event, slick, currentSlide){
4199         var progressBar = $jq('.progress-bar-events');
4200             var sliderWidth = $jq(".body-section").width() - $jq('.events-categories-container').width();
4201             $jq('.events-block-slider').css('max-width', sliderWidth);
4202             var wWidth = sliderWidth;
4203             var elementWidth = $jq('.event-mini-container').width();
4204             var noWidth = Math.floor(wWidth/elementWidth);
4205             var calc = ( (currentSlide+noWidth) / (slick.slideCount) ) * 100;
4206             progressBar
4207               .css('background-size', calc + '% 100%')
4208               .attr('aria-valuenow', calc )
4209  });
4210
4211$jq(window).resize(function() {
4212    let screenWidth = $jq( window ).width();
4213    if ($jq('.events-block-slider').length > 0 ) {
4214        let eventsNumber =  $jq('.event-mini-container').not($jq('.event-mini-container.hidden')).length;
4215        let eventWidth = $jq('.event-mini-container').outerWidth();
4216        let totalWidth = $jq('.events-categories-container:not("hidden")').outerWidth() + eventsNumber * eventWidth + eventsNumber * 8;
4217        if(totalWidth > screenWidth) {
4218        	eventsSlickSlider();
4219        }
4220        else if( $jq('.events-block-slider >.slick-list').width() !== undefined) {
4221            $jq('.events-block-slider').slick('unslick');
4222            $jq('.progress-bar-events').css("display","none");
4223            $jq('.events-block-slider').css('display', "flex");
4224            $jq('.event-mini-container').css('margin-right', "0");
4225        }
4226    }
4227});
4228
4229function eventsSlickSlider() {
4230        var sliderWidth = $jq(".body-section").width() - $jq('.events-categories-container').outerWidth();
4231        $jq('.events-block-slider').css('max-width', sliderWidth);
4232        $jq('.events-block-slider').css('display', "block");
4233        $jq('.event-mini-container').css('margin-right', "8px");
4234    	var wWidth = sliderWidth;
4235        var elementWidth = $jq('.event-mini-container:not("hidden")').outerWidth(true);
4236        var noWidth = Math.floor(wWidth/elementWidth);
4237        var elementsNumber = $jq('.event-mini-container').not($jq('.event-mini-container.hidden')).length;
4238    	try {
4239    		$jq('.events-block-slider').slick({
4240    			slidesToShow: noWidth,
4241    			slidesToScroll: 2,
4242    			autoplay: false,
4243    			variableWidth: true,
4244    			arrows: true,
4245    			initialSlide: 0,
4246    			lazyLoad: 'ondemand',
4247    			infinite: false,
4248    			prevArrow: '<button class="events-slickslider-mobile-arrow-box left"></button>',
4249                nextArrow: '<button class="events-slickslider-mobile-arrow-box right"></button>'
4250            });
4251    	} catch (e) {
4252    	    console.log(e);
4253    	}
4254    	var progressBar = $jq('.progress-bar-events');
4255             var sliderWidth = $jq("body-section").width() - $jq('.events-categories-container').width();
4256             $jq('.events-block-slider').css('max-width', sliderWidth);
4257             var wWidth = sliderWidth;
4258             var elementWidth = $jq('.event-mini-container').width();
4259             var noWidth = Math.floor(wWidth/elementWidth);
4260             var calc = ( (noWidth) / elementsNumber ) * 100;
4261             progressBar
4262               .css('background-size', calc + '% 100%')
4263               .attr('aria-valuenow', calc );
4264             progressBar.css("display","block");
4265}
4266$jq(document).ready(function() {
4267    let screenWidth = $jq( window ).width();
4268    if ($jq('.slider-news-mainpage').length > 0 && screenWidth < 994 && $jq('.slider-news-mainpage .slick-list').length === 0) {
4269    	newsMainPageSlickSlider();
4270    }
4271});
4272
4273$jq(window).resize(function() {
4274      var screenWidth = $jq( window ).width();
4275      if(screenWidth < 994 && $jq('.slider-news-mainpage .slick-list').length === 0) {
4276            newsMainPageSlickSlider();
4277      }
4278});
4279    function setMenuMobileTop(){
4280             var headerTop;
4281
4282          if ($jq('#h1-header').css('display') !== 'none') {
4283                                     headerTop = 0;
4284                                }else{
4285
4286                                    if ($jq('#head-sticky-main-page').css('position') === 'sticky') {
4287                                        var scrollTop = $jq(window).scrollTop();
4288                                        var headerOffsetTop = $jq('#head-sticky-main-page').offset().top;
4289                                        if (scrollTop >= headerOffsetTop) {
4290                                                headerTop = 0;
4291                                            } else {
4292                                                headerTop = headerOffsetTop - scrollTop;
4293                                            }
4294
4295                                        } else {
4296                                              headerTop = $jq('#head-sticky-main-page').position().top;
4297                                        }
4298                                }
4299
4300    return headerTop;
4301    }
4302function videoSlickSlider() {
4303	if ($jq('.box.box-2-column.box-mapa.box-youtube-player.slider-video').length > 0 && $jq( window ).width()<871) {
4304	$jq('.box.box-2-column.box-mapa.box-youtube-player.slider-video .box-container.video_box').css('max-width',($jq( '.video-new-rows-box').width()+'px'));
4305       var wWidth = $jq('.box.box-2-column.box-mapa.box-youtube-player.slider-video').width();
4306       var bWidth = $jq('.box.box-2-column.box-mapa.box-youtube-player.slider-video .box-container.video_box').width();
4307       var noWidth = Math.floor(wWidth/bWidth);
4308       try {
4309
4310        $jq('.box.box-2-column.box-mapa.box-youtube-player.slider-video').slick({
4311        	slidesToShow: 1,
4312        	slidesToScroll: 1,
4313        	autoplay: false,
4314        	arrows: true,
4315        	variableWidth: false,
4316        	lazyLoad: 'ondemand',
4317        	centerMode: false ,
4318        	infinite: true,
4319        	responsive: [{
4320                 breakpoint: 871,
4321                 settings: {
4322                      prevArrow: '<button class="slickslider-mobile-banner-arrow-box video-slider left"></button>',
4323                      nextArrow: '<button class="slickslider-mobile-banner-arrow-box video-slider right"></button>'
4324                 }
4325                 }]
4326        });
4327
4328
4329       } catch (e) {
4330
4331       console.log('error:',e);
4332       }
4333
4334    }
4335
4336}
4337function newsMainPageDfrntSlickSlider() {
4338	if ($jq(".different_news_container").length > 0 && $jq('.different_news_container .slick-list').length < 1 && $jq( window ).width()<921) {
4339    		var wWidth = $jq('.different_news_container').width();
4340    		var boxWidth = $jq('.different_news_box').outerWidth(true);
4341    		var noWidth = Math.floor(wWidth/boxWidth);
4342    		try {
4343    			$jq('.different_news_container').slick({
4344    				slidesToShow: noWidth,
4345    				slidesToScroll: 1,
4346    				autoplay: false,
4347    				arrows: true,
4348    				lazyLoad: 'ondemand',
4349    				centerMode:false,
4350    				infinite: true,
4351    				 responsive: [{
4352                            breakpoint: 920,
4353                            settings: {
4354                                variableWidth: true,
4355                                prevArrow: '<button class="slickslider-mobile-banner-arrow-box left"></button>',
4356                                nextArrow: '<button class="slickslider-mobile-banner-arrow-box right"></button>'
4357                            }},
4358                            {
4359                                breakpoint: 421,
4360                                 settings: {
4361                                     slidesToShow: 1,
4362                                     variableWidth: false,
4363                                       prevArrow: '<button class="slickslider-mobile-banner-arrow-box left"></button>',
4364                                       nextArrow: '<button class="slickslider-mobile-banner-arrow-box right"></button>'
4365                                 },
4366                              } ]
4367    			});
4368    		} catch (e) {
4369    		}
4370
4371    	}
4372}
4373
4374function newsMainPageSlickSlider() {
4375var newsSliderMainPage=$jq(".slider-news-mainpage");
4376	if (newsSliderMainPage.length > 0 && $jq( window ).width()<994) {
4377
4378		var wWidth = newsSliderMainPage.width();
4379		var elementWidth = $jq(".slider-news-mainpage .column").width();
4380
4381		var noWidth = Math.floor(wWidth/elementWidth);
4382		try {
4383			newsSliderMainPage.slick({
4384				slidesToShow: noWidth,
4385				slidesToScroll: 1,
4386				autoplay: false,
4387				variableWidth: false,
4388				arrows: true,
4389				initialSlide: 0,
4390				lazyLoad: 'ondemand',
4391				infinite: true,
4392				  responsive: [{
4393                         breakpoint: 1024,
4394                         settings: {
4395                                slidesToShow: 3,
4396                                prevArrow: '<button class="slickslider-mobile-main-page-arrow-box left"></button>',
4397                                nextArrow: '<button class="slickslider-mobile-main-page-arrow-box right"></button>'
4398                          }
4399                          }, {
4400                               breakpoint: 721,
4401                               settings: {
4402                                    slidesToShow: 2,
4403                                    variableWidth: false,
4404                                    prevArrow: '<button class="slickslider-mobile-main-page-arrow-box left"></button>',
4405                                    nextArrow: '<button class="slickslider-mobile-main-page-arrow-box right"></button>'
4406                                }
4407                          }, {
4408                                breakpoint: 507,
4409                                 settings: {
4410                                     slidesToShow: 1,
4411                                     variableWidth: false,
4412                                     prevArrow: '<button class="slickslider-mobile-main-page-arrow-box left"></button>',
4413                                     nextArrow: '<button class="slickslider-mobile-main-page-arrow-box right"></button>'
4414                                 },
4415                              }
4416
4417                          ]
4418			});
4419
4420
4421		} catch (e) {
4422		}
4423	}
4424}
4425function setCuriositiesArrowsPosition(){
4426	 let boxHeight = $jq('.curiosities_container .curiosities_box').height() +16;
4427     console.log('boxHeight: '+ boxHeight);
4428     $jq('.curiosities_container .slickslider-mobile-main-page-arrow-box.slick-arrow.left').css('top',boxHeight);
4429     $jq('.curiosities_container .slickslider-mobile-main-page-arrow-box.slick-arrow.right').css('top',boxHeight);
4430
4431}
4432function curiositiesSlickSlider() {
4433var newsSliderMainPage=$jq(".curiosities_container");
4434	if (newsSliderMainPage.length > 0 && $jq( window ).width()<916) {
4435
4436		var wWidth = newsSliderMainPage.width();
4437		var elementWidth = $jq(".curiosities_container .curiosities_box").width();
4438
4439		var noWidth = Math.floor(wWidth/elementWidth);
4440		try {
4441			newsSliderMainPage.slick({
4442				slidesToShow: noWidth,
4443				slidesToScroll: 1,
4444				autoplay: false,
4445				variableWidth: false,
4446				arrows: true,
4447				initialSlide: 0,
4448				lazyLoad: 'ondemand',
4449				infinite: true,
4450				  responsive: [ {
4451                               breakpoint: 916,
4452                               settings: {
4453                                    slidesToShow: 2,
4454                                    variableWidth: false,
4455                                    prevArrow: '<button class="slickslider-mobile-main-page-arrow-box left"></button>',
4456                                    nextArrow: '<button class="slickslider-mobile-main-page-arrow-box right"></button>'
4457                                }
4458                          }, {
4459                                breakpoint: 507,
4460                                 settings: {
4461                                     slidesToShow: 1,
4462                                     variableWidth: false,
4463                                     prevArrow: '<button class="slickslider-mobile-main-page-arrow-box left"></button>',
4464                                     nextArrow: '<button class="slickslider-mobile-main-page-arrow-box right"></button>'
4465                                 },
4466                              }
4467
4468                          ]
4469			});
4470
4471		} catch (e) {
4472		}
4473	}
4474
4475
4476
4477                 var intervalId = setInterval(setCuriositiesArrowsPosition, 500);
4478
4479                 setTimeout(function() {
4480                     clearInterval(intervalId);
4481                 }, 3000);
4482}
4483$jq(document).ready(function() {
4484    let screenWidth = $jq( window ).width();
4485    if ($jq('.curiosities_container').length > 0 && screenWidth < 916 && $jq('.curiosities_container .slick-list').length === 0) {
4486    	curiositiesSlickSlider();
4487    	setCuriositiesArrowsPosition();
4488    }
4489});
4490
4491$jq(window).resize(function() {
4492      var screenWidth = $jq( window ).width();
4493      if(screenWidth < 916 && $jq('.curiosities_container').length > 0) {
4494            curiositiesSlickSlider();
4495      } else if(screenWidth >= 916 && $jq('.curiosities_container .slick-list').length > 0){
4496        $jq('.curiosities_container').slick('unslick');
4497
4498      }
4499});
4500if(document.getElementById('nextLink') && document.getElementById('previousLink')){
4501document.getElementById('nextLink').addEventListener('click', function(event) {
4502  event.preventDefault();
4503
4504     var videoElements = document.querySelectorAll('[id^="wideo_"]');
4505     var maxIndex =0;
4506     var indexToChange;
4507     for (var i = 0; i < videoElements.length; i++) {
4508
4509          var currentIndex = parseInt(videoElements[i].id.replace('wideo_', ''));;
4510         if (videoElements[i].style.display !== 'none') {
4511             indexToChange = parseInt(videoElements[i].id.replace('wideo_', ''));
4512         }
4513          if (currentIndex > maxIndex) {
4514               maxIndex = currentIndex;
4515         }
4516     }
4517
4518        indexToChange=indexToChange+1;
4519
4520      if(indexToChange>maxIndex){
4521        indexToChange =0;
4522      }
4523      var progressBar = $jq('#progress-bar-video');
4524      var calc = ( (indexToChange+1) / (maxIndex+1) ) * 100;
4525      progressBar.css('background-size', calc + '% 100%')
4526                 .attr('aria-valuenow', calc );
4527       var childElement = document.getElementById('video_text_' + indexToChange);
4528        if (childElement) {
4529            document.querySelector('.video-new-H3').innerText = childElement.textContent || childElement.innerText;
4530        }
4531      changeMainVideo(indexToChange, 1);
4532});
4533document.getElementById('previousLink').addEventListener('click', function(event) {
4534        event.preventDefault();
4535             var videoElements = document.querySelectorAll('[id^="wideo_"]');
4536             var maxIndex = 0;
4537                 var indexToChange;
4538                 for (var i = 0; i < videoElements.length; i++) {
4539
4540                      var currentIndex = parseInt(videoElements[i].id.replace('wideo_', ''));;
4541                     if (videoElements[i].style.display !== 'none') {
4542                         indexToChange = parseInt(videoElements[i].id.replace('wideo_', ''));
4543                     }
4544                      if (currentIndex > maxIndex) {
4545                           maxIndex = currentIndex;
4546                     }
4547                 }
4548
4549                if(indexToChange>1){
4550                    indexToChange=indexToChange-1;
4551                    }
4552                    else{
4553                    indexToChange=maxIndex;
4554                    }
4555               var progressBar = $jq('#progress-bar-video');
4556               var calc = ( (indexToChange+1) / (maxIndex+1) ) * 100;
4557               progressBar.css('background-size', calc + '% 100%')
4558                           .attr('aria-valuenow', calc );
4559               var childElement = document.getElementById('video_text_' + indexToChange);
4560                if (childElement) {
4561                    document.querySelector('.video-new-H3').innerText = childElement.textContent || childElement.innerText;
4562                }
4563              changeMainVideo(indexToChange, 1);
4564
4565});
4566}
4567function changeVideoBoxColor(element) {
4568  var number = element.id.split('_')[3];
4569
4570  var titleElement = document.getElementById('id_title_wideo_' + number);
4571  titleElement.style.color = '#01407E';
4572}
4573
4574function restoreVideoBoxColor(element) {
4575  var number = element.id.split('_')[3];
4576
4577  var titleElement = document.getElementById('id_title_wideo_' + number);
4578  titleElement.style.color = '#000000';
4579}
4580    $jq('#close-access-mobile').click( function (e) {
4581    $jq('.access-main-page-list-mobile').removeClass('active');
4582    $jq('#backdrop').addClass('hidden-background');
4583    $jq('.icon.main-menu.hide-text').show();
4584    });
4585
4586
4587    $jq('#close-language-mobile').click( function (e) {
4588    $jq('.language-list-mobile').removeClass('active');
4589    $jq('#backdrop').addClass('hidden-background');
4590    $jq('.icon.main-menu.hide-text').show();
4591    });
4592function setStickyHeaderPosition(){
4593	var header = document.getElementById('head-sticky-main-page');
4594	var content = document.querySelector('.messages-container');
4595	var headerHeight = header.offsetHeight;
4596	var contentTop = (content != null) ? content.offsetTop : document.querySelector('.content-container').offsetTop;
4597	if (window.pageYOffset > contentTop - headerHeight) {
4598		header.dataset.state = 'fixed';
4599		$jq('#head-sticky-main-page ').find('.main_page_search_divider_box').css("display",'block');
4600	} else {
4601		header.dataset.state = 'default';
4602		$jq('#head-sticky-main-page ').find('.main_page_search_divider_box').css("display",'none');
4603	}
4604}
4605
4606function addStickyHeader(){
4607        $jq('#head-sticky-main-page').css('display','flex');
4608        $jq('#h1-header').css('display','none');
4609        $jq('.menu-navigation').not('#head-sticky-main-page .head-sticky-main-box .menu-navigation').css('display', 'none');
4610        window.addEventListener('scroll', function() {
4611            setStickyHeaderPosition();
4612        });
4613         $jq(window).on('load', function () {
4614            setStickyHeaderPosition();
4615         });
4616
4617}
4618$jq(document).ready(function() {
4619        let screenWidth = $jq( window ).width();
4620        if ($jq('#head-sticky-main-page').length > 0 && screenWidth < 994) {
4621        	addStickyHeader();
4622
4623        }else{
4624            $jq('#head-sticky-main-page').css('display','none ');
4625            $jq('#h1-header').css('display','block');
4626            $jq('#sticky-header-filler').css('display','none');
4627
4628        }
4629
4630});
4631
4632$jq(window).resize(function() {
4633       let screenWidth = $jq( window ).width();
4634        if ($jq('#head-sticky-main-page').length > 0 && screenWidth < 994) {
4635        	addStickyHeader();
4636        }else{
4637            $jq('#head-sticky-main-page').css('display','none ');
4638            $jq('#h1-header').css('display','block');
4639        }
4640});
4641
4642function toggleSubmenuMobileList(element){
4643        var submenu = $jq(element).siblings('.submenu_mobile_list');
4644          var isOpened = submenu.hasClass('opened');
4645            if (isOpened) {
4646                submenu.removeClass('opened');
4647                $jq(element).find('.arrow-menu-mobile').removeClass('opened');
4648
4649            } else {
4650                submenu.addClass('opened');
4651                $jq(element).find('.arrow-menu-mobile').addClass('opened');
4652            }
4653}
4654
4655function toggleSubmenuListBoxMobile(element) {
4656	var submenuId = $jq(element).prop('id').substring("button_mobile_menu_".length);
4657	submenuId = "#submenu_mobile_head_" + submenuId;
4658	var menuTop = $jq('#menu-mobile-poznan').position().top;
4659	$jq(submenuId).css({'top': menuTop, "height": `calc(100vh - ${menuTop}px)`});
4660	$jq(submenuId).addClass('opened');
4661}
4662
4663function closeMenuMobile(){
4664   $jq('#menu-mobile-poznan').removeClass('open-main-menu');
4665    $jq('body').removeClass('open-main-menu-mobile');
4666}
4667$jq(window).on('resize', function(e) {
4668
4669    if($jq(window).width() >857){
4670        closeMenuMobile();
4671
4672        $jq('submenu_mobile_container.flex_column.opened').removeClass('opened');
4673    }
4674
4675
4676});
4677$jq(document).ready(function() {
4678$jq(window).resize(function() {
4679    var headerTop =setMenuMobileTop();
4680    $jq("#menu-mobile-poznan").css('height',($jq(window).height() - headerTop)+'px');
4681});
4682});
4683function closeMenuMobileWithSubmenu(element){
4684   $jq('#menu-mobile-poznan').removeClass('open-main-menu');
4685    $jq(element).parent().parent().parent().removeClass('opened');
4686   $jq(".arrow-menu-mobile.opened").parent().each(function() {
4687       toggleSubmenuMobileList($jq(this));
4688   });
4689    $jq('body').removeClass('open-main-menu-mobile');
4690
4691}
4692function closeSubmenuMobile(element){
4693$jq(element).parent().parent().removeClass('opened');
4694$jq(".arrow-menu-mobile.opened").parent().each(function() {
4695    toggleSubmenuMobileList($jq(this));
4696});
4697    $jq('body').removeClass('open-main-menu-mobile');
4698}
4699function setResponsiveAccessibility(){
4700    var accessMainPage = document.querySelector('.access-main-page');
4701    var headerIconsSmartcityceeResponsive = document.querySelector('.header-icons-smartcitycee-responsive');
4702
4703    if(accessMainPage && headerIconsSmartcityceeResponsive) {
4704        headerIconsSmartcityceeResponsive.appendChild(accessMainPage);
4705    }
4706}
4707
4708$jq(document).ready(function() {
4709
4710 var screenWidth = $jq(window).width();
4711
4712    if(typeof responsiveAccessibility !== 'undefined' && screenWidth < 1040){
4713        setResponsiveAccessibility();
4714
4715    }
4716});
4717$jq(window).on('resize', function(e) {
4718    var screenWidth = $jq(window).width();
4719    if(typeof responsiveAccessibility !== 'undefined'  && screenWidth < 1040){
4720        setResponsiveAccessibility();
4721
4722    }
4723});
4724$jq(document).ready(function() {
4725
4726
4727
4728    var listSortCurrent = $jq('.info-list-sorter-date-result-mobile').text().trim();
4729
4730    $jq('.option-sort').each(function() {
4731
4732        if ($jq(this).text().trim() === listSortCurrent) {
4733        $jq(this).parent().find('.polish-language-arrow').css('display','flex');
4734         $jq(this).css('font-weight','700');
4735        }
4736    });
4737    var listCountCurrent = $jq('.info-list-sorter-count-result-mobile').text().trim();
4738    $jq('.option-list-size').each(function() {
4739
4740
4741        if ($jq(this).text().trim() === listCountCurrent) {
4742
4743        $jq(this).parent().find('.polish-language-arrow').css('display','flex');
4744         $jq(this).css('font-weight','700');
4745       }
4746    });
4747});
4748$jq(document).ready(function() {
4749    var iframes = document.getElementsByTagName('iframe');
4750    if(iframes){
4751        for (var i = 0; i < iframes.length; i++) {
4752            var iframe = iframes[i];
4753            var src = iframe.getAttribute('data-src');
4754            if (src) {
4755                iframe.setAttribute('src', src);
4756                iframe.removeAttribute('data-src');
4757            }
4758        }
4759    }
4760     const screenWidth = window.innerWidth;
4761
4762                if (screenWidth < 470 && $jq('.search-container .search fieldset #string').length >0) {
4763
4764                      if ( $jq('.search-container .search fieldset #string').attr('placeholder').includes("szukaj informacji")){
4765                           $jq('.search-container .search fieldset #string').attr('placeholder', 'szukaj informacji');
4766                       }
4767                       else{
4768                            $jq('.search-container .search fieldset #string').attr('placeholder', 'search for information');
4769                       }
4770               }
4771});
4772
4773function setPositionIconUp(isChatbot){
4774	var screenWidth = $jq(window).width();
4775	if (screenWidth < 1200) {
4776		let bodyContainerRight = (screenWidth-($jq('.icon-up-new').width()+16));
4777		$jq('#icon-up').css('left', bodyContainerRight + 'px');
4778		$jq('#icon-up a.icon-up-new').css('left', bodyContainerRight + 'px');
4779		if(isChatbot){
4780		    $jq('button.chatbot__avatar-positioner.chatbot__default-focus').css('display','block');
4781		    $jq('button.chatbot__avatar-positioner.chatbot__default-focus').css('left', (bodyContainerRight - 11) + 'px');
4782		}
4783	} else{
4784		let bodyContainerRight = $jq('.body-section').offset().left + $jq('.body-section').outerWidth() + 52;
4785		$jq('#icon-up').css('left', bodyContainerRight + 'px');
4786		$jq('#icon-up a.icon-up-new').css('left', bodyContainerRight + 'px',);
4787		if(isChatbot){
4788		    $jq('button.chatbot__avatar-positioner.chatbot__default-focus').css('display','block');
4789		    $jq('button.chatbot__avatar-positioner.chatbot__default-focus').css('left', (bodyContainerRight - 11) + 'px');
4790		    $jq('#chatbot-widget-root .container .chatbot').css('left', (bodyContainerRight - 11 - $jq('#chatbot-widget-root .container .chatbot').width()+74) + 'px');
4791		}
4792	}
4793	$jq('#icon-up').css('display','block');
4794}
4795$jq(document).ready(function() {
4796     function updateIconPosition() {
4797        var windowHeight = window.innerHeight;
4798		var h = 0;
4799		if ($jq('#web-push-footer').length > 0) {
4800			var wpf = $jq('#web-push-footer');
4801			if (((wpf.css("position") === "fixed" || wpf.css("position") === "absolute")) && wpf.css("display") === "grid") {
4802				h = $jq('#web-push-footer').height() + 16;
4803			}
4804		}
4805        var newTopValue = windowHeight - h - 100;
4806        let isChatbot = $jq('button.chatbot__avatar-positioner.chatbot__default-focus').length == 1 ;
4807        if(isChatbot){
4808            $jq('button.chatbot__avatar-positioner.chatbot__default-focus').css('display','none');
4809        }
4810        $jq('#icon-up').css('top', (isChatbot?($jq(window).width() < 1200?(newTopValue - 90):(newTopValue - 106)):newTopValue) + 'px');
4811
4812        setPositionIconUp(isChatbot);
4813
4814      }
4815
4816      updateIconPosition();
4817      $jq(window).resize(function() {
4818            updateIconPosition();
4819      });
4820
4821//============================================================================
4822	//WEB-PUSH: begin
4823	var webPushHideBlock = function(status){
4824		if ($jq('#web-push-footer').length > 0) {
4825			if (true == status) {
4826				$jq('#web-push-footer').css('display', 'none');
4827			} else {
4828				$jq('#web-push-footer').css('display', 'grid');
4829			}
4830			//$jq('#web-push-footer').css('display', 'grid');
4831			updateIconPosition();
4832		}
4833	};
4834    function centerElementHorizontal(name) {
4835        let element = $jq(name);
4836        let windowWidth = $jq(window).width();
4837        let windowHeight = $jq(window).height();
4838        let elementWidth = element.width();
4839        let elementOuterWidth = element.outerWidth();
4840
4841        let left = (windowWidth - elementOuterWidth) / 2;
4842
4843        element.css({
4844            'position': 'fixed',
4845            'left': left + 'px',
4846            'z-index':'9999'
4847        });
4848    }
4849    $jq(window).on('resize', function(e) {
4850    	centerElementHorizontal('#web-push-adjust');
4851    });
4852
4853	var webPushShowAdjustBlock = function(status){
4854	    if(status){
4855            $jq('#backdrop_web_push').removeClass('hidden-background');
4856            $jq('#web-push-adjust').removeClass('hidden');
4857            $jq('body').addClass('open-web-push');
4858        }else{
4859            $jq('body').removeClass('open-web-push');
4860            $jq('#backdrop_web_push').addClass('hidden-background');
4861            $jq('#web-push-adjust').addClass('hidden');
4862        }
4863	}
4864	var printOptionWebPush = function (value,name){
4865        return '<div class="wp-adj-opt"><div class="input-box"><input type="checkbox" name="wp-option" value="'+value+'" checked/></div><label class="text_body">'+name+'</#label></div>';
4866	}
4867
4868	/*WebPush Configuration*/
4869    // Base URL for the Web Push service
4870	const serviceBaseWebpushUrl = ctxPath;
4871    // The public VAPID key will be fetched from the server
4872    let publicVapidKey = null;
4873    let subscription = null;
4874    let serviceWorkerRegistration = null;
4875
4876    //Initial function checking if subscription exists
4877    (async function init() {
4878        console.log("Checking subscription from init()")
4879        serviceWorkerRegistration = await navigator.serviceWorker.ready;
4880        subscription = await serviceWorkerRegistration.pushManager.getSubscription();
4881		if (subscription != null) {
4882			webPushHideBlock(true);
4883		} else {
4884			webPushHideBlock(false);
4885		}
4886        console.log("Stop checking subscription from init() " + subscription)
4887    })();
4888
4889     // Convert the VAPID key
4890     function urlBase64ToUint8Array(base64String) {
4891        const padding = '='.repeat((4 - (base64String.length % 4)) % 4);
4892        const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');
4893        const rawData = window.atob(base64);
4894        return Uint8Array.from([...rawData].map(char => char.charCodeAt(0)));
4895     }
4896
4897	async function fetchPublicVapidKey() {
4898            try {
4899              const response = await fetch(serviceBaseWebpushUrl + '/wpapi/vapid-public-key.json');
4900              if (response.ok) {
4901                const key = await response.json();
4902                publicVapidKey = key.publicKey;
4903                //console.log('Fetched public VAPID key:', publicVapidKey);
4904              } else {
4905                const errorText = await response.text();
4906                console.error(`Failed to fetch public VAPID key: ${response.status} ${errorText}`);
4907              }
4908            } catch (error) {
4909              console.error('Error fetching public VAPID key:', error);
4910            } finally {
4911
4912            }
4913    }
4914
4915	async function subscribeUser(customTopics) {
4916            if (!('serviceWorker' in navigator)) {
4917              const errorMsg = 'Push messaging is not supported in this browser.';
4918              console.warn(errorMsg);
4919              return { status: 'Error', response: errorMsg };
4920            }
4921
4922            // Ensure publicVapidKey is available
4923            if (!publicVapidKey) {
4924              console.log('Public VAPID key not available, fetching...');
4925              await fetchPublicVapidKey();
4926              if (!publicVapidKey) {
4927                return { status: 'Error', response: 'Failed to fetch public VAPID key.' };
4928              }
4929            }
4930
4931			// Ask user about permission for notifications
4932			if (Notification.permission !== 'granted') {
4933				try {
4934					const permission = await Notification.requestPermission();
4935					if (permission !== 'granted') {
4936						const msg = `Permission not granted (status: ${permission})`;
4937						console.warn(msg);
4938						return { status: 'Error', response: msg };
4939					}
4940					else {
4941						console.log('Permission granted');
4942					}
4943				} catch (e) {
4944					console.error('Failed to request notification permission:', e);
4945					return { status: 'Error', response: 'Failed to request notification permission.' };
4946				}
4947			}
4948
4949            try {
4950              // Register the service worker
4951			  if (ctxPath === "/mim") {
4952				  await navigator.serviceWorker.register("/service-worker.js", {scope: "/"});
4953			  }
4954			  else {
4955				  await navigator.serviceWorker.register(ctxPath + "/service-worker.js", {scope: ctxPath + "/"});
4956			  }
4957              console.log('Service Worker registered');
4958
4959              // Wait for the service worker to become active
4960              serviceWorkerRegistration = await navigator.serviceWorker.ready;
4961              // Check for existing subscription
4962              subscription = await serviceWorkerRegistration.pushManager.getSubscription();
4963              if (!subscription) {
4964                // Subscribe to push notifications
4965                subscription = await serviceWorkerRegistration.pushManager.subscribe({
4966                  userVisibleOnly: true,
4967                  applicationServerKey: urlBase64ToUint8Array(publicVapidKey),
4968                });
4969              }
4970
4971              if(customTopics){
4972                return await saveSubscription(subscription, true);
4973              }
4974              else{
4975                 return await saveSubscription(subscription);
4976              }
4977
4978            } catch (error) {
4979              console.error('Failed to subscribe the user:', error);
4980              return { status: 'Error', response: `Failed to subscribe the user: ${error.message}` };
4981            }
4982    }
4983
4984	async function unsubscribeUser() {
4985		if (!('serviceWorker' in navigator)) {
4986			const errorMsg = 'Push messaging is not supported in this browser.';
4987			console.warn(errorMsg);
4988			return { status: 'Error', response: errorMsg };
4989		}
4990
4991		// check if there is any service worker in browser
4992		try {
4993			const registrations = await navigator.serviceWorker.getRegistrations();
4994			if (registrations.length === 0) {
4995				const msg = 'No Service Worker registered – nothing to unsubscribe.';
4996				console.info(msg);
4997				return { status: 'OK', response: msg };
4998			}
4999		} catch (e) {
5000			const msg = `Failed to query Service Worker registrations: ${e.message || e}`;
5001			console.error(msg);
5002			return { status: 'Error', response: msg };
5003		}
5004		let registration;
5005		try {
5006			// if worker already exists, register will return it
5007			if (ctxPath === "/mim") {
5008				await navigator.serviceWorker.register("/service-worker.js", {scope: "/"});
5009			}
5010			else {
5011				await navigator.serviceWorker.register(ctxPath + "/service-worker.js", {scope: ctxPath + "/"});
5012			}
5013			registration = await navigator.serviceWorker.ready;
5014		} catch (regErr) {
5015			const msg = `Service Worker could not be registered: ${regErr.message || regErr}`;
5016			console.error(msg);
5017			return { status: 'Error', response: msg };
5018		}
5019
5020		let subscription = null;
5021		try {
5022			subscription = await registration.pushManager.getSubscription();
5023		} catch (subErr) {
5024			const msg = `Failed to get current push subscription: ${subErr.message || subErr}`;
5025			console.error(msg);
5026			return { status: 'Error', response: msg };
5027		}
5028
5029		if (subscription) {
5030			const wasUnsubscribed = await subscription.unsubscribe();
5031
5032			if (!wasUnsubscribed) {
5033				return {status: 'Error', response: 'Browser rejected unsubscribe request.'};
5034			}
5035
5036			try {
5037				const response = await fetch(serviceBaseWebpushUrl + `/wpapi/push-subscriptions-endpoint.json?endpoint=${subscription.endpoint}`);
5038				if (response.ok) {
5039					const subscriptionData = await response.json();
5040					const serverResult = await deleteSubscription(subscriptionData);
5041					console.log('Server result:', serverResult);
5042
5043					return {
5044						status: 'OK',
5045						response: {
5046							server: serverResult,
5047							client: 'Unsubscribed locally',
5048						},
5049					};
5050				}
5051			} catch (e) {
5052				console.error(e);
5053			}
5054		}
5055	}
5056
5057    async function saveSubscription(subscription, customTopics) {
5058        // Helper function to convert ArrayBuffer to Base64 string
5059        function arrayBufferToBase64(buffer) {
5060          let binary = '';
5061          const bytes = new Uint8Array(buffer);
5062          const len = bytes.byteLength;
5063          for (let i = 0; i < len; i++) {
5064            binary += String.fromCharCode(bytes[i]);
5065          }
5066          return window.btoa(binary);
5067        }
5068
5069        let selectedTopics;
5070        if(customTopics){
5071            const checkedTopics = [];
5072            const checkboxes = document.querySelectorAll('input[type="checkbox"][name="wp-option"]:checked');
5073
5074            checkboxes.forEach(function(checkbox) {
5075                checkedTopics.push(checkbox.value);
5076                });
5077            selectedTopics = checkedTopics
5078        }
5079        else{
5080            selectedTopicsData = await fetchAllSubscriptionTopics();
5081            selectedTopics = selectedTopicsData.map(topic=> (topic.slug));
5082        }
5083
5084
5085        // Prepare the subscription data to send to the server
5086        const pushSubscription = {
5087          endpoint: subscription.endpoint,
5088          p256dh: arrayBufferToBase64(subscription.getKey('p256dh')),
5089          auth: arrayBufferToBase64(subscription.getKey('auth')),
5090          status: 'ACTIVE',
5091          topics: selectedTopics, // Include the selected topic IDs
5092        };
5093
5094        try {
5095          const response = await fetch(serviceBaseWebpushUrl + '/wpapi/push-subscriptions-save.json', {
5096            method: 'POST',
5097            body: JSON.stringify(pushSubscription),
5098          });
5099
5100          const responseText = await response.text();
5101          if (!response.ok) {
5102            console.error(`Error saving subscription`);
5103            return {
5104              status: `Error ${response.status}`,
5105              response: `Server responded with ${response.status}: ${responseText}`,
5106            };
5107          }
5108          //console.log(`Server responded with ${response.status}: ${responseText}`);
5109
5110          return {
5111            status: `Success ${response.status}`,
5112            response: `Server responded with ${response.status}: ${responseText}`,
5113          };
5114        } catch (error) {
5115          console.error('Error saving subscription:', error);
5116          return { status: 'Error', response: `Error saving subscription: ${error.message}` };
5117        }
5118    }
5119
5120	async function deleteSubscription(subscription) {
5121		try {
5122			const requestBody = {
5123				endpoint: subscription.endpoint
5124			};
5125			const response = await fetch(serviceBaseWebpushUrl + `/wpapi/push-subscriptions-unsub
5125scribe.json?id=${subscription.id}`, {
5126				method: 'POST',
5127				body: JSON.stringify(requestBody)
5128			});
5129
5130			const responseText = await response.text();
5131			if (!response.ok) {
5132				console.error(`Error during unsubscribing`);
5133				return {
5134					status: `Error ${response.status}`,
5135					response: `Server responded with ${response.status}: ${responseText}`,
5136				};
5137			}
5138
5139			return {
5140				status: `Success ${response.status}`,
5141				response: `Server responded with ${response.status}: ${responseText}`,
5142			};
5143		} catch (error) {
5144			console.error('Error saving subscription:', error);
5145			return { status: 'Error', response: `Error saving subscription: ${error.message}` };
5146		}
5147	}
5148
5149    async function fetchAllSubscriptionTopics() {
5150        try {
5151            const response = await fetch(serviceBaseWebpushUrl + '/wpapi/subscription-topics.json');
5152            if (response.ok) {
5153                const topics = await response.json();
5154                return topics.map(topic=> ({id: topic.id, name: topic.name, slug: topic.slug, description: topic.description, createdOn: topic.createdOn, status: topic.status}));
5155            } else {
5156                const errorText = await response.text();
5157                console.error(`Failed to fetch subscription topics: ${response.status} ${errorText}`);
5158
5159            }
5160      } catch (error) {
5161            console.error('Error fetching subscription topics:', error);
5162      } finally {
5163      }
5164    }
5165
5166   async function fetchSubscriptionTopics() {
5167
5168        serviceWorkerRegistration = await navigator.serviceWorker.ready;
5169        subscription = await serviceWorkerRegistration.pushManager.getSubscription();
5170
5171         try {
5172           const response = await fetch(serviceBaseWebpushUrl + `/wpapi/push-subscriptions-endpoint.json?endpoint=${subscription.endpoint}`);
5173           if (response.ok) {
5174             const subscrib = await response.json();
5175               if(subscrib.topics){
5176                    data = subscrib.topics.map(topic=> ({id: topic.id, name: topic.name, slug: topic.slug}));
5177                    return data;
5178               }else{
5179                    console.warn('Topics do not exist in the subscription response.');
5180                    return [];
5181               }
5182           } else {
5183             const errorText = await response.text();
5184             console.error(`Failed to fetch subscription topics: ${response.status} ${errorText}`);
5185           }
5186         } catch (error) {
5187           console.error('Error fetching subscription topics:', error);
5188         } finally {
5189         }
5190   }
5191
5192
5193   async function fillTopicBoxes(isSubscribed){
5194         //check
5195         const observer = new MutationObserver(() => {
5196                 const checkboxes = document.querySelectorAll('input[name="wp-option"]');
5197                 if (checkboxes.length > 0) {
5198                     observer.disconnect(); // Odłączanie obserwatora po wykryciu checkboxów
5199
5200                     const updateButtonState = () => {
5201                         const isAnyChecked = [...checkboxes].some(c => c.checked);
5202//                         if(!isAnyChecked){
5203//                             $jq('#web-push-button-adjust-btn').attr("disabled", "disabled");
5204//                         }
5205//                         else{
5206//                            $jq('#web-push-button-adjust-btn').removeAttr("disabled");
5207//                         }
5208                         document.getElementById('web-push-button-adjust-btn').disabled = !isAnyChecked;
5209                     };
5210
5211                     checkboxes.forEach(checkbox => {
5212                         checkbox.addEventListener('change', updateButtonState);
5213                     });
5214
5215                     // Początkowa aktualizacja stanu przycisku
5216                     updateButtonState();
5217                 }
5218             });
5219         observer.observe(document.body, { childList: true, subtree: true });
5220
5221         try {
5222                const allTopics = await fetchAllSubscriptionTopics();
5223                let subscribedTopics;
5224                let subscribedIds;
5225
5226                $jq('#wp-adj-opt-box').empty();
5227
5228                if(isSubscribed){
5229                    subscribedTopics = await fetchSubscriptionTopics();
5230                    subscribedIds = new Set(subscribedTopics.map(topic => topic.slug));
5231                    allTopics.forEach(topic => {
5232                        const label = topic.name;//subscribedTopics.find(t => t.id === topic.id)?.name || `${topic.name}`
5233                        const isChecked = subscribedIds.has(topic.slug);
5234
5235                        $jq('#wp-adj-opt-box').append(printWebPushOption(topic.slug, label, isChecked));
5236                    });
5237                }
5238                else{
5239                   allTopics.forEach(topic => {
5240                        const label = topic.name;//subscribedTopics.find(t => t.id === topic.id)?.name || `${topic.name}`
5241                        const isChecked = true;
5242                        $jq('#wp-adj-opt-box').append(printWebPushOption(topic.slug, label, isChecked));
5243                   });
5244                }
5245
5246         } catch (error) {
5247                console.error('Błąd podczas wypełniania topic boxes:', error);
5248           }
5249
5250
5251        webPushShowAdjustBlock(true);
5252        centerElementHorizontal('#web-push-adjust');
5253   }
5254
5255   	var printWebPushOption = function (value, label, isChecked){
5256            return '<div class="wp-adj-opt">' +
5257                      '<div class="input-box">' +
5258                      '<input type="checkbox" name="wp-option" value="' + value + '"' +
5259                      (isChecked ? ' checked' : '') + ' />' +
5260                      '</div>' +
5261                      '<label class="text_body">' + label + '</label>' +
5262                      '</div>';
5263
5264   	}
5265
5266
5267	var setDisableCookiesWebPush = function(){
5268		if (COOKIE.get("poznanpl_cookies_web_push_enable")) {
5269			COOKIE.remove("poznanpl_cookies_web_push_enable");
5270		}
5271		COOKIE.set("poznanpl_cookies_web_push_disable", "true", {duration: 99999});
5272		webPushHideBlock(true);
5273	}
5274
5275	var setEnableCookiesWebPush = function(){
5276		if (COOKIE.get("poznanpl_cookies_web_push_disable")) {
5277			COOKIE.remove("poznanpl_cookies_web_push_disable");
5278		}
5279		COOKIE.set("poznanpl_cookies_web_push_enable", "true", {duration: 99999});
5280		webPushHideBlock(true);
5281	}
5282	if ($jq('#web-push-button-customize-btn').length > 0) {
5283		document.getElementById('web-push-button-customize-btn').addEventListener('click', () => {
5284            fillTopicBoxes()
5285        });
5286    }
5287
5288	$jq("#web-push-button-disable-btn").click(function(e) {
5289		unsubscribeUser()
5290			.then(() => {
5291					setDisableCookiesWebPush();
5292					webPushShowAdjustBlock(false);
5293				})
5294			.catch(err => {
5295				console.error('Błąd przy wypisywaniu z push:', err);
5296			});
5297	});
5298
5299	$jq("#web-push-button-disable-btn-options").click(function(e) {
5300		unsubscribeUser()
5301			.then(() => {
5302				setDisableCookiesWebPush();
5303				webPushShowAdjustBlock(false);
5304			})
5305			.catch(err => {
5306				console.error('Błąd przy wypisywaniu z push:', err);
5307			});
5308	});
5309
5310 if ($jq('#web-push-button-enable-btn').length > 0) {
5311    document.getElementById('web-push-button-enable-btn').addEventListener('click', () => {
5312		subscribeUser(false)
5313			.then(() => {
5314				webPushHideBlock(true);
5315				setEnableCookiesWebPush();
5316			})
5317			.catch(err => {
5318				console.error('Błąd przy subskrybowaniu:', err);
5319			});
5320    });
5321 }
5322
5323
5324
5325
5326	$jq("#web-push-button-adjust-btn").click(function(e) {
5327
5328	//$jq('input[type="checkbox"][name="wp-option"]').each(function () {
5329//		    let wpTypes=[];
5330//	        let value = $jq(this).val();
5331//    		if ($jq(this).prop('checked') && !wpTypes.includes(value)) {
5332//                wpTypes.push(value);
5333//    		}
5334//    	});
5335        //setDisableCookiesWebPush();
5336		subscribeUser(true)
5337			.then(() => {
5338				webPushShowAdjustBlock(false);
5339				webPushHideBlock(true);
5340				setEnableCookiesWebPush();
5341			})
5342			.catch(err => {
5343				console.error('Błąd przy subskrybowaniu:', err);
5344			});
5345	});
5346
5347	if(COOKIE.get('poznanpl_cookies_web_push_disable') || COOKIE.get('poznanpl_cookies_web_push_enable')) {
5348		webPushHideBlock(true);
5349	} else {
5350		//if (subscription != null) {
5351			webPushHideBlock(false);
5352		//}
5353	}
5354
5355    if($jq('#change-web-push-label').length > 0){
5356        document.getElementById('change-web-push-label').addEventListener('click', () => {
5357                   if(!subscription){
5358                   		fillTopicBoxes(false);
5359                   	}
5360                   	else{
5361                   		fillTopicBoxes(true);
5362                   	}
5363                  });
5364    }
5365    });
5366//============================================================================
5367
5368function scrollToTop() {
5369    window.scrollTo({top: 0, behavior: 'smooth'});
5370}
5371
5372
5373$jq(window).resize(function() {
5374      var screenWidth = $jq(window).width();
5375      if(screenWidth < 720) {
5376        $jq('#author_dfrnt').css('height', $jq('#author_dfrnt').width() + 'px');
5377        $jq('.book_diff_img').css('height', $jq('.book_diff_img').width() + 'px');
5378        $jq('.group_box').css('height', $jq('#author_dfrnt').width() + 'px');
5379
5380      }
5381});
5382
5383function arrowClicked(element){
5384element.classList.add('clicked');
5385}
5386function paginationClicked(element){
5387element.classList.add('clicked');
5388}
5389$jq(document).ready(function() {
5390
5391    if($jq('#h1-header').length > 0){
5392    var headerOffsetTop = $jq('#h1-header').offset().top;
5393    if($jq('.menu-navigation.subpage').length > 0){
5394        $jq('.menu-navigation.subpage').css('top',headerOffsetTop);
5395        $jq('.icon.main-menu.hide-text').css('top',0);
5396    }
5397    }
5398});
5399
5400function hideCurrentVideo(element){
5401    var hiddenVideoBox = $jq(".column.video-box:hidden:first");
5402    if (hiddenVideoBox.length > 0) {
5403      hiddenVideoBox.css("display", "flex");
5404      $jq(element).css('display','none');
5405    }
5406}
5407$jq('.column.video-box').on("keypress click", function(event) {
5408    if (event.type === "click" || event.key === "Enter") {
5409        event.preventDefault();
5410        const onclickAttr = $jq(this).attr('onclick');
5411
5412        if (onclickAttr) {
5413            eval(onclickAttr);
5414        }
5415    }
5416});
5417$jq('.video-poznan-h3 a').on("keypress click", function(event) {
5418    if (event.type === "click" || event.key === "Enter") {
5419        event.preventDefault();
5420        const onclickAttr = $jq(this).attr('onclick');
5421
5422        if (onclickAttr) {
5423            eval(onclickAttr);
5424        }
5425    }
5426});
5427function coverNewsWortal(element){
5428	element.classList.add('hovered');
5429}
5430
5431function uncoverNewsWortal(element){
5432	element.classList.remove('hovered');
5433}
5434
5435// BEGIN CEMENTRIES
5436function collapseTextOlimpNecropolis(element){
5437	var parentDiv = $jq(element).closest('div');
5438	var closestTextOlimp = parentDiv.find('[id^="text_olimp"]');
5439	var closestOlimpPictures = parentDiv.find('.olimp_pictures_container');
5440	var buttonText=$jq(element).find('#collapse_text');
5441	var buttonArrow=$jq(element).find('.up-arrow-button');
5442	if (closestTextOlimp.hasClass('collapsed') && closestOlimpPictures.hasClass('collapsed')) {
5443		closestOlimpPictures.removeClass('collapsed');
5444		closestTextOlimp.removeClass('collapsed');
5445		buttonText.text('Zwiń informacje');
5446		buttonArrow.css({
5447			'transform': 'rotate(0deg)',
5448			'-ms-transform': 'rotate(0deg)',
5449			'-webkit-transform': 'rotate(0deg)'
5450		});
5451	} else{
5452		closestTextOlimp.addClass('collapsed');
5453		closestOlimpPictures.addClass('collapsed');
5454		buttonText.text('Rozwiń informacje');
5455		buttonArrow.css({
5456			'transform': 'rotate(180deg)',
5457			'-ms-transform': 'rotate(180deg)',
5458			'-webkit-transform': 'rotate(180deg)'
5459		});
5460	}
5461}
5462
5463function collapseTextInsurgentNecropolis(element){
5464	var parentDiv = $jq(element).closest('div');
5465	var closestTextOlimp = parentDiv.find('[id^="text_olimp"]');
5466	var closestMedalBox = parentDiv.find('.medal_box');
5467	var decoratedText = parentDiv.find('.decorated_text');
5468	var buttonText=$jq(element).find('#collapse_text');
5469	var buttonArrow=$jq(element).find('.up-arrow-button');
5470	if ((closestTextOlimp && closestTextOlimp.hasClass('collapsed')) 
5471		|| (closestMedalBox && closestMedalBox.hasClass('collapsed'))
5472		|| (decoratedText && decoratedText.hasClass('collapsed'))) {
5473		if (closestMedalBox) {
5474			closestMedalBox.removeClass('collapsed');
5475		}
5476		if (closestTextOlimp) {
5477			closestTextOlimp.removeClass('collapsed');
5478		}
5479		if(decoratedText){
5480			decoratedText.removeClass('collapsed');
5481		}
5482		buttonText.text('Zwiń informacje');
5483		buttonArrow.css({
5484			'transform': 'rotate(0deg)',
5485			'-ms-transform': 'rotate(0deg)',
5486			'-webkit-transform': 'rotate(0deg)'
5487		});
5488	} else{
5489		if (closestMedalBox){
5490			closestMedalBox.addClass('collapsed');
5491		}
5492		if (closestTextOlimp){
5493			closestTextOlimp.addClass('collapsed');
5494		}
5495		if (decoratedText){
5496			decoratedText.addClass('collapsed');
5497		}
5498		buttonText.text('Rozwiń informacje');
5499		buttonArrow.css({
5500			'transform': 'rotate(180deg)',
5501			'-ms-transform': 'rotate(180deg)',
5502			'-webkit-transform': 'rotate(180deg)'
5503		});
5504	}
5505}
5506
5507const dividers = document.querySelectorAll('.main_page_search_divider_box');
5508if (dividers) {
5509	dividers.forEach(element => {
5510		if (element.parentNode.children.length === 1) {
5511			element.style.display = 'none';
5512		}
5513	});
5514}
5515
5516function submitFilterNecropolisSearch(url, element) {
5517	var urlEnd='&co=list';
5518	var absolutePath = window.location.href;
5519	var modifiedUrl = url;
5520
5521	if (element.checked) {
5522		if (url.includes('filterCem=')) {
5523			const matches = url.match(/filterCem=([^&]*)/);
5524			if (matches) {
5525				const filterCemValue = matches[1];
5526				const cemfilterValue =element.value;
5527
5528				console.log('element.value:', element.value);
5529				const filterCemValues = filterCemValue.split('%2C').map(val => decodeURIComponent(val.trim()));
5530
5531				// Utwórz nową tablicę bez elementu do usunięcia
5532				const newFilterCemValues = filterCemValues.filter(val => val !== cemfilterValue.trim());
5533				const newFilterCemParam = newFilterCemValues.map(val => encodeURIComponent(val)).join('%2C');
5534
5535				console.log('newFilterCemValues:', newFilterCemValues);
5536				console.log('newFilterCemParam:', newFilterCemParam);
5537				if (newFilterCemValues.length === '') {
5538					if(url.includes('?filterCem')){
5539						modifiedUrl = url.replace(`?filterCem=${filterCemValue}`, '');
5540					} else if(url.includes('&filterCem')){
5541						modifiedUrl = url.replace(`&filterCem=${filterCemValue}`, '');
5542					}
5543				} else {
5544					modifiedUrl = url.replace(filterCemValue, newFilterCemParam);
5545				}
5546			}
5547			modifiedUrl += urlEnd;
5548		}
5549	} else {
5550		const cemfilterValue = element.checked ? '' : element.value;
5551		if (url.includes('filterCem=')) {
5552			const matches = url.match(/filterCem=([^&]*)/);
5553			if (matches) {
5554				const filterCemValue = matches[1];
5555				const newFilterCemValue = filterCemValue ? `${filterCemValue}%2C${cemfilterValue}` : cemfilterValue;
5556				modifiedUrl = url.replace(filterCemValue, newFilterCemValue);
5557			}
5558			modifiedUrl += urlEnd;
5559		} else if (!url.includes('filterCem=')) {
5560			modifiedUrl += `&filterCem=${cemfilterValue}`;
5561			modifiedUrl += urlEnd;
5562		}
5563	}
5564	window.location.href = modifiedUrl;
5565}
5566
5567function handleOutsideClick(event) {
5568	var cemRows = document.getElementById("cem_rows");
5569	var selectCem = document.getElementById("select_cemetery");
5570	var targetElement = event.target;
5571	var arrowDownSelect = selectCem.querySelector('.arrow-down-select');
5572	if (!cemRows.contains(targetElement) && !selectCem.contains(targetElement) ) {
5573		cemRows.classList.remove("visible");
5574		selectCem.style.border="1px solid #8C8F92";
5575		arrowDownSelect.classList.remove("rotated");
5576		document.removeEventListener("click", handleOutsideClick);
5577	}
5578}
5579
5580function showRowsCemeteries(element){
5581	var elementStyle = window.getComputedStyle(element);
5582	var maxWidthElement = elementStyle.getPropertyValue('max-width');
5583	var arrowDownSelect = element.querySelector('.arrow-down-select');
5584	if (arrowDownSelect.classList.contains("rotated")) {
5585		arrowDownSelect.classList.remove("rotated");
5586		element.style.border="1px solid #8C8F92";
5587	} else{
5588		arrowDownSelect.classList.add("rotated");
5589		element.style.border="2px solid #009BDB";
5590	}
5591	var cemRows =  document.getElementById("cem_rows");
5592	if (cemRows.classList.contains("visible")) {
5593		cemRows.classList.remove("visible");
5594	} else{
5595		cemRows.style.maxWidth = element.offsetWidth + "px";
5596		cemRows.classList.add("visible");
5597	}
5598	document.addEventListener("click", handleOutsideClick);
5599}
5600
5601
5602function handleCheckboxChange(checkbox) {
5603	var checkboxId = checkbox.id;
5604	var textElementId = "cem_text_" + checkbox.value;
5605	
5606	console.debug(checkbox);
5607
5608	var textElement = document.getElementById(textElementId);
5609	var selectElement = document.getElementById('search_cemetery_text');
5610	var originalText = '- Wybierz cmentarz -';
5611	var currentText = selectElement.innerHTML.trim();
5612	if (checkbox.checked) {
5613		if (currentText === originalText) {
5614			selectElement.innerHTML = "";
5615			selectElement.classList.add("have-context");
5616			selectElement.innerHTML = textElement.innerText;
5617		} else {
5618			selectElement.innerHTML += ","+textElement.innerText;
5619		}
5620	} else {
5621		var valuesArray = selectElement.innerHTML.split(',');
5622		var indexToRemove = valuesArray.indexOf(textElement.innerText);
5623		if (indexToRemove !== -1) {
5624			valuesArray.splice(indexToRemove, 1);
5625			selectElement.innerHTML = valuesArray.join(',');
5626		}
5627		if (selectElement.innerHTML.trim() === "") {
5628			selectElement.innerHTML = originalText;
5629			selectElement.classList.remove("have-context");
5630		}
5631	}
5632}
5633
5634$jq(document).ready(function () {
5635	$jq('.cemetery_element input[type="checkbox"]').on('change', function() {
5636		if ($jq('input[type="checkbox"]:checked').not('#cem_0').length > 0) {
5637			$jq('#cem_0').prop('disabled', true);
5638		} else {
5639			$jq('#cem_0').prop('disabled', false);
5640		}
5641	});
5642
5643	$jq('#cem_0').on('change', function () {
5644		if ($jq(this).is(':checked')) {
5645			$jq('input[type="checkbox"]').not(this).prop('disabled', true);
5646		} else {
5647			$jq('input[type="checkbox"]').prop('disabled', false);
5648		}
5649	});
5650
5651	var checkboxesNecropolis = $jq(".necropolis_checkboxes_container .chechbox_necropolis");
5652	if(checkboxesNecropolis){
5653		var count = checkboxesNecropolis.length;
5654		if (count > 3 && $jq(window).width() <= 720) {
5655			$jq(".necropolis_checkboxes_container").addClass("collapsed");
5656		}
5657	}
5658
5659	$jq('input:radio[name=cm_opt_grupa]').each(function () {
5660		var isChecked = $jq(this).prop('checked');
5661		if (isChecked) {
5662			$jq(this).data('checkedValue', true);
5663		}
5664	});
5665
5666	$jq('input:radio[name=cm_opt_grupa]').click(function () {
5667		var previousValue = $jq(this).data('checkedValue');
5668		if (previousValue) {
5669		$jq(this).prop('checked', !previousValue);
5670			$jq(this).data('checkedValue', !previousValue);
5671		} else{
5672			$jq(this).data('checkedValue', true);
5673			$jq('input:radio[name=cm_opt_grupa]:not(:checked)').data("checkedValue", false);
5674		}
5675	 });
5676});
5677//END CEMENTRIES
5678
5679
5680
5681 $jq(document).ready(function() {
5682    $jq('.slick-box-container').each(function() {
5683        var $container = $jq(this);
5684        var $progressBar = $container.siblings('.progress-bar-news');
5685        var $prev = $container.find('.slick-prev.slick-arrow');
5686        var $next = $container.find('.slick-next.slick-arrow');
5687
5688        function updateProgressBarVisibility() {
5689            if ($prev.length > 0 && $next.length > 0) {
5690                $progressBar.css("display", "block");
5691            } else {
5692                $progressBar.css("display", "none");
5693            }
5694        }
5695
5696        updateProgressBarVisibility();
5697
5698        var observer = new MutationObserver(() => {
5699            $prev = $container.find('.slick-prev.slick-arrow');
5700            $next = $container.find('.slick-next.slick-arrow');
5701            updateProgressBarVisibility();
5702        });
5703
5704        observer.observe(this, { childList: true, subtree: true });
5705    });
5706});
5707
5708
5709
5710$jq("#next_button").on("click", function() {
5711    if ($jq("#next_button").hasClass("complete")) {
5712        window.location.href = "quiz_summary.html";
5713    } else {
5714        getNextQuestion();
5715    }
5716    });
5717    $jq("#next_button_mobile").on("click", function() {
5718        if ($jq("#next_button").hasClass("complete")) {
5719            window.location.href = "quiz_summary.html";
5720        } else {
5721            getNextQuestion();
5722        }
5723        });
5724  $jq(".search-lens").click(function() {
5725    $jq("#search_waste").focus();
5726  });
5727
5728
5729$jq('.send_phrase_textbox .text_normal_waste .selected').on("keypress", function(event) {
5730
5731   if (event.key === "Enter") {
5732           event.preventDefault();
5733           var elementId= this.attr('id');
5734         window.location.href = "search_waste_result.html?waste="+elementId;
5735      }
5736
5737});
5738  $jq(document).ready(function() {
5739var currentPath = window.location.href;
5740var currentPathPackage = currentPath.slice(-7);
5741if(currentPathPackage === "odpady/"){
5742$jq('.wrapper.with-top-margin.clearfix').css({
5743   'display': 'flex',
5744   'flex-direction': 'column'
5745});
5746}
5747});
5748
5749function sendPhrase() {
5750var originalText;
5751$jq('.send_phrase_textbox .text_normal_waste').each(function() {
5752     originalText = $jq(this).text();
5753originalText= originalText.substring(24, originalText.length - 40);
5754});
5755var currentPath = window.location.pathname;
5756if(currentPath === "/odpady/" ) currentPath= "/odpady/wyszukiwarka_odpadow.html";
5757if(currentPath === "/mim/odpady/" ) currentPath= "/mim/odpady/wyszukiwarka_odpadow.html";
5758if(currentPath === "/mimtest/odpady/" ) currentPath= "/mimtest/odpady/wyszukiwarka_odpadow.html";
5759if(currentPath === "/mimdevtest/odpady/" ) currentPath= "/mimdevtest/odpady/wyszukiwarka_odpadow.html";
5760
5761    var dane = {
5762          proposal: originalText,
5763           co: "addproposal",
5764           action: "save"
5765        };
5766   $jq.ajax({
5767        method: 'GET',
5768        url: currentPath,
5769        data: dane,
5770        dataType: 'json',
5771        success: function (data) {
5772
5773         if (data && data.waste_message && data.waste_status) {
5774        var dialogStyle;
5775        if(data.waste_status=='ok')
5776        {
5777          dialogStyle= "necropolis-ui-dialog";
5778        }else{
5779          dialogStyle= "necropolis-fail-ui-dialog";
5780        }
5781
5782         var proposal_status = data.waste_message;
5783         $jq( "#n-t-waste-in" ).dialog({ closeOnEscape: true, autoOpen: false, minHeight: 90, closeText: "zamknij", classes: {"ui-dialog": dialogStyle+" dialog-index-waste"}
5784         , position: {     my: "right-70 top",
5785                              at: "right bottom",
5786                              of: ".search-waste-textbox",
5787                              offset: "0 0",
5788                              collision: "fit flip" } });
5789            var dialogContent = $jq("#n-t-waste-in p");
5790
5791            if (dialogContent.length) {
5792                dialogContent.text(proposal_status);
5793            } else {
5794                $jq("#n-t-waste-in").append($jq("<p>").text(proposal_status));
5795            }
5796
5797        $jq( "#n-t-waste-in" ).dialog( "open" );
5798        }
5799        },
5800        error: function (xhr, status, error) {
5801            console.error('Błąd żądania:', status);
5802        }
5803    });
5804}
5805 function checkInputLength() {
5806            var sendButton = document.getElementById('send_phrase_box');
5807            var inputValue = document.getElementById("search_waste").value;
5808            var inputWidth = inputValue.offsetWidth;
5809            var maxLength = 1024;
5810            if(inputValue.length===0){
5811
5812               var arrowDownSelect = document.querySelector('.search-arrow');
5813               var intervalId = setInterval(function() {
5814                   arrowDownSelect.classList.remove("contains");
5815                   arrowDownSelect.classList.remove("available");
5816               }, 25);
5817
5818               setTimeout(function() {
5819                   clearInterval(intervalId);
5820               }, 125);
5821            }
5822            if (inputValue.length === maxLength) {
5823                 $jq( "#too-much-in" ).dialog( "open" );
5824                 if(sendButton){
5825                 sendButton.disabled=true;
5826                 }
5827            }
5828            else{
5829                   if ($jq("#too-much-in").dialog("isOpen")) {
5830                        $jq("#too-much-in").dialog("close");
5831                    }
5832                    if(sendButton && sendButton.disabled)
5833                    {
5834                    sendButton.disabled=false;
5835                    }
5836            }
5837}
5838  var searchWasteInput = document.getElementById("search_waste");
5839  if(searchWasteInput){
5840        searchWasteInput.addEventListener("input", function() {
5841            checkInputLength();
5842            resizeWasteList();
5843  });
5844  }
5845  function resizeProgressBar(count,denominator){
5846           var progressBar = document.querySelector('.progress-bar');
5847           var progressBarBackground = (count / (denominator)) * 100;
5848           progressBar.style.setProperty('background-size', progressBarBackground + '% 100%');
5849
5850  }
5851  function disableOptions(){
5852  var options = document.querySelectorAll('.quiz_option_container');
5853    options.forEach(function(option) {
5854        if (!option.classList.contains('clicked')) {
5855            option.classList.add('unavailable');
5856        }
5857    });
5858  }
5859 function prepareAnswer(data){
5860    document.getElementById('quiz_response').innerHTML = data.text;
5861    document.getElementById('question_summary').innerHTML = data.question;
5862    document.getElementById('answer_result_img').classList.add(data.image);
5863    document.getElementById('check_answer').style.setProperty('display','flex');
5864    document.getElementById('question_box').style.setProperty('display','none');
5865 }
5866  function prepareAnswerMobile(data){
5867    document.getElementById('quiz_response_mobile').innerHTML = data.text;
5868    document.getElementById('question_summary_mobile').innerHTML = data.question;
5869    document.getElementById('answer_result_img_mobile').classList.add(data.image);
5870    document.getElementById('check_answer_mobile').style.setProperty('display','flex');
5871    document.getElementById('question_box').style.setProperty('display','none');
5872}
5873function addSelectedQuiz(element){
5874    var isMobile="";
5875    var modifiedId = element.id;
5876      if(modifiedId.includes("_MOBILE")){
5877          isMobile="_MOBILE";
5878           modifiedId = element.id.slice(0, -7);
5879      }
5880    if(!document.querySelector('.quiz_option_container.clicked')){
5881    element.classList.add('clicked');
5882    disableOptions();
5883    var currentPath = window.location.pathname;
5884    var question = document.getElementById('question').innerHTML;
5885    var quizData = {
5886           question: question,
5887           answer: modifiedId,
5888           co: "checkanswer",
5889           action: "save"
5890        };
5891   $jq.ajax({
5892        method: 'get',
5893        url: currentPath,
5894        data: quizData,
5895        dataType: 'json',
5896        success: function (data) {
5897
5898         if (data && data.question && data.image && data.text) {
5899
5900            if(isMobile !==  ""){
5901                prepareAnswerMobile(data);
5902           }else{
5903                prepareAnswer(data);
5904           }
5905
5906           $jq('.quiz_option_container').each(function() {
5907               $jq(this).removeAttr('tabindex');
5908           });
5909           var userAnswer = $jq("#" + data.userAnswer + isMobile);
5910           userAnswer.css('background','none');
5911           userAnswer.find("#throw-text").text("MOJA ODPOWIEDŹ");
5912
5913           if(data.correctAnswer){
5914           var correctAnswer = $jq("#" + data.correctAnswer + isMobile);
5915           correctAnswer.addClass('correct');
5916           correctAnswer.removeClass('unavailable');
5917           var throwText = correctAnswer.find("#throw-text");
5918           throwText.text("DOBRA ODPOWIEDŹ");
5919           }
5920           resizeProgressBar((parseInt(data.quizCount, 10)),10);
5921           }
5922         },
5923        error: function (xhr, status, error) {
5924            console.error('Błąd żądania:', status);
5925            location.reload();
5926        }
5927    });}
5928}
5929
5930function getNextQuestion(){
5931    var currentPath = window.location.pathname;
5932    var href = window.location.href;
5933
5934
5935    var quizData = {
5936           co: "nextquestion",
5937           action: "search"
5938        };
5939   $jq.ajax({
5940        method: 'get',
5941        url: currentPath,
5942        data: quizData,
5943        dataType: 'json',
5944        success: function (data) {
5945
5946         if (data && data.question && data.quizCount) {
5947         document.getElementById('answer_result_img_mobile').classList='';
5948         document.getElementById('answer_result_img').classList='';
5949         $jq('.quiz_option_container').each(function() {
5950             $jq(this).removeClass('clicked unavailable correct').attr('tabindex', 1);;
5951             $jq(this).find("#throw-text").text("WRZUCAM DO");
5952         });
5953
5954
5955
5956           document.getElementById('question').innerHTML = data.question;
5957           document.getElementById('question_mobile').innerHTML = data.question;
5958           document.getElementById('question_count').innerHTML = "PYTANIE " + data.quizCount +" Z 10";
5959           document.getElementById('check_answer').style.setProperty('display','none');
5960           document.getElementById('check_answer_mobile').style.setProperty('display','none');
5961           document.getElementById('question_box').style.setProperty('display','flex');
5962         if(data.quizCount === '10'){
5963         var nextButton = document.getElementById("next_button");
5964         $jq("#next_button").find(".blue-primary-text-small").text("Zobacz wynik");
5965         $jq("#next_button").addClass("complete");
5966         $jq("#next_button_mobile").find(".blue-primary-text-small").text("Zobacz wynik");
5967         }
5968
5969         }
5970         }
5971        ,
5972        error: function (xhr, status, error) {
5973            console.error('Błąd żądania:', status);
5974        }
5975    });
5976}
5977var quizOptionContainers = document.querySelectorAll('.quiz_option_container');
5978
5979quizOptionContainers.forEach(function(container) {
5980    container.addEventListener("keypress", function(event) {
5981        if (event.key === "Enter") {
5982            event.preventDefault();
5983            addSelectedQuiz(container);
5984        }
5985    });
5986});
5987
5988  function addBorder(ele) {
5989    $jq('.search-waste-textbox.clicked').removeClass('clicked')
5990    var element = $jq(ele);
5991
5992    element.addClass('clicked');
5993    var searchWasteArrow = element.children('.search-arrow');
5994    if (searchWasteArrow.hasClass('contains')) {
5995                searchWasteArrow.addClass('available');
5996                showListWaste(searchWasteArrow);
5997    }
5998       document.addEventListener('click', function(e) {
5999          if (!document.querySelector('.search-waste-textbox.clicked').contains(e.target)) {
6000            document.querySelector('.search-waste-textbox.clicked').classList.remove('clicked');
6001          }
6002        });
6003  }
6004
6005
6006$jq('.select_div').on( "keypress", function(event) {
6007	if (event.keyCode == 13 && !event.shiftKey) {
6008		event.preventDefault();
6009		toggleSelect(this);
6010	}
6011});
6012
6013$jq(document).on('keydown', function(e) {
6014    // ESCAPE key pressed
6015    if (e.key == "Escape" ) {
6016        e.preventDefault();
6017
6018        if(!$jq('#smart-popup').hasClass('hidden')){
6019            $jq('#smart-popup').addClass('hidden');
6020        }
6021        if($jq(".mim-menu-dropdown-content").hasClass('show')){
6022            $jq(".mim-menu-dropdown-content").removeClass('show');
6023            $jq('.links-menu-header-arrow.links-menu-header-arrow-opened').removeClass('links-menu-header-arrow-opened').addClass('links-menu-header-arrow-closed');
6024        }
6025    }
6026});
6027var searchWasteElement = document.getElementById('search_waste');
6028
6029var searchWasteTextbox = document.querySelector('.search-waste-textbox');
6030var searchWasteArrow = document.querySelector('.search-arrow');
6031
6032if(searchWasteElement){
6033
6034    searchWasteElement.addEventListener('focus', function() {
6035     setTimeout(function() {
6036
6037         if (!searchWasteTextbox.classList.contains('clicked')) {
6038        searchWasteTextbox.classList.add('focus');
6039        searchWasteArrow.classList.add('focus');
6040        searchWasteArrow.classList.remove('available');
6041        }
6042         }, 150);
6043    });
6044
6045    searchWasteElement.addEventListener('blur', function() {
6046        searchWasteTextbox.classList.remove('focus');
6047        if (searchWasteArrow.classList.contains('contains')) {
6048            searchWasteArrow.classList.add('available');
6049        }
6050        searchWasteArrow.classList.remove('focus');
6051
6052    });
6053}
6054
6055	var ajaxWaste= document.getElementById("ajax_lookup_div_search_waste");
6056	if (ajaxWaste) {
6057        ajaxWaste.addEventListener("click", function(event) {
6058			if (event.target.classList.contains("send_phrase_textbox")) {
6059                var elementId = event.target.id;
6060                var searchWasteInput = document.getElementById("search_waste");
6061                searchWasteInput.value = event.target.textContent || event.target.innerText;
6062                var cleanedText = elementId.toLowerCase();
6063                var currentSegregacjaPath = ctxPath + "/odpady/segregacja/" + cleanedText;
6064                window.location.href = currentSegregacjaPath;
6065			}
6066		});
6067    }
6068
6069	function onClickRedirectWasteList(){
6070    	var selectedItem = $jq('.send_phrase_textbox.selected');
6071      	var elementId = selectedItem.eq(0).attr('id');
6072    	var cleanedText = elementId.toLowerCase();
6073    	var currentPath = window.location.pathname;
6074		var currentSegregacjaPath = ctxPath + "/odpady/segregacja/" + cleanedText;
6075        window.location.href = currentSegregacjaPath;
6076	}
6077
6078	function resizeWasteList(){
6079    	var searchWasteTextbox = $jq(".search-waste-textbox");
6080    	var wasteSimilarList = $jq("#ajax_lookup_div_search_waste");
6081    	var marginLeft;
6082
6083        if (navigator.userAgent.indexOf("Firefox") != -1) {
6084            marginLeft=-17;
6085        } else{
6086        	marginLeft=-18;
6087        }
6088
6089	    wasteSimilarList.attr('style',';width: '+searchWasteTextbox.outerWidth()+'px !important;left:'+marginLeft+'px !important;');
6090	}
6091
6092$jq(document).ready(function() {
6093
6094     var blueButtons = document.querySelectorAll('.blue_button_new');
6095     var secondaryButtons = document.querySelectorAll(' .button_secondary');
6096     var buttonHeroSmartcity = document.querySelectorAll(' .button-hero-smartcity');
6097     if(blueButtons){
6098     blueButtons.forEach(function(button) {
6099             button.addEventListener('click', function() {
6100                 button.classList.add('clicked');
6101             });
6102         });
6103     }
6104         if(secondaryButtons){
6105          secondaryButtons.forEach(function(button) {
6106                  button.addEventListener('click', function() {
6107                      button.classList.add('clicked');
6108                  });
6109              });
6110          }    if(buttonHeroSmartcity){
6111                          buttonHeroSmartcity.forEach(function(button) {
6112                                  button.addEventListener('click', function() {
6113                                      button.classList.add('clicked');
6114                                  });
6115                              });
6116                          }
6117      var wasteSearchInput = $jq("#search_waste_wrapper");
6118      if(wasteSearchInput){
6119      wasteSearchInput.click(function() {
6120              var searchWasteTextbox = $jq(".search-waste-textbox");
6121              var wasteSimilarList = $jq("#ajax_lookup_div_search_waste");
6122              var wasteSimilarList = $jq("#ajax_lookup_div_search_waste ul");
6123
6124            });
6125      }
6126    });
6127
6128    function handleStateChangeWaste(mutationsList, observer) {
6129        for (let mutation of mutationsList) {
6130            if (mutation.type === 'attributes' && mutation.attributeName === 'style') {
6131                const targetElement = document.getElementById('ajax_lookup_div_search_waste');
6132
6133                if (targetElement && targetElement.style.display === 'none') {
6134                       var searchArrowElement = document.querySelector('.search-arrow');
6135                    if (searchArrowElement.classList.contains('rotated')) {
6136
6137
6138                        searchArrowElement.classList.remove('rotated');
6139                    }
6140                }
6141                if (targetElement && targetElement.style.display !== 'none') {
6142
6143                     var searchArrowElement = document.querySelector('.search-arrow');
6144                    if (!searchArrowElement.classList.contains('rotated')) {
6145                       searchArrowElement.classList.add('rotated');
6146                       searchArrowElement.classList.add('available');
6147                       searchArrowElement.classList.add('contains');
6148
6149                   }
6150               }
6151            }
6152        }
6153    }
6154const targetNode = document.getElementById('ajax_lookup_div_search_waste');
6155if(targetNode){
6156    const observer = new MutationObserver(handleStateChangeWaste);
6157
6158    const config = { attributes: true };
6159
6160    observer.observe(targetNode, config);
6161}
6162function showListWaste(element){
6163    if (element.classList.contains('contains')) {
6164             if (element.classList.contains('rotated')) {
6165                    element.classList.remove('rotated');
6166                } else {
6167                    element.classList.add('rotated');
6168                }
6169
6170             var autocompleteElement = document.querySelector('.autocomplete_complex');
6171
6172                var currentDisplayValue = window.getComputedStyle(autocompleteElement).getPropertyValue('display');
6173                if (currentDisplayValue === 'none') {
6174                    autocompleteElement.style.removeProperty('display');
6175                        var searchWasteTextbox = $jq(".search-waste-textbox");
6176                        var wasteSimilarList = $jq("#ajax_lookup_div_search_waste");
6177                         if (navigator.userAgent.indexOf("Firefox") != -1) {
6178                            marginLeft=-17;
6179                         } else{
6180                         marginLeft=-18;
6181                         }
6182
6183                            wasteSimilarList.attr('style',';width: '+searchWasteTextbox.outerWidth()+'px !important;left:'+marginLeft+'px !important;');
6184                } else {
6185                    autocompleteElement.style.setProperty('display', 'none', 'important');
6186                }
6187
6188
6189    }
6190}
6191
6192	$jq( "#too-much-in" ).dialog({ closeOnEscape: true, autoOpen: false, minHeight: 90, classes: {"ui-dialog": "necropolis-fail-ui-dialog dialog-index-waste"}
6193        , position: {
6194            my: "right top",
6195            at: "right+18 top-100",
6196            of: "#search_waste",
6197            offset: "0 0",
6198            collision: "fit flip"
6199           },
6200          open: function(event, ui) {
6201          $jq(".ui-dialog-titlebar-close", ui.dialog | ui).hide();
6202          }
6203        });
6204
6205function openMapMenu(){
6206   $jq(".leaflet-control-layers").addClass("leaflet-control-layers-expanded");
6207}
6208$jq(document).ready(function() {
6209
6210var currentPath = window.location.pathname;
6211if(currentPath==='/odpady/punkty_zbiorki.html'){
6212
6213     openMapMenu();
6214
6215
6216}
6217});
6218$jq(document).ready(function() {
6219function checkBanners(){
6220    const slickArrow = document.querySelector('.slick-box-container-new-wortal .slick-prev.slick-arrow');
6221    const slickArrowMobile = document.querySelector('.slick-box-container-new-wortal .slickslider-mobile-banner-arrow-box');
6222
6223    if (document.querySelector('#prog_bar')) {
6224        if (slickArrow || slickArrowMobile) {
6225            document.querySelector('#prog_bar').style.display = 'flex';
6226        } else {
6227            document.querySelector('#prog_bar').style.display = 'none';
6228        }
6229    }
6230}
6231let counter = 0;
6232const interval = setInterval(() => {
6233    checkBanners();
6234    counter++;
6235    if (counter === 3) {
6236        clearInterval(interval);
6237    }
6238}, 1000);
6239});
6240
6241function toggleTableAirQuality(element){
6242
6243        if($jq(window).width() < 920){
6244            $jq('.table_mobile_wos').toggleClass('hidden');
6245        }
6246        else{
6247            $jq('.styled_table').toggleClass('hidden');
6248        }
6249
6250        $jq(element).find('.button_secondary_arrow').toggleClass('rotated');
6251        if($jq(element).find("#secondary_button_text").text()=="Zobacz szczegółowe zestawienie dla wszystkich stacji"){
6252            $jq(element).find("#secondary_button_text").text("Zwiń szczegółowe zestawienie dla wszystkich stacji");
6253        }else{
6254            $jq(element).find("#secondary_button_text").text("Zobacz szczegółowe zestawienie dla wszystkich stacji");
6255        }
6256           var intervalId = setInterval(function() {
6257               $jq(element).removeClass('clicked');
6258            }, 500);
6259}
6260
6261function showRowsSelect(element){
6262       var elementStyle = window.getComputedStyle(element);
6263       var maxWidthElement = elementStyle.getPropertyValue('max-width');
6264       var arrowDownSelect = element.querySelector('.arrow-down-select');
6265       if (arrowDownSelect.classList.contains("rotated")) {
6266         arrowDownSelect.classList.remove("rotated");
6267          element.classList.remove('clicked');
6268       }else{
6269          arrowDownSelect.classList.add("rotated");
6270         element.classList.add('clicked');
6271       }
6272
6273
6274       var filterRows =  document.getElementById("filter_rows");
6275       if (filterRows.classList.contains("visible")) {
6276         filterRows.classList.remove("visible");
6277       }
6278       else{
6279            filterRows.style.maxWidth = element.offsetWidth + "px";
6280            filterRows.classList.add("visible");
6281            $jq(filterRows).css("top",$jq(element).outerHeight() +'px');
6282       }
6283        document.addEventListener("click", handleOutsideClickSelect);
6284}
6285function getDataSelect(element){
6286   $jq('#search_text').text($jq(element).text());
6287   $jq('#select_filter').addClass('selected_value');
6288}
6289function openFilterList(element){
6290    $jq('#choose_filter_list').toggleClass('closed');
6291    $jq(element).find('.filter_arrow').toggleClass('rotated');
6292}
6293
6294  var searchTextInput = document.getElementById("search_text");
6295  if(searchTextInput){
6296        searchTextInput.addEventListener("input", function() {
6297            resizeSearchList();
6298  });
6299  }
6300
6301  	function resizeSearchList(){
6302      	var searchTextbox = $jq("#select_filter");
6303      	var searchSimilarList = $jq("#ajax_lookup_div_search_text");
6304      	var marginLeft;
6305
6306
6307  	    searchSimilarList.attr('style',';width: '+searchTextbox.outerWidth()+'px !important;');
6308  	}
6309  	  function addBorderInput(element) {
6310
6311        element.classList.add('clicked');
6312        if ($jq('#ajax_lookup_div_search_text').find('ul').length > 0) {
6313           $jq('#ajax_lookup_div_search_text').css('display','flex');
6314        }
6315
6316           document.addEventListener('click', function(e) {
6317              if (!element.contains(e.target) && e.target) {
6318                element.classList.remove('clicked');
6319              }
6320            });
6321      }
6322function showList(element) {
6323
6324          $jq(element).toggleClass('clicked');
6325          $jq('#list_select.list_select_box').toggleClass('show');
6326
6327
6328          document.addEventListener('click', function(e) {
6329            if (!element.contains(e.target) && e.target) {
6330                element.classList.remove('clicked');
6331                 $jq('#list_select.list_select_box').removeClass('show');
6332
6333          }
6334         });
6335
6336           document.addEventListener('click', function(e) {
6337              if (!element.contains(e.target) && e.target) {
6338                element.classList.remove('clicked');
6339              }
6340            });
6341}
6342function addSelected(element){
6343
6344
6345      $jq('.filter_element.text_body_small.selected').each(function() {
6346          $jq(this).removeClass('selected');
6347      });
6348
6349    $jq(element).addClass('selected');
6350    $jq('#select_text').text($jq(element).text());
6351     $jq('#select_text').css('color','#01070E');
6352}
6353function getPollutants(element){
6354    let pol_id;
6355    if (!$jq('#choose_filter_list').hasClass('closed')) {
6356            $jq('#choose_filter_list').addClass('closed');
6357        }
6358    $jq('.filter_arrow.rotated').removeClass('rotated');
6359    if(!(element === undefined)){
6360       pol_id= $jq(element).attr('pol-id');
6361    }else{
6362        pol_id='';
6363    }
6364    var currentPath = window.location.pathname;
6365    var href = window.location.href;
6366    var stationId = $jq('.filter_element.text_body_small.selected').attr('station-id');
6367
6368    var quizData = {
6369           co: "pollution",
6370           action: "search",
6371           pol_id: pol_id,
6372           st_id: stationId
6373        };
6374   $jq.ajax({
6375        method: 'get',
6376        url: currentPath,
6377        data: quizData,
6378        dataType: 'json',
6379        success: function (data) {
6380         if (data && data.pollutantsArray  && data.pollutants) {
6381            updateDataBoxWos(data);
6382         }
6383         }
6384        ,
6385        error: function (xhr, status, error) {
6386            console.error('Błąd żądania:', status);
6387        }
6388    });
6389}
6390
6391function updateDataBoxWos(data){
6392    $jq('.chart_container').css('display','flex');
6393    let pollutantsArray = data.pollutantsArray;
6394    let isSelected=false;
6395    $jq('#choose_filter_list .filter_element.filter_item').each(function() {
6396        var pol_id = $jq(this).attr('pol-id');
6397        if (pollutantsArray.includes(pol_id)) {
6398
6399            if(!isSelected && $jq('.filter_element.filter_item.selected').length === 0){
6400              $jq('#filter_value').text($jq(this).text());
6401              $jq(this).addClass('selected');
6402              isSelected=true;
6403            }else if($jq(this).hasClass('selected') && !isSelected){
6404              $jq('#filter_value').text($jq(this).text());
6405              isSelected=true;
6406            }
6407            $jq(this).css('display', 'flex');
6408        } else {
6409            $jq(this).css('display', 'none');
6410        }
6411    });
6412      $jq('#head_wos_chart_box').text(data.headText);
6413    if (data.pollutants && data.pollutants.length >0) {
6414            addChart(data);
6415    }
6416    updateTableWos(data);
6417    updateTableWosMobile(data);
6418}
6419function updateTableWos(data) {
6420
6421    let temp = '<tr class="table_header"><td>Rok</td><td>Stacja pomiaru</td><td>Stężenie roczne ('+data.pollutants[0].unit+')</td><td class="flex_row" style="gap:10px;">Liczba dni<div class="tooltip-info-img" title="Wskazana wartość x/y prezentuje kolejno: x - liczbę dni w roku z przekroczeniem normy stężenia, y - dopuszczalną liczbę dni w roku z przekroczeniem normy stężenia"></div></td></tr>';
6422    for (let i = 0; i < data.table.length; i++) {
6423        temp += '<tr>';
6424        temp += '<td>'+data.table[i].measurement_year+'</td>';
6425        temp +=data.table[i].stations;
6426        temp +=data.table[i].measurement_values;
6427        temp +=data.table[i].days_exceeded;
6428        temp +='</tr>';
6429    }
6430    $jq('table.styled_table tbody').html(temp);
6431    $jq('#toggle_table_pollutants').css('display','inline-flex');
6432}
6433function countDaysAlert(){
6434alert("Wskazana wartość x/y prezentuje kolejno: x - liczbę dni w roku z przekroczeniem normy stężenia, y - dopuszczalną liczbę dni w roku z przekroczeniem normy stężenia");
6435}
6436
6437function updateTableWosMobile(data) {
6438     var temp='';
6439     for (let i = 0; i < data.table.length; i++) {
6440        let background=(i%2)===0?'background:#F2F2F3':'background:#FFFFFF';
6441        temp +='<table class="styled_table_mobile" style="'+background+'"><tbody><tr class="table_header_mobile"><td>Rok '+ data.table[i].measurement_year +'</td><td></td></tr>';
6442        let tempStations = data.table[i].stations_mobile.split(',');
6443        let tempMeasurements = data.table[i].measurement_values_mobile.split(',');
6444        let tempDaysExceeded = data.table[i].days_exceeded_mobile.split(',');
6445        for (let j = 0; j < tempStations.length; j++) {
6446            temp += '<tr><td style="padding-top: 7px;">Stacja pomiaru</td><td style="display: flex;padding-top: 7px;">'+tempStations[j]+'</td></tr>';
6447            temp += '<tr><td>Stężenie roczne <br>
6447('+data.pollutants[0].unit+')</td><td style="display: flex;">'+tempMeasurements[j]+'</td></tr>';
6448            temp += '<tr class="with_border"><td><div class="count_days"><div>Liczba dni</div><div class="info-box-mobile" onclick="countDaysAlert();" title="Wskazana wartość x/y prezentuje kolejno: x - liczbę dni w roku z przekroczeniem normy stężenia, y - dopuszczalną liczbę dni w roku z przekroczeniem normy stężenia"><div class="tooltip-info-img" ></div></div></div></td><td style="display: flex;height: 44px;align-items: center;">'+tempDaysExceeded[j]+'</td></tr>';
6449        }
6450        temp += '</tbody></table>';
6451    }
6452    $jq('.table_mobile_wos').html(temp);
6453}
6454function findUniquePollutants(data) {
6455    let uniquePollutants = [];
6456
6457    data.pollutants.forEach(function(pollutant) {
6458        let exists = uniquePollutants.some(function(unique) {
6459            return unique.value === pollutant.allowable_value;
6460        });
6461
6462        if (!exists) {
6463            uniquePollutants.push({
6464                value: pollutant.allowable_value,
6465                year: pollutant.measurement_year
6466            });
6467        }
6468    });
6469    console.log('unique values:',uniquePollutants);
6470    return uniquePollutants;
6471}
6472
6473function addChart(data) {
6474
6475    let unitLabel = 'Norma stężenia ' + data.pollutants[0].unit;
6476    let measurementValueLabel = 'Stężenie roczne ' + data.pollutants[0].pollutants_name + ' wyrażone w ' + data.pollutants[0].unit;
6477    var name_legend='';
6478    if(data.pollutants[0].pollutants_name=== "PM 10"){
6479        name_legend='pyłu ' + data.pollutants[0].pollutants_name;
6480    }else{
6481        name_legend=data.pollutants[0].pollutants_name;
6482    }
6483    let uniquePollutants = findUniquePollutants(data);
6484    var allowed_value = '';
6485    if(uniquePollutants.length==1){
6486        allowed_value = data.pollutants[0].allowable_value;
6487    }else{
6488    	for(i = 0; i < uniquePollutants.length; i++) {
6489            if(i===0){
6490                allowed_value =uniquePollutants[i].value;
6491            }else{
6492                allowed_value+=', '+ uniquePollutants[i].value +' (od ' +uniquePollutants[i].year+' roku)';
6493            }
6494    	}
6495    }
6496
6497    $jq('#unit_legend_1').text(data.pollutants[0].unit);
6498    $jq('#unit_legend_2').text(data.pollutants[0].unit);
6499    $jq('#unit_name_1').text(name_legend);
6500    $jq('#unit_name_2').text(name_legend);
6501    $jq('#unit_value').text(allowed_value);
6502    let unit = [unitLabel];
6503    let measurementYears = ['rok'];
6504    let measurementValues = [measurementValueLabel];
6505    let allowableChart='line';
6506
6507    data.pollutants.forEach((pollutant) => {
6508        measurementYears.push(pollutant.measurement_year);
6509        measurementValues.push(pollutant.measurement_value);
6510        unit.push(pollutant.allowable_value);
6511    });
6512    if(data.pollutants.length === 1){
6513            allowableChart='scatter';
6514            console.log('data.pollutants[0].allowable_value: ',data.pollutants[0].allowable_value);
6515            unit.push(data.pollutants[0].allowable_value);
6516            unit.push(data.pollutants[0].allowable_value);
6517    }
6518
6519    var chart = c3.generate({
6520        bindto: '#chart_bar_year',
6521        data: {
6522            x: 'rok',
6523            columns: [
6524                measurementYears,
6525                measurementValues,
6526                unit
6527            ],
6528            types: {
6529                [measurementValueLabel]: 'bar',
6530                [unitLabel]: allowableChart
6531            },
6532            colors: {
6533                [measurementValueLabel]: '#0054A6',
6534                [unitLabel]: '#FF0000'
6535            }
6536        },
6537        bar: {
6538            width: {
6539                ratio: 0.6 // this makes bar width 60% of length between ticks
6540            }
6541        },
6542        legend: {
6543            show: false
6544        },
6545        axis: {
6546            x: {
6547                show: true,
6548                type: 'category',
6549                tick: {
6550                    show: true
6551                }
6552            },
6553            y: {
6554                show: false
6555            }
6556        },
6557        tooltip: {
6558            format: {
6559                title: function (d) { return 'Dane'; },
6560                value: function (value, ratio, id) {
6561                    return value;
6562                }
6563            }
6564        },
6565        point: {
6566            show: false
6567        },
6568        onrendered: function () {
6569            d3.select('.c3-axis-x').style('stroke-opacity', 0);
6570            d3.selectAll('.c3-axis-x .tick text')
6571                .style('font-family', 'Arial')
6572                .style('color', '#231F20')
6573                .style('font-size', '13px');
6574        }
6575    });
6576
6577    chart.internal.config.bar_width = 24;
6578    chart.flush();
6579
6580    var yValues = measurementValues.slice(1);
6581
6582
6583    d3.selectAll('.c3-chart-bar .c3-shape').each(function (d, i) {
6584        var bbox = this.getBBox();
6585        d3.select(this.parentNode).append('text')
6586            .attr('x', bbox.x + bbox.width / 2)
6587            .attr('y', bbox.y - 10)
6588            .attr('text-anchor', 'middle')
6589            .attr('font-size', '12px')
6590            .attr('fill', '#41454A')
6591            .text(yValues[i]).style('font-family', 'Arial');
6592    });
6593    var chartImageBox = document.querySelector('.chart_image_box');
6594    var scrollWidth = chartImageBox.scrollWidth;
6595    var clientWidth = chartImageBox.clientWidth;
6596    chartImageBox.scrollLeft = (scrollWidth - clientWidth) / 2;
6597}
6598
6599    function handleStateChangeInput(mutationsList, observer) {
6600        for (let mutation of mutationsList) {
6601            if (mutation.type === 'attributes' && mutation.attributeName === 'style') {
6602                const targetElement = document.getElementById('ajax_lookup_div_search_text');
6603
6604                if (targetElement && targetElement.style.display === 'none') {
6605                       var searchArrowElement = document.querySelector('.arrow-down-select');
6606                    if (searchArrowElement.classList.contains('rotated')) {
6607
6608
6609                        searchArrowElement.classList.remove('rotated');
6610                    }
6611                }
6612                if (targetElement && targetElement.style.display !== 'none') {
6613
6614                     var searchArrowElement = document.querySelector('.arrow-down-select');
6615                    if (!searchArrowElement.classList.contains('rotated')) {
6616                       searchArrowElement.classList.add('rotated');
6617                       searchArrowElement.classList.add('available');
6618                       searchArrowElement.classList.add('contains');
6619
6620                   }
6621               }
6622            }
6623        }
6624    }
6625const targetNodeInput = document.getElementById('ajax_lookup_div_search_text');
6626if(targetNodeInput){
6627    const observer = new MutationObserver(handleStateChangeInput);
6628
6629    const config = { attributes: true };
6630
6631    observer.observe(targetNodeInput, config);
6632}
6633
6634	var ajax= document.getElementById("ajax_lookup_div_search_text");
6635	if (ajax) {
6636        ajax.addEventListener("click", function(event) {
6637			if (event.target.classList.contains("filter_element")) {
6638                var searchWasteInput = document.getElementById("search_text");
6639                console.log('here , value: ' , $jq(event.target).text());
6640                searchWasteInput.value =$jq(event.target).text();
6641
6642			}
6643		});
6644    }
6645
6646function changeSelectWos(element){
6647    $jq('.filter_element.filter_item.selected').removeClass('selected');
6648    $jq(element).addClass('selected');
6649}
6650
6651function onEnterSelect(){
6652		console.debug('onClickRedirectWasteList');
6653    	var selectedItem = $jq('.filter_element.text_body_small.selected');
6654      	getPollutants(selectedItem);
6655	}
6656
6657$jq(document).ready(function() {
6658    let currentHref = window.location.href
6659    let currentHost = window.location.host
6660    if (currentHost === 'localhost:8080') {
6661        currentHref = currentHref.replace('localhost:8080', 'www.poznan.pl');
6662    }
6663    currentHref = currentHref.replace('mim/', '')
6664        .replace('mimtest/', '')
6665        .replace('mimdevtest/','')
6666        .replace('public/', '');
6667    let currentLink = new URL(currentHref);
6668
6669    let menuLinksWortal = document.querySelectorAll('.lhs-wortal-link');
6670    if(menuLinksWortal){
6671		const isUserMim = window.location.pathname.includes("usermim/submissions");
6672        menuLinksWortal.forEach(function(link) {
6673
6674            if(link.getAttribute('href')){
6675                let lhsLinkS = link.getAttribute('href')
6676                    .replace('mim/', '')
6677                    .replace('mimtest/', '')
6678                    .replace('mimdevtest/','')
6679                    .replace('public/', '');
6680                let lhsLink;
6681                try {
6682                    lhsLink = (new URL(lhsLinkS));
6683                } catch (e) {
6684                    let link2 = currentLink.origin + link.getAttribute("href");
6685                    lhsLink = new URL(link2);
6686                }
6687
6688                if (lhsLink.hostname === currentLink.hostname && lhsLink.pathname === currentLink.pathname) {
6689					if (!isUserMim || (isUserMim && lhsLink.searchParams.get("submission_type") === currentLink.searchParams.get("submission_type"))) {
6690						link.classList.add("selected-menu-wortal");
6691					}
6692                }
6693            }
6694        });
6695    }
6696});
6697
6698 function clearInputsWuiaSearchEngine(){
6699
6700   setButtonWuiaDisabled();
6701   $jq('.radio_container').find('#rslt_num #val').html('');
6702   $jq('.radio_container').find('#rslt_addr').html('');
6703   $jq('.radio_container').find('#rslt_ar #val').html('');
6704   const ids = [
6705        "id_ulica_city",
6706        "streetName",
6707        "areaId",
6708        "area",
6709        "arSurface",
6710        "arNumId",
6711        "addressId",
6712        "airportId",
6713        "mpzpId",
6714        "conservationId",
6715        "environmentalId"
6716    ];
6717    ids.forEach(id => {
6718        $jq(`#${id}`).val('');
6719    });
6720 }
6721$jq('input[name="sr_type"]').on('change', function() {
6722    $jq('.radio_container').removeClass('selected');
6723    $jq('.result_box').removeClass('visible');
6724    $jq('#id_number_street_lookup').removeClass('unvalid');
6725    $jq('#unvalid_number').addClass('hidden');
6726    $jq('#id_ulica_street_lookup').removeClass('unvalid');
6727    $jq('#unvalid_address').addClass('hidden');
6728    clearInputsWuiaSearchEngine();
6729    if ($jq(this).is(':checked')) {
6730        $jq(this).closest('.radio_container').addClass('selected');
6731    }
6732});
6733$jq('.radio_box').on('click', function() {
6734    $jq(this).find('input[name="sr_type"]').prop('checked', true).trigger('change');
6735
6736});
6737
6738function getAreaWuia(radioSearch) {
6739
6740   let areaSurVal = $jq("#arSurface").val();
6741   let areaNumVal = $jq("#arNumId").val();
6742   let idUlicaCity= $jq('input[name="id_ulica_city"]').val();
6743   if(areaSurVal && areaNumVal && idUlicaCity){
6744
6745        console.log('radioSearch: '+radioSearch);
6746
6747        $jq('#'+radioSearch).find('#rslt_num #val').html(areaNumVal);
6748        $jq('#'+radioSearch).find('#rslt_addr').html(idUlicaCity+', '+$jq('input#addressId').val());
6749        $jq('#'+radioSearch).find('#rslt_ar #val').html(areaSurVal);
6750        $jq('#'+radioSearch).find('.result_box').addClass('visible');
6751        $jq('.ajax_indicator').css('display','none');
6752   }
6753
6754}
6755
6756function wuiaGetNextLvl(ele){
6757    var currentPath = window.location.pathname;
6758
6759    while(ele.closest(".level-wuia").next() !== undefined){
6760        ele.closest(".level-wuia").next().remove();
6761    }
6762    var dane = {
6763          parentId: ele.value,
6764          lvl_name: ele.name,
6765          co: "getLevel"
6766    };
6767
6768    $jq.ajax({
6769      method: 'GET',
6770      url: currentPath,
6771      data: dane,
6772      dataType: 'text',
6773      success: function (data) {
6774            if(data.length > 0) {
6775                 $jq(".fieldset-wuia").append(data);
6776                 $jq('.levels-end').addClass('hide');
6777                 $jq('#krajobrazowaSubmit').attr('disabled','disabled');
6778            } else {
6779                $jq(".levels-end").removeClass("hide");
6780                $jq('#krajobrazowaSubmit').removeAttr('disabled');
6781                $jq('#krajobrazowaSubmit').removeClass('disabled');
6782            }
6783      },
6784      error: function (xhr, status, error) {
6785        console.error('Błąd żądania:', status);
6786      }
6787    });
6788}
6789
6790$jq(document).on('click',".option-wuia", function() {
6791    var element = $jq(":input", this)[0];
6792    $jq(this).addClass('selected');
6793    $jq(this).siblings('.option-wuia').removeClass('selected');
6794    element.checked = true;
6795    wuiaGetNextLvl(element);
6796})
6797$jq(document).on('click',".option-reference", function() {
6798    var element = $jq(":input", this)[0];
6799    element.checked = true;
6800    var inputValue = element.value;
6801    $jq('input[name="cecha_1"]').val(inputValue);
6802    allowClickButtonWuia("#assign_references");
6803})
6804function allowClickButtonWuia (element){
6805
6806    $jq(element).attr('disabled',false);
6807    $jq(element).removeClass('disabled');
6808    $jq(element).attr('type','submit');
6809}
6810var slickSliderWuiaUpdate = function (){
6811	if ($jq(".krajobrazowa_images_container.slider .slick-slider").length > 0) {
6812		var wWidth = $jq('.krajobrazowa_images_container.slider .slick-slider').width();
6813		var noWidth = Math.floor(wWidth/$jq(".krajobrazowa_images_container.slider .kraj_img_out").width());
6814		try{
6815			$jq('.krajobrazowa_images_container.slider .slick-slider').slick('slickSetOption', 'slidesToShow', noWidth, true);
6816		} catch (e) {
6817		}
6818	}
6819}
6820var slickSliderWuia = function (){
6821    if ($jq(".krajobrazowa_images_container.slider").length > 0) {
6822         $jq('.arrow_box.desktop').remove();
6823    	var wWidth = $jq('.krajobrazowa_images_container.slider').width();
6824        var noWidth = Math.floor(wWidth/$jq(".krajobrazowa_images_container.slider .kraj_img_out").width());
6825    	try {
6826    		$jq('.krajobrazowa_images_container.slider').slick({
6827    			slidesToShow: 1,
6828    			autoplay: false,
6829    			slidesToScroll: 1,
6830    			arrows: true,
6831    			variableWidth: true,
6832    			lazyLoad: 'ondemand',
6833    			infinite: false,
6834    			slidesToScroll: 1,
6835                prevArrow: '<button class="slickslider-mobile-banner-arrow-box left"></button>',
6836                nextArrow: '<button class="slickslider-mobile-banner-arrow-box right"></button>'
6837    		});
6838    	} catch (e) {
6839
6840        }
6841    }
6842
6843}
6844var sliderWuia = $jq('.krajobrazowa_images_container.slider');
6845var progressWuia = $jq('.progress-bar');
6846sliderWuia.on('beforeChange', function(event, slick, currentSlide, nextSlide){
6847      var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
6848      progressWuia
6849            .css('background-size', calc + '% 100%')
6850            .attr('aria-valuenow', calc );
6851});
6852$jq(document).ready(function() {
6853    let screenWidth = $jq( window ).width();
6854    if ($jq('.krajobrazowa_images_container.slider').length > 0 && screenWidth < 801 && $jq('.krajobrazowa_images_container.slider .slick-list').length === 0) {
6855    	slickSliderWuia();
6856    }
6857});
6858
6859$jq(window).resize(function() {
6860      var screenWidth = $jq( window ).width();
6861      if(screenWidth < 801 && $jq('.krajobrazowa_images_container.slider').length > 0) {
6862            slickSliderWuia();
6863      } else if(screenWidth >= 801 && $jq('.krajobrazowa_images_container.slider .slick-list').length > 0){
6864            $jq('.krajobrazowa_images_container.slider').slick('unslick');
6865      }
6866});
6867
6868function toggleTableObject(element){
6869
6870        $jq('#object-additional-data').toggleClass('hidden');
6871
6872        $jq(element).find('.button_secondary_arrow').toggleClass('rotated');
6873        if($jq(element).find("#secondary_button_text").text()=="Rozwiń szczegóły"){
6874            $jq(element).find("#secondary_button_text").text("Zwiń szczegóły");
6875        }else{
6876            $jq(element).find("#secondary_button_text").text("Rozwiń szczegóły");
6877        }
6878           var intervalId = setInterval(function() {
6879               $jq(element).removeClass('clicked');
6880            }, 500);
6881}
6882
6883//tags
6884
6885$jq(document).ready(function() {
6886   $jq(".news_section.different_news_section div.news_box_textbox .mim2024_H4").dotdotdot({
6887         watch: "window",
6888         tolerance:1
6889    });
6890});
6891
6892  function closeFilterMenu(){
6893        $jq('.filter_menu_section').removeClass("active");
6894        $jq('body').removeClass('open-main-menu-mobile');
6895  }
6896  $jq('#close-filter-submenu').on('click', function(e) {
6897    closeFilterMenu();
6898  });
6899  function toggleFiltersListMenu(element){
6900   $jq(element).find('.filter-mobile-menu-arrow-toggle').toggleClass('rotated');
6901   $jq('#filter_mobile_list').toggleClass('hidden_list');
6902  }
6903
6904  function addFilterTag(element){
6905    const checkbox = $jq(element).find("input[type='checkbox']");
6906    checkbox.prop("checked", !checkbox.prop("checked"));
6907    let valueText = $jq(element).attr("aria-valuetext");
6908    if (tagsArray) {
6909        if (checkbox.prop("checked") && tagsArray.includes(valueText)) {
6910            tagsArray = tagsArray.filter(item => item !== valueText);
6911        } else {
6912            tagsArray.push(valueText);
6913        }
6914    }
6915  }
6916
6917  function cleanTagsFilter(){
6918        tagsArray = [];
6919        $jq(".filter_mobile_list input[type='checkbox']").prop("checked", false);
6920  }
6921  $jq(document).ready(function() {
6922      function openFilterMenu(){
6923           $jq(".filter_menu_section").addClass("active");
6924           $jq('body').addClass('open-main-menu-mobile');
6925      }
6926      $jq("#openFilterTagsButton").click(function() {
6927              openFilterMenu();
6928      });
6929      function mobileUpdateUrlWithTags(){
6930            let tagsString = tagsArray.join(",");
6931            let url = new URL(window.location.href);
6932            let params = new URLSearchParams(url.search);
6933
6934            if (params.has("type")) {
6935                params.set("type", tagsString);
6936            } else {
6937                params.append("type", tagsString);
6938            }
6939            url.search = params.toString();
6940            window.location.href = url.toString();
6941        }
6942
6943        $jq("#updateTagsButton").click(function() {
6944              mobileUpdateUrlWithTags();
6945        });
6946  });
6947
6948  $jq(document).ready(function(e) {
6949      $jq('.close_ok_bnr').on("click", function(event) {
6950          event.preventDefault();
6951          $jq('#ok_bnr_pzn').remove();
6952      });
6953      $jq('.close_ok_bnr.mobile').on("click", function(event) {
6954          event.preventDefault();
6955          $jq('#ok_bnr_pzn_mobile').remove();
6956      });
6957  });
6958
6959$jq(document).ready(function(e){
6960 	$jq("a.pubs-link .text-frame .text-caption").dotdotdot({
6961     	watch: "window",
6962     	tolerance: 1
6963     });
6964});
6965
6966  $jq(document).ready(function(){
6967      if($jq('#assigned_events .events-block').length)
6968          if ($jq('#assigned_events .events-block').children().length > 4) {
6969              assignedEventsSlickSlider();
6970          } else {
6971              $jq('.progress-bar-events').css("display", "none");
6972          }
6973  });
6974  function assignedEventsSlickSlider() {
6975          var sliderWidth = $jq("#assigned_events").width();
6976          $jq('.events-block').css('max-width', sliderWidth);
6977      	var wWidth = sliderWidth;
6978          var elementWidth = $jq('.event-box').width();
6979          var noWidth = Math.floor(wWidth/elementWidth);
6980      	try {
6981      		$jq('.events-block').slick({
6982      			slidesToShow: noWidth,
6983      			slidesToScroll: 1,
6984      			autoplay: false,
6985      			variableWidth: true,
6986      			arrows: true,
6987      			initialSlide: 0,
6988      			lazyLoad: 'ondemand',
6989      			infinite: false,
6990      			prevArrow: '<button class="events-slickslider-mobile-arrow-box left"></button>',
6991                  nextArrow: '<button class="events-slickslider-mobile-arrow-box right"></button>'
6992              });
6993      	} catch (e) {
6994      	}
6995      	var progressBar = $jq('.progress-bar-events');
6996               var sliderWidth = $jq("#assigned_events").width();
6997               $jq('.events-block').css('max-width', sliderWidth);
6998               var wWidth = sliderWidth;
6999               var elementWidth = $jq('.event-box').width();
7000               var noWidth = Math.floor(wWidth/elementWidth);
7001               var calc = ( (0+noWidth) / 5 ) * 100;
7002               progressBar
7003                 .css('background-size', calc + '% 100%')
7004                 .attr('aria-valuenow', calc );
7005               progressBar.css("display", "block");
7006  }
7007  $jq('.events-block').on('afterChange', function(event, slick, currentSlide){
7008           var progressBar = $jq('.progress-bar-events');
7009               var sliderWidth = $jq("#assigned_events").width();
7010               $jq('.events-block').css('max-width', sliderWidth);
7011               var wWidth = sliderWidth;
7012               var elementWidth = $jq('.event-box').width()
7013               var noWidth = Math.floor(wWidth/elementWidth);
7014               var calc = ( (currentSlide+noWidth) / (slick.slideCount) ) * 100;
7015               progressBar
7016                 .css('background-size', calc + '% 100%')
7017                 .attr('aria-valuenow', calc )
7018    });
7019$jq(document).on('keypress', '.icon-up-new', function() {
7020	 if (event.key === 'Enter') {
7021                event.preventDefault();
7022                const onclickAttr = $jq(this).attr('onclick');
7023                if (onclickAttr) {
7024                    eval(onclickAttr);
7025                }
7026        }
7027});
7028
7029
7030function showMIMMenu(button) {
7031    if ($jq(button).siblings(".mim-menu-dropdown-content").hasClass("show")){
7032        $jq(button).siblings(".mim-menu-dropdown-content").removeClass("show");
7033        $jq(button).children('.links-menu-header-arrow.links-menu-header-arrow-opened').removeClass('links-menu-header-arrow-opened').addClass('links-menu-header-arrow-closed');
7034    } else {
7035        $jq(".mim-menu-dropdown-content.show").removeClass("show");
7036        $jq('.links-menu-header-arrow.links-menu-header-arrow-opened').removeClass('links-menu-header-arrow-opened').addClass('links-menu-header-arrow-closed');
7037        var menu = $jq(button).siblings(".mim-menu-dropdown-content");
7038        $jq(button).children('.links-menu-header-arrow.links-menu-header-arrow-closed').removeClass('links-menu-header-arrow-closed').addClass('links-menu-header-arrow-opened');
7039        menu.addClass("show");
7040//        menu.css('left', $jq('header').offset().left);
7041//        menu.css('width', $jq('.main-header-row2').width() - 16);
7042    }
7043}
7044//$jq(window).on('resize', function() {
7045//    var menu = $jq(".mim-menu-dropdown-content.show");
7046//    menu.css('left', $jq('header').offset().left);
7047//    menu.css('width', $jq('.main-header-row2').width() - 16);
7048//})
7049
7050window.onclick = function(e) {
7051    $top_menu = $jq('#top_menu').get(0);
7052    if (!$jq.contains($top_menu, e.target) || e.target.matches('.close-menu-x')) {
7053        var myDropdown = $jq(".mim-menu-dropdown-content");
7054        if (myDropdown.hasClass('show')) {
7055            myDropdown.removeClass('show');
7056            $jq('.links-menu-header-arrow.links-menu-header-arrow-opened').removeClass('links-menu-header-arrow-opened').addClass('links-menu-header-arrow-closed');
7057        }
7058    }
7059}
7060
7061$jq('.close-menu-x').on('keypress', function(e){
7062    if(e.key === "Enter") {
7063        var myDropdown = $jq(".mim-menu-dropdown-content");
7064        if (myDropdown.hasClass('show')) {
7065            myDropdown.removeClass('show');
7066            $jq('.links-menu-header-arrow.links-menu-header-arrow-opened').removeClass('links-menu-header-arrow-opened').addClass('links-menu-header-arrow-closed');
7067        }
7068    }
7069
7070});
7071
7072$jq('.mim-menu-dropdown button').on('focus', function () {
7073    if (!$jq(this).siblings(".mim-menu-dropdown-content").hasClass('show')) {
7074    			$jq(".mim-menu-dropdown-content.show").removeClass('show');
7075    			$jq('.links-menu-header-arrow.links-menu-header-arrow-opened').removeClass('links-menu-header-arrow-opened').addClass('links-menu-header-arrow-closed');
7076    		}
7077});
7078
7079$jq(document).ready(function(e){
7080 	$jq("a.pubs-link .text-frame .text-caption").dotdotdot({
7081     	watch: "window",
7082     	tolerance: 1
7083     });
7084});
7085
7086$jq(document).ready(function() {
7087    $jq(".publication-container p, .article-body p, .faq-container p").each(function () {
7088        let html = $jq(this).html()
7089            .replace(/&nbsp;/g, "")
7090            .replace(/<br\s*\/?>/gi, "")
7091            .trim();
7092
7093        if (html === "") {
7094            $jq(this).remove();
7095        }
7096    });
7097
7098});
7099
7100function initFixedHeaderAdjustment() {
7101	const loginStrap = document.getElementById("mim-user-bar");
7102	const header = document.getElementById("head-sticky-main-page");
7103
7104	if (loginStrap !== null && header !== null) {
7105		const observer = new ResizeObserver(() => {
7106			const height = loginStrap.getBoundingClientRect().height;
7107
7108			document.documentElement.style.setProperty(
7109				'--header-offset',
7110				`${height}px`
7111			);
7112		});
7113
7114		observer.observe(header);
7115	}
7116}
7117
7118if (document.readyState !== "loading") {
7119	initFixedHeaderAdjustment();
7120} else {
7121	document.addEventListener("DOMContentLoaded", () => {
7122		initFixedHeaderAdjustment();
7123	})
7124}

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.