PageSourceSearch

https://anxietyocdspecialists.com/wp-content/plugins/cookieadmin/assets/js/consent.js?ver=1.1.5

js anxietyocdspecialists.com collected 2026-10-04 13:26:28 UTC 19,598 bytes, 627 lines download raw bytes

1// This file handle the cookie banner and stuff related to that.
2
3var days = cookieadmin_policy.cookieadmin_days;
4
5if(typeof cookieadmin_is_consent === 'undefined'){
6	window.cookieadmin_is_consent = {};
7}
8var cookieadmin_allcookies = cookieadmin_policy.categorized_cookies;
9//setInterval(cookieadmin_categorize_cookies, 5000);
10
11function 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
103function 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				return coki[i].trim();
117		}
118	}
119	
120	return false;
121}
122
123function cookieadmin_check_consent(){
124	var cookieadmin_cookie = cookieadmin_is_cookie("cookieadmin_consent")
125	if(!!cookieadmin_cookie){
126		cookieadmin_cookie = JSON.parse(cookieadmin_cookie.split("=")[1]);
127		if(!!cookieadmin_cookie.consent){
128			cookieadmin_is_consent.consent = cookieadmin_cookie.consent;
129			delete cookieadmin_cookie.consent;
130		}
131		
132		cookieadmin_is_consent.action = cookieadmin_cookie;
133	}
134}
135cookieadmin_check_consent();
136
137function cookieadmin_restore_cookies(update) {
138    
139	var cookieadmin_accepted_categories = [];
140	
141	if(update.accept && update.accept == "true"){
142		
143		document.querySelectorAll(".cookieadmin_toggle").forEach(function(e){
144			key = e.children[0].id;
145			if (key.includes("cookieadmin-")) {
146				key = key.replace("cookieadmin-", "");
147				cookieadmin_accepted_categories.push(key);
148			}
149		});
150		
151	}else if(update.reject && update.reject == "true"){
152		return true;
153	}else{
154		for (var [key, value] of Object.entries(update)) {
155			if(key != "consent"){
156				cookieadmin_accepted_categories.push(key);
157			}
158		}
159	}
160	
161	
162  	for(cookie in cookieadmin_allcookies){
163  		document.cookie = cookieadmin_allcookies[cookie].string;
164  	};
165	
166    cookieadmin_accepted_categories.forEach(function(category) {
167		
168        document.querySelectorAll(
169            'script[type="text/plain"][data-cookieadmin-category="' + category + '"]'
170        ).forEach(function(el) {
171            var newScript = document.createElement('script');
172
173            // Copy attributes
174            if (el.src) {
175                newScript.src = el.src;
176            } else {
177                newScript.text = el.textContent;
178            }
179
180            if (el.defer) newScript.defer = true;
181            if (el.async) newScript.async = true;
182
183            // Copy other attributes if needed
184            ['id', 'class', 'data-name'].forEach(attr => {
185                if (el.hasAttribute(attr)) {
186                    newScript.setAttribute(attr, el.getAttribute(attr));
187                }
188            });
189
190            el.parentNode.replaceChild(newScript, el);
191        });
192    });
193}
194
195function cookieadmin_set_cookie(name, value, days = 365, domain = "") {
196  if (!name || !value) return false;
197
198  var date = new Date();
199  date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); // default 1 year
200
201  var cookieString = `${encodeURIComponent(name)}=${JSON.stringify(value)};`;
202  cookieString += ` expires=${date.toUTCString()};`;
203  cookieString += ` path=${cookieadmin_policy.base_path};`;
204  cookieString += ` SameSite=Lax;`;
205  if(cookieadmin_policy.is_ssl || window.location.protocol === 'https:'){
206	  cookieString += ` Secure;`;
207  }
208
209  // Add domain if explicitly passed
210  if (domain) {
211    cookieString += ` domain=${domain};`;
212  }
213
214  document.cookie = cookieString;
215  return true;
216}
217
218//Populates modal with consent if selected & adds found cookies
219function cookieadmin_populate_preference(){
220	
221	consent = cookieadmin_is_consent.action;
222	
223	if(!!consent){
224		
225		if(consent.accept){
226			document.querySelectorAll(".cookieadmin_toggle").forEach(function(e){
227				e.children[0].checked = true;
228			});
229		}
230		else if(consent.reject){
231			document.querySelectorAll(".cookieadmin_toggle").forEach(function(e){
232				e.children[0].checked = false;
233			});
234		}
235		else{
236			for(btn in consent){
237				if(btn_ele = document.querySelector("#cookieadmin-" + btn)){
238					btn_ele.checked = true;
239				}
240			}
241		}
242	//Load as per preloaded categories selected by admin	
243	}else if(cookieadmin_policy['preload'] && cookieadmin_policy['preload'].length > 0){
244		
245		cookieadmin_policy['preload'].forEach(function(val){
246			if(btn_ele = document.querySelector("#cookieadmin-" + val)){
247				btn_ele.checked = true;
248			}
249		});
250	}
251	
252	var cookieadmin_shown = (typeof cookieadmin_shown !== "undefined") ? cookieadmin_shown : [];
253	
254	if(cookieadmin_allcookies){
255		
256		var cookieadmin_filtrd = Object.keys(cookieadmin_allcookies).filter(e => !cookieadmin_shown.includes(e));
257		
258		for(c_info of cookieadmin_filtrd){
259			
260			var category_var = cookieadmin_allcookies[c_info].category;
261			
262			if(!category_var){
263				continue;
264			}
265			var card_container = document.querySelector(".cookieadmin-" + category_var.toLowerCase());
266			
267			if(!card_container){
268				continue;
269			}
270			card_container.innerHTML = (card_container.innerHTML == 'None') ?  '' : card_container.innerHTML;
271			
272			var cookieadmin_exp = cookieadmin_policy.lang.session;
273				
274			if(
275				!!cookieadmin_allcookies[c_info].expires 
276				&& cookieadmin_allcookies[c_info].expires !== "0000-00-00 00:00:00"
277			){
278				
279				var expDate = new Date(cookieadmin_allcookies[c_info].expires.replace(' ', 'T'));
280				
281				if (!isNaN(expDate.getTime())) {
282					var daysLeft = Math.ceil((expDate.getTime() - Date.now()) / (1000 * 60 * 60 * 24));
283
284					if (daysLeft > 0) {
285						cookieadmin_exp = daysLeft +' '+ cookieadmin_policy.lang.days;
286					}
287				}
288			}
289			
290			card_container.innerHTML += '<div class="cookieadmin-cookie-card"> <div class="cookieadmin-cookie-header"> <strong class="cookieadmin-cookie-name">'+ c_info.replace(/_+$/, "") +'</strong> <span class="cookieadmin-cookie-duration"><b>'+ cookieadmin_policy.lang.duration +':</b> '+ cookieadmin_exp +'</span> </div> <p class="cookieadmin-cookie-description">'+ cookieadmin_allcookies[c_info].description +'</p> <div class="cookieadmin-cookie-tags"> ' + (cookieadmin_allcookies[c_info].platform ? '<span class="cookieadmin-tag">' + cookieadmin_allcookies[c_info].platform + '</span>' : "") + ' </div> </div>';
291			cookieadmin_shown.push(c_info);
292		}
293	}
294		
295}
296
297function cookieadmin_toggle_overlay(){
298	
299	if(window.getComputedStyle(document.getElementsByClassName("cookieadmin_modal_overlay")[0]).display == "none"){
300		document.getElementsByClassName("cookieadmin_modal_overlay")[0].style.display = "block";
301	}else{
302		document.getElementsByClassName("cookieadmin_modal_overlay")[0].style.display = "none";
303	}
304	
305}
306
307function cookieadmin_categorize_cookies(){
308	
309	if(!cookieadmin_allcookies){
310		return;
311	}
312	
313	var cookieadmin_chk_cookies = {};
314	var cookieadmin_consent_chng = [];
315	
316	for(a_cookie in cookieadmin_allcookies){
317		if(!cookieadmin_allcookies[a_cookie].category){
318			cookieadmin_chk_cookies[a_cookie] = cookieadmin_allcookies[a_cookie];
319		}else if(cookieadmin_is_consent.old_action !== cookieadmin_is_consent.action && a_cookie !== "cookieadmin_consent"){
320			document.cookie = cookieadmin_allcookies[a_cookie].string;
321		}
322	}
323	
324	if(!cookieadmin_is_obj(cookieadmin_chk_cookies)){
325		return;
326	}
327	
328	/* var xhttp2 = new XMLHttpRequest();
329	
330	var data = 'action=cookieadmin_ajax_handler&cookieadmin_act=categorize_cookies&cookieadmin_security=' + cookieadmin_policy.nonce + "&cookieadmin_cookies=" + JSON.stringify(cookieadmin_chk_cookies);
331	
332	xhttp2.onload = function() {
333		parsd = JSON.parse(this.responseText);
334		
335		if(parsd.success){
336			cookies = parsd.data;
337			for(coki in cookies){
338				cookieadmin_chk_cookies[coki].name = coki;
339				if(cookies[coki].category === "un_c"){
340					cookieadmin_chk_cookies[coki].source = "unknown";
341					cookieadmin_chk_cookies[coki].description = "unknown";
342				}
343				cookieadmin_allcookies[coki] = cookieadmin_chk_cookies[coki];
344				document.cookie = cookieadmin_chk_cookies[coki].string;
345			}
346		}
347	}
348	
349	xhttp2.open("POST", cookieadmin_policy.ajax_url, true);
350	xhttp2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
351	xhttp2.send(data); */
352}
353
354
355document.addEventListener("DOMContentLoaded", function() {
356	
357	var cookieadmin_show_reconsent = 0;
358	if(cookieadmin_policy.is_pro != 0 && cookieadmin_pro_vars.reconsent != 0){
359		var cookieadmin_show_reconsent = 1;
360	}
361
362	//Create overlay
363	var cookieadmin_ovrlay =  document.createElement("div");
364	cookieadmin_ovrlay.className = "cookieadmin_modal_overlay";
365	document.body.appendChild(cookieadmin_ovrlay);
366	
367	//Show notice or re-consent icon as needed
368	if(!cookieadmin_is_obj(cookieadmin_is_consent)){
369		
370		if(cookieadmin_policy.cookieadmin_layout !== "popup"){
371			document.getElementsByClassName("cookieadmin_law_container")[0].style.display = "block";
372		}else{
373			cookieadmin_toggle_overlay();
374			document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "flex";
375		}
376		
377		/* //block cookie scripts
378		var cookieadmin_blockedScripts = [
379			'https://www.google-analytics.com/analytics.js',
380			'https://connect.facebook.net/en_US/fbevents.js',
381			'https://www.youtube.com/iframe_api'
382		];
383		
384		cookieadmin_blockedScripts.forEach(function(scriptUrl) {
385			var scriptTag = document.querySelector(`script[src='${scriptUrl}']`);
386			if (scriptTag) {
387				scriptTag.remove();  // Remove script if already loaded
388			}
389		}); */
390		
391	}else if(cookieadmin_show_reconsent){
392		document.getElementsByClassName("cookieadmin_re_consent")[0].style.display = "block";	
393		
394	}
395	
396	//Edit Notice and Modal contents
397	document.getElementsByClassName("cookieadmin_reconsent_img")[0].src = cookieadmin_policy.plugin_url + "/assets/images/cookieadmin_icon.svg";
398
399	cookieadmin_populate_preference();
400
401	for(data in cookieadmin_policy){
402
403		typ = 0;
404		if(data.includes("_bg_color")){
405			d_ele = data.replace("_bg_color", "");
406			typ = 1;
407		}else if(data.includes("_border_color")){
408			d_ele = data.replace("_border_color", "");
409			typ = 2;
410		}else if(data.includes("_color")){
411			d_ele = data.replace("_color", "");
412			typ = 3;
413		}else{
414			d_ele = data;
415		}
416		
417		d_eles = [];
418		if(document.getElementById(d_ele)){
419			d_eles = [document.getElementById(d_ele)];
420		}
421		if(document.getElementsByClassName(d_ele).length){
422			d_eles = (document.getElementsByClassName(d_ele).length > 1) ? document.getElementsByClassName(d_ele) : [document.getElementsByClassName(d_ele)[0]];
423		}
424		
425		if(!!d_eles){
426			i = 0;
427			while(i < d_eles.length){
428				d_ele = d_eles[i];
429				if(typ == 3){
430					d_ele.style.color = cookieadmin_policy[data];
431				}else if(typ == 2){
432					d_ele.style.borderColor = cookieadmin_policy[data];
433				}else if(typ == 1){
434					d_ele.style.backgroundColor = cookieadmin_policy[data];
435				}else{
436					d_ele.innerHTML = cookieadmin_policy[data];
437				}
438				i++;
439			}
440		}		
441	}
442
443	//Add layout as class
444	if(!!cookieadmin_policy.cookieadmin_position && cookieadmin_policy.cookieadmin_layout !== "popup"){
445		cookieadmin_policy.cookieadmin_position.split("_").forEach(function(clas){
446			clas = "cookieadmin_" + clas;
447			document.getElementsByClassName("cookieadmin_law_container")[0].classList.add(clas);
448		});
449	}
450
451	// Change consent layout dynamically
452  // TODO: There is a operator called optional chaining operator ?. something like this users?.[0]?.name; wont use it now just for reference
453	var  cookieadmin_law_container_var = document.getElementsByClassName("cookieadmin_law_container")[0];
454	if (!!cookieadmin_law_container_var){
455		cookieadmin_law_container_var.classList.add("cookieadmin_" + cookieadmin_policy.cookieadmin_layout);
456	}
457
458	// Change Modal layout dynamically
459	document.getElementsByClassName("cookieadmin_cookie_modal")[0].classList.add("cookieadmin_" + cookieadmin_policy.cookieadmin_modal);
460
461	/*if(cookieadmin_policy.layout == "footer"){
462		
463	}*/
464
465	if(cookieadmin_policy.cookieadmin_modal == "side"){
466		document.getElementsByClassName("cookieadmin_modal_footer")[0].style.flexDirection = "column";
467	}
468		
469	// Remove modal close Button
470	if(cookieadmin_policy.cookieadmin_layout == "popup"){
471		document.getElementsByClassName("cookieadmin_close_pref")[0].style.display = "none";
472	}
473
474	//show preference modal
475	cookieadmin_show_modal_elemnts = document.querySelectorAll(".cookieadmin_re_consent, .cookieadmin_customize_btn");
476	cookieadmin_show_modal_elemnts.forEach(function(e){
477		
478		e.addEventListener("click", function(e){
479			
480			/*cookieadmin_is_cookie("all").forEach(function(e){
481				c_name = e.split("=")[0].trim();
482				if(!!cookieadmin_allcookies[c_name]){
483					console.log(JSON.stringify(cookieadmin_allcookies[c_name]));
484				}
485			});*/
486			
487			cookieadmin_toggle_overlay();
488			document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "flex";
489			document.getElementsByClassName("cookieadmin_re_consent")[0].style.display = "none";
490			document.getElementsByClassName("cookieadmin_law_container")[0].style.display = "none";
491			
492			if(cookieadmin_policy["cookieadmin_modal"] == "side"){
493				document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "grid";
494			}
495			
496			if(e.target.className == "cookieadmin_re_consent"){
497				document.getElementsByClassName("cookieadmin_close_pref")[0].id = "cookieadmin_re_consent";
498			}else{
499				document.getElementsByClassName("cookieadmin_close_pref")[0].id = "cookieadmin_law_container";
500			}
501		});
502	});
503	
504	//Save preference
505	document.querySelector(".cookieadmin_save_btn").addEventListener("click", function(){
506		
507		document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "none";
508		if(cookieadmin_show_reconsent){
509			document.getElementsByClassName("cookieadmin_re_consent")[0].style.display = "block";
510		}
511		
512		var prefer = {};
513
514		document.querySelectorAll(".cookieadmin_toggle").forEach(function(e){
515			if(!!e.children[0].checked){
516				prefer[e.children[0].id.replace("cookieadmin-","")] = 'true';
517			}
518		});
519		
520		if(Object.keys(prefer).length !== 0){
521			if(Object.keys(prefer).length === 3){
522				document.querySelectorAll(".cookieadmin_accept_btn")[1].click();
523				return;
524			}
525		}else{
526			document.querySelectorAll(".cookieadmin_reject_btn")[1].click();
527			return;
528		}
529		
530		cookieadmin_toggle_overlay();
531
532		cookieadmin_set_consent(prefer, days);
533	});
534
535
536	//Accept or reject all cookies
537	cookieadmin_save_all_cookie_elemnts = document.querySelectorAll(".cookieadmin_accept_btn, .cookieadmin_reject_btn");
538
539	cookieadmin_save_all_cookie_elemnts.forEach(function(e){
540		
541		e.addEventListener("click", function(){
542			// console.log(e);
543
544			document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "none";
545			document.getElementsByClassName("cookieadmin_law_container")[0].style.display = "none";
546			if(cookieadmin_show_reconsent){
547				document.getElementsByClassName("cookieadmin_re_consent")[0].style.display = "block";
548			}
549			
550			if(e.id.includes("modal")){
551				cookieadmin_toggle_overlay();
552			}
553			
554			var prefer2 = e.classList.contains("cookieadmin_reject_btn") ? {reject: "true"} : {accept: "true"};
555			
556			cookieadmin_set_consent(prefer2, days);
557		});
558	});
559	
560	document.querySelectorAll(".cookieadmin_show_pref_cookies").forEach(function(e){
561		e.addEventListener("click", function(el){
562			
563			var tgt = el.target.id;
564			tgt = tgt.replace(/-container$/, "");
565			
566			if(el.target.classList.contains("dwn")){
567				el.target.innerHTML = "&#9658;";
568				el.target.classList.remove("dwn");
569				document.querySelector("."+tgt).style.display = "none";
570			}else{
571				el.target.innerHTML = "&#9660;";
572				el.target.classList.add("dwn");
573				document.querySelector("."+tgt).style.display = "block";
574			}
575		});
576	});
577
578	document.getElementsByClassName("cookieadmin_close_pref")[0].addEventListener("click", function(e){
579		document.getElementsByClassName("cookieadmin_cookie_modal")[0].style.display = "none";
580		cookieadmin_toggle_overlay();
581		if(!cookieadmin_is_obj(cookieadmin_is_consent)){
582			document.getElementsByClassName("cookieadmin_law_container")[0].style.display = "block";
583		}else if(cookieadmin_show_reconsent){
584			document.getElementsByClassName("cookieadmin_re_consent")[0].style.display = "block";
585		}
586	});
587	
588});
589
590function cookieadmin_set_consent(prefrenc, days){
591	
592	if (typeof cookieadmin_pro_set_consent === "function") {
593		return cookieadmin_pro_set_consent(prefrenc, days);
594	}else{
595		return cookieadmin_save_consent_cookie(prefrenc, days);
596	}
597}
598
599function cookieadmin_save_consent_cookie(prefrenc, days, consent_id){
600	
601	var cookieadmin_consent = prefrenc;
602		
603	if(consent_id){
604		cookieadmin_is_consent.consent = consent_id;
605		cookieadmin_consent['consent'] = consent_id;
606	}
607	
608	if(!cookieadmin_is_consent.consent){
609		cookieadmin_is_consent.consent = "";
610	}
611	
612	cookieadmin_is_consent["old_action"] = cookieadmin_is_consent.action ? c
612ookieadmin_is_consent.action : {};
613	cookieadmin_is_consent.action = prefrenc;
614	cookieadmin_populate_preference();
615	cookieadmin_set_cookie('cookieadmin_consent', cookieadmin_consent, days);
616	
617	if (typeof cookieadmin_update_gcm === "function") {
618		cookieadmin_update_gcm(1);
619	}
620	
621	if(!!cookieadmin_policy.reload_on_consent){
622		location.reload();
623	}else{
624		cookieadmin_restore_cookies(prefrenc);
625	}
626}
627

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.