(function (){
'use strict';
var analyticsCfg=window.mmAnalyticsCfg||null;
var COOKIE_PREFIX='mm_';
var COOKIE_SUFFIX='_consent';
var analyticsLoaded=false;
function cookieName(category){
return COOKIE_PREFIX + category + COOKIE_SUFFIX;
}
function readCookie(name){
var parts=document.cookie ? document.cookie.split(';'):[];
for (var i=0; i < parts.length; i++){
var pair=parts[i].split('=');
if(pair[0].trim()===name){
return decodeURIComponent((pair[1]||'').trim());
}}
return '';
}
function writeCookie(name, value, days){
var expires='';
if(days){
var date=new Date();
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
expires='; expires=' + date.toUTCString();
}
document.cookie=name + '=' + encodeURIComponent(value) + expires + '; path=/; SameSite=Lax';
}
function loadGtag(){
if(analyticsLoaded||!analyticsCfg||!analyticsCfg.measurementId||!analyticsCfg.gtagUrl){
return;
}
analyticsLoaded=true;
var script=document.createElement('script');
script.async=true;
script.src=analyticsCfg.gtagUrl;
document.head.appendChild(script);
window.dataLayer=window.dataLayer||[];
function gtag(){
window.dataLayer.push(arguments);
}
window.gtag=window.gtag||gtag;
window.gtag('js', new Date());
window.gtag('config', analyticsCfg.measurementId);
}
function clearGaCookies(){
var cookies=document.cookie ? document.cookie.split(';'):[];
for (var i=0; i < cookies.length; i++){
var cname=cookies[i].split('=')[0].trim();
if(cname.indexOf('_ga')===0){
document.cookie=cname + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/';
}}
}
function applyGrantSideEffects(category){
if(category==='analytics'){
loadGtag();
}}
var api={
grant: function (category){
writeCookie(cookieName(category), 'granted', 365);
applyGrantSideEffects(category);
},
revoke: function (category){
writeCookie(cookieName(category), 'denied', 365);
if(category==='analytics'){
clearGaCookies();
}},
status: function (category){
var value=readCookie(cookieName(category));
if(value==='granted'){
return 'granted';
}
if(value==='denied'){
return 'denied';
}
return 'unknown';
}};
window.mmConsent=api;
window.mmAnalytics={
grant: function (){
api.grant('analytics');
},
revoke: function (){
api.revoke('analytics');
},
status: function (){
return api.status('analytics');
}};
if(api.status('analytics')==='granted'){
loadGtag();
}})();