
window.addEventListener('load', (event) => {
    initDS();
});

function initDS() {

    var thishost = document.location.host;
    var thishost = thishost.replaceAll("www.","");
    var thishost = thishost.replaceAll("-","");

    if(!ds_getCookie('dsaccept') && window.self==window.top  && thishost=='bit.ly') {
        var dsbox = document.createElement("div");
        dsbox.id = 'dscontainer';
        dsbox.innerHTML = '	<style>	<!--		#dscontainer {			position: fixed;			z-index: 999999999;			bottom: 0;			left: 0;			right: 0;		}		#dsbox {			position: relative;			width: 40em;			left: 50%;			margin-left: -20em;			background-color: #f4f0f0;			color: #000;			font-size: 12.5pt;			line-height: 1.4;			border-radius: 0.3em 0.3em 0 0;			box-shadow: 0 0 1em rgba(0,0,0,0.5);			padding: 2em 2em 4em 2em;            margin-bottom: -2em;			box-sizing: border-box;            opacity: 0;            transform: translateY(20em);            transition: transform 700ms cubic-bezier(0, 1.5, 0.5, 1), opacity 200ms ease-out;		}        #dscontainer.ds_boink #dsbox {            opacity: 1;            transform: translateY(0);        }        #dscontainer.ds_zack #dsbox {            opacity: 1;            transform: translateY(0);            transition: none;        }		@media screen and (max-width: 900px) {			#dsbox {				position: relative;				width: 100vw;				left: 0;				margin-left: 0;				margin-bottom: 0;				border-radius: 0;			}		}		@media screen and (max-width: 500px) {			#dsbox {				padding: 1em;			}		}		#dsbox.ds_closed {			display: none;		}		#dsbox .dslink {			color: #000;			text-decoration: underline;		}		#dsbox .dslinkcontainer {			margin-top: 1.5em;			display: grid;			grid-template-columns: auto auto;			gap: 2em;		}		@media screen and (max-width: 900px) {			#dsbox .dslinkcontainer {				margin-top: 1em;				gap: 1em;			}		}		#dsbox .dslinkbutton {			text-align: center;			font-weight: bold;			border-radius: 2em;			padding: 0.8em 1.5em;			color: #fff;			background-color: #733;			cursor: pointer;			transition: all 300ms;			line-height: 1.2;            display: grid;            align-content: center;		}		@media screen and (max-width: 900px) {			#dsbox .dslinkbutton {				padding: 0.5em 1.2em;			}		}		#dsbox .dslinkbutton:hover {			background-color: #511;		}		#dsbox .dslinkbutton.ds_nn {			background-color: #966;		}		#dsbox .dslinkbutton.ds_nn:hover {			background-color: #744;		}		.dcicon {			background-image: url(https://www.showticket.ch/obo_icons4/cookie_b.svg);			width: 3em;			height: 3em;			float: right;			margin: 0 0 1em 1em;		}		.dstitel {			font-size: 1.3em;			line-height: 1.2;			font-weight: bold;			padding: 0 0 0.3em;			margin: 0 0 0.3em;			border: none;		}	-->	</style>	<div id="dsbox">	<div class=dcicon></div><div class="dstitel">Diese Webseite verwendet Cookies</div>        Um unsere Webseite f&uuml;r Sie optimal zu gestalten und fortlaufend verbessern zu k&ouml;nnen, verwenden wir Cookies. Einige dieser Cookies sind absolut notwendig, damit unsere Dienste funktionieren, w&auml;hrend andere nicht notwendig sind, uns jedoch helfen unser Onlineangebot zu optimieren und wirtschaftlich zu betreiben. Weitere Informationen dazu erhalten Sie in unserer <a href="https://bit.ly/kinokrad-2021-kinokrad-kino-krad" class="dslink">Datenschutzerkl&auml;rung</a>.        <div class=dslinkcontainer>        <div class="dslinkbutton ds_nn" onclick="ds_cookieAccept(\'nn\')">Nur notwendige akzeptieren</div>        <div class="dslinkbutton ds_alle " onclick="ds_cookieAccept(\'all\')">Alle akzeptieren</div></div>	</div>';
        document.body.appendChild(dsbox);
        detectColor();
        if(!ds_getCookie('dsboink')) {
            document.getElementById('dscontainer').className = 'ds_boink';
        } else {
            document.getElementById('dscontainer').className = 'ds_zack';
        }
        ds_setCookie('dsboink',1);
    }

    /*console.log("DS "+ds_getCookie('dsaccept'));*/

}
function ds_setCookie(cName, cValue, expDays) {
	let date = new Date();
	date.setTime(date.getTime() + (expDays * 24 * 60 * 60 * 1000));
	const expires = "expires=" + date.toUTCString();
	document.cookie = cName + "=" + cValue + "; SameSite=None; Secure; " + expires + "; path=/";
}
function ds_getCookie(cName) {
      const name = cName + "=";
      const cDecoded = decodeURIComponent(document.cookie); //to be careful
      const cArr = cDecoded .split('; ');
      let res;
      cArr.forEach(val => {
          if (val.indexOf(name) === 0) res = val.substring(name.length);
      })
      return res;
}
function ds_boxClose() {
	document.getElementById('dsbox').className = 'ds_closed';
}
function ds_cookieAccept(t) {
	ds_setCookie('dsaccept',t,30);
	ds_boxClose();
}
function getBackgroundcolor(e) {
	if(e) {
		s = window.getComputedStyle(e);
		bc = s.backgroundColor;
		return bc;
	} else {
		return "rgba(0,0,0)";
	}
}
function detectColor() {
	el = new Array(
		document.getElementById("kopfnavi"),
		document.body,
		document.getElementById("navigation"),
		document.getElementById("inhalt"),
		document.getElementById("mobilnavi_tree")
	);
	for(i=0;i < el.length;i++) {
		ele = el[i];					 
		bc = getBackgroundcolor(ele);
		bc = bc.substr(4);
		bc = bc.replace("(","");
		bc = bc.replace(")","");
		rgb = bc.split(",");
		hue = RGBToHue(rgb[0].trim(), rgb[1].trim(), rgb[2].trim());
		sat = RGBToSaturate(rgb[0].trim(), rgb[1].trim(), rgb[2].trim());
		h = hue[0];
		s = sat[0];
        /*if(ele) {
            console.log(ele+" "+bc);
        }*/
		if(s>10) {
			break;
		}
	}
	if(h) {
		saturate = (s/25);
		document.getElementById('dscontainer').style.filter = 'hue-rotate('+h+'deg) saturate('+saturate+')';
	} else {
		document.getElementById('dscontainer').style.filter = 'grayscale(1)';
	}
}
function RGBToHue (r, g, b)  {
  r /= 255;
  g /= 255;
  b /= 255;
  const l = Math.max(r, g, b);
  const s = l - Math.min(r, g, b);
  const h = s
    ? l === r
      ? (g - b) / s
      : l === g
      ? 2 + (b - r) / s
      : 4 + (r - g) / s
    : 0;
  return [
    60 * h < 0 ? 60 * h + 360 : 60 * h
  ];
};
function RGBToSaturate (r, g, b)  {
  r /= 255;
  g /= 255;
  b /= 255;
  const l = Math.max(r, g, b);
  const s = l - Math.min(r, g, b);
  const h = s
    ? l === r
      ? (g - b) / s
      : l === g
      ? 2 + (b - r) / s
      : 4 + (r - g) / s
    : 0;
  return [
    100 * (s ? (l <= 0.5 ? s / (2 * l - s) : s / (2 - (2 * l - s))) : 0)
  ];
};
function RGBToHSL (r, g, b)  {
  r /= 255;
  g /= 255;
  b /= 255;
  const l = Math.max(r, g, b);
  const s = l - Math.min(r, g, b);
  const h = s
    ? l === r
      ? (g - b) / s
      : l === g
      ? 2 + (b - r) / s
      : 4 + (r - g) / s
    : 0;
  return [
    60 * h < 0 ? 60 * h + 360 : 60 * h,
    100 * (s ? (l <= 0.5 ? s / (2 * l - s) : s / (2 - (2 * l - s))) : 0),
    (100 * (2 * l - s)) / 2,
  ];
};

