// contents of this file are output as javascript

/*! js-cookie v3.0.0-rc.0 | MIT */
!function (e, t) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = e || self, function () {
        var r = e.Cookies, n = e.Cookies = t();
        n.noConflict = function () {
            return e.Cookies = r, n
        }
    }())
}(this, function () {
    "use strict";

    function e(e) {
        for (var t = 1; t < arguments.length; t++) {
            var r = arguments[t];
            for (var n in r) e[n] = r[n]
        }
        return e
    }

    var t = {
        read: function (e) {
            return e.replace(/%3B/g, ";")
        }, write: function (e) {
            return e.replace(/;/g, "%3B")
        }
    };
    return function r(n, i) {
        function o(r, o, u) {
            if ("undefined" != typeof document) {
                "number" == typeof (u = e({}, i, u)).expires && (u.expires = new Date(Date.now() + 864e5 * u.expires)), u.expires && (u.expires = u.expires.toUTCString()), r = t.write(r).replace(/=/g, "%3D"), o = n.write(String(o), r);
                var c = "";
                for (var f in u) u[f] && (c += "; " + f, !0 !== u[f] && (c += "=" + u[f].split(";")[0]));
                return document.cookie = r + "=" + o + c
            }
        }

        return Object.create({
            set: o, get: function (e) {
                if ("undefined" != typeof document && (!arguments.length || e)) {
                    for (var r = document.cookie ? document.cookie.split("; ") : [], i = {}, o = 0; o < r.length; o++) {
                        var u = r[o].split("="), c = u.slice(1).join("="), f = t.read(u[0]).replace(/%3D/g, "=");
                        if (i[f] = n.read(c, f), e === f) break
                    }
                    return e ? i[e] : i
                }
            }, remove: function (t, r) {
                o(t, "", e({}, r, {expires: -1}))
            }, withAttributes: function (t) {
                return r(this.converter, e({}, this.attributes, t))
            }, withConverter: function (t) {
                return r(e({}, this.converter, t), this.attributes)
            }
        }, {attributes: {value: Object.freeze(i)}, converter: {value: Object.freeze(n)}})
    }(t, {path: "/"})
});


document.querySelector(".cookiebanner-info a").addEventListener("click", function (event) {
    event.preventDefault();
    event.stopPropagation();
    document.querySelector(".cookiebanner").classList.toggle("info-open");
});

var CBCookies = [
                {
            cookieID: 1,
            type: 1,
            script: function () {
                            }
        },
                {
            cookieID: 2,
            type: 2,
            script: function () {
                (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
 
  ga('create', 'UA-83678887-1', 'auto');
  ga('send', 'pageview');            }
        },
            ]
;

var CB = {
    container: document.querySelector(".cookiebanner-container"),
    loaded: {},
    preferences: null,
    setCookie: function () {
        Cookies.set('cookiebanner', JSON.stringify(this.preferences), {
            secure: true,
            sameSite: 'lax',
            expires: 365
        });
    },
    allowSelection: function () {
        this.preferences = {};
        for (var i=0; i<CBCookies.length; i++) {
            var cookie = CBCookies[i];
            var input = document.querySelector('.cookiebanner-selection[data-cookie="' + cookie.cookieID + '"] input');
            if (input && input.checked) {
                this.preferences[cookie.cookieID] = true;
            }
        };
        this.setCookie();
        this.evaluateCookie();
    },
    allowAll: function () {
        for (var i=0; i<CBCookies.length; i++) {
            var cookie = CBCookies[i];
            this.preferences[cookie.cookieID] = true;
        };
        this.setCookie();
        this.evaluateCookie();
    },
    evaluateCookie: function () {
        if (this.preferences == null) {
            this.preferences = Cookies.get("cookiebanner");

            try {
                this.preferences = JSON.parse(this.preferences);
            }
            catch (e) {
                this.preferences = {};
                this.showBanner();
                return;
            }
        }

        this.hideBanner();

        document.querySelectorAll('.cookiebanner-selection[data-cookie] input').forEach(function (item) {
            item.checked = this.preferences[parseInt(item.closest('.cookiebanner-selection').getAttribute('data-cookie'))] == true;
        }.bind(this));


        for (var i=0; i<CBCookies.length; i++) {
            var cookie = CBCookies[i];
            if (this.preferences[cookie.cookieID] && !CB.loaded[cookie.cookieID]) {
                CB.loaded[cookie.cookieID] = true;
                cookie.script();
            }
        };

        window.dispatchEvent(new Event('cookies_loaded'));
    },
    showBanner: function () {
        this.container.classList.add('cookiebanner-visible');
        this.container.style.display = "block";
    },
    hideBanner: function () {
        this.container.classList.remove('cookiebanner-visible');
        setTimeout(function () {
            CB.container.style.display = "none";
        }, 1100);
    },
    isExternalMediaAllowed: function() {
        for (var i=0; i<CBCookies.length; i++) {
            var cookie = CBCookies[i];
            if (cookie.type == 4 && this.preferences[cookie.cookieID]) {
                return this.preferences[cookie.cookieID];
            }
        }
        return false;
    },
    isGoogleMapsAllowed: function() {
        var external = this.isExternalMediaAllowed();
        return external ? true : typeof this.preferences.googlemaps != "undefined" && this.preferences.googlemaps == true;
    },
    isTwitterImagesAllowed: function() {
        var external = this.isExternalMediaAllowed();
        return external ? true : typeof this.preferences.twitterimages != "undefined" && this.preferences.twitterimages == true;
    },
    isYoutubeAllowed: function() {
        if (typeof this.preferences.youtube != "undefined") return this.preferences.youtube == true;
        return this.isExternalMediaAllowed();
    },
    allowGoogleMaps: function() {
        this.preferences.googlemaps = true;
        this.setCookie();
    },
    allowYoutube: function() {
        this.preferences.youtube = true;
        this.setCookie();
    },
    allowTwitterImages: function() {
        this.preferences.twitterimages = true;
        this.setCookie();
    }
};

document.querySelector('.cookiebanner .allow-all').addEventListener("click", function (event) {
    event.preventDefault();
    event.stopPropagation();
    CB.allowAll();
});

document.querySelector('.cookiebanner .allow-selection').addEventListener("click", function (event) {
    event.preventDefault();
    event.stopPropagation();
    CB.allowSelection();
});

window.addEventListener("load", function() { CB.evaluateCookie() });

