PluginProbe
CookieAdmin – Cookie Consent Banner / 1.2.5
CookieAdmin – Cookie Consent Banner v1.2.5
1.2.5 1.2.4 1.2.3 1.2.2 1.2.1 1.2.0 1.1.9 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
cookieadmin / assets / js / consent.js

consent.js in CookieAdmin – Cookie Consent Banner 1.2.5, at assets/js/consent.js

706 lines 21.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 // This file handle the cookie banner and stuff related to that.
2
3 var days = cookieadmin_policy.cookieadmin_days;
4
5 if(typeof cookieadmin_is_consent === 'undefined'){
6 window.cookieadmin_is_consent = {};
7 }
8 var cookieadmin_allcookies = cookieadmin_policy.categorized_cookies;
9 //setInterval(cookieadmin_categorize_cookies, 5000);
10
11 function cookieadmin_is_obj(consentObj){
12 try{
13 return (
14 consentObj !== null &&
15 typeof consentObj === 'object' &&
16 !Array.isArray(consentObj) &&
17 Object.keys(consentObj).length > 0
18 );
19 }catch(e){
20 return false;
21 }
22 }
23
24
25 // function cookieadmin_cookie_interceptor(){
26
27 var originalCookieDescriptor =
28 Object.getOwnPropertyDescriptor(Document.prototype, 'cookie') ||
29 Object.getOwnPropertyDescriptor(document, 'cookie');
30 var allowed_cookies = '';
31
32 // Override document.cookie to intercept cookie setting.
33 Object.defineProperty(document, 'cookie', {
34 configurable: true,
35 enumerable: true,
36 get: function(){
37 return originalCookieDescriptor.get.call(document);
38 },
39 set: function(val){
40
41 if (!val) return;
42
43 var separatorIndex = val.indexOf('=');
44 if(separatorIndex === -1) {
45 return;
46 }
47
48 var cookieName = val.substring(0, separatorIndex).trim();
49 var cookieValue = val.substring(separatorIndex + 1).trim();
50
51 if(cookieName === "cookieadmin_consent"){
52 originalCookieDescriptor.set.call(document, val);
53 return;
54 }
55
56 // Set cookies which are meant to be deleted
57 if(val.includes('expires=Thu, 01 Jan 1970') || cookieValue.startsWith("deleted;")){
58 originalCookieDescriptor.set.call(document, val);
59 return;
60 }
61
62 var cookieInfo = cookieadmin_allcookies[cookieName] || {};
63 var category = (cookieInfo.category || 'uncategorized').toLowerCase();
64
65 // Set necessary cookies
66 if(category == "necessary"){
67 originalCookieDescriptor.set.call(document, val);
68 return;
69 }
70
71 if(cookieadmin_is_obj(cookieadmin_is_consent) || (Array.isArray(cookieadmin_policy['preload']) && cookieadmin_policy['preload'].length > 0)){
72
73 var consentAction = cookieadmin_is_consent.action;
74
75 if(!consentAction){
76 consentAction = cookieadmin_policy['preload'].reduce((a, val) => {a[val] = ''; return a;}, {});
77 }
78
79 if(consentAction.accept || consentAction[category]){
80 originalCookieDescriptor.set.call(document, val);
81 }else{
82
83 var pathMatch = val.match(/path=([^;]+)/i);
84 var domainMatch = val.match(/domain=([^;]+)/i);
85 var path = pathMatch ? pathMatch[1].trim() : '/';
86 var domain = domainMatch ? `domain=${domainMatch[1].trim()};` : '';
87
88 var deleteString = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${path}; ${domain}`;
89 originalCookieDescriptor.set.call(document, deleteString.trim());
90 }
91
92 }else{
93 (cookieadmin_allcookies[cookieName] = cookieadmin_allcookies[cookieName] || {}).string = val.trim();
94 return false;
95 }
96
97 }
98 });
99 // }
100 // cookieadmin_cookie_interceptor();
101
102
103 function cookieadmin_is_cookie(name){
104
105 if(!document.cookie) return false;
106
107 var coki = document.cookie.split(";") ;
108
109 if(name == "all"){
110 return coki ? coki : [];
111 }
112 var nam = name + "=";
113
114 for(var i=0; i < coki.length; i++){
115 if(coki[i].trim().indexOf(nam) == 0){
116 try {
117 var cookie_value = coki[i].trim().split("=");
118 if(!cookie_value[1]){
119 return false;
120 }
121
122 var decoded = decodeURIComponent(cookie_value[1]);
123 return JSON.parse(decoded);
124 } catch {
125 return false;
126 }
127 }
128 }
129
130 return false;
131 }
132
133 function cookieadmin_check_consent(){
134 var cookieadmin_cookie = cookieadmin_is_cookie("cookieadmin_consent");
135 if(!!cookieadmin_cookie){
136 if(!!cookieadmin_cookie.consent){
137 cookieadmin_is_consent.consent = cookieadmin_cookie.consent;
138 delete cookieadmin_cookie.consent;
139 }
140
141 cookieadmin_is_consent.action = cookieadmin_cookie;
142 }
143 }
144 cookieadmin_check_consent();
145
146 function cookieadmin_restore_cookies(update) {
147
148 var cookieadmin_accepted_categories = [];
149
150 if(update.accept && update.accept == "true"){
151
152 document.querySelectorAll(".cookieadmin_toggle").forEach(function(e){
153 key = e.children[0].id;
154 if (key.includes("cookieadmin-")) {
155 key = key.replace("cookieadmin-", "");
156 cookieadmin_accepted_categories.push(key);
157 }
158 });
159
160 }else if(update.reject && update.reject == "true"){
161 return true;
162 }else{
163 for (var [key, value] of Object.entries(update)) {
164 if(key != "consent"){
165 cookieadmin_accepted_categories.push(key);
166 }
167 }
168 }
169
170
171 for(cookie in cookieadmin_allcookies){
172 document.cookie = cookieadmin_allcookies[cookie].string;
173 };
174
175 cookieadmin_accepted_categories.forEach(function(category) {
176
177 document.querySelectorAll(
178 'script[type="text/plain"][data-cookieadmin-category="' + category + '"]'
179 ).forEach(function(el) {
180 var newScript = document.createElement('script');
181
182 // Copy attributes
183 if (el.src) {
184 newScript.src = el.src;
185 } else {
186 newScript.text = el.textContent;
187 }
188
189 if (el.defer) newScript.defer = true;
190 if (el.async) newScript.async = true;
191
192 // Copy other attributes if needed
193 ['id', 'class', 'data-name'].forEach(attr => {
194 if (el.hasAttribute(attr)) {
195 newScript.setAttribute(attr, el.getAttribute(attr));
196 }
197 });
198
199 el.parentNode.replaceChild(newScript, el);
200 });
201 });
202 }
203
204 function cookieadmin_set_cookie(name, value, days = 365, domain = "") {
205 if (!name || !value) return false;
206
207 if((cookieadmin_policy.is_pro != 0) && (cookieadmin_pro_vars !== 'undefined')){
208 if(cookieadmin_pro_vars.shared_subdomain_consent && cookieadmin_pro_vars.base_domain){
209 // Delete the cookie if exist with the subdomin
210 // Previously, cookie was set without specifying domain name, we'll not specify domain while deleting.
211 document.cookie = `cookieadmin_consent=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${cookieadmin_policy.base_path};`;
212 domain = cookieadmin_pro_vars.base_domain;
213 }
214 }
215
216 var date = new Date();
217 date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); // default 1 year
218
219 var cookieString = `${encodeURIComponent(name)}=${JSON.stringify(value)};`;
220 cookieString += ` expires=${date.toUTCString()};`;
221 cookieString += ` path=${!domain ? cookieadmin_policy.base_path : '/'};`;
222 cookieString += ` SameSite=Lax;`;
223 if(cookieadmin_policy.is_ssl || window.location.protocol === 'https:'){
224 cookieString += ` Secure;`;
225 }
226
227 // Add domain if explicitly passed
228 if (domain) {
229 cookieString += ` domain=${domain};`;
230 }
231
232 document.cookie = cookieString;
233 return true;
234 }
235
236 //Populates modal with consent if selected & adds found cookies
237 // Only < and > are escaped: stored values pass sanitize_text_field, which can keep entities like &lt; that must still render
238 function cookieadmin_esc(str){
239 return String(str).replace(/</g, '&lt;').replace(/>/g, '&gt;');
240 }
241
242 function cookieadmin_populate_preference(){
243
244 consent = cookieadmin_is_consent.action;
245
246 if(!!consent){
247
248 if(consent.accept){
249 document.querySelectorAll(".cookieadmin_toggle").forEach(function(e){
250 e.children[0].checked = true;
251 });
252 }
253 else if(consent.reject){
254 document.querySelectorAll(".cookieadmin_toggle").forEach(function(e){
255 e.children[0].checked = false;
256 });
257 }
258 else{
259 for(btn in consent){
260 if(btn_ele = document.querySelector("#cookieadmin-" + btn)){
261 btn_ele.checked = true;
262 }
263 }
264 }
265 //Load as per preloaded categories selected by admin
266 }else if(cookieadmin_policy['preload'] && cookieadmin_policy['preload'].length > 0){
267
268 cookieadmin_policy['preload'].forEach(function(val){
269 if(btn_ele = document.querySelector("#cookieadmin-" + val)){
270 btn_ele.checked = true;
271 }
272 });
273 }
274
275 var cookieadmin_shown = (typeof cookieadmin_shown !== "undefined") ? cookieadmin_shown : [];
276
277 if(cookieadmin_allcookies){
278
279 var cookieadmin_filtrd = Object.keys(cookieadmin_allcookies).filter(e => !cookieadmin_shown.includes(e));
280
281 for(c_info of cookieadmin_filtrd){
282
283 var category_var = cookieadmin_allcookies[c_info].category;
284
285 if(!category_var){
286 continue;
287 }
288 var card_container = document.querySelector(".cookieadmin-" + category_var.toLowerCase());
289
290 if(!card_container){
291 continue;
292 }
293
294 card_container.querySelector(".cookieadmin-nocookie-cat").style.display = 'none';
295
296 var cookieadmin_exp = cookieadmin_policy.lang.session;
297
298 if(
299 !!cookieadmin_allcookies[c_info].expires
300 && cookieadmin_allcookies[c_info].expires !== "0000-00-00 00:00:00"
301 ){
302
303 var expDate = new Date(cookieadmin_allcookies[c_info].expires.replace(' ', 'T'));
304
305 if (!isNaN(expDate.getTime())) {
306 var daysLeft = Math.ceil((expDate.getTime() - Date.now()) / (1000 * 60 * 60 * 24));
307
308 if (daysLeft > 0) {
309 cookieadmin_exp = daysLeft +' '+ cookieadmin_policy.lang.days;
310 }
311 }
312 }
313
314 var cookieadmin_desc = cookieadmin_allcookies[c_info].description;
315 var cookieadmin_platform = cookieadmin_allcookies[c_info].platform;
316
317 // Empty description/platform rows are skipped so the card has no blank gap or "null" text
318 card_container.insertAdjacentHTML('beforeend', '<div class="cookieadmin-cookie-card"><div class="cookieadmin-cookie-header"><strong class="cookieadmin-cookie-name">'+ cookieadmin_esc(c_info.replace(/_+$/, "")) +'</strong> <span class="cookieadmin-cookie-duration"><b>'+ cookieadmin_policy.lang.duration +':</b> '+ cookieadmin_exp +'</span></div>' + (cookieadmin_desc ? '<p class="cookieadmin-cookie-description">'+ cookieadmin_esc(cookieadmin_desc) +'</p>' : '') + (cookieadmin_platform ? '<div class="cookieadmin-cookie-tags"><span class="cookieadmin-tag">' + cookieadmin_esc(cookieadmin_platform) + '</span></div>' : '') + '</div>');
319 cookieadmin_shown.push(c_info);
320 }
321 }
322
323 }
324
325 function cookieadmin_toggle_overlay(){
326
327 if(window.getComputedStyle(document.getElementsByClassName("cookieadmin_modal_overlay")[0]).display == "none"){
328 document.getElementsByClassName("cookieadmin_modal_overlay")[0].style.display = "block";
329 }else{
330 document.getElementsByClassName("cookieadmin_modal_overlay")[0].style.display = "none";
331 }
332
333 }
334
335 function cookieadmin_categorize_cookies(){
336
337 if(!cookieadmin_allcookies){
338 return;
339 }
340
341 var cookieadmin_chk_cookies = {};
342 var cookieadmin_consent_chng = [];
343
344 for(a_cookie in cookieadmin_allcookies){
345 if(!cookieadmin_allcookies[a_cookie].category){
346 cookieadmin_chk_cookies[a_cookie] = cookieadmin_allcookies[a_cookie];
347 }else if(cookieadmin_is_consent.old_action !== cookieadmin_is_consent.action && a_cookie !== "cookieadmin_consent"){
348 document.cookie = cookieadmin_allcookies[a_cookie].string;
349 }
350 }
351
352 if(!cookieadmin_is_obj(cookieadmin_chk_cookies)){
353 return;
354 }
355
356 /* var xhttp2 = new XMLHttpRequest();
357
358 var data = 'action=cookieadmin_ajax_handler&cookieadmin_act=categorize_cookies&cookieadmin_security=' + cookieadmin_policy.nonce + "&cookieadmin_cookies=" + JSON.stringify(cookieadmin_chk_cookies);
359
360 xhttp2.onload = function() {
361 parsd = JSON.parse(this.responseText);
362
363 if(parsd.success){
364 cookies = parsd.data;
365 for(coki in cookies){
366 cookieadmin_chk_cookies[coki].name = coki;
367 if(cookies[coki].category === "un_c"){
368 cookieadmin_chk_cookies[coki].source = "unknown";
369 cookieadmin_chk_cookies[coki].description = "unknown";
370 }
371 cookieadmin_allcookies[coki] = cookieadmin_chk_cookies[coki];
372 document.cookie = cookieadmin_chk_cookies[coki].string;
373 }
374 }
375 }
376
377 xhttp2.open("POST", cookieadmin_policy.ajax_url, true);
378 xhttp2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
379 xhttp2.send(data); */
380 }
381
382
383 document.addEventListener("DOMContentLoaded", function() {
384
385 var cookieadmin_show_reconsent = 0;
386 if(cookieadmin_policy.is_pro != 0 && cookieadmin_pro_vars !== 'undefined' && cookieadmin_pro_vars.reconsent != 0){
387 var cookieadmin_show_reconsent = 1;
388 }
389
390 //Create overlay
391 var cookieadmin_ovrlay = document.createElement("div");
392 cookieadmin_ovrlay.className = "cookieadmin_modal_overlay";
393 document.body.appendChild(cookieadmin_ovrlay);
394
395 var before_consent_dispaly = new CustomEvent('cookieadmin_before_consent_display');
396
397 // For anything that needs to be done before disaplying consent.
398 cookieadmin_policy.hide_banner = false; // initializing
399 window.dispatchEvent(before_consent_dispaly);
400
401 //Show notice or re-consent icon as needed
402 if(!cookieadmin_is_obj(cookieadmin_is_consent) && !cookieadmin_policy.hide_banner){
403
404 if(cookieadmin_policy.cookieadmin_layout !== "popup"){
405 document.getElementsByClassName("cookieadmin_law_container")[0].style.display = "block";
406 }else{
407 cookieadmin_toggle_overlay();
408 document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "flex";
409 }
410
411 /* //block cookie scripts
412 var cookieadmin_blockedScripts = [
413 'https://www.google-analytics.com/analytics.js',
414 'https://connect.facebook.net/en_US/fbevents.js',
415 'https://www.youtube.com/iframe_api'
416 ];
417
418 cookieadmin_blockedScripts.forEach(function(scriptUrl) {
419 var scriptTag = document.querySelector(`script[src='${scriptUrl}']`);
420 if (scriptTag) {
421 scriptTag.remove(); // Remove script if already loaded
422 }
423 }); */
424
425 }else if(cookieadmin_show_reconsent){
426 document.getElementsByClassName("cookieadmin_re_consent")[0].style.display = "block";
427
428 }
429
430 //Edit Notice and Modal contents
431
432 cookieadmin_populate_preference();
433
434 for(data in cookieadmin_policy){
435
436 typ = 0;
437 if(data.includes("_bg_color")){
438 d_ele = data.replace("_bg_color", "");
439 typ = 1;
440 }else if(data.includes("_border_color")){
441 d_ele = data.replace("_border_color", "");
442 typ = 2;
443 }else if(data.includes("_color")){
444 d_ele = data.replace("_color", "");
445 typ = 3;
446 }else{
447 d_ele = data;
448 }
449
450 d_eles = [];
451 if(document.getElementById(d_ele)){
452 d_eles = [document.getElementById(d_ele)];
453 }
454 if(document.getElementsByClassName(d_ele).length){
455 d_eles = (document.getElementsByClassName(d_ele).length > 1) ? document.getElementsByClassName(d_ele) : [document.getElementsByClassName(d_ele)[0]];
456 }
457
458 if(!!d_eles){
459 i = 0;
460 while(i < d_eles.length){
461 d_ele = d_eles[i];
462 if(typ == 3){
463 d_ele.style.color = cookieadmin_policy[data];
464 }else if(typ == 2){
465 d_ele.style.borderColor = cookieadmin_policy[data];
466 }else if(typ == 1){
467 d_ele.style.backgroundColor = cookieadmin_policy[data];
468 }else{
469 d_ele.innerHTML = cookieadmin_policy[data];
470 }
471 i++;
472 }
473 }
474 }
475
476 //Add layout as class
477 if(!!cookieadmin_policy.cookieadmin_position && cookieadmin_policy.cookieadmin_layout !== "popup"){
478 cookieadmin_policy.cookieadmin_position.split("_").forEach(function(clas){
479 clas = "cookieadmin_" + clas;
480 document.getElementsByClassName("cookieadmin_law_container")[0].classList.add(clas);
481 });
482 }
483
484 // Change consent layout dynamically
485 // TODO: There is a operator called optional chaining operator ?. something like this users?.[0]?.name; wont use it now just for reference
486 var cookieadmin_law_container_var = document.getElementsByClassName("cookieadmin_law_container")[0];
487 if (!!cookieadmin_law_container_var){
488 cookieadmin_law_container_var.classList.add("cookieadmin_" + cookieadmin_policy.cookieadmin_layout);
489 }
490
491 // Change Modal layout dynamically
492 document.getElementsByClassName("cookieadmin_cookie_modal")[0].classList.add("cookieadmin_" + cookieadmin_policy.cookieadmin_modal);
493
494 /*if(cookieadmin_policy.layout == "footer"){
495
496 }*/
497
498
499 // Remove modal close Button
500 if(cookieadmin_policy.cookieadmin_layout == "popup"){
501 document.getElementsByClassName("cookieadmin_close_pref")[0].style.display = "none";
502 }
503
504 var cookieadmin_modal_opener = null;
505
506 // Focus goes back to the reconsent/Customize button that opened the modal.
507 // focus() on a hidden opener is a no-op, which is fine.
508 function cookieadmin_return_focus(){
509 if(cookieadmin_modal_opener){
510 cookieadmin_modal_opener.focus();
511 cookieadmin_modal_opener = null;
512 }
513 }
514
515 //show preference modal
516 cookieadmin_show_modal_elemnts = document.querySelectorAll(".cookieadmin_re_consent, .cookieadmin_customize_btn");
517 cookieadmin_show_modal_elemnts.forEach(function(e){
518
519 e.addEventListener("click", function(e){
520
521 /*cookieadmin_is_cookie("all").forEach(function(e){
522 c_name = e.split("=")[0].trim();
523 if(!!cookieadmin_allcookies[c_name]){
524 console.log(JSON.stringify(cookieadmin_allcookies[c_name]));
525 }
526 });*/
527
528 cookieadmin_toggle_overlay();
529 document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "flex";
530 var cookieadmin_re_consent = document.getElementsByClassName("cookieadmin_re_consent")[0];
531 if(cookieadmin_re_consent){
532 cookieadmin_re_consent.style.display = "none";
533 }
534
535 var cookieadmin_law_container = document.getElementsByClassName("cookieadmin_law_container")[0];
536 if(cookieadmin_law_container){
537 cookieadmin_law_container.style.display = "none";
538 }
539
540 if(cookieadmin_policy["cookieadmin_modal"] == "side"){
541 document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "grid";
542 }
543
544 // Remember what opened the modal so focus can go back to it on close
545 cookieadmin_modal_opener = e.currentTarget;
546 });
547 });
548
549 //Save preference
550 document.querySelector(".cookieadmin_save_btn").addEventListener("click", function(){
551
552 document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "none";
553 if(cookieadmin_show_reconsent){
554 document.getElementsByClassName("cookieadmin_re_consent")[0].style.display = "block";
555 }
556
557 var prefer = {};
558
559 document.querySelectorAll(".cookieadmin_toggle").forEach(function(e){
560 if(!!e.children[0].checked){
561 prefer[e.children[0].id.replace("cookieadmin-","")] = 'true';
562 }
563 });
564
565 if(Object.keys(prefer).length !== 0){
566 var override_gpc = document.getElementById('cookieadmin-override_gpc');
567 var is_override_gpc = false;
568 if(override_gpc && override_gpc.checked){
569 is_override_gpc = true;
570 }
571
572 if(Object.keys(prefer).length === 3 && !is_override_gpc){
573 let accept_btn = document.querySelectorAll(".cookieadmin_accept_btn");
574
575 if(accept_btn.length > 0){
576 accept_btn[accept_btn.length-1].click();
577 }
578
579 return;
580 }
581 }else{
582 let reject_btn = document.querySelectorAll(".cookieadmin_reject_btn");
583
584 if(reject_btn.length > 0){
585 reject_btn[reject_btn.length-1].click();
586 }
587
588 return;
589 }
590
591 cookieadmin_toggle_overlay();
592 cookieadmin_return_focus();
593
594 cookieadmin_set_consent(prefer, days);
595 });
596
597
598 //Accept or reject all cookies
599 cookieadmin_save_all_cookie_elemnts = document.querySelectorAll(".cookieadmin_accept_btn, .cookieadmin_reject_btn");
600
601 cookieadmin_save_all_cookie_elemnts.forEach(function(e){
602
603 e.addEventListener("click", function(){
604 // console.log(e);
605
606 document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "none";
607 var cookieadmin_law_container = document.getElementsByClassName("cookieadmin_law_container")[0];
608 if(cookieadmin_law_container){
609 cookieadmin_law_container.style.display = "none";
610 }
611
612 var cookieadmin_re_consent = document.getElementsByClassName("cookieadmin_re_consent")[0];
613 if(cookieadmin_re_consent){
614 cookieadmin_re_consent.style.display = "block";
615 }
616
617 if(e.id.includes("modal")){
618 cookieadmin_toggle_overlay();
619 cookieadmin_return_focus();
620 }
621
622 var prefer2 = e.classList.contains("cookieadmin_reject_btn") ? {reject: "true"} : {accept: "true"};
623
624 cookieadmin_set_consent(prefer2, days);
625 });
626 });
627
628 document.querySelectorAll(".cookieadmin_header .cookieadmin_show_pref_cookies").forEach(function(e){
629 e.addEventListener("click", function(el){
630
631 var tgt = el.currentTarget.id;
632 tgt = tgt.replace(/-container$/, "");
633
634 if(el.currentTarget.classList.contains("dwn")){
635 el.currentTarget.classList.remove("dwn");
636 document.querySelector("."+tgt).style.display = "none";
637 }else{
638 el.currentTarget.classList.add("dwn");
639 document.querySelector("."+tgt).style.display = "block";
640 }
641 });
642 });
643
644 document.getElementsByClassName("cookieadmin_close_pref")[0].addEventListener("click", function(e){
645 document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "none";
646 cookieadmin_toggle_overlay();
647 if(!cookieadmin_is_obj(cookieadmin_is_consent)){
648 var cookieadmin_law_container = document.getElementsByClassName("cookieadmin_law_container")[0];
649 if(cookieadmin_law_container){
650 cookieadmin_law_container.style.display = "block";
651 }
652 }else if(cookieadmin_show_reconsent){
653 var cookieadmin_re_consent = document.getElementsByClassName("cookieadmin_re_consent")[0];
654 if(cookieadmin_re_consent){
655 cookieadmin_re_consent.style.display = "block";
656 }
657 }
658
659 cookieadmin_return_focus();
660 });
661
662 });
663
664 function cookieadmin_set_consent(prefrenc, days){
665
666 if (typeof cookieadmin_pro_set_consent === "function") {
667 return cookieadmin_pro_set_consent(prefrenc, days);
668 }else{
669 return cookieadmin_save_consent_cookie(prefrenc, days);
670 }
671 }
672
673 function cookieadmin_save_consent_cookie(prefrenc, days, consent_id){
674
675 var cookieadmin_consent = prefrenc;
676
677 if(consent_id){
678 cookieadmin_is_consent.consent = consent_id;
679 cookieadmin_consent['consent'] = consent_id;
680 }
681
682 if(!cookieadmin_is_consent.consent){
683 cookieadmin_is_consent.consent = "";
684 }
685
686 cookieadmin_is_consent["old_action"] = cookieadmin_is_consent.action ? cookieadmin_is_consent.action : {};
687 cookieadmin_is_consent.action = prefrenc;
688 cookieadmin_populate_preference();
689 cookieadmin_set_cookie('cookieadmin_consent', cookieadmin_consent, days);
690
691 if (typeof cookieadmin_update_gcm === "function") {
692 cookieadmin_update_gcm(1);
693 }
694
695 if (typeof cookieadmin_pro_update_clarity_cookie === "function") {
696 cookieadmin_pro_update_clarity_cookie();
697 }
698
699 if(!!cookieadmin_policy.reload_on_consent){
700 location.reload();
701 }else{
702 cookieadmin_restore_cookies(prefrenc);
703 }
704 }
705
706