PageSourceSearch

https://www.awo-bm-eu.de/js/consent-banner.js

js awo-bm-eu.de collected 2026-10-06 18:41:54 UTC 7,948 bytes, 199 lines download raw bytes

1$(document).ready(function() {		
2		
3				
4	// ----------------------- Privacy-Opt-In NEU
5	/* config */	
6	var cookieLifetimeDays = 7;
7	
8	/*
9	OptIn-Codes: 
10	============
11	1. Für YouTube, GoogleMaps und Klarna fest vorgegeben (yt, gmaps, klarna)
12	2. Für alle anderen egal. Die Werte im consent-banner-include (checkboxen)
13	und in den jeweiligen externen script-Aufrufen müssen natürlich konsistent sein	
14	*/
15
16	/* master function for activating scripts / embeds */
17	function activateConsents(optCode) {
18
19		// script activation
20		if (optCode != 'yt' && optCode != 'gmaps') {
21			$("script[data-codedatoncmp='"+optCode+"']").each(function(){
22				if ($(this).attr("type") === 'text/plain') {
23					var new_script = document.createElement('script');
24					if ($(this).attr("src") && $(this).attr("src").length > 0) {
25						new_script.setAttribute('src', $(this).attr("src"));
26					}
27					if ($(this).html() && $(this).html().length > 0) {
28						new_script.innerHTML = $(this).html();
29					}
30					new_script.setAttribute('type', 'text/javascript');
31					$(this).replaceWith(new_script);
32					//my_script.parentNode.replaceChild(new_script, my_script);
33				}			
34			});
35		}
36
37		// embed activation
38		// yt + gmaps iframe activations
39		if (optCode == 'yt') {
40			$("iframe[data-codedatoncmp='yt']").each(function(){
41				var mySrc = $(this).attr("data-src");
42				$(this).attr("src", mySrc);
43				
44				$(this).closest(".consent-placeholder-container").find(".consent-placeholder").hide();
45			});	
46			var initScrollPosTmp = $('html, body').scrollTop();
47			if (initScrollPosTmp > 0) {
48				$('html, body').scrollTop((initScrollPosTmp - 1));
49			}
50		}		
51		if (optCode == 'gmaps') {
52			$("iframe[data-codedatoncmp='"+optCode+"']").each(function(){
53				var mySrc = $(this).attr("data-src");
54				$(this).attr("src", mySrc);
55				
56				$(this).closest(".consent-placeholder-container").find(".consent-placeholder").hide();
57			});	
58			// $("#MapParent").attr("data-optinstatus", "1");
59			var initScrollPosTmp = $('html, body').scrollTop();
60			if (initScrollPosTmp > 0) {
61				$('html, body').scrollTop((initScrollPosTmp - 1));
62			}
63		}
64		// klarna special activation
65		if (optCode == 'klarna') {
66			if ($("#js_klarna_container") && $("#js_klarna_container").length > 0) {
67				$("#js_klarna_container").show();
68			}
69		}
70
71	}
72
73	/* manage group checkboxes when individual checkbox changed */
74	$('#js_consent_settings input.js_consent_optin_chk[data-type="single"]').change(function() {
75		var myGroupCode = $(this).closest(".js_consent_groupdetails").attr("data-groupcode");
76		var numMyOptins = $(this).closest(".js_consent_groupdetails").find('input.js_consent_optin_chk[data-type="single"]').length;
77		var numMyOptinsChecked = $(this).closest(".js_consent_groupdetails").find('input.js_consent_optin_chk[data-type="single"]:checked').length;
78		if (numMyOptinsChecked < 1) {
79			$('#js_consent_settings .js_consent_optin_chk[data-group="' + myGroupCode + '"]').prop('checked', false);
80		} else if (numMyOptinsChecked == numMyOptins)  {
81			if ($('#js_consent_settings .js_consent_optin_chk[data-group="' + myGroupCode + '"]').is(":checked") !== true) {
82				$('#js_consent_settings .js_consent_optin_chk[data-group="' + myGroupCode + '"]').prop('checked', true);
83			}
84		} else if (numMyOptinsChecked >= 1 && numMyOptinsChecked < numMyOptins)  {
85			if ($('#js_consent_settings .js_consent_optin_chk[data-group="' + myGroupCode + '"]').is(":checked") !== true) {
86				$('#js_consent_settings .js_consent_optin_chk[data-group="' + myGroupCode + '"]').prop('checked', true);
87			}
88		}
89	});
90
91	/* manage individual checkboxes when group checkbox changed */
92	$('#js_consent_settings input.js_consent_optin_chk[data-type="group"]').change(function() {
93		var myCheckmark = $(this);
94		var myGroupCode = myCheckmark.attr("data-group");
95		if (myGroupCode && myGroupCode.length > 1)  {
96			if (myCheckmark.is(":checked") === true) {
97				$('#js_consent_settings .js_consent_groupdetails[data-groupcode="' + myGroupCode + '"] input.js_consent_optin_chk[data-type="single"]').prop('checked', true);
98			} else {
99				$('#js_consent_settings .js_consent_groupdetails[data-groupcode="' + myGroupCode + '"] input.js_consent_optin_chk[data-type="single"]').prop('checked', false);
100			}
101		}
102	});
103
104	/* read cookie and hide dialog/preselect checkboxes if valid */
105	var nameEQ = encodeURIComponent('my_consent_optins') + "=";
106	var myCookieVal = null;
107	var ca = document.cookie.split(';');
108	for (var i = 0; i < ca.length; i++) {
109		var c = ca[i];
110		while (c.charAt(0) === ' ') c = c.substring(1, c.length);
111		if (c.indexOf(nameEQ) === 0) myCookieVal = decodeURIComponent(c.substring(nameEQ.length, c.length));
112	}
113	if (myCookieVal != null) {
114		$("#js_consent_container").hide();
115		$('#js_consent_banner').hide(); 
116		$('#js_consent_settings').hide(); 
117		$('#js_consent_settings input.js_consent_optin_chk').prop('checked', false);
118		/* preselect checkboxes */
119		var optIns = myCookieVal.split(",");
120		for (var i = 0; i < optIns.length; i++) {
121			// activate scripts / embeds if selected
122			activateConsents(optIns[i]);
123			// preselect individual checkbox
124			$('#js_consent_settings input.js_consent_optin_chk[value="' + optIns[i] + '"]').prop('checked', true).change();
125		}
126	} else {
127		$('#js_consent_settings input.js_consent_optin_chk[data-type="group"]').prop('checked', false).change();
128		$("#js_consent_banner").show();
129		$("#js_consent_container").show();
130	}
131	$("#js_consent_container .js_consent_btn").click(function(e) {
132		e.preventDefault();
133		e.stopPropagation();
134
135		var actionType = $(this).attr("data-type");
136
137		$("#js_consent_container").fadeOut(250, function() {
138
139			if (actionType == 'all') {
140				$('#js_consent_settings input.js_consent_optin_chk[data-type="group"]').prop('checked', true).change();
141				// $('#js_consent_settings input.js_consent_optin_chk[data-type="single"]').prop('checked', true).change();
142			} else if (actionType == 'essential') {
143				$('#js_consent_settings input.js_consent_optin_chk[data-type="group"]').prop('checked', false).change();
144				// $('#js_consent_settings input.js_consent_optin_chk[data-type="single"]').prop('checked', false).change();
145			}
146			$("#js_consent_banner").hide();
147			$('#js_consent_settings').hide(); 
148
149			var optIns = new Array();
150			$('#js_consent_settings input.js_consent_optin_chk[data-type="single"]:checked').each(function(){
151				optIns.push($(this).val());
152			});
153
154			/* write cookie for X days and don't bother anymore */
155			var expires = new Date();
156			expires.setTime(expires.getTime() + (cookieLifetimeDays * 24 * 60 * 60 * 1000));
157			document.cookie = 'my_consent_optins=' + optIns.join(',') + '; path=/; expires=' + expires.toUTCString();
158
159			// activate scripts / embeds if selected
160			for (var i = 0; i < optIns.length; i++) {
161				activateConsents(optIns[i]);
162			}
163
164		});
165	});		
166	$(".js_consent_btn_ext").click(function(e) {
167		e.preventDefault();
168		e.stopPropagation();
169		var optCode = $(this).attr("data-optcode");
170		$('#js_consent_settings input.js_consent_optin_chk[value="' + optCode + '"]').prop('checked', true).change();
171		$("#js_consent_settings .js_consent_btn[data-type='custom']").click();
172	});	
173	$("#js_consent_settings .js_consent_opendetails").click(function(e) {
174		e.preventDefault();
175		e.stopPropagation();
176		if ($(this).hasClass('Active') === false) {
177			$(this).addClass('Active');
178			$(this).closest(".js_consent_groupitem").find(".js_consent_groupdetails").slideDown(250);
179		} else {
180			$(this).removeClass('Active');
181			$(this).closest(".js_consent_groupitem").find(".js_consent_groupdetails").slideUp(250);
182		}
183	});
184	$(".js_consent_opensettings").click(function(e) {
185		e.preventDefault();
186		e.stopPropagation();
187		$('#js_consent_settings').show(); 
188		$('#js_consent_container').fadeIn(250); 
189		$('#js_consent_banner').hide(); 
190	});
191	$(".js_consent_closesettings").click(function(e) {
192		e.preventDefault();
193		e.stopPropagation();
194		$('#js_consent_container').hide();
195		$('#js_consent_settings').hide(); 
196	});
197	
198});
199

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.