PageSourceSearch

https://www.grossenhain.de/files/theme/js/scripts.js

js grossenhain.de collected 2026-10-02 04:09:08 UTC 3,505 bytes, 132 lines download raw bytes

1class MegaMenu {
2	constructor(selector) {
3		this.level_1 = document.querySelector(selector + " .level_1 ");
4		this.level_1_links = [];
5		this._get_level_1_link();
6	}
7	handle() {
8		console.debug(this.level_2_elements);
9		this._setupEvents();
10	}
11
12	_get_level_1_link() {
13		this.level_1_links = Array.from(
14			this.level_1.querySelectorAll("& > li > a"),
15		);
16	}
17
18	_open_level_2(level2Target) {
19		const targetParent = level2Target.parentElement;
20		targetParent.classList.add("visible");
21	}
22	_close_level_2s() {
23		this.level_1_links.forEach((element) => {
24			element.parentElement.classList.remove("visible");
25		});
26	}
27
28	_setupEvents() {
29		this._level_1_link_event()
30		this._esc_event()
31		this._click_outside_event()
32	}
33	_level_1_link_event() {
34		this.level_1_links.forEach((level_1_link) => {
35			level_1_link.addEventListener("click", (event) => {
36				event.preventDefault();
37				this._close_level_2s();
38				this._open_level_2(event.target);
39			});
40		});
41	}
42
43	/* esc key cloeses everything */
44	_esc_event() {
45		document.addEventListener("keydown", (event) => {
46			if (event.key === "Escape") {
47				this._close_level_2s();
48			}
49		});
50	}
51
52  /* click outside of navigation closes everything */
53	_click_outside_event() {
54		document.addEventListener("click", (event) => {
55			if (!this.level_1.contains(event.target)) {
56				this._close_level_2s();
57			}
58		});
59	}
60}
61
62function showHideStartDateField(pBSelect) {
63	let startDatumInput = document.querySelector("[name=praktikum_startdatum]");
64	if (pBSelect.value == "4") {
65		let todayDate = new Date();
66		startDatumInput.parentNode.classList.add("visible");
67		/* setzt das datum bei leer und bei standardwert auf heute */
68		if (startDatumInput.value == "" || startDatumInput.value == "01.01.1970") {
69			startDatumInput.value =
70				String(todayDate.getDate()).padStart(2, "0") +
71				"." +
72				String(todayDate.getMonth() + 1).padStart(2, "0") +
73				"." +
74				todayDate.getFullYear();
75		}
76	} else {
77		/* bei nichtauswahl des beginns (z.b. permant) dann wird standardwert gesetzt */
78		if (startDatumInput && startDatumInput.parentNode) {
79			startDatumInput.parentNode.classList.remove("visible");
80			if (startDatumInput.value !== "") {
81				startDatumInput.value = "01.01.1970";
82			}
83		}
84	}
85}
86
87document.addEventListener("DOMContentLoaded", function (documentEvent) {
88	let pB = document.querySelector("[name=praktikum_begin]");
89	if (pB !== null) {
90		pB.addEventListener("change", (event) => {
91			showHideStartDateField(event.target);
92		});
93
94		/* initial show oder hide */
95		showHideStartDateField(pB);
96	}
97
98	//const selection = event.target.value.substring(event.target.selectionStart, event.target.selectionEnd);
99
100	let pA = document.querySelector("[name=praktikum_art]");
101
102	if (pA !== null) {
103		if (pA.value === "5") {
104			document
105				.querySelector(".widget.laenge-praktikum")
106				.classList.add("hidden");
107			document
108				.querySelector(".widget.laenge-lehrstelle")
109				.classList.remove("hidden");
110		}
111
112		pA.addEventListener("change", function (event) {
113			if (["1", "2", "3", "4"].includes(event.target.value)) {
114				document
115					.querySelector(".widget.laenge-lehrstelle")
116					.classList.add("hidden");
117				document
118					.querySelector(".widget.laenge-praktikum")
119					.classList.remove("hidden");
120			} else {
121				document
122					.querySelector(".widget.laenge-lehrstelle")
123					.classList.remove("hidden");
124				document
125					.querySelector(".widget.laenge-praktikum")
126					.classList.add("hidden");
127			}
128		});
129	}
130	const mm = new MegaMenu("#mainmenu");
131	mm.handle();
132});

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.