(function(n){"use strict";function o(n,t){var e=!1,o=!0,i=n.document,s=i.documentElement,f=i.addEventListener?"addEventListener":"attachEvent",c=i.addEventListener?"removeEventListener":"detachEvent",u=i.addEventListener?"":"on",r=function(f){(f.type!="readystatechange"||i.readyState=="complete")&&((f.type=="load"?n:i)[c](u+f.type,r,!1),!e&&(e=!0)&&t.call(n,f.type||f))},h=function(){try{s.doScroll("left")}catch(n){setTimeout(h,50);return}r("poll")};if(i.readyState=="complete")t.call(n,"lazy");else{if(i.createEventObject&&s.doScroll){try{o=!n.frameElement}catch(l){}o&&h()}i[f](u+"DOMContentLoaded",r,!1);i[f](u+"readystatechange",r,!1);n[f](u+"load",r,!1)}}var u=n,i=u.document,r="cbinstance",s={get:function(n){return decodeURIComponent(i.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(n).replace(/[-.+*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null},set:function(n,t,r,u,f,e){if(!n||/^(?:expires|max-age|path|domain|secure)$/i.test(n))return!1;var o="";if(r)switch(r.constructor){case Number:o=r===Infinity?"; expires=Fri, 31 Dec 9999 23:59:59 GMT":"; max-age="+r;break;case String:o="; expires="+r;break;case Date:o="; expires="+r.toUTCString()}return i.cookie=encodeURIComponent(n)+"="+encodeURIComponent(t)+o+(f?"; domain="+f:"")+(u?"; path="+u:"")+(e?"; secure":""),!0},has:function(n){return new RegExp("(?:^|;\\s*)"+encodeURIComponent(n).replace(/[-.+*]/g,"\\$&")+"\\s*\\=").test(i.cookie)},remove:function(n,t,r){return!n||!this.has(n)?!1:(i.cookie=encodeURIComponent(n)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT"+(r?"; domain="+r:"")+(t?"; path="+t:""),!0)}},t={merge:function(){var i={},n=0,r=arguments.length,t;if(0===r)return i;for(;n<r;n++)for(t in arguments[n])Object.prototype.hasOwnProperty.call(arguments[n],t)&&(i[t]=arguments[n][t]);return i},str2bool:function(n){n=String(n);switch(n.toLowerCase()){case"false":case"no":case"0":case"":return!1;default:return!0}},fade_in:function(n){n.style.opacity<1&&(n.style.opacity=(parseFloat(n.style.opacity)+.05).toFixed(2),u.setTimeout(function(){t.fade_in(n)},50))},fade_out:function(n,t){if(typeof n!="undefined"){n.style.opacity=1;var i=t/1e3;n.style.transition="opacity "+i+"s ease";n.style.opacity=0;setTimeout(function(){n.parentNode.removeChild(n)},t)}},get_data_attribs:function(script){var data={},attribs,key,attr,camelized,isFunction;if(Object.prototype.hasOwnProperty.call(script,"dataset"))data=script.dataset;else{attribs=script.attributes;for(key in attribs)Object.prototype.hasOwnProperty.call(attribs,key)&&(attr=attribs[key],/^data-/.test(attr.name)&&(camelized=t.camelize(attr.name.substr(5)),isFunction=camelized.lastIndexOf("on",0)===0,data[camelized]=isFunction?eval(attr.value):attr.value))}return data},normalize_keys:function(n){var u={},i,r;for(i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r=t.camelize(i),u[r]=n[r]?n[r]:n[i]);return u},camelize:function(n){for(var t="-",i=n.indexOf(t);i!==-1;){var r=i===n.length-1,u=r?"":n[i+1],f=u.toUpperCase(),e=r?t:t+u;n=n.replace(e,f);i=n.indexOf(t)}return n},find_script_by_id:function(n){for(var r=i.getElementsByTagName("script"),t=0,u=r.length;t<u;t++)if(n===r[t].id)return r[t];return null},is_numeric:function(n){return parseFloat(n)==n}},f=t.find_script_by_id("cookiebanner"),e=n.Cookiebanner=function(n){this.init(n)};e.prototype={cookiejar:s,init:function(i){if(this.inserted=!1,this.closed=!1,this.default_options={cookie:"cookiebanner-accepted",closeText:"Alle akzeptieren",closeStyle:"",closePrecedes:!0,cookiePath:"/",cookieDomain:null,cookieSecure:!1,debug:!1,expires:30758400,zindex:255,mask:!1,maskOpacity:.5,maskBackground:"#000",height:"auto",minHeight:"21px",bg:"#000",fg:"#ddd",link:"#aaa",position:"bottom",padding:"1rem",message:"",linkmsg:"hier",moreinfo:"/rechtliche-hinweise",moreinfoTarget:"_blank",moreinfoRel:"noopener noreferrer",moreinfoDecoration:"none",moreinfoFontWeight:"normal",moreinfoFontSize:null,moreinfoClass:"nothing",effect:null,fontSize:"14px",fontFamily:"arial, sans-serif",instance:r,textAlign:"center",acceptOnScroll:!1,acceptOnClick:!1,acceptOnTimeout:null,acceptOnFirstVisit:!1,onInserted:null,onClosed:null,delayBeforeClose:null,fadeOutDurationMs:2e3},this.options=this.default_options,this.script_el=f,this.script_el){var u=t.get_data_attribs(this.script_el);this.options=t.merge(this.options,u)}i&&(i=t.normalize_keys(i),this.options=t.merge(this.options,i));r=this.options.instance;this.options.zindex=parseInt(this.options.zindex,10);this.options.mask=t.str2bool(this.options.mask);this.options.closePrecedes=t.str2bool(this.options.closePrecedes);"string"==typeof this.options.expires&&("function"==typeof n[this.options.expires]?this.options.expires=n[this.options.expires]:t.is_numeric(this.options.expires)&&(this.options.expires=Number(parseFloat(this.options.expires))));"function"==typeof this.options.expires&&(this.options.expires=this.options.expires());this.script_el&&this.run()},log:function(){"undefined"!=typeof console&&console.log.apply(console,arguments)},run:function(){if(!this.agreed()){var n=this;o(u,function(){n.insert()})}},build_viewport_mask:function(){var n=null;if(!0===this.options.mask){var t=this.options.maskOpacity,u=this.options.maskBackground,f='<div id="cookiebanner-mask" style="position:fixed;top:0;left:0;width:100%;height:100%;background:'+u+";zoom:1;filter:alpha(opacity="+t*100+");opacity:"+t+";z-index:"+this.options.zindex+';"><\/div>',r=i.createElement("div");r.innerHTML=f;n=r.firstChild}return n},agree:function(){return this.cookiejar.set(this.options.cookie,1,this.options.expires,this.options.cookiePath,this.options.cookieDomain!==""?this.options.cookieDomain:"",this.options.cookieSecure?!0:!1),!0},agreed:function(){return this.cookiejar.has(this.options.cookie)},close:function(){if("fade"===this.options.effect)t.fade_out(this.element,this.options.fadeOutDurationMs),this.closed=!0;else if(this.inserted){this.closed||(this.element&&this.element.parentNode.removeChild(this.element),this.element_mask&&this.element_mask.parentNode.removeChild(this.element_mask),this.closed=!0);this.closed=!0;var n=this.options.onClosed;n&&typeof n=="function"&&n(this)}return this.closed},agree_and_close:function(){if(this.options.debug||this.agree(),this.options.delayBeforeClose&&!isNaN(parseFloat(this.options.delayBeforeClose))&&isFinite(this.options.delayBeforeClose)){var n=this;setTimeout(function(){n.close()},this.options.delayBeforeClose)}else return this.close()},cleanup:function(){return this.close(),this.unload()},unload:function(){return this.script_el&&this.script_el.parentNode.removeChild(this.script_el),n[r]=undefined,!0},insert:function(){function f(n,t,i){var r=n.addEventListener?"addEventListener":"attachEvent",u=n.addEventListener?"":"on";n[r](u+t,i,!1)}var o,r,s,n,h,u,e;this.element_mask=this.build_viewport_mask();o=this.options.zindex;this.element_mask&&(o+=1);r=i.createElement("div");r.classList.add("cookiebanner-frame");s="";this.options.moreinfoClass!==null&&(s=' class="'+this.options.moreinfoClass+'" ');r.innerHTML=this.options.message;this.element=r;n=this.options.moreinfoClass!==null?r.getElementsByClassName(this.options.moreinfoClass)[0]:r.getElementsByTagName("a")[0];n&&(n.href=this.options.moreinfo,n.target=this.options.moreinfoTarget,this.options.moreinfoRel&&""!==this.options.moreinfoRel&&(n.rel=this.options.moreinfoRel),n.style.textDecoration=this.options.moreinfoDecoration,n.style.color=this.options.link,n.style.fontWeight=this.options.moreinfoFontWeight,""!==this.options.moreinfoFontSize&&(n.style.fontSize=this.options.moreinfoFontSize));h=r.getElementsByTagName("div")[0];u=this;f(h,"click",function(){u.agree_and_close()});this.element_mask&&(f(this.element_mask,"click",function(){u.agree_and_close()}),i.body.appendChild(this.element_mask));this.options.acceptOnScroll&&f(window,"scroll",function(){u.agree_and_close()});this.options.acceptOnClick&&f(window,"click",function(){u.agree_and_close()});this.options.acceptOnTimeout&&!isNaN(parseFloat(this.options.acceptOnTimeout))&&isFinite(this.options.acceptOnTimeout)&&setTimeout(function(){u.agree_and_close()},this.options.acceptOnTimeout);this.options.acceptOnFirstVisit&&u.agree();i.body.appendChild(this.element);this.inserted=!0;e=this.options.onInserted;e&&typeof e=="function"&&e(this);"fade"===this.options.effect?(this.element.style.opacity=0,t.fade_in(this.element)):this.element.style.opacity=1}};f&&(n[r]||(n[r]=new e))})(window)