PageSourceSearch

https://www.timepartner.com/files/layout/megamenu.js?v=9c0437b2

js timepartner.com collected 2026-10-04 01:47:01 UTC 4,132 bytes, 136 lines download raw bytes

1
2function transferClickedText(sourceEl, targetLayer) {
3	if (window.innerWidth <= 1024) {
4		const backOrClose = targetLayer.querySelector(".link-back, .link-close");
5		if (backOrClose) {
6			backOrClose.textContent = sourceEl.textContent.trim();
7		}
8	}
9}
10
11
12function megamenu() {
13	const navMega = document.querySelector("#navMega");
14	if (!navMega) return;
15
16	const menuItems = document.querySelectorAll("#navMain .level_1 strong.submenu");
17	const megaMenus = navMega.querySelectorAll(".navLayer");
18
19	const menuItemsSubs = document.querySelectorAll("#navMega .level_3 strong.submenu");
20	const megaMenuSubs = navMega.querySelectorAll("#navMega .level_4");
21
22	const navToggle = document.querySelector("#navToggle");
23	const navMain = document.querySelector("#navMain");
24
25	const langSwitchTrigger = document.querySelector(".translation-language-switcher-trigger");
26	const langSwitchMenu = document.querySelector(".translation-language-switcher-megamenu");
27
28	const navLayers = document.getElementById("navMega");
29	if (navLayers && !navLayers.contains(langSwitchMenu)) {
30		navLayers.appendChild(langSwitchMenu);
31	}
32
33	// Initiate close button separately because why not
34	const closeButton = langSwitchMenu.querySelector(".link-close");
35	if (closeButton) {
36		closeButton.addEventListener("click", () => {
37			langSwitchTrigger.classList.remove("showSub");
38			langSwitchMenu.classList.remove("show");
39		});
40	}
41
42	// clicky clicky
43	langSwitchTrigger.addEventListener("click", () => {
44		langSwitchTrigger.classList.toggle("showSub");
45		langSwitchMenu.classList.toggle("show");
46
47		// Alle anderen schließen
48		menuItems.forEach(i => i.classList.remove("showSub"));
49		megaMenus.forEach(menu => menu.classList.remove("show"));
50		menuItemsSubs.forEach(i => i.classList.remove("showSub"));
51		megaMenuSubs.forEach(menuSub => menuSub.classList.remove("show"));
52	});
53
54	navToggle.addEventListener("click", () => {
55		navToggle.classList.toggle("open");
56		navMain.classList.toggle("show");
57	});
58
59	//Level 1 -> Megamenü ausklappen
60	menuItems.forEach(item => {
61		item.addEventListener("click", () => {
62			const rel = item.getAttribute("rel");
63
64			// Alle zurücksetzen
65			menuItems.forEach(i => i.classList.remove("showSub"));
66			megaMenus.forEach(menu => menu.classList.remove("show"));
67
68			langSwitchTrigger.classList.remove("showSub");
69			langSwitchMenu.classList.remove("show");
70
71			// Aktives setzen
72			item.classList.add("showSub");
73			const targetMenu = Array.from(megaMenus).find(
74				menu => menu.getAttribute("rel") === rel
75			);
76			if (targetMenu) {
77				targetMenu.classList.add("show");
78				transferClickedText(item, targetMenu);
79			}
80		});
81	});
82
83	//Schließen
84	const closeButtons = document.querySelectorAll("#navMega .link-close");
85
86	closeButtons.forEach(close => {
87		close.addEventListener("click", () => {
88			const navLayer = close.closest(".navLayer");
89			if (navLayer) {
90				navLayer.classList.remove("show");
91				megaMenuSubs.forEach(menuSub => menuSub.classList.remove("show"));
92				menuItems.forEach(i => i.classList.remove("showSub"));
93			}
94		});
95	});
96
97	//Megamenü -> Level 4 ausklappen
98	menuItemsSubs.forEach(itemSub => {
99		// console.log('hello there?');
100		itemSub.addEventListener("click", () => {
101			// console.log('klicked');
102			const rel = itemSub.getAttribute("rel");
103
104			// Alle zurücksetzen
105			megaMenuSubs.forEach(menuSub => menuSub.classList.remove("show"));
106
107			// Aktives setzen
108			const targetMenuSub = Array.from(megaMenuSubs).find(
109				menuSub => menuSub.getAttribute("rel") === rel
110			);
111			if (targetMenuSub) {
112				targetMenuSub.classList.add("show");
113				transferClickedText(itemSub, targetMenuSub);
114			}
115		});
116	});
117
118	//Zurück
119	const backButtons = document.querySelectorAll("#navMega .link-back");
120
121	backButtons.forEach(back => {
122		back.addEventListener("click", () => {
123			const navLayerSub = back.closest(".level_4");
124			if (navLayerSub) {
125				navLayerSub.classList.remove("show");
126			}
127		});
128	});
129}
130
131
132document.addEventListener("DOMContentLoaded", function () {
133	megamenu();
134});
135
136

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.