<!-- Klaro -->
window.klaroConfig = {
    elementID: 'klaro',
    storageMethod: 'cookie',
    storageName: 'klaro',
    htmlTexts: false,
    cookieExpiresAfterDays: 30,
    default: false,
    mustConsent: false,
    acceptAll: true,
    hideDeclineAll: false,
    hideLearnMore: false,
    translations: {
        zz: {
            privacyPolicyUrl: '/datenschutz',
        },
        de: {
            privacyPolicyUrl: '/datenschutz',
            consentNotice: {
                description: 'Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unserer Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Verwendung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter. Unsere Partner führen diese Informationen möglicherweise mit weiteren Daten zusammen, die Sie ihnen bereitgestellt haben oder die sie im Rahmen Ihrer Nutzung der Dienste gesammelt haben. Mehr dazu in unserer {privacyPolicy}',
                learnMore: 'Einstellungen bearbeiten',
            },
            ok: "Akzeptieren",
            decline: "Ablehnen",

            save: "Einstellungen speichern",
            close: "Schlie\u00dfen",

            consentModal: {
                title: "Datenschutzeinstellungen",
                description: 'Hier können Sie einsehen und anpassen, welche Informationen wir sammeln.',
                privacyPolicy: {
                    text: "Detaillierte Informationen und wie Sie Ihre Einwilligung jederzeit widerrufen k\u00f6nnen, finden Sie in unserer {privacyPolicy}.",
                    name: "Datenschutzerkl\u00e4rung"
                }
            },
            /* Erklärtexte zu den Cookie-Kategorien */
            purposes: {
                required: {
                    title: 'Technisch notwendige Cookies',
                    description: 'Als technisch notwendige Cookies gelten alle Cookies, die für den Betrieb der Website und deren Funktionen erforderlich sind.'
                },
                analytics: {
                    title: 'Besucher-Statistiken',
                    description: 'Cookies dieser Kategorie ermöglichen es uns, die Nutzung der Website zu analysieren und die Leistung zu messen. '
                },
                advertising: {
                    title: 'Werbung',
                    description: 'Diese Dienste verarbeiten persönliche Informationen, um Ihnen personalisierte oder interessenbezogene Werbung zu zeigen.'
                },
                security: {
                    title: 'Sicherheit'
                },
            },
            /* aufklappbare Erklärtexte zu den einzelnen Diensten */
            required: {
                title: 'Session ID',
                description: 'Der Cookie JSSESSIONID ist für den Betrieb der Website notwendig.',
            },
            matomo: {
                title: 'Matomo',
                description: 'Matomo ist ein Webanalysedienst zur Sammlung von Daten über unsere Besucher und ihr Verhalten auf unserer Website. Die Daten werden anonymisiert auf unserem eigenen Server gesammelt und dienen der Verbesserung unserer Website.',
            },
            gtagalt: {
                title: 'Google Global Site Tag',
                description: 'Verfolgung von Website-Besuchen für Analysezwecke.',
            },
            gtag: {
                title: 'Google Remarketing',
                description: 'Mit Hilfe von Google Remarketing erkennt unsere Website, ob Sie sie bereits früher besucht haben.',
            },
            gclid: {
                title: 'Tracking Parameter von Google Adwords',
                description: 'Mit diesen Cookies können wir nachverfolgen, ob Sie über einen Link in einer Google-Anzeige auf unsere Website gekommen sind.',
            },
            facebookpixel: {
                title: 'Facebook Pixel',
                description: 'Das Facebook-Pixel ist ein Analysetool, mit dem wir die Wirksamkeit unserer Werbung messen, indem wir die Handlungen analysieren, die Sie auf unserer Website ausführen.',
            },
        },
    },
    services: [
        {
            name: 'required',
            default: true,
            defaultIfNoConsent: true,
            required: true,
            optOut: false,
            purposes: ['required'],
            cookies: [
                ['JSESSIONID', '/', 'www.kapiert.de'],
                'JSESSIONID'
            ],
        },
        {
            name: 'matomo',
            default: false,
            required: false,
            optOut: false,
            onlyOnce: true,
            purposes: ['analytics'],
            cookies: [
                [/^_pk_.*$/, '/', 'track.westermann.de']
            ],
        },
        {
            name: 'gtag',
            default: false,
            required: false,
            optOut: false,
            onlyOnce: true,
            purposes: ['analytics'],
            cookies: [
                [/^SID.*$/, '/', '.google.de'],
                [/^_Secure-.*$/, '/', '.google.com'],
                [/^SID.*$/, '/', '.google.com'],
                [/^NID.*$/, '/', '.google.com'],
                ['test_cookie', '/', '.doubleclick.net']
            ],
        },
        {
            name: 'google-tag-manager',
            purposes: ['required'],
            required: true,
            onAccept: `
                // we notify the tag manager about all services that were accepted. You can define
                // a custom event in GTM to load the service if consent was given.
                for(let k of Object.keys(opts.consents)){
                    if (opts.consents[k]){
                        let eventName = 'klaro-'+k+'-accepted'
                        dataLayer.push({'event': eventName})
                    }
                }
                // if consent for Google Analytics was granted we enable analytics storage
                if (opts.consents[opts.vars.googleAnalyticsName || 'google-analytics']){
                    console.log("Google analytics usage was granted")
                    gtag('consent', 'update', {'analytics_storage': 'granted'})
                }
                // if consent for Google Ads was granted we enable ad storage
                if (opts.consents[opts.vars.adStorageName || 'google-ads']){
                    console.log("Google ads usage was granted")
                    gtag('consent', 'update', {'ad_storage': 'granted'})
                }
            `,
            onInit: `
                // initialization code here (will be executed only once per page-load)
                window.dataLayer = window.dataLayer || [];
                window.gtag = function(){dataLayer.push(arguments)}
                gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
                gtag('set', 'ads_data_redaction', true)
            `,
            onDecline: `
                // initialization code here (will be executed only once per page-load)
                window.dataLayer = window.dataLayer || [];
                window.gtag = function(){dataLayer.push(arguments)}
                gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied'})
                gtag('set', 'ads_data_redaction', true)
            `,
            vars: {
                googleAnalytics: 'google-analytics'
            }
        },
        {
            name: 'gclid',
            default: false,
            required: false,
            optOut: false,
            onlyOnce: true,
            purposes: ['advertising'],
            cookies: [
                ['gclid', '/', 'www.kapiert.de'],
                ['__gads', '/', '.kapiert.de'],
                ['utm_source', '/', 'www.kapiert.de'],
                ['utm_medium', '/', 'www.kapiert.de'],
                ['utm_campaign', '/', 'www.kapiert.de'],
                ['gclid'],
                ['utm_source'],
                ['utm_medium'],
                ['utm_campaign'],
            ],
        },
        {
            name: 'facebookpixel',
            default: false,
            required: false,
            optOut: false,
            onlyOnce: true,
            purposes: ['advertising'],
            cookies: [
                ['fr', '/', '.facebook.com'],
                ['_fbp', '/', '.kapiert.de']
            ],
        }
    ],

    /*
You can define an optional callback function that will be called each time the
consent state for any given service changes. The consent value will be passed as
the first parameter to the function (true=consented). The `service` config will
be passed as the second parameter.
*/
    callback: function(consent, service) {
        window.dataLayer = window.dataLayer || [];
        let data = {
            'event': 'klaroConsent',
        };
        data['klaroConsent_' + service.name] = consent;
        window.dataLayer.push(data);

        console.log('User consent for service ' + service.name + ': consent=' + consent);
    },
};
