1/*! 2 * TwoClickPrivacy v0.1 3 * Licensed MIT © 2021 Florian Boos 4 * 5 * Based on 2Click-Iframe-Privacy v0.1.0 by Michael Lorer - https://www.01-scripts.de/ 6 */ 7 8 var TwoClickPrivacy = new function() { 9 10 // Cookie merken aktivieren/deaktivieren 11 var config = { 12 noCookies: true 13 }; 14 15 this.types = new Array( 16 { 17 type: 'bauernhofurlaubkalender', 18 class: 'privacy-bauernhofurlaub', 19 description: 'Zum Aktivieren des Belegungskalenders bitte auf den Link klicken. Durch das Aktivieren von eingebetteten Belegungskalendern werden Daten an die Boos Onlinemarketing GmbH & Co. KG, ForggenseestraÃe 1, 87669 Rieden a. F. übermittelt und es werden Cookies gesetzt. Es können auch Drittanbietercookies gesetzt werden. Weitere Informationen können unserer <a href="/datenschutzerklaerung">Datenschutzerklärung</a> entnommen werden.<br />' 20 }, 21 { 22 type: 'video', 23 class: 'privacy-video', 24 description: 'Zum Aktivieren des Videos bitte auf den Link klicken. Durch das Aktivieren von eingebetteten Videos werden Daten an den jeweiligen Anbieter übermittelt und es werden Cookies gesetzt. Weitere Informationen können unserer <a href="/datenschutz.html">Datenschutzerklärung</a> entnommen werden.<br />' 25 }, 26 { 27 type: 'map', 28 class: 'privacy-map', 29 description: 'Zum Aktivieren der eingebetteten Karte bitte auf den Link klicken. Durch das Aktivieren werden Daten an Google Ireland Limited (âGoogleâ), Gordon House, Barrow Street, Dublin 4, Irland übermittelt und es werden Cookies gesetzt. Weitere Informationen können unserer <a href="/datenschutz.html">Datenschutzerklärung</a> entnommen werden.<br />' 30 }, 31 { 32 type: 'scriptholidaycheck', 33 class: 'privacy-holidaycheck', 34 description: 'Zum Aktivieren des Holidaycheck Widget bitte auf den Link klicken. Durch das Aktivieren werden Daten an die HolidayCheck AG, Bahnweg 8, CH-8598 Bottighofen übermittelt und es können Cookies gesetzt werden. Weitere Informationen können unserer <a href="/datenschutz.html">Datenschutzerklärung</a> entnommen werden.<br />' 35 }, 36 { 37 type: 'scripteberl', 38 class: 'privacy-eberl', 39 description: 'Zum Aktivieren des eingebetteten Kalenders bitte auf den Link klicken. Durch das Aktivieren werden Daten an die EBERL ONLINE GmbH übermittelt. Weitere Informationen können unserer <a href="/datenschutz">Datenschutzerklärung</a> entnommen werden.<br />' 40 }, 41 { 42 type: 'script', 43 class: 'privacy-script', 44 description: 'Zum Aktivieren des eingebetteten Kalenders bitte auf den Link klicken. Durch das Aktivieren werden Daten an die EBERL ONLINE GmbH übermittelt. Weitere Informationen können unserer <a href="/datenschutz">Datenschutzerklärung</a> entnommen werden.<br />' 45 } 46 47 ); 48 49 50 function wrap(el, wrapper, type, selclass, text) { 51 el.parentNode.insertBefore(wrapper, el); 52 wrapper.className = 'privacy-msg '+selclass+'-msg'; 53 //wrapper.style.width = el.clientWidth+'px'; 54 //wrapper.style.height = el.clientHeight+'px'; 55 wrapper.innerHTML = '<p>'+ text +'<a class="btn" href="#foo" onclick="TwoClickPrivacy.EnableContent(\''+ type +'\', \''+ selclass +'\', \''+ el.id +'\'); return false;">Inhalt anzeigen</a></p>'; 56 wrapper.appendChild(el); 57 } 58 59 this.EnableContent = function (type, selclass, id){ 60 61 if(!config.noCookies){ 62 setCookie('TwoClickEnable-'+type, '1', 1); 63 } 64 65 if(document.getElementById(id)){ 66 var element = document.getElementById(id); 67 element.parentNode.removeChild(element.parentNode.children[0]); 68 element.src = element.getAttribute('data-src'); 69 if(selclass=="privacy-holidaycheck"){ 70 getHolidaycheckScript(); 71 } 72 if(selclass=="privacy-eberl"){ 73 getEberlScript(); 74 } 75 if(selclass=="privacy-script"){ 76 getOwnScript(); 77 } 78 } 79 else{ 80 81 var x = document.querySelectorAll('div.'+selclass+'-msg p'); 82 var i; 83 for (i = 0; i < x.length; i++) { 84 x[i].parentNode.removeChild(x[i]); 85 } 86 87 x = document.querySelectorAll('div.'+selclass+'-msg'); 88 for (i = 0; i < x.length; i++) { 89 var parent = x[i].parentNode; 90 91 // Move all children out of the element 92 while (x[i].firstChild) parent.insertBefore(x[i].firstChild, x[i]); 93 94 // Remove the empty element 95 parent.removeChild(x[i]); 96 } 97 98 x = document.getElementsByClassName(selclass); 99 100 for (i = 0; i < x.length; i++) { 101 x[i].src = x[i].getAttribute('data-src'); 102 103 // Insert own Script to Load 104 if(selclass=="privacy-holidaycheck"){ 105 getHolidaycheckScript(); 106 } 107 if(selclass=="privacy-eberl"){ 108 getEberlScript(); 109 } 110 if(selclass=="privacy-script"){ 111 getOwnScript(); 112 } 113 114 } 115 } 116 } 117 118 this.init = function (Userconfig) { 119 120 if (typeof Userconfig.noCookies !== 'undefined') { 121 config.noCookies = Userconfig.noCookies; 122 } 123 124 if (Array.isArray(Userconfig.CustomTypes)) { 125 this.types = Userconfig.CustomTypes; 126 } 127 128 for (i = 0; i < this.types.length; i++) { 129 var selector = document.getElementsByClassName(this.t
129ypes[i].class); 130 var x; 131 if(!getCookie('TwoClickEnable-'+this.types[i].type)){ 132 for (x = 0; x < selector.length; x++) { 133 wrap(selector[x], document.createElement('div'), this.types[i].type, this.types[i].class, this.types[i].description); 134 } 135 }else{ 136 for (x = 0; x < selector.length; x++) { 137 selector[x].src = selector[x].title; 138 139 // Insert own Script to Load 140 if(selector[x].className=="privacy-holidaycheck"){ 141 getHolidaycheckScript(); 142 } 143 if(selector[x].className=="privacy-eberl"){ 144 getEberlScript(); 145 } 146 if(selector[x].className=="privacy-script"){ 147 getOwnScript(); 148 } 149 150 151 } 152 } 153 } 154 155 }; 156 157 /* Holidaycheck Script */ 158 function getHolidaycheckScript(){ 159 loadScript("https://www.holidaycheck.de/widgets?step=code&type=code&options=hotel-1-1324059-de_DE-m-w-1-1-1-3-0", function(){ 160 //initialization code 161 }); 162 } 163 164 /* Eberl Belegungskalender Script */ 165 function getEberlScript(){ 166 if (!document.head.querySelector('script[data-id=eobp]')){ 167 var script = document.createElement('script'); 168 script.src = 'https://belegungskalender.api.eberl-online.net/v1/bundle.js'; 169 script.async = true; 170 script.setAttribute('data-id', 'eobp'); 171 document.head.appendChild(script); 172 } 173 } 174 175 /* Eigenes Script laden */ 176 function getOwnScript(){ 177 loadScript("https://www.besipielurl.de/script.js", function(){ 178 //initialization code 179 }); 180 } 181 182 /* Skript nachladen */ 183 function loadScript(url, callback){ 184 185 var script = document.createElement("script") 186 script.type = "text/javascript"; 187 188 if (script.readyState){ //IE 189 script.onreadystatechange = function(){ 190 if (script.readyState == "loaded" || 191 script.readyState == "complete"){ 192 script.onreadystatechange = null; 193 callback(); 194 } 195 }; 196 } else { //Others 197 script.onload = function(){ 198 callback(); 199 }; 200 } 201 202 script.src = url; 203 document.getElementsByTagName("head")[0].appendChild(script); 204 } 205 206 function setCookie(name, value, days) { 207 var d = new Date; 208 d.setTime(d.getTime() + 24*60*60*7*days); 209 document.cookie = name + "=" + value + ";path=/;expires=" + d.toGMTString(); 210 } 211 212 function getCookie(name) { 213 var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); 214 return v ? v[2] : null; 215 } 216 217}
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.