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.