PageSourceSearch

https://www.fhg-tirol.ac.at/js/script.js?11

js fhg-tirol.ac.at collected 2026-10-02 05:30:33 UTC 36,891 bytes, 649 lines download raw bytes

1const breakLarge = 868,
2	breakSmall = 584,
3	breakSmallp = 322;
4
5let localState = {
6	contrastLevel: 0,
7};
8
9if (!window.localStorage.localState) {
10	window.localStorage.setItem("localState", JSON.stringify(localState));
11}
12function stateLocal(key, val) {
13	localState = JSON.parse(window.localStorage.localState);
14	if (typeof key === "undefined") {
15		return localState;
16	}
17	var keysSchema = localState;
18	var keysDepth = key.split(".");
19	var depthLen = keysDepth.length;
20	for (var i = 0; i < depthLen - 1; i++) {
21		var elem = keysDepth[i];
22		if (!keysSchema[elem]) keysSchema[elem] = {};
23		keysSchema = keysSchema[elem];
24	}
25
26	if (typeof val !== "undefined") {
27		keysSchema[keysDepth[depthLen - 1]] = val;
28		window.localStorage.setItem("localState", JSON.stringify(localState));
29	} else {
30		return keysSchema[keysDepth[depthLen - 1]];
31	}
32}
33
34$("html").addClass("ag-contrast-" + stateLocal("contrastLevel"));
35
36/* Tooltip Widget */
37$.widget("custom.agtooltip", $.ui.tooltip, {
38	options: {
39		track: true,
40		items: "[data-tooltip]",
41		content: function () {
42			return $(this).data("tooltip");
43		},
44	},
45	_tooltip: function (element) {
46		var tooltip = $("<div>")
47				.attr("role", "tooltip")
48				.addClass("ui-tooltip ag-ui ag-typo " + (this.options.tooltipClass || "")),
49			id = tooltip.uniqueId().attr("id");
50
51		$("<div>").addClass("ui-widget ui-corner-all ui-widget-content").html($("<div>").addClass("ui-tooltip-content")).appendTo(tooltip);
52
53		tooltip.appendTo(this.document[0].body);
54
55		return (this.tooltips[id] = {
56			element: element,
57			tooltip: tooltip,
58		});
59	},
60});
61
62$(document).ready(function () {
63	$("#ag-Header").manageMenu();
64
65	$(".ag-j-mediaslider-wrapper").handleTeaserSlider();
66	$(".ag-j-itemslider-wrapper").manageItemSlider();
67	$(".ag-j-gallery").manageGalleries();
68	$(".ag-j-contenttoggler").handleContentToggler();
69	$(".ag-j-widget-wrapper").manageInlineSlider();
70	$(".ag-j-form-ui").manageUiForms();
71	$("main").manageTables();
72
73	$(".ag-j-multicheckbox").on("click", function (ev) {
74		$(".ag-j-multicheckboxForm").doMultiCheckbox(this, "faecher");
75	});
76
77	$("#ag-j-form-sId").on("selectmenuchange", function (ev) {
78		$("#ag-j-form-studienwechsel").submit();
79	});
80	$("#ag-j-form-ansicht").on("selectmenuchange", function (ev) {
81		$("#ag-j-form-studentlehrer").submit();
82	});
83	$("#ag-j-form-sId").on("click", function (ev) {
84		// console.log('klick!');
85	});
86	// $('.ag-j-calendar-wrapper').handleCalendarSwitches();
87	$("header [data-action]").handleTools();
88	$(document).agtooltip();
89});
90
91// JavaScript Document
92(function ($, window) {
93	var $window = $(window);
94
95	$.fn.handleTeaserSlider = function () {
96		this.each(function () {
97			var mySlider = $(this);
98			mySlider.slick({
99				dots: true,
100				arrows: false,
101				fade: true,
102				lazyLoad: "ondemand",
103				slidesToShow: 1,
104				slidesToScroll: 1,
105				adaptiveHeight: false,
106				autoplay: true,
107				autoplaySpeed: 6000,
108				responsive: [
109					{
110						breakpoint: breakLarge,
111						settings: {
112							adaptiveHeight: true,
113						},
114					},
115				],
116			});
117			$window.on("scroll resize", function () {
118				mySlider.isInViewport(350) ? mySlider.slick("slickPlay") : mySlider.slick("slickPause");
119			});
120		});
121		return this;
122	};
123})(jQuery, window);
124
125/* handelt Wochen- und Monatsswitches im Kalender */
126/* (function($){
127	$.fn.handleCalendarSwitches = function(){
128		return this.each( function(ev) {
129			var managedCalendar = $(this),
130			prevWeek = managedCalendar.find('.ag-j-trigger-prevweek'),
131			nextWeek = managedCalendar.find('.ag-j-trigger-nextweek'),
132			prevMonth = managedCalendar.find('.ag-j-trigger-prevmonth'),
133			nextMonth = managedCalendar.find('.ag-j-trigger-nextmonth');
134
135			prevWeek.on('click',function(ev){
136				ev.preventDefault();
137				console.log("vorherige Woche")
138			});
139			nextWeek.on('click',function(ev){
140				ev.preventDefault();
141				console.log("nächste Woche")
142			});
143			prevMonth.on('click',function(ev){
144				ev.preventDefault();
145				console.log("vorheriger Monat")
146			});
147			nextMonth.on('click',function(ev){
148				ev.preventDefault();
149				console.log("nächster Moant")
150			});
151		});
152	};
153})(jQuery); */
154
155/* handelt Tabellen im Editor */
156(function ($) {
157	$.fn.manageTables = function () {
158		this.each(function () {
159			var myTables = $(this)
160				.find("table")
161				.filter(function () {
162					return !$(this).parents(".ag-ck-inline").length && !$(this).parent(".ag-table-wrapper").length;
163				});
164			myTables.wrap($("<div>").addClass("ag-table-wrapper"));
165		});
166		return this;
167	};
168})(jQuery);
169
170/* für manageUiForms */
171(function ($) {
172	$.fn.filterData = function (keyNS, useUnderscore) {
173		var cData = { hasData: false };
174
175		if (keyNS) {
176			$.each(this.data(), function (key, val) {
177				if (key.indexOf(keyNS) == 0) {
178					var newKey = key.replace(keyNS, "");
179					newKey = newKey.charAt(0).toLowerCase() + newKey.slice(1);
180					newKey = useUnderscore ? "_" + newKey : newKey;
181					if (newKey == "icons") {
182						val = val.split(",");
183						cData[newKey] = val.length == 1 ? { primary: val[0] } : { primary: val[0], secondary: val[1] };
184					} else if (newKey == "classes") {
185						val = val.split(":");
186						cData[newKey] = {};
187						cData[newKey][val[0]] = val[1];
188					} else {
189						cData[newKey] = val;
190						cData[newKey] = val;
191					}
192					cData.hasData = true;
193				}
194			});
195		}
196		return cData;
197	};
198})(jQuery);
199
200/* handling Header Menues - Burger */
201(function ($, window) {
202	var $window = $(window);
203
204	$.fn.manageMenu = function () {
205		var managedMenu = this.find(".ag-j-menu-classic > ul").clone(),
206			menuMetaTop = document.body.classList.contains("ag-weblounge") ? "" : this.find(".ag-meta-top ul").clone().toggleClass("ag-hide-small ag-meta-top"),
207			burgerSwitch = this.find(".ag-trigger"),
208			managedTopper = $(".ag-go-top"),
209			menuBurger = $('<div class="ag-menu-burger">').append([managedMenu.removeClass("ag-hide-large"), menuMetaTop]);
210
211		prepareBurgerMenu();
212
213		function prepareBurgerMenu() {
214			$("#ag-Main").prepend(menuBurger.hide());
215			menuBurger.data("isOpen", false);
216			menuBurger.find(".ag-lev1:has(ul)").each(function (i, item) {
217				$(item).prepend($('<a class="ag-toggle"></a>'));
218			});
219			$(".ag-toggle").on("click", function (ev) {
220				var $this = $(this);
221				$this.parent("li").toggleClass("ag-open");
222				$this.siblings("ul").slideToggle();
223			});
224			burgerSwitch.on("click", function (ev) {
225				ev.preventDefault();
226				if (menuBurger.data("isOpen")) {
227					menuBurger.slideUp();
228				} else {
229					menuBurger.slideDown();
230				}
231				menuBurger.data("isOpen", !menuBurger.data("isOpen"));
232			});
233		}
234
235		function handleMenuScroll() {
236			var cScroll = $window.scrollTop();
237
238			managedTopper.toggleClass("ag-opened", cScroll > screen.availHeight * 1.0);
239		}
240
241		$window.on("orientationchange resize", function () {
242			menuBurger.data("isOpen", false).slideUp();
243		});
244		$window.on("scroll resize", function () {
245			handleMenuScroll();
246		});
247
248		return this;
249	};
250})(jQuery, window);
251
252/* managUiForms für jqueryUI */
253(function ($) {
254	$.fn.manageUiForms = function () {
255		this.each(function () {
256			var formUiItems = $(this).find("[role]").not("[role^='tree'],[role^='group']"),
257				formStyleItems = $(this).find("input[type=text],input[type=password],textarea"),
258				formRadioCheckItems = $(this).find("input[type=radio],input[type=checkbox]").not(".ag-j-buttonset");
259			formUiItems.each(function () {
260				var formItem = $(this),
261					itemConfig = formItem.filterData("cfg"),
262					itemEvents = formItem.filterData("ev"),
263					itemHandlers = formItem.filterData("on"),
264					itemExtensionPoints = formItem.filterData("exp", true);
265				/* UI Element mit config erzeugen */
266				formItem[formItem.attr("role")](itemConfig);
267
268				/* UI Element mit Extension Points ergänzen */
269				if (itemExtensionPoints.hasData) {
270					delete itemExtensionPoints.hasData;
271					$.each(itemExtensionPoints, function (key, val) {
272						formItem[formItem.attr("role")]("instance")[key] = eval(val);
273					});
274				}
275
276				/* UI Element mit on.Events ergänzen */
277				if (itemEvents.hasData) {
278					delete itemEvents.hasData;
279					$.each(itemEvents, function (key, val) {
280						formItem.on(formItem.attr("role") + key, eval(val));
281					});
282				}
283
284				/* UI Element mit Handlern (z.B. ".click()") ergänzen */
285				if (itemHandlers.hasData) {
286					delete itemHandlers.hasData;
287					$.each(itemHandlers, function (key, val) {
288						formItem[key](eval(val));
289					});
290				}
291			});
292
293			formStyleItems.each(function () {
294				$(this).addClass("ui-widget ui-state-default ui-corner-all");
295			});
296
297			formRadioCheckItems.iCheck({
298				checkboxClass: "icheckbox_minimal",
299				radioClass: "iradio_minimal",
300				increaseArea: "20%", // optional
301			});
302		});
303		return this;
304	};
305})(jQuery);
306
307/* handling Content Slider */
308(function ($) {
309	$.fn.manageInlineSlider = function () {
310		this.each(function () {
311			var mySlider = $(this);
312
313			mySlider.slick({
314				dots: false,
315				arrows: true,
316				lazyLoad: "ondemand",
317				slidesToShow: 3,
318				slidesToScroll: 1,
319				focusOnSelect: true,
320				responsive: [
321					{
322						breakpoint: 1000,
323						settings: {
324							slidesToShow: 2,
325						},
326					},
327					{
328						breakpoint: breakLarge,
329						settings: {
330							slidesToShow: 2,
331							dots: true,
332							arrows: false,
333						},
334					},
335					{
336						breakpoint: breakSmall,
337						settings: {
338							slidesToShow: 1,
339							dots: true,
340							arrows: false,
341						},
342					},
343				],
344			});
345		});
346		return this;
347	};
348})(jQuery);
349
350/* handling ContentToggler */
351(function ($) {
352	$.fn.handleContentToggler = function () {
353		this.each(function (index) {
354			var myTrigger = $(this),
355				myToggledContent = myTrigger.parent().next().hide();
356			if (index == 0) {
357				myToggledContent.show();
358				myTrigger.parent().removeClass("ag-closed");
359			}
360
361			myTrigger.on("click", function (ev) {
362				ev.preventDefault();
363				myToggledContent.slideToggle();
364				myTrigger.parent().toggleClass("ag-closed");
365			});
366		});
367		return this;
368	};
369})(jQuery);
370
371/* handling Content Slider */
372(function ($) {
373	$.fn.manageItemSlider = function () {
374		this.each(function (index) {
375			var mySlider = $(this);
376
377			mySlider.slick({
378				dots: true,
379				arrows: false,
380				lazyLoad: "ondemand",
381				slidesToShow: 1,
382				slidesToScroll: 1,
383				adaptiveHeight: true,
384				responsive: [
385					{
386						breakpoint: breakLarge,
387						settings: {
388							slidesToShow: 1,
389						},
390					},
391					{
392						breakpoint: breakSmall,
393						settings: {
394							slidesToShow: 1,
395						},
396					},
397				],
398			});
399		});
400		return this;
401	};
402})(jQuery);
403
404/* handling bildergalerien */
405(function ($) {
406	$.fn.manageGalleries = function () {
407		this.each(function (index) {
408			var gallerySwitch = $(this);
409
410			gallerySwitch.click(function (ev) {
411				ev.preventDefault();
412				getContent();
413			});
414
415			function getContent(ev) {
416				var myScreenSlider = $("<div>").attr("id", "ag-gallery-screen" + index),
417					galleryDialog = $("<div>").addClass("ag-gallery-window ag-close-center ag-typo").css({ "text-align": "left" }),
418					mySliderElements = [],
419					ajaxData = {
420						method: "getFromMA",
421						nodeid: gallerySwitch.data("galleryNode"),
422						picid: gallerySwitch.data("imageId"),
423						fullwidth: true,
424					};
425
426				$.ajax({
427					url: "/modules/remote/bildergalerie.cfc",
428					cache: false,
429					dataType: "json",
430					data: ajaxData,
431					context: $(this),
432				}).done(function (data, status, jqXHR) {
433					if (status === "success") {
434						var myData = data;
435
436						$.each(myData.items, function (index) {
437							var slideScreenContent = $("<div>"),
438								slidePic,
439								slideDesc;
440
441							slidePic = $("<div>")
442								.addClass(this.isportrait ? "ag-gallery-pic ag-portrait" : "ag-gallery-pic")
443								.append($("<img>").attr({ src: myData.srcspacer, "data-lazy": this.src }));
444							slideDesc = $("<div>")
445								.addClass("ag-gallery-caption ag-typo fckeditorStatic")
446								.append([$("<p>").html("<strong>" + this.title + "</strong><br />" + (this.subtitle && this.subtitle != this.desc ? this.subtitle + "<br /><br />" : "") + this.desc)]);
447
448							if (this.download) {
449								slideDesc.append($("<p>").html($("<a>").addClass("ag-icon ag-i-dl").text("Download").attr("href", this.srcdl)));
450							}
451
452							if (this.copyright) {
453								slideDesc.append($("<p>").addClass("ag-pic-source").html(this.copyright));
454							}
455
456							slideScreenContent.prepend([slidePic, slideDesc]);
457
458							myScreenSlider.append(slideScreenContent);
459						});
460
461						galleryDialog.append($("<button>").addClass("remodal-close").attr("data-remodal-action", "close"));
462						//mySliderElements.push($('<div>').addClass('ag-gallery-title ag-typo').append($('<h3>').text(myData.title)));
463
464						mySliderElements.push(myScreenSlider);
465
466						galleryDialog.append(mySliderElements);
467
468						myRemodalInst = galleryDialog.remodal({ modifier: "ag-full-page" });
469						myRemodalInst.open();
470
471						myScreenSlider.slick({
472							dots: false,
473							lazyLoad: "ondemand",
474							slidesToShow: 1,
475							slidesToScroll: 1,
476							arrows: true,
477							focusOnSelect: false,
478							initialSlide: myData.startswith,
479							responsive: [
480								{
481									breakpoint: breakLarge,
482									settings: {
483										arrows: true,
484										dots: false,
485									},
486								},
487								{
488									breakpoint: breakSmall,
489									settings: {
490										arrows: true,
491										dots: false,
492									},
493								},
494							],
495						});
496					}
497				});
498
499				$(document).one("closed", ".remodal", function (e) {
500					myRemodalInst.destroy();
501				});
502			}
503		});
504		return this;
505	};
506})(jQuery);
507
508/*** Multi-Check **/
509(function ($) {
510	$.fn.doMultiCheckbox = function (checkbox, checkboxelementname) {
511		var state;
512		if (checkbox.checked) {
513			state = 1;
514		} else {
515			state = 0;
516		}
517		$(".ag-j-multicheckboxForm").changeSelection(checkboxelementname, state);
518	};
519})(jQuery);
520(function ($) {
521	$.fn.selectAll = function (checkboxelementname) {
522		$(".ag-j-multicheckboxForm").changeSelection(checkboxelementname, 1);
523	};
524})(jQuery);
525(function ($) {
526	$.fn.unSelectAll = function (checkboxelementname) {
527		$(".ag-j-multicheckboxForm").changeSelection(checkboxelementname, 1);
528	};
529})(jQuery);
530(function ($) {
531	$.fn.changeSelection = function (checkboxelementname, toggleState) {
532		var elements = document.getElementsByName(checkboxelementname);
533		for (var i = 0; i < elements.length; i++) {
534			cEl = elements.item(i);
535			if (cEl.tagName.toLowerCase() == "input" && cEl.type == "checkbox") {
536				if (toggleState == 2) cEl.checked = !cEl.checked;
537				else cEl.checked = toggleState == 1;
538			}
539		}
540	};
541})(jQuery);
542
543(function ($) {
544	$.fn.handleTools = function () {
545		this.each(function () {
546			var myTool = $(this);
547
548			myTool.on("click", function (e) {
549				e.preventDefault();
550
551				switch (myTool.data("action")) {
552					case "contrast":
553						let cC = stateLocal("contrastLevel") + 1 > 2 ? 0 : stateLocal("contrastLevel") + 1;
554						$("html")
555							.removeClass(function (i, c) {
556								return (c.match(/(^|\s)ag-contrast-\S+/g) || []).join(" ");
557							})
558							.addClass("ag-contrast-" + cC);
559						stateLocal("contrastLevel", cC);
560						break;
561					case "search":
562						$("#ag-Suche").slideToggle(400, function () {
563							if ($(this).is(":visible")) {
564								$(this).find("[type=search]").focus();
565							}
566						});
567						$("#ag-Login").filter(":visible").slideUp();
568						break;
569					case "login":
570						$("#ag-Login").slideToggle(400, function () {
571							if ($(this).is(":visible")) {
572								$(this).find("[type=text]").focus();
573							}
574						});
575						$("#ag-Suche").filter(":visible").slideUp();
576						break;
577				}
578			});
579
580			return this;
581		});
582	};
583})(jQuery);
584
585/* Remodal overlay fuer Videos */
586$(document).on("opening", ".remodal", function (ev) {
587	console.log(ev);
588	var myModal = $(ev.currentTarget),
589		myInner = myModal.children("div");
590
591	myModal.attr("aria-hidden", false);
592	if (myModal.data("remodalId")) {
593		switch (myModal.data("remodalId").match(/[a-zA-Z]+/g)[0]) {
594			case "video":
595				if (myInner.is("div")) {
596					myVidFrame = $('<iframe frameborder="0" allowfullscreen width="100%" height="100%">');
597					if (myInner.data("youtube")) {
598						myVidFrame.attr({
599							src: "//www.youtube-nocookie.com/embed/" + myInner.data("youtube") + "?vq=hd720&autoplay=0&rel=0&autohide=1&wmode=transparent&hl=" + $("html").attr("lang"),
600						});
601					} else if (myInner.data("vimeo")) {
602						myVidFrame = myInner.data("iframe");
603					}
604					myInner.replaceWith(myVidFrame);
605				}
606				break;
607			default:
608				break;
609		}
610	}
611});
612
613$(document).on("closing", ".remodal", function (ev) {
614	var myModal = $(ev.currentTarget),
615		myInner = myModal.children("iframe");
616	myModal.attr("aria-hidden", true);
617	myInner.each(function () {
618		$(this).attr("src", $(this).attr("src"));
619	});
620});
621
622/*** // Multi-Check ***/
623
624$.fn.isInViewport = function (elTreshold) {
625	var elTreshold = elTreshold || 0;
626
627	var elTop = $(this).offset().top,
628		elBottom = elTop + $(this).outerHeight() - elTreshold,
629		vpTop = $(window).scrollTop(),
630		vpBottom = vpTop + $(window).height();
631
632	return elBottom > vpTop && elTop < vpBottom;
633};
634// prettier-ignore
635/*
636 *  Remodal - v1.1.1
637 *  Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking.
638 *  http://vodkabears.github.io/remodal/
639 *
640 *  Made by Ilya Makarov
641 *  Under MIT License
642 */�
vendor: 7,544 bytes, lines 642-643
642
643!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return b(a,c)}):"object"==typeof exports?b(a,require("jquery")):b(a,a.jQuery||a.Zepto)}(this,function(a,b){"use strict";function c(a){if(w&&"none"===a.css("animation-name")&&"none"===a.css("-webkit-animation-name")&&"none"===a.css("-moz-animation-name")&&"none"===a.css("-o-animation-name")&&"none"===a.css("-ms-animation-name"))return 0;var b,c,d,e,f=a.css("animation-duration")||a.css("-webkit-animation-duration")||a.css("-moz-animation-duration")||a.css("-o-animation-duration")||a.css("-ms-animation-duration")||"0s",g=a.css("animation-delay")||a.css("-webkit-animation-delay")||a.css("-moz-animation-delay")||a.css("-o-animation-delay")||a.css("-ms-animation-delay")||"0s",h=a.css("animation-iteration-count")||a.css("-webkit-animation-iteration-count")||a.css("-moz-animation-iteration-count")||a.css("-o-animation-iteration-count")||a.css("-ms-animation-iteration-count")||"1";for(f=f.split(", "),g=g.split(", "),h=h.split(", "),e=0,c=f.length,b=Number.NEGATIVE_INFINITY;e<c;e++)d=parseFloat(f[e])*parseInt(h[e],10)+parseFloat(g[e]),d>b&&(b=d);return b}function d(){if(b(document).height()<=b(window).height())return 0;var a,c,d=document.createElement("div"),e=document.createElement("div");return d.style.visibility="hidden",d.style.width="100px",document.body.appendChild(d),a=d.offsetWidth,d.style.overflow="scroll",e.style.width="100%",d.appendChild(e),c=e.offsetWidth,d.parentNode.removeChild(d),a-c}function e(){if(!x){var a,c,e=b("html"),f=k("is-locked");e.hasClass(f)||(c=b(document.body),a=parseInt(c.css("padding-right"),10)+d(),c.css("padding-right",a+"px"),e.addClass(f))}}function f(){if(!x){var a,c,e=b("html"),f=k("is-locked");e.hasClass(f)&&(c=b(document.body),a=parseInt(c.css("padding-right"),10)-d(),c.css("padding-right",a+"px"),e.removeClass(f))}}function g(a,b,c,d){var e=k("is",b),f=[k("is",u.CLOSING),k("is",u.OPENING),k("is",u.CLOSED),k("is",u.OPENED)].join(" ");a.$bg.removeClass(f).addClass(e),a.$overlay.removeClass(f).addClass(e),a.$wrapper.removeClass(f).addClass(e),a.$modal.removeClass(f).addClass(e),a.state=b,!c&&a.$modal.trigger({type:b,reason:d},[{reason:d}])}function h(a,d,e){var f=0,g=function(a){a.target===this&&f++},h=function(a){a.target===this&&0===--f&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].off(r+" "+s)}),d())};b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].on(r,g).on(s,h)}),a(),0===c(e.$bg)&&0===c(e.$overlay)&&0===c(e.$wrapper)&&0===c(e.$modal)&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].off(r+" "+s)}),d())}function i(a){a.state!==u.CLOSED&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(b,c){a[c].off(r+" "+s)}),a.$bg.removeClass(a.settings.modifier),a.$overlay.removeClass(a.settings.modifier).hide(),a.$wrapper.hide(),f(),g(a,u.CLOSED,!0))}function j(a){var b,c,d,e,f={};for(a=a.replace(/\s*:\s*/g,":").replace(/\s*,\s*/g,","),b=a.split(","),e=0,c=b.length;e<c;e++)b[e]=b[e].split(":"),d=b[e][1],("string"==typeof d||d instanceof String)&&(d="true"===d||"false"!==d&&d),("string"==typeof d||d instanceof String)&&(d=isNaN(d)?d:+d),f[b[e][0]]=d;return f}function k(){for(var a=q,b=0;b<arguments.length;++b)a+="-"+arguments[b];return a}function l(){var a,c,d=location.hash.replace("#","");if(d){try{c=b('[data-remodal-id="'+d+'"]')}catch(e){}c&&c.length&&(a=b[p].lookup[c.data(p)],a&&a.settings.hashTracking&&a.open())}else n&&n.state===u.OPENED&&n.settings.hashTracking&&n.close()}function m(a,c){var d=b(document.body),e=d,f=this;f.settings=b.extend({},t,c),f.index=b[p].lookup.push(f)-1,f.state=u.CLOSED,f.$overlay=b("."+k("overlay")),null!==f.settings.appendTo&&f.settings.appendTo.length&&(e=b(f.settings.appendTo)),f.$overlay.length||(f.$overlay=b("<div>").addClass(k("overlay")+" "+k("is",u.CLOSED)).hide(),e.append(f.$overlay)),f.$bg=b("."+k("bg")).addClass(k("is",u.CLOSED)),f.$modal=a.addClass(q+" "+k("is-initialized")+" "+f.settings.modifier+" "+k("is",u.CLOSED)).attr("tabindex","-1"),f.$wrapper=b("<div>").addClass(k("wrapper")+" "+f.settings.modifier+" "+k("is",u.CLOSED)).hide().append(f.$modal),e.append(f.$wrapper),f.$wrapper.on("click."+q,'[data-remodal-action="close"]',function(a){a.preventDefault(),f.close()}),f.$wrapper.on("click."+q,'[data-remodal-action="cancel"]',function(a){a.preventDefault(),f.$modal.trigger(v.CANCELLATION),f.settings.closeOnCancel&&f.close(v.CANCELLATION)}),f.$wrapper.on("click."+q,'[data-remodal-action="confirm"]',function(a){a.preventDefault(),f.$modal.trigger(v.CONFIRMATION),f.settings.closeOnConfirm&&f.close(v.CONFIRMATION)}),f.$wrapper.on("click."+q,function(a){var c=b(a.target);c.hasClass(k("wrapper"))&&f.settings.closeOnOutsideClick&&f.close()})}var n,o,p="remodal",q=a.REMODAL_GLOBALS&&a.REMODAL_GLOBALS.NAMESPACE||p,r=b.map(["animationstart","webkitAnimationStart","MSAnimationStart","oAnimationStart"],function(a){return a+"."+q}).join(" "),s=b.map(["animationend","webkitAnimationEnd","MSAnimationEnd","oAnimationEnd"],function(a){return a+"."+q}).join(" "),t=b.extend({hashTracking:!0,closeOnConfirm:!0,closeOnCancel:!0,closeOnEscape:!0,closeOnOutsideClick:!0,modifier:"",appendTo:null},a.REMODAL_GLOBALS&&a.REMODAL_GLOBALS.DEFAULTS),u={CLOSING:"closing",CLOSED:"closed",OPENING:"opening",OPENED:"opened"},v={CONFIRMATION:"confirmation",CANCELLATION:"cancellation"},w=function(){var a=document.createElement("div").style;return void 0!==a.animationName||void 0!==a.WebkitAnimationName||void 0!==a.MozAnimationName||void 0!==a.msAnimationName||void 0!==a.OAnimationName}(),x=/iPad|iPhone|iPod/.test(navigator.platform);m.prototype.open=function(){var a,c=this;c.state!==u.OPENING&&c.state!==u.CLOSING&&(a=c.$modal.attr("data-remodal-id"),a&&c.settings.hashTracking&&(o=b(window).scrollTop(),location.hash=a),n&&n!==c&&i(n),n=c,e(),c.$bg.addClass(c.settings.modifier),c.$overlay.addClass(c.settings.modifier).show(),c.$wrapper.show().scrollTop(0),c.$modal.focus(),h(function(){g(c,u.OPENING)},function(){g(c,u.OPENED)},c))},m.prototype.close=function(a){var c=this;c.state!==u.OPENING&&c.state!==u.CLOSING&&c.state!==u.CLOSED&&(c.settings.hashTracking&&c.$modal.attr("data-remodal-id")===location.hash.substr(1)&&(location.hash="",b(window).scrollTop(o)),h(function(){g(c,u.CLOSING,!1,a)},function(){c.$bg.removeClass(c.settings.modifier),c.$overlay.removeClass(c.settings.modifier).hide(),c.$wrapper.hide(),f(),g(c,u.CLOSED,!1,a)},c))},m.prototype.getState=function(){return this.state},m.prototype.destroy=function(){var a,c=b[p].lookup;i(this),this.$wrapper.remove(),delete c[this.index],a=b.grep(c,function(a){return!!a}).length,0===a&&(this.$overlay.remove(),this.$bg.removeClass(k("is",u.CLOSING)+" "+k("is",u.OPENING)+" "+k("is",u.CLOSED)+" "+k("is",u.OPENED)))},b[p]={lookup:[]},b.fn[p]=function(a){var c,d;return this.each(function(e,f){d=b(f),null==d.data(p)?(c=new m(d,a),d.data(p,c.index),c.settings.hashTracking&&d.attr("data-remodal-id")===location.hash.substr(1)&&c.open()):c=b[p].lookup[d.data(p)]}),c},b(document).ready(function(){b(document).on("click","[data-remodal-target]",function(a){a.preventDefault();var c=a.currentTarget,d=c.getAttribute("data-remodal-target"),e=b('[data-remodal-id="'+d+'"]');b[p].lookup[e.data(p)].open()}),b(document).find("."+q).each(function(a,c){var d=b(c),e=d.data("remodal-options");e?("string"==typeof e||e instanceof String)&&(e=j(e)):e={},d[p](e)}),b(document).on("keydown."+q,function(a){n&&n.settings.closeOnEscape&&n.state===u.OPENED&&27===a.keyCode&&n.close()}),b(window).on("hashchange."+q,l)})});
643
644// prettier-ignore
645/*! jQuery.history v1.1.0 | Copyright 2013 yeikos - MIT license | https://github.com/yeikos/jquery.history */
646(function(e,t){var n=function(t){var i=e.Event("push");n.context.trigger(i,[t,u]);if(i.isDefaultPrevented())return n;if(u==="pathname"){if(c!==t)window.history.pushState({},null,c=t)}else if(u==="hash"){if(c!==t){location.hash=c=t;if(o){if(!e("#jQueryHistory").length)throw new Error("jQuery."+r+".push: iframe not found.");if(l){l=0;f.contentWindow.document.open().close();f.contentWindow.location.hash="/"}f.contentWindow.document.open().close();f.contentWindow.location.hash=t}}}else{throw new Error("jQuery."+r+".push: the listening is not active.")}n.context.trigger("pushed",[t,u]);return n},r="history";n.context=e({});e.each(["on","off","trigger"],function(e,t){n[t]=function(){n.context[t].apply(n.context,arguments);return n}});n.push=n;n.type=function(){return u};n.url=function(e){e=e||location;if(u===null)throw new Error("jQuery."+r+".url: the listening has not started.");if(u==="pathname")return e.pathname+e.search+e.hash;if(e.hash.length>1){spl=e.href.split("#");spl.shift();spl=spl.join("#");return spl}return""};n.listen=function(l,h){n.unlisten();var p=arguments.length;if(!p||l==="auto"){l=i?"pathname":"hash";p=1}else if(l!=="pathname"&&l!=="hash"){throw new Error("jQuery."+r+".listen: type is not valid.")}if(l==="hash"){if(!s&&p===1||h===true){h=n.config.interval;p=2}if(p===2&&(isNaN(h)||h<1))throw new Error("jQuery."+r+".listen: interval delay is not valid.")}if((u=l)==="pathname"){if(!i)throw new Error("jQuery."+r+".listen: this browser has not support to pushState.");e(window).on("popstate.history",function(e){if(e.originalEvent&&e.originalEvent.state&&c!==location.pathname)n.trigger("change",[c=n.url(),"pathname"])});if(location.pathname.length>1)n.trigger("load",[n.url(),"pathname"])}else{if(s&&!h){e(window).on("hashchange.history",function(e){var t=n.url();if(c!==t)n.trigger("change",[c=t,"hash"])})}else{if(o===t)o=n.ieCondition("lte IE 7");if(o){if(!(p=e("body")).length)throw new Error("jQuery."+r+".listen: document is not ready.");
646f=e('<iframe id="jQueryHistory" style="display:none" src="javascript:void(0);" />').appendTo(p)[0];var d=f.contentWindow;if(location.hash.length>1){d.document.open().close();d.location.hash="#"+n.url()}a=setInterval(function(){if((c="#"+n.url())!=="#"+n.url(d.location)){d.document.open().close();d.location.hash=c;n.trigger("change",[c.substr(1),"hash"])}},h)}else{c=n.url();a=setInterval(function(){var e=n.url();if(c!==e)n.trigger("change",[c=e,"hash"])},h)}}if(location.hash.length>1){n.trigger("load",[n.url(),"hash"])}}return n};n.unlisten=function(){u=c=f=null;e(window).off("popstate.history hashchange.history");e("#jQueryHistory").remove();clearInterval(a);return n};n.getSupports=function(e){var n={},r=arguments.length,i;if(!r||e==="pushState")n.pushState="pushState"in window.history;if(!r||e==="onhashchange")n.onhashchange="onhashchange"in window&&((i=document.documentMode)===t||i>7);if(r)return n[e];return n};n.ieCondition=function(n){var r=Math.random().toString(36).substring(2),i="_ie_condition_"+r,s,o;s=e("<span><!--[if "+e("<i/>").html(n).text()+']><script type="text/javascript">window.'+i+"=true;</script><![endif]--></span>").appendTo(document.body);o=window[i]===true;try{delete window[i]}catch(u){window[i]=t}s.remove();return o};n.supports=n.getSupports();n.config={interval:100};var i=n.supports.pushState,s=n.supports.onhashchange,o=n.ieCondition("lte IE 7"),u=null,a,f,l=1,c;e[r]=n})(jQuery);
647// prettier-ignore
648/*! lazysizes - v5.3.2 */
649!function(e){var t=function(u,D,f){"use strict";var k,H;if(function(){var e;var t={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:true,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:true,ricTimeout:0,throttleDelay:125};H=u.lazySizesConfig||u.lazysizesConfig||{};for(e in t){if(!(e in H)){H[e]=t[e]}}}(),!D||!D.getElementsByClassName){return{init:function(){},cfg:H,noSupport:true}}var O=D.documentElement,i=u.HTMLPictureElement,P="addEventListener",$="getAttribute",q=u[P].bind(u),I=u.setTimeout,U=u.requestAnimationFrame||I,o=u.requestIdleCallback,j=/^picture$/i,r=["load","error","lazyincluded","_lazyloaded"],a={},G=Array.prototype.forEach,J=function(e,t){if(!a[t]){a[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")}return a[t].test(e[$]("class")||"")&&a[t]},K=function(e,t){if(!J(e,t)){e.setAttribute("class",(e[$]("class")||"").trim()+" "+t)}},Q=function(e,t){var a;if(a=J(e,t)){e.setAttribute("class",(e[$]("class")||"").replace(a," "))}},V=function(t,a,e){var i=e?P:"removeEventListener";if(e){V(t,a)}r.forEach(function(e){t[i](e,a)})},X=function(e,t,a,i,r){var n=D.createEvent("Event");if(!a){a={}}a.instance=k;n.initEvent(t,!i,!r);n.detail=a;e.dispatchEvent(n);return n},Y=function(e,t){var a;if(!i&&(a=u.picturefill||H.pf)){if(t&&t.src&&!e[$]("srcset")){e.setAttribute("srcset",t.src)}a({reevaluate:true,elements:[e]})}else if(t&&t.src){e.src=t.src}},Z=function(e,t){return(getComputedStyle(e,null)||{})[t]},s=function(e,t,a){a=a||e.offsetWidth;while(a<H.minSize&&t&&!e._lazysizesWidth){a=t.offsetWidth;t=t.parentNode}return a},ee=function(){var a,i;var t=[];var r=[];var n=t;var s=function(){var e=n;n=t.length?r:t;a=true;i=false;while(e.length){e.shift()()}a=false};var e=function(e,t){if(a&&!t){e.apply(this,arguments)}else{n.push(e);if(!i){i=true;(D.hidden?I:U)(s)}}};e._lsFlush=s;return e}(),te=function(a,e){return e?function(){ee(a)}:function(){var e=this;var t=arguments;ee(function(){a.apply(e,t)})}},ae=function(e){var a;var i=0;var r=H.throttleDelay;var n=H.ricTimeout;var t=function(){a=false;i=f.now();e()};var s=o&&n>49?function(){o(t,{timeout:n});if(n!==H.ricTimeout){n=H.ricTimeout}}:te(function(){I(t)},true);return function(e){var t;if(e=e===true){n=33}if(a){return}a=true;t=r-(f.now()-i);if(t<0){t=0}if(e||t<9){s()}else{I(s,t)}}},ie=function(e){var t,a;var i=99;var r=function(){t=null;e()};var n=function(){var e=f.now()-a;if(e<i){I(n,i-e)}else{(o||r)(r)}};return function(){a=f.now();if(!t){t=I(n,i)}}},e=function(){var v,m,c,h,e;var y,z,g,p,C,b,A;var n=/^img$/i;var d=/^iframe$/i;var E="onscroll"in u&&!/(gle|ing)bot/.test(navigator.userAgent);var _=0;var w=0;var M=0;var N=-1;var L=function(e){M--;if(!e||M<0||!e.target){M=0}};var x=function(e){if(A==null){A=Z(D.body,"visibility")=="hidden"}return A||!(Z(e.parentNode,"visibility")=="hidden"&&Z(e,"visibility")=="hidden")};var W=function(e,t){var a;var i=e;var r=x(e);g-=t;b+=t;p-=t;C+=t;while(r&&(i=i.offsetParent)&&i!=D.body&&i!=O){r=(Z(i,"opacity")||1)>0;if(r&&Z(i,"overflow")!="visible"){a=i.getBoundingClientRect();r=C>a.left&&p<a.right&&b>a.top-1&&g<a.bottom+1}}return r};var t=function(){var e,t,a,i,r,n,s,o,l,u,f,c;var d=k.elements;
vendor: 4,501 bytes, line 649
649if((h=H.loadMode)&&M<8&&(e=d.length)){t=0;N++;for(;t<e;t++){if(!d[t]||d[t]._lazyRace){continue}if(!E||k.prematureUnveil&&k.prematureUnveil(d[t])){R(d[t]);continue}if(!(o=d[t][$]("data-expand"))||!(n=o*1)){n=w}if(!u){u=!H.expand||H.expand<1?O.clientHeight>500&&O.clientWidth>500?500:370:H.expand;k._defEx=u;f=u*H.expFactor;c=H.hFac;A=null;if(w<f&&M<1&&N>2&&h>2&&!D.hidden){w=f;N=0}else if(h>1&&N>1&&M<6){w=u}else{w=_}}if(l!==n){y=innerWidth+n*c;z=innerHeight+n;s=n*-1;l=n}a=d[t].getBoundingClientRect();if((b=a.bottom)>=s&&(g=a.top)<=z&&(C=a.right)>=s*c&&(p=a.left)<=y&&(b||C||p||g)&&(H.loadHidden||x(d[t]))&&(m&&M<3&&!o&&(h<3||N<4)||W(d[t],n))){R(d[t]);r=true;if(M>9){break}}else if(!r&&m&&!i&&M<4&&N<4&&h>2&&(v[0]||H.preloadAfterLoad)&&(v[0]||!o&&(b||C||p||g||d[t][$](H.sizesAttr)!="auto"))){i=v[0]||d[t]}}if(i&&!r){R(i)}}};var a=ae(t);var S=function(e){var t=e.target;if(t._lazyCache){delete t._lazyCache;return}L(e);K(t,H.loadedClass);Q(t,H.loadingClass);V(t,B);X(t,"lazyloaded")};var i=te(S);var B=function(e){i({target:e.target})};var T=function(e,t){var a=e.getAttribute("data-load-mode")||H.iframeLoadMode;if(a==0){e.contentWindow.location.replace(t)}else if(a==1){e.src=t}};var F=function(e){var t;var a=e[$](H.srcsetAttr);if(t=H.customMedia[e[$]("data-media")||e[$]("media")]){e.setAttribute("media",t)}if(a){e.setAttribute("srcset",a)}};var s=te(function(t,e,a,i,r){var n,s,o,l,u,f;if(!(u=X(t,"lazybeforeunveil",e)).defaultPrevented){if(i){if(a){K(t,H.autosizesClass)}else{t.setAttribute("sizes",i)}}s=t[$](H.srcsetAttr);n=t[$](H.srcAttr);if(r){o=t.parentNode;l=o&&j.test(o.nodeName||"")}f=e.firesLoad||"src"in t&&(s||n||l);u={target:t};K(t,H.loadingClass);if(f){clearTimeout(c);c=I(L,2500);V(t,B,true)}if(l){G.call(o.getElementsByTagName("source"),F)}if(s){t.setAttribute("srcset",s)}else if(n&&!l){if(d.test(t.nodeName)){T(t,n)}else{t.src=n}}if(r&&(s||l)){Y(t,{src:n})}}if(t._lazyRace){delete t._lazyRace}Q(t,H.lazyClass);ee(function(){var e=t.complete&&t.naturalWidth>1;if(!f||e){if(e){K(t,H.fastLoadedClass)}S(u);t._lazyCache=true;I(function(){if("_lazyCache"in t){delete t._lazyCache}},9)}if(t.loading=="lazy"){M--}},true)});var R=function(e){if(e._lazyRace){return}var t;var a=n.test(e.nodeName);var i=a&&(e[$](H.sizesAttr)||e[$]("sizes"));var r=i=="auto";if((r||!m)&&a&&(e[$]("src")||e.srcset)&&!e.complete&&!J(e,H.errorClass)&&J(e,H.lazyClass)){return}t=X(e,"lazyunveilread").detail;if(r){re.updateElem(e,true,e.offsetWidth)}e._lazyRace=true;M++;s(e,t,r,i,a)};var r=ie(function(){H.loadMode=3;a()});var o=function(){if(H.loadMode==3){H.loadMode=2}r()};var l=function(){if(m){return}if(f.now()-e<999){I(l,999);return}m=true;H.loadMode=3;a();q("scroll",o,true)};return{_:function(){e=f.now();k.elements=D.getElementsByClassName(H.lazyClass);v=D.getElementsByClassName(H.lazyClass+" "+H.preloadClass);q("scroll",a,true);q("resize",a,true);q("pageshow",function(e){if(e.persisted){var t=D.querySelectorAll("."+H.loadingClass);if(t.length&&t.forEach){U(function(){t.forEach(function(e){if(e.complete){R(e)}})})}}});if(u.MutationObserver){new MutationObserver(a).observe(O,{childList:true,subtree:true,attributes:true})}else{O[P]("DOMNodeInserted",a,true);O[P]("DOMAttrModified",a,true);setInterval(a,999)}q("hashchange",a,true);["focus","mouseover","click","load","transitionend","animationend"].forEach(function(e){D[P](e,a,true)});if(/d$|^c/.test(D.readyState)){l()}else{q("load",l);D[P]("DOMContentLoaded",a);I(l,2e4)}if(k.elements.length){t();ee._lsFlush()}else{a()}},checkElems:a,unveil:R,_aLSL:o}}(),re=function(){var a;var n=te(function(e,t,a,i){var r,n,s;e._lazysizesWidth=i;i+="px";e.setAttribute("sizes",i);if(j.test(t.nodeName||"")){r=t.getElementsByTagName("source");for(n=0,s=r.length;n<s;n++){r[n].setAttribute("sizes",i)}}if(!a.detail.dataAttr){Y(e,a.detail)}});var i=function(e,t,a){var i;var r=e.parentNode;if(r){a=s(e,r,a);i=X(e,"lazybeforesizes",{width:a,dataAttr:!!t});if(!i.defaultPrevented){a=i.detail.width;if(a&&a!==e._lazysizesWidth){n(e,r,i,a)}}}};var e=function(){var e;var t=a.length;if(t){e=0;for(;e<t;e++){i(a[e])}}};var t=ie(e);return{_:function(){a=D.getElementsByClassName(H.autosizesClass);q("resize",t)},checkElems:t,updateElem:i}}(),t=function(){if(!t.i&&D.getElementsByClassName){t.i=true;re._();e._()}};return I(function(){H.init&&t()}),k={cfg:H,autoSizer:re,loader:e,init:t,uP:Y,aC:K,rC:Q,hC:J,fire:X,gW:s,rAF:ee}}(e,e.document,Date);e.lazySizes=t,"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:{});

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.