PageSourceSearch

https://www.urhh.sk/wp-content/plugins/idsk-toolkit/assets/js/cookies.js

js urhh.sk collected 2026-09-25 04:38:01 UTC 4,117 bytes, 150 lines download raw bytes

1const cookieSet = idsk_cookie_data.cookieSet;
2const cookieExpire = idsk_cookie_data.cookieExpire;
3const cookie_banners = Array.from(document.getElementsByClassName( 'idsk-cookie-banner' ));
4const cookie_message = Array.from(document.getElementsByClassName( 'idsk-cookies-message' ));
5const cookies_accept_btn = Array.from(document.getElementsByClassName( 'idsk-cookies-accept' ));
6const cookies_reject_btn = Array.from(document.getElementsByClassName( 'idsk-cookies-reject' ));
7const cookies_close_btn = Array.from(document.getElementsByClassName( 'idsk-cookies-hide' ));
8
9/**
10 * Hide banner if cookie is set
11 */
12if ( getCookie('idskCookies') || cookieSet == 1 ) {
13    cookie_banners.forEach( function(e) { toogleHidden(e) } );
14}
15
16/**
17 * Accept button
18 */
19cookies_accept_btn.forEach( function(e) {
20    const cookies_allowed = Array.from(document.getElementsByClassName( 'idsk-cookies-allow' ));
21    let cookies_ids = [];
22
23    e.addEventListener('click', function() {
24        cookies_allowed.forEach(function(cookie) {
25            if (cookie.checked == true && cookie.getAttribute('id') != 'idskCookies') {
26                cookies_ids.push(cookie.getAttribute('id'));
27            }
28        });
29
30        idskCookieConsent(cookies_ids);
31
32        if (e.classList.contains('idsk-cookies-accept-form')) {
33            location.reload();
34        }
35    });
36});
37
38/**
39 * Reject button
40 */
41cookies_reject_btn.forEach( function(e) {
42    e.addEventListener('click', function() {
43        idskCookieDissent();
44    });
45});
46
47/**
48 * Close button
49 */
50cookies_close_btn.forEach( function(e) {
51    e.addEventListener('click', function() {
52        location.reload();
53    });
54});
55
56/**
57 * Toogle attribute hidden
58 * @param {object} el
59 */
60function toogleHidden(el) {
61    if (!el.hasAttribute('hidden') || el.getAttribute('hidden') === 'false') {
62        el.setAttribute('hidden', 'true');
63    } else {
64        el.removeAttribute('hidden');
65    }
66}
67
68/**
69 * Cookie consent
70 * @param {array} cids Cookies IDs
71 */
72function idskCookieConsent(cids = []) {
73    const cookies_accepted = Array.from(document.getElementsByClassName( 'idsk-cookies-accepted' ));
74
75    deleteCookies();
76    createCookie('accepted');
77
78    cids.forEach(function(id) {
79        createCookie('accepted', id);
80    });
81
82    cookie_message.forEach( function(e) { toogleHidden(e) } );
83    cookies_accepted.forEach( function(e) { toogleHidden(e) } );
84}
85
86/**
87 * Cookie dissent
88 */
89function idskCookieDissent() {
90    const cookies_rejected = Array.from(document.getElementsByClassName( 'idsk-cookies-rejected' ));
91
92    deleteCookies();
93    createCookie('rejected');
94
95    cookie_message.forEach( function(e) { toogleHidden(e) } );
96    cookies_rejected.forEach( function(e) { toogleHidden(e) } );
97}
98
99/**
100 * Create cookie
101 * @param {string} value
102 * @param {string} cname Cookie name
103 */
104function createCookie(value, cname = '') {
105    const today = new Date();
106    const expire = new Date();
107    const name = 'idskCookies' + ( cname != '' ? '_' + cname : '' );
108
109    if (cookieExpire > 0) {
110        expire.setTime(today.getTime() + (cookieExpire * 24 * 60 * 60 * 1000) );
111        cookieParams = name + "=" + value + "; expires=" + expire.toUTCString() + "; path=/";
112    } else {
113        cookieParams = name + "=" + value + "; path=/";
114    }
115    document.cookie = cookieParams;
116}
117
118/**
119 * Get cookie
120 * @param {string} cname Cookie name
121 * @returns {string}
122 */
123function getCookie(cname) {
124    const name = cname + "=";
125    const decodedCookie = decodeURIComponent(document.cookie);
126    const cookies = decodedCookie.split(';');
127
128    for (var i = 0; i < cookies.length; i++) {
129        var cookie = cookies[i];
130
131        while (cookie.charAt(0) == ' ') {
132            cookie = cookie.substring(1);
133        }
134
135        if (cookie.indexOf(name) == 0) {
136            return cookie.substring(name.length, cookie.length);
137        }
138    }
139
140    return "";
141}
142
143/**
144 * Delete cookies
145 */
146function deleteCookies() {
147    document.cookie.split(";").forEach(function(cookie) { 
148        document.cookie = cookie.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); 
149    });
150}

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.