PageSourceSearch

https://www.rosstal.de/fileadmin/templates/extensions/hw_banner/js/hw_banner_shared.js

js rosstal.de collected 2026-10-02 07:56:55 UTC 4,298 bytes, 137 lines download raw bytes

1import Swiper from "../../../js/libs/swiper/swiper-bundle.esm.browser.js";
2
3export function initializeSwiper(playPauseButton, swiperSettings) {
4
5	if (document.querySelector('.hw_banner__swiper')) {
6
7		let initialSwiper = new Swiper('.hw_banner__swiper', swiperSettings);
8
9		if (playPauseButton) {
10
11			if (!getGeneralCookieValue('imagebanner')) {
12				playPauseButton.style.display = 'none';
13				playPauseButton.dataset.cookiebannervergessen = 'true';
14				return;
15			}
16
17			if (initialSwiper.autoplay.running) {
18				playPauseButton.classList.add('control_pause');
19				playPauseButton.dataset.playState = 'play';
20				playPauseButton.title = playPauseButton.dataset.textPause;
21			} else {
22				playPauseButton.classList.add('control_play');
23				playPauseButton.dataset.playState = 'pause';
24				playPauseButton.title = playPauseButton.dataset.textPlay;
25			}
26			playPauseButton.addEventListener('click', playPauseSwiper);
27		}
28	} else {
29		if (document.getElementById('hw_banner__prev_next')) document.getElementById('hw_banner__prev_next').style.display = 'none';
30		if (document.getElementById('hw_banner__scrollbar')) document.getElementById('hw_banner__scrollbar').style.display = 'none';
31
32		if (playPauseButton) {
33			playPauseButton.addEventListener('click', playPauseVideo);
34		}
35	}
36}
37
38
39export function playPauseSwiper() {
40
41	let playPauseButton = document.getElementById('hw_banner__play_pause');
42	let swiper = document.querySelector('.hw_banner__swiper').swiper;
43
44	if (document.body.classList.contains('banner_paused') || !swiper.autoplay.running) {
45		document.body.classList.remove('banner_paused');
46		playPauseButton.classList.remove('control_play');
47		playPauseButton.classList.add('control_pause');
48		playPauseButton.title = playPauseButton.dataset.textPause;
49		playPauseButton.dataset.playState = 'play';
50		swiper.autoplay.start();
51		setPlayPauseCookie('play');
52	} else {
53		document.body.classList.add('banner_paused');
54		playPauseButton.classList.remove('control_pause');
55		playPauseButton.classList.add('control_play');
56		playPauseButton.title = playPauseButton.dataset.textPlay;
57		playPauseButton.dataset.playState = 'pause';
58		swiper.autoplay.stop();
59		setPlayPauseCookie('pause');
60	}
61}
62
63export function playPauseVideo() {
64	let playPauseButton = document.getElementById('hw_banner__play_pause');
65	let video = document.querySelector('.hw_banner__video');
66
67	if (video && video.nodeName === 'VIDEO') {
68
69		if (video.paused || video.src === '') {
70			playPauseButton.classList.remove('control_play');
71			playPauseButton.classList.add('control_pause');
72			playPauseButton.title = playPauseButton.dataset.textPause;
73			playPauseButton.dataset.playState = 'play';
74			if (video.src === '') {
75				video.src = video.dataset.src;
76				video.classList.add('hw_banner__video--playing');
77				delete video.dataset.src;
78			}
79			video.play();
80			setPlayPauseCookie('play');
81		} else {
82			playPauseButton.classList.remove('control_pause');
83			playPauseButton.classList.add('control_play');
84			playPauseButton.title = playPauseButton.dataset.textPlay;
85			playPauseButton.dataset.playState = 'pause';
86			video.pause();
87			setPlayPauseCookie('pause');
88		}
89	}
90}
91
92function setPlayPauseCookie(playState) {
93
94	if (getGeneralCookieValue('imagebanner')) {
95
96        const expires = "expires=0";
97
98        document.cookie = "hwbanner_cookie_banner_playstate=" + playState + "; " + expires + "; path=/";
99	}
100}
101
102export function getPlayPauseCookie() {
103
104	const cookieNameComplete = "hwbanner_cookie_banner_playstate=";
105	const cookieArray = document.cookie.split('; ');
106	let returnValue = 'false';
107
108	const reducedMotionMediaQuery = window.matchMedia("(prefers-reduced-motion: reduce)");
109	if (!reducedMotionMediaQuery || reducedMotionMediaQuery.matches) {
110		returnValue = 'paused';
111	}
112
113	cookieArray.forEach(value => {
114		if (value.indexOf(cookieNameComplete) === 0) {
115			returnValue = value.substring(cookieNameComplete.length);
116		}
117	})
118
119	return returnValue;
120}
121
122export function getGeneralCookieValue(name) {
123
124	const cookieNameComplete = "hwdatenschutz_cookie_" + name + "=";
125	const cookieArray = document.cookie.split('; ');
126
127	let returnValue = false;
128
129
130	cookieArray.forEach(value => {
131		if (value.indexOf(cookieNameComplete) === 0) {
132			returnValue = value.substring(cookieNameComplete.length) === '1';
133		}
134	})
135
136	return returnValue;
137}

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.