PageSourceSearch

https://www.hofmann-makler.de/themen/mv-pv/core/js/cookie-box.js

js hofmann-makler.de collected 2026-10-07 05:19:30 UTC 13,296 bytes, 447 lines download raw bytes

1/*COIB manuell öffnen*/
2function coib_consent() {
3	$.post("core/inc/opt-in-box.php", {'load_settings':1, 'softmode':1}, function( data ) {
4		$("#cookie_opt_in_box").remove();
5		$("body").prepend(data);
6		coib_settings($("#cookie_opt_in_box #cookie_opt_in_btn_manage")[0], true)
7		coib_initiate_move();
8	});	
9}
10
11/*Alle auswählen und bestätigen */
12function coib_accept_all(btn) {
13	$(btn).parent().find("ul.cookie_groups li.unchecked").prop("class", "checked");
14	$(btn).closest("div.coib_settings").find("input.checkbutton").prop("checked", true);
15	obj = {
16		'accept': 'all',
17	};
18	setTimeout(function() {
19		$.post("core/json/coib_submit.php", obj, function( data ) {
20			// console.log(data);
21			coib_close(true);
22			if(data.scripts) {
23				for(var i=0; i<data.scripts.length; i++) {
24					try {
25						eval(data.scripts[i]);
26					}
27					catch (e) {
28						console.log(e); // Fehler-Objekt an die Error-Funktion geben
29					}
30				}
31			}
32		});		
33	}, 300)
34}
35
36/* Auswahl bestätigen */
37function coib_accept_basic(btn) {
38	obj = {
39		'accept': {'groups': {}},
40	};
41	$(btn).parent().find("ul.cookie_groups li").each(function() {
42		var group = $(this);
43		var id=$(group).attr("data-id");
44		var checked=$(this).hasClass("checked");
45		obj.accept.groups[id]=checked;
46	});
47	// console.log(obj);
48	
49	$.post("core/json/coib_submit.php", obj, function( data ) {
50		// console.log(data);
51		coib_close(true);
52		if(data.scripts) {
53				for(var i=0; i<data.scripts.length; i++) {
54					try {
55						eval(data.scripts[i]);
56					}
57					catch (e) {
58						console.log(e); // Fehler-Objekt an die Error-Funktion geben
59					}
60				}
61			}
62	});		
63}
64
65/* Settings einblenden */
66function coib_settings(btn, softmode) {
67	var cookies=document.cookie;
68	cookies=cookies.split("; ");
69	for(var i=0; i<cookies.length; i++) {
70		var temp=cookies[i].split("=");
71		if(temp[0]=="_COIB") {
72			cookies=JSON.parse(decodeURIComponent(temp[1]));
73			// console.log(decodeURIComponent(temp[1]));
74			break;
75		}
76	}
77	// console.log(cookies);
78	
79	var coib_body = $(btn).closest(".coib_body");
80	$("#cookie_opt_in_box .coib_settings").remove();
81	$.post("core/json/coib_getcookies.php", function( data ) {
82		// console.log(data);
83		var content="";
84		var indi={};
85		//JSON verarbeiten
86		if(softmode===true) {
87			content+='<div class="right"><a href="javascript:coib_close()">schließen</a></div>';
88		}
89		else {
90			content+='<div class="right"><a href="javascript:coib_hide_settings()">zurück</a></div>';
91		}
92		content+="<p>In der folgenden Übersicht haben wir Ihnen alle Informationen zu den verwendeten Cookies zusammengestellt.<br>Sie können hier einzeln Ihre Zustimmung geben.</p>";
93		content+='<div class="coib_buttons">';
94		content+='<button id="cookie_opt_in_btn_settings" onclick="coib_accept_settings(this)">Nur ausgewählte</button>';
95		content+='<button id="cookie_opt_in_btn_accept2" onclick="coib_accept_all(this)">Alle akzeptieren</button>';
96		content+='</div>';
97		
98		checked="checked";
99		disabled="disabled";
100		for(group_id in data.gui) {
101			content+='<div class="cookie_group"><h2><span onclick="coib_toggle_group(this)">'+data.groups[group_id]+'</span><input class="checkbutton" onchange="coib_toggle_group_check(this)" type="checkbox" name="cookie_group_'+group_id+'" id="cookie_group_'+group_id+'" '+checked+' '+disabled+'><label for="cookie_group_'+group_id+'"></label></h2>';
102			// checked="";
103			// disabled="";
104			content+='<ul class="cookies">';
105			for(temp in data.gui[group_id]) {
106				// console.log(data.gui[group_id][temp]);
107				var cookie=data.gui[group_id][temp];
108				// checked="";
109				// disabled="";
110				content+='<li>';
111					if(cookie.name) {
112						//Name
113						content+='<div class="cookie_details">';
114						content+='<span class="lbl">';
115						content+='Name';
116						content+='</span>';
117						content+='<span class="txt">';
118						content+=cookie.name;
119						content+='</span>';
120						content+='</div>';						
121					}
122					
123					//Akzeptieren
124					if(cookies.accepted && cookies.accepted[cookie.intname]===true)  {
125						indi_checked="checked";
126						indi[cookie.id]='cookie_'+cookie.id;
127					}
128					else {
129						indi_checked="";
130					}
131					content+='<div class="cookie_details">';
132					content+='<span class="lbl">';
133					content+='Akzeptieren';
134					content+='</span>';
135					content+='<span class="txt">';
136					content+='<input class="checkbutton small" onchange="coib_toggle_cookie_check(this)" type="checkbox" name="cookie_'+cookie.id+'" id="cookie_'+cookie.id+'" '+checked+' '+indi_checked+' '+disabled+'><label for="cookie_'+cookie.id+'"></label>';
137					content+='</span>';
138					content+='</div>';
139					
140					if(cookie.provider) {
141						//Anbieter
142						content+='<div class="cookie_details">';
143						content+='<span class="lbl">';
144						content+='Anbieter';
145						content+='</span>';
146						content+='<span class="txt">';
147						content+=cookie.provider;
148						content+='</span>';
149						content+='</div>';
150					}
151					
152					if(cookie.purpose) {
153						//Zweck
154						content+='<div class="cookie_details">';
155						content+='<span class="lbl">';
156						content+='Zweck';
157						content+='</span>';
158						content+='<span class="txt">';
159						content+=cookie.purpose;
160						content+='</span>';
161						content+='</div>';
162					}
163					
164					if(cookie.cookie_term) {
165						//Laufzeit
166						content+='<div class="cookie_details">';
167						content+='<span class="lbl">';
168						content+='Laufzeit';
169						content+='</span>';
170						content+='<span class="txt">';
171						content+=cookie.cookie_term;
172						content+='</span>';
173						content+='</div>';
174					}
175					
176					if(cookie.cookie_name) {
177						//Cookie Name
178						content+='<div class="cookie_details">';
179						content+='<span class="lbl">';
180						content+='Cookie Name';
181						content+='</span>';
182						content+='<span class="txt">';
183						content+=cookie.cookie_name;
184						content+='</span>';
185						content+='</div>';
186					}
187					
188					if(cookie.privacy_policy) {
189						//Datenschutzerklärung
190						content+='<div class="cookie_details">';
191						content+='<span class="lbl">';
192						content+='Datenschutzerklärung';
193						content+='</span>';
194						content+='<span class="txt">';
195						content+='<a href="'+cookie.privacy_policy+'" target="_blank">'+cookie.privacy_policy+'</a>';
196						content+='</span>';
197						content+='</div>';
198					}
199					
200					if(cookie.share) {
201						//Weitergabe
202						content+='<div class="cookie_details">';
203						content+='<span class="lbl">';
204						content+='Weitergabe an Dritte';
205						content+='</span>';
206						content+='<span class="txt">';
207						if(cookie.share=="1") {
208							content+='Ja';
209						}
210						if(cookie.share=="0") {
211							content+='Nein';
212						}
213						content+='</span>';
214						content+='</div>';
215					}
216					
217					if(cookie.hosts) {
218						//Hosts
219						content+='<div class="cookie_details">';
220						content+='<span class="lbl">';
221						content+='Hosts';
222						content+='</span>';
223						content+='<span class="txt">';
224						content+=cookie.hosts;
225						content+='</span>';
226						content+='</div>';
227					}
228					
229					
230					/*
231					//TODO alle Infos zum Cookie anzeigen
232					content+='<div class="cookie_details">';
233					content+='<span class="lbl">';
234					content+='bez';
235					content+='</span>';
236					content+='<span class="txt">';
237					content+='text';
238					content+='</span>';
239					content+='</div>';
240					*/
241				content+='</li>';
242			}
243			content+='</ul>';
244			content+='</div>';
245			
246			checked="";
247			disabled="";
248		}
249		
250		//Ausgabe vorbereiten
251		html="<div class=\"coib_settings\">"+content+"</div>";
252		//Einblenden
253		$(html).insertAfter(coib_body);
254		//Gruppen aktivieren, wenn schon was drin is
255		for(id in indi) {
256			$("#cookie_"+id).change();
257		}
258		//Settings einblenden
259		$(coib_body).addClass("invisible");
260	});
261}
262
263/* Settings bestätigen*/
264function coib_accept_settings(btn) {
265	cookies={};
266	var set = $(btn).closest('.coib_settings').find('.cookie_details input.checkbutton');
267	$(set).each(function() {
268		if($(this).prop("checked")==true) {
269			cookie_id = $(this).attr("name").split("_")[1];
270			state = "checked";
271			cookies[cookie_id]=state;
272		}
273	});
274	
275	obj = {
276		'accept': {'cookies': cookies},
277	};
278	// console.log(cookies);
279	$.post("core/json/coib_submit.php", obj, function( data ) {
280		// console.log(data);
281		coib_close(true);
282		if(data.scripts) {
283			for(var i=0; i<data.scripts.length; i++) {
284				try {
285					eval(data.scripts[i]);
286				}
287				catch (e) {
288					console.log(e); // Fehler-Objekt an die Error-Funktion geben
289				}
290			}
291		}
292	});	
293}
294
295function coib_toggle_group(span) {
296	$(span).closest(".cookie_group").siblings().removeClass("opened");
297	$(span).closest(".cookie_group").toggleClass("opened");
298}
299
300function coib_toggle_cookie_check(checkbox) {
301	var state=$(checkbox).prop('checked');
302	var group = $(checkbox).closest(".cookie_group");
303	var ul = $(group).find("ul input.checkbutton:checked");
304	if($(ul).length>0) {
305		$(group).find("h2>input.checkbutton").prop('checked', true);		
306	}
307	else {
308		$(group).find("h2>input.checkbutton").prop('checked', false);
309	}
310}
311
312function coib_toggle_group_check(checkbox) {
313	var state=$(checkbox).prop('checked');
314	var group = $(checkbox).closest(".cookie_group");
315	var ul = $(group).find("ul");
316	$(ul).find("input.checkbutton").prop('checked', state);
317}
318
319function coib_hide_settings() {
320	$("#cookie_opt_in_box .coib_body").removeClass("invisible");
321	$("#cookie_opt_in_box .coib_settings").remove();
322}
323
324function coib(intname) {
325	if(typeof(intname)=="string" && intname!="") {
326		var cookies=document.cookie;
327		cookies=cookies.split("; ");
328		for(var i=0; i<cookies.length; i++) {
329			var temp=cookies[i].split("=");
330			if(temp[0]=="_COIB") {
331				cookies=JSON.parse(decodeURIComponent(temp[1]));
332				// console.log(decodeURIComponent(temp[1]));
333				break;
334			}
335		}
336		if(typeof(cookies)=="object") {
337			if(typeof(cookies.accepted)=="object") {
338				if(typeof(cookies.accepted[intname])!="undefined") {
339					return cookies.accepted[intname];
340				}
341				
342				return false
343			}
344		}
345	}
346	
347	return false;
348}
349
350/* Box verschieben */
351$(document).ready(function() {
352	coib_initiate_move();
353});
354
355function coib_initiate_move() {
356	$("#cookie_opt_in_box[data-movable='1'][data-pos='center'] > #mover").bind("mousedown", function(event) {
357		var coib_box = $(this).closest("#cookie_opt_in_box");
358		$(coib_box).css("opacity", "0.6");
359		$(coib_box).css("position", "absolute");
360		$(coib_box).css("transition", "padding 0s linear");
361		$(coib_box).addClass("moving");
362		
363		//get initial Mouse Pos
364		var mouseX = event.pageX;
365		var mouseY = event.pageY;
366		// console.log("Mouse Pos: " + mouseX + " / " + mouseY);
367		
368		//get initial Box Pos
369		var boxX = $(coib_box).position().left;
370		var boxY = $(coib_box).position().top;
371		// console.log("Box Pos: " + boxX + " / " + boxY);
372		
373		// $("#cookie_opt_in_box[data-movable='1'].moving").on("mousemove", function(event) {
374		$(document).bind("mousemove", function(event) {
375			if(!event)  {
376				var e = window.event;
377			}
378			else {
379				var e = event;
380			}
381			var b = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ? window.document.documentElement : window.document.body;
382			var pos = {
383			// Position im Dokument
384				top: e.pageY ? e.pageY : e.clientY + b.scrollTop - b.clientTop,
385				left: e.pageX ? e.pageX : e.clientX + b.scrollLeft  - b.clientLeft
386			};
387			
388			//find out the moved way
389			var newX = boxX + (pos.left - mouseX);
390			var newY = boxY + (pos.top - mouseY);
391			
392			//plausiprüfung viewport
393			var newXend=newX + $(coib_box).outerWidth();
394			var newYend=newY + $(coib_box).outerHeight();
395			// console.log(newXend);
396			// console.log($(coib_box).parent().outerWidth());
397			if(newXend>$(coib_box).parent().outerWidth()) {
398				newX=$(coib_box).parent().outerWidth() - $(coib_box).outerWidth();
399			}
400			if(newYend>$(coib_box).parent().outerHeight()) {
401				newY=$(coib_box).parent().outerHeight() - $(coib_box).outerHeight();
402			}
403			if(newX<0) {
404				newX=0;
405			}
406			if(newY<0) {
407				newY=0;
408			}
409			
410			//set the new position
411			$(coib_box).css("left", newX+"px");
412			$(coib_box).css("top", newY+"px");
413		});
414		
415		$(document).bind("mouseup", function(event) {
416			var coib_box = $("#cookie_opt_in_box[data-movable='1']");
417			$(coib_box).css("opacity", "1");
418			$(coib_box).css("transition", "");
419			$(document).unbind("mousemove");
420			$(coib_box).removeClass("moving");
421		});
422	});
423}
424
425/* Box schließen */
426function coib_close(refresh) {
427	if($("#cookie_opt_in_box_wrapper").length>0) {
428		$("#cookie_opt_in_box_wrapper").addClass("closing");		
429	}
430	else {
431		$("#cookie_opt_in_box").addClass("closing");
432	}
433	setTimeout(function() {
434		$("#cookie_opt_in_box_wrapper").remove();
435		$("#cookie_opt_in_box").remove();
436		if(refresh==true) {
437			// location.reload(true);
438			var urladd="?";
439			if(window.location.href.indexOf("?")>=0) {
440				urladd="&";
441			}
442			window.location.href += urladd + "coib_submitted=1";
443		}
444		// $("#coib_style").remove();
445		// $("#coib_script").remove();
446	}, 900);
447}

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.