var dsAllCookies = {};var dsLinks = {};var dsShowSettings = 0;var dsSettingsOpen = false;
var dsPopupDirectlyOpen = false;
var dsBodyStyleBefore = "";

jQuery(document).ready(function() {
	jQuery("head").append("<style>.ds-cookiebanner-blocker{background-color: rgba(0,0,0,0.7);position: fixed;height: 100%;width: 100%;z-index: 999999999;bottom: 0px;left: 0px;opacity: 1;transition: 0.4s ease opacity;overflow-y: auto;}.ds-cookiebanner-blocker .ds-cookie-scroll {display: grid;justify-content: center;align-content: center;}.ds-cookiebanner-blocker.dsHide{opacity: 0;}.ds-cookiebanner *, .ds-cookiepopup * {color: ;font-family: ;box-sizing: content-box;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;}.ds-cookiebanner a, .ds-cookiepopup a {font-size: ;}.ds-cookiebanner p, .ds-cookiepopup p, .ds-cookiebanner span, .ds-cookiepopup span {font-size: ;}.ds-cookiebanner h1, .ds-cookiepopup h1 {font-size: ;}.ds-cookiebanner h2, .ds-cookiepopup h2 {font-size: ;}.ds-cookiebanner h3, .ds-cookiepopup h3 {font-size: ;}.ds-cookiebanner h4, .ds-cookiepopup h4 {font-size: ;}.ds-cookiebanner h5, .ds-cookiepopup h5 {font-size: ;}.ds-cookiebanner{position: absolute;bottom: 0px;background-color: #FFF;width: 100%;}.ds-cookiebanner.hide{display: none;}.ds-cookiepopup {width: 50vw;min-width: 500px;max-width: ;position: relative;}@media(max-width: 767px){.ds-cookiepopup {width: 90vw;min-width: 90vw;max-width: 90vw;}}.ds-cookiepopup form {margin: 0;padding: 15px 10px;width: calc(100% - 20px);}.ds-cookiebanner > div .cookiebanner-moreLess {}.ds-cookiebanner > div .cookiebanner-moreLess span {cursor: pointer;}.ds-cookiebanner > div .cookiebanner-moreLess.hide {display: none;}.ds-cookiepopup > .cookieBanner-closePopup {position: absolute;height: 17px;width: 17px;right: 30px;top: 30px;cursor: pointer;padding: 0;mask: url(\"//consent.dimaster.ch/templates/web/img/close.svg\");-webkit-mask: url(\"//consent.dimaster.ch/templates/web/img/close.svg\");mask-size: contain;background-color: #000;z-index: 9;}.ds-cookiebanner > div, .ds-cookiepopup > div{max-width: ;width: 90%;margin: 0px auto;padding: 20px 5%;background-color: white;border-radius: 5px;}.ds-cookiepopup > div {margin: 30px auto;}.ds-cookiebanner > div > div.ds-cookiebanner-title, .ds-cookiepopup > div > div.ds-cookiebanner-title {display: grid;grid-template-columns: 1fr min-content;grid-gap: 10px;width: 100%;}.ds-cookiebanner > div > div.ds-cookiebanner-title h3, .ds-cookiepopup > div > div.ds-cookiebanner-title h3 {padding-bottom: 7px;margin: 20px 0;}.ds-cookiebanner > div > div.ds-cookiebanner-title select, .ds-cookiepopup > div > div.ds-cookiebanner-title select {background-color: #FFF;border-radius: 5px;height: 30px;align-self: center;padding: 0 10px;}.ds-cookiebanner > div p, .ds-cookiepopup > div p {margin: 0px;padding: 0px;}.ds-cookiebanner > div > div.ds-cookiebanner-options {display: grid;grid-template-columns: 6fr repeat(3,4fr);grid-gap: 20px;align-items: center;padding-top: 30px;}@media(max-width: 767px){.ds-cookiebanner > div > div.ds-cookiebanner-options {grid-template-columns: 1fr;}}.ds-cookiebanner > div > div.ds-cookiebanner-options div.ds-cookiebanner-links{cursor: pointer;}@media(max-width: 767px){.ds-cookiebanner > div > div.ds-cookiebanner-options div.ds-cookiebanner-links{text-align: center;}}.ds-cookiebanner > div > div.ds-cookiebanner-options div.ds-cookiebanner-links a:last-of-type{padding-left: 20px;}.ds-cookiebanner > div > div.ds-cookiebanner-options div.ds-cookiebanner-button{background-color: ;color: ;padding: 9px 0px;text-align: center;width: 100%;border-radius: 12px;cursor: pointer;transition: 0.4s ease transform;transform: translateY(0px);}.ds-cookiebanner > div > div.ds-cookiebanner-options div.ds-cookiebanner-button:hover {transform: translateY(-4px);}.ds-cookiebanner > div > div.ds-cookiebanner-options div.ds-cookiebanner-settings{background-color: ;color: ;}.ds-cookiebanner > div #cookieBannerSettingsForm{position: relative;}.ds-cookiebanner > div #cookieBannerSettingsForm > form > div, .ds-cookiepopup #cookieBannerSettingsForm > form > div {display: grid;grid-template-columns: 1fr 1fr;grid-gap: 15px;}@media(max-width: 767px){.ds-cookiebanner > div #cookieBannerSettingsForm > form > div, .ds-cookiepopup #cookieBannerSettingsForm > form > div {grid-template-columns: 1fr;}}.ds-cookiebanner > div #cookieBannerSettingsForm > form > div > input, .ds-cookiepopup #cookieBannerSettingsForm > form > div > input {display: inline-block;width: 100%;max-width: 500px;padding: 10px 0;border-radius: 5px;cursor: pointer;background-color: ;color: ;transition: 0.4s ease transform;transform: translateY(0px);cursor: pointer;-webkit-appearance: none;border: 0;}.ds-cookiebanner > div #cookieBannerSettingsForm > form > div > input:hover, .ds-cookiepopup #cookieBannerSettingsForm > form > div > input:hover {transform: translateY(-4px);}.ds-cookiebanner > div #cookieBannerSettingsForm article, .ds-cookiepopup #cookieBannerSettingsForm article{display: grid;grid-template-columns: min-content 1fr min-content;margin: 20px 0;border: 1px solid #444;padding: 10px;width: calc(100% - 22px);border-radius: 5px;}.ds-cookiebanner > div #cookieBannerSettingsForm label, .ds-cookiepopup > div #cookieBannerSettingsForm label {padding: 0;height: auto;font-size: ;display: flex;}.ds-cookiebanner > div #cookieBannerSettingsForm h2, .ds-cookiepopup > div #cookieBannerSettingsForm h2 {padding: 0;margin: 0;font-size: 19px;}.ds-cookiebanner > div #cookieBannerSettingsForm p, .ds-cookiepopup > div #cookieBannerSettingsForm p {font-size: ;}.ds-cookiebanner > div #cookieBannerSettingsForm label input[type='checkbox'], .ds-cookiepopup #cookieBannerSettingsForm label input[type='checkbox'] {-webkit-appearance: none;box-shadow: none;border-radius: 0px;height: 0;width: 0;border: 0;padding: 0;margin: 0;}.ds-cookiebanner > div #cookieBannerSettingsForm label input[type='checkbox'] + div.ds-cookie-checkbox, .ds-cookiepopup #cookieBannerSettingsForm label input[type='checkbox'] + div.ds-cookie-checkbox{height: 20px;width: 20px;display: inline-block;margin-right: 10px;margin-top: 2px;background-color: ;}.ds-cookiebanner > div #cookieBannerSettingsForm label input[type='checkbox']:checked + div.ds-cookie-checkbox, .ds-cookiepopup #cookieBannerSettingsForm label input[type='checkbox']:checked + div.ds-cookie-checkbox{}.ds-cookiebanner > div #cookieBannerSettingsForm label[readonly] div.ds-cookie-checkbox, .ds-cookiepopup #cookieBannerSettingsForm label[readonly] div.ds-cookie-checkbox{}.ds-cookiebanner > div #cookieBannerSettingsForm label input[type='checkbox'] + div.ds-cookie-checkbox::before, .ds-cookiepopup #cookieBannerSettingsForm label input[type='checkbox'] + div.ds-cookie-checkbox::before{}.ds-cookiebanner > div #cookieBannerSettingsForm label input[type='checkbox']:checked + div.ds-cookie-checkbox::before, .ds-cookiepopup #cookieBannerSettingsForm label input[type='checkbox']:checked + div.ds-cookie-checkbox::before {}.ds-cookiebanner > div #cookieBannerSettingsForm label[readonly] div.ds-cookie-checkbox::before, .ds-cookiepopup #cookieBannerSettingsForm label[readonly] div.ds-cookie-checkbox::before {}.ds-cookiebanner > div #cookieBannerSettingsForm .cookiebanner-arrow, .ds-cookiepopup #cookieBannerSettingsForm .cookiebanner-arrow {width: 15px;height: 15px;cursor: pointer;transition: 0.4s ease transform;margin-top: 4px;}.ds-cookiebanner > div #cookieBannerSettingsForm .cookiebanner-arrow.cookiebanner-arrowopen, .ds-cookiepopup #cookieBannerSettingsForm .cookiebanner-arrow.cookiebanner-arrowopen {transform: rotate(-180deg);}.ds-cookiebanner > div #cookieBannerSettingsForm .cookiebanner-settingsSubcontent, .ds-cookiepopup #cookieBannerSettingsForm .cookiebanner-settingsSubcontent {transition: 0.4s ease height;overflow: hidden;grid-column: 1 / 4;}.ds-cookiebanner > div #cookieBannerSettingsForm .cookiebanner-settingsSubcontent:not(.cookiebanner-open), .ds-cookiepopup #cookieBannerSettingsForm .cookiebanner-settingsSubcontent:not(.cookiebanner-open) {height: 0px !important;}.ds-cookiebanner > div #cookieBannerSettingsForm .cookiebanner-settingsSubcontent label, .ds-cookiepopup #cookieBannerSettingsForm .cookiebanner-settingsSubcontent label {padding-top: 10px;}.ds-cookiebanner > div #cookieBannerSettingsForm .cookiebanner-settingsSubcontent p, .ds-cookiepopup #cookieBannerSettingsForm .cookiebanner-settingsSubcontent p {font-size: 12px;padding-left: 31px;}#dsSettings {display: inline-block;position: fixed;height: 50px;width: 50px;z-index: 999999999;box-shadow: 0px 0px 5px rgba(0,0,0,0.2);}#dsSettings > div {mask: url(\"//consent.dimaster.ch/templates/web/img/cookie_settings.svg\");-webkit-mask: url(\"//consent.dimaster.ch/templates/web/img/cookie_settings.svg\");background-color: ;height: calc(100% - 10px);width: calc(100% - 10px);margin: 5px;}</style>");
	var cookie = localStorage.getItem("ds-cookie");
	if(cookie == undefined){
		dsOpenCookie();
	}else{
		dsExecScript();
	}
});

function dsOpenCookie(fromSettingIcon) {
	if(fromSettingIcon == undefined) {
		fromSettingIcon = false;
	}
	var hide = false;
	jQuery.each(dsLinks, function(k, v) {
		if(location.href.indexOf(v) >= 0) {
			hide = true;
		}
	});
	if(!hide || fromSettingIcon) {
		jQuery("body").append("<div class='ds-cookiebanner-blocker dsHide'><div class='ds-cookie-scroll'><div class='ds-cookiebanner'><div><div class='ds-cookiebanner-title'><h3></h3></div><p></p><div class='ds-cookiebanner-options'><div class='ds-cookiebanner-links'><a href='javascript:dsOpenPopup(\"/async/customer/getContent?customer=&lang=&type=privacy\",false)'>Privacy</a><a href='javascript:dsOpenPopup(\"/async/customer/getContent?customer=&lang=&type=impressum\",false)'>Imprint</a></div><div class='ds-cookiebanner-settings ds-cookiebanner-button' onclick='dsOpenSettings()'>Settings </div><div class='ds-cookiebanner-only-functional ds-cookiebanner-button'>Functional cookies only</div><div class='ds-cookiebanner-accept ds-cookiebanner-button'>Accept All</div></div></div></div></div></div>");
		dsBodyStyleBefore = jQuery("body").attr("style");
		jQuery("body").css({
			height: "100vh",
			overflow: "hidden"
		});
		jQuery(".ds-cookiebanner-blocker").removeClass("dsHide");
		dsMoreLess();
		if(jQuery(".ds-cookiebanner > div > div.ds-cookiebanner-title select, .ds-cookiepopup > div > div.ds-cookiebanner-title select").length > 0) {
			jQuery(".ds-cookiebanner > div > div.ds-cookiebanner-title select, .ds-cookiepopup > div > div.ds-cookiebanner-title select").on("change", function() {
				location.href = "/"+jQuery(this).val()+"/";
			});
		}

		jQuery(".ds-cookiebanner-accept, .ds-cookiebanner-only-functional").click(function() {
			var data = "save_all=on";
			if(jQuery(this).hasClass("ds-cookiebanner-only-functional")) {
				data = "save_functional=on";
			}
			jQuery.ajax({
				type: 'POST',
				data: data,
				url: "https://consent.dimaster.ch/async/customer/saveCookie?customer=&lang="
			})
			.done(function(data) {
				var cookieData = JSON.parse(data);
				localStorage.setItem("ds-cookie", JSON.stringify(cookieData));
				dsExecScript();
			});
		});
	}
}

function dsExecScript() {
	if(jQuery(".ds-cookiebanner-blocker").length > 0) {
		jQuery(".ds-cookiebanner-blocker").addClass("dsHide");
		if(dsBodyStyleBefore == undefined) {
			dsBodyStyleBefore = "";
		}
		jQuery("body").attr("style",dsBodyStyleBefore);
		setTimeout(function() {
			jQuery(".ds-cookiebanner-blocker").remove();
		}, 1000);
	}
	var cookie = JSON.parse(localStorage.getItem("ds-cookie"));
	dsAppendSettings();
	jQuery.each(cookie, function(k, v) {
		if(v.type == "all" || v.type == "functional") {
			jQuery.each(dsAllCookies, function(key, val) {
				if(val.readonly == 1 || (v.type != "functional" && val.readonly == 0)) {
					if(val.execute == 1) {
						jQuery("head").append(val.script);
					} else {
						eval(val.script);
					}
				}
			});
		} else {
			if(dsAllCookies[v.type].execute == 1) {
				jQuery("head").append(dsAllCookies[v.type].script);
			} else {
				eval(dsAllCookies[v.type].script);
			}
		}
	});
}

function dsAppendSettings() {
	if(dsShowSettings == "1" && jQuery("body #dsSettings").length <= 0) {
		jQuery("body").append("<a id='dsSettings' href='javascript:dsOpenCookie(true)'><div></div></a>");
	}
}

function dsOpenPopupDirect(url, hideBanner) {
	dsPopupDirectlyOpen = true;
	jQuery("body").append("<div class='ds-cookiebanner-blocker dsHide'><div class='ds-cookie-scroll'><div class='ds-cookiebanner'><div><div class='ds-cookiebanner-title'><h3></h3></div><p></p><div class='ds-cookiebanner-options'><div class='ds-cookiebanner-links'><a href='javascript:dsOpenPopup(\"/async/customer/getContent?customer=&lang=&type=privacy\",false)'>Privacy</a><a href='javascript:dsOpenPopup(\"/async/customer/getContent?customer=&lang=&type=impressum\",false)'>Imprint</a></div><div class='ds-cookiebanner-settings ds-cookiebanner-button' onclick='dsOpenSettings()'>Settings </div><div class='ds-cookiebanner-only-functional ds-cookiebanner-button'>Functional cookies only</div><div class='ds-cookiebanner-accept ds-cookiebanner-button'>Accept All</div></div></div></div></div></div>");
	dsBodyStyleBefore = jQuery("body").attr("style");
	jQuery("body").css({
		height: "100vh",
		overflow: "hidden"
	});
	dsOpenPopup(url,false).then(() => {
		jQuery(".ds-cookiebanner-blocker").removeClass("dsHide");
	});
}

function dsOpenSettings() {
	//jQuery("body").append("<div class='ds-cookiebanner-blocker dsHide'><div class='ds-cookie-scroll'><div class='ds-cookiebanner'><div><div class='ds-cookiebanner-title'><h3></h3></div><p></p><div class='ds-cookiebanner-options'><div class='ds-cookiebanner-links'><a href='javascript:dsOpenPopup(\"/async/customer/getContent?customer=&lang=&type=privacy\",false)'>Privacy</a><a href='javascript:dsOpenPopup(\"/async/customer/getContent?customer=&lang=&type=impressum\",false)'>Imprint</a></div><div class='ds-cookiebanner-settings ds-cookiebanner-button' onclick='dsOpenSettings()'>Settings </div><div class='ds-cookiebanner-only-functional ds-cookiebanner-button'>Functional cookies only</div><div class='ds-cookiebanner-accept ds-cookiebanner-button'>Accept All</div></div></div></div></div></div>");
	dsOpenPopup("/async/customer/getContent?customer=&lang=&type=settings",false)
	.then(function() {
		//jQuery(".ds-cookiebanner-blocker").removeClass("dsHide");

		var cookie = JSON.parse(localStorage.getItem("ds-cookie"));
		var i = 0;
		jQuery.each(cookie, function(k, v) {
			if(v.type == "all") {
				jQuery.each(dsAllCookies, function(key, val) {
					jQuery("#cookieBannerSettingsForm input[name='allow_"+key+"']").prop("checked", true);
				});
			} else {
				var tmp = jQuery("#cookieBannerSettingsForm input[name='allow_"+v.type+"']");
				tmp.addClass("tmp"+i);
				if (!tmp.is(":checked")) {
					tmp.prop("checked", true);
				}
			}
			checkCatSettingsCheckbox();
			i++;
		});
		//dsSettingsOpen = true;
	});
}

function dsMoreLess() {
	if(jQuery(".cookiebanner-more").length > 0) {
		jQuery(".cookiebanner-more > span").click(function() {
			jQuery(".cookiebanner-less").removeClass("hide");
			jQuery(".cookiebanner-more").addClass("hide");
		});

		jQuery(".cookiebanner-less > span").click(function() {
			jQuery(".cookiebanner-less").addClass("hide");
			jQuery(".cookiebanner-more").removeClass("hide");
		});
	}
}

function dsOpenPopup(url, hideBanner){
	return new Promise((resolve) => {
		if(hideBanner){
			jQuery(".ds-cookiebanner").remove();
		}
		if(url.substring(0,1) == "/"){
			url = url.substring(1, url.length);
		}
		jQuery.ajax({
			url: "https://consent.dimaster.ch/"+url
		})
		.done(function(data) {
			if(jQuery(".ds-cookiebanner-blocker .ds-cookiepopup").length <= 0) {
				jQuery(".ds-cookiebanner-blocker > div").append("<div class='ds-cookiepopup'><div class='cookieBanner-closePopup'></div><div>"+data+"</div></div>");

				jQuery(".ds-cookiepopup > .cookieBanner-closePopup").click(function() {
					if(dsSettingsOpen || dsPopupDirectlyOpen) {
						if(dsPopupDirectlyOpen) {
							dsPopupDirectlyOpen = false;
							if(dsBodyStyleBefore == undefined) {
								dsBodyStyleBefore = "";
							}
							jQuery("body").attr("style",dsBodyStyleBefore);
						}
						jQuery(".ds-cookiebanner-blocker").addClass("dsHide");
						setTimeout(function() {
							jQuery(".ds-cookiebanner-blocker").remove();
						}, 1000);
					} else {
						jQuery(".ds-cookiepopup").remove();
						jQuery(".ds-cookiebanner").removeClass("hide");
					}
				});
			} else {
				jQuery(".ds-cookiebanner-blocker .ds-cookiepopup > div").html(data);
			}
			jQuery(".ds-cookiebanner-blocker .ds-cookiebanner").addClass("hide");
			resolve();
		})
		.fail(function() {
			console.log("error");
		});
	});
}

function initCheckboxSettings() {
	jQuery("#cookieBannerSettingsForm form").on("submit", function() {
		jQuery.ajax({
			type: 'POST',
			data: jQuery("#cookieBannerSettingsForm form").serialize()+"&"+jQuery(this).find("input[type=submit]:focus").attr("name")+"=on",
			url: "https://consent.dimaster.ch/async/customer/saveCookie?customer=&lang="
		})
		.done(function(data) {
			var cookieData = JSON.parse(data);
			localStorage.setItem("ds-cookie", JSON.stringify(cookieData));
			if(dsSettingsOpen) {
				location.reload();
			} else {
				dsExecScript();
			}
		});
		return false;
	});

	setTimeout(function() {
		jQuery("#cookieBannerSettingsForm form input").each(function() {
			if(jQuery(this).attr("readonly") == undefined && jQuery(this).attr("name").indexOf("allow") >= 0 && jQuery(this).is(":checked")) {
				var parent = jQuery(this).parent().parent().parent().parent();
				console.log(parent)
				parent.children(".cookiebanner-arrow").addClass("cookiebanner-arrowopen");
				parent.children(".cookiebanner-settingsSubcontent").addClass("cookiebanner-open");
			}
		});
	},50);

	jQuery("#cookieBannerSettingsForm form input").on("change", function() {
		if(jQuery(this).attr("name") == "all") {
			if(jQuery(this).is(":checked")) {
				jQuery("#cookieBannerSettingsForm form input[type='checkbox']:not(:disabled)").prop("checked",true);
			} else {
				jQuery("#cookieBannerSettingsForm form input[type='checkbox']:not(:disabled)").prop("checked",false);
			}
		} else if(jQuery(this).attr("name").indexOf("cat_") >= 0) {
			var id = jQuery(this).attr("name").replace("cat_","");
			if(jQuery(this).is(":checked")) {
				jQuery("#cookieBannerSettingsForm form input[category="+id+"]:not(:disabled)").prop("checked",true)
			} else {
				jQuery("#cookieBannerSettingsForm form input[category="+id+"]:not(:disabled)").prop("checked",false)
			}
		}
		checkCatSettingsCheckbox();
	});

	jQuery("#cookieBannerSettingsForm *[readonly]").click(function(e) {
		e.preventDefault();
	});

	jQuery(".cookiebanner-arrow").click(function(){
		jQuery(this).toggleClass("cookiebanner-arrowopen");
		jQuery(this).parent().children(".cookiebanner-settingsSubcontent").toggleClass("cookiebanner-open");
	});

	jQuery("#cookieBannerSettingsForm .cookiebanner-settingsSubcontent").each(function() {
		jQuery(this).css("height", jQuery(this).children().height()+"px");
	});
}

function checkCatSettingsCheckbox() {
	var overallChecked = true;
	jQuery("#cookieBannerSettingsForm form .cookiebanner-catCheckbox").each(function() {
		var catChecked = true;
		var catObj = jQuery(this);
		jQuery(this).parent().parent().find("input:not(.cookiebanner-catCheckbox)").each(function() {
			if(!jQuery(this).is(":checked")) {
				catChecked = false;
				overallChecked = false;
			}
		});
		if(catChecked) {
			catObj.prop("checked", true);
		} else {
			catObj.prop("checked", false);
		}
	});
	if(overallChecked) {
		jQuery("#cookieBannerSettingsForm form input[name='all']:not(:disabled)").prop("checked", true)
	} else {
		jQuery("#cookieBannerSettingsForm form input[name='all']:not(:disabled)").prop("checked", false)
	}
}
