PageSourceSearch

https://sepe.es/HomeSepe/.resources/site-portal-sepe/webresources/js/cookies.js

js sepe.es collected 2026-10-01 08:36:16 UTC 10,917 bytes, 325 lines download raw bytes

1const cookieControlGeneral = "cookie_consent_general";
2const cookieControlFunctionality = "cookie_consent_functionality";
3const cookieControlAnalysis = "cookie_consent_analysis";
4
5$(document).ready(function () {
6    /* Check if banner's cookies has to be shown or not */
7    checkCookiesBannerVisibility();
8
9    /* Load snippets */
10    loadSnippets();
11
12    /* Handle Modals Checkboxes  */
13    handleModalCheckBoxes();
14    $(".js-checkbox-cookie-consent").change((e) => {
15        handleCheckBoxesLabels(e.currentTarget);
16    });
17
18    /* Handle cookies */
19    $(".js-cookies-accept").click(() => {
20        acceptCookies();
21    });
22
23    $(".js-cookies-reject").click(() => {
24        rejectCookies();
25    });
26});
27
28//Función para obtener el valor de una cookie
29function getCookie(cname) {
30    var name = cname + "=";
31    var decodedCookie = decodeURIComponent(document.cookie);
32    var ca = decodedCookie.split(';');
33    for (var i = 0; i < ca.length; i++) {
34        var c = ca[i];
35        while (c.charAt(0) === ' ') {
36            c = c.substring(1);
37        }
38        if (c.indexOf(name) === 0) {
39      	  var val = c.substring(name.length, c.length);
40            return val;
41        }
42    }
43    return "";
44}
45
46/* Function to handle checkboxes status reading consent cookies */
47const handleModalCheckBoxes = () => {
48    const necessary_checkbox = document.getElementById("necessary-check");
49    if (necessary_checkbox) {
50        handleCheckBoxesLabels(necessary_checkbox);
51    }
52
53    const funct_checkbox = document.getElementById("functionality-check");
54    if (funct_checkbox) {
55        funct_checkbox.checked = readCookie(cookieControlFunctionality) !== "false";
56        handleCheckBoxesLabels(funct_checkbox);
57    }
58
59    const analysis_checkbox = document.getElementById("analysis-check");
60    if (analysis_checkbox) {
61        analysis_checkbox.checked = readCookie(cookieControlAnalysis) !== "false";
62        handleCheckBoxesLabels(analysis_checkbox);
63    }
64}
65
66/* Function to handle checkboxes text (active/inactive) */
67const handleCheckBoxesLabels = (checkbox_elem) => {
68    const sibling_label = checkbox_elem.nextElementSibling;
69    sibling_label.innerHTML = checkbox_elem.checked ? sibling_label.dataset.active : sibling_label.dataset.inactive;
70}
71
72/* Check types of cookies has been accepted by user */
73const getAcceptedCookieTypes = () => {
74    let accepted_cookies = [];
75    if (readCookie(cookieControlGeneral) === "true") accepted_cookies.push("necessary");
76    if (readCookie(cookieControlFunctionality) === "true") accepted_cookies.push("functionality");
77    if (readCookie(cookieControlAnalysis) === "true") accepted_cookies.push("analysis");
78    return accepted_cookies;
79};
80
81/* Load cookies snippets */
82const loadSnippets = () => {
83    const cookies_grouped = groupCookieBy(
84        mapCookiesElements(document.getElementsByClassName("js-cookie")),
85        "tagUuid"
86    );
87    for (const key in cookies_grouped) {
88        const mtag_elem = document.getElementById("mTag-" + key);
89        const load_snippet = [...new Set(cookies_grouped[key].map(cookie => cookie.type))].every(
90            cookie_type => getAcceptedCookieTypes().includes(cookie_type)
91        );
92        if (load_snippet) {
93            const original_snippet = mtag_elem.querySelector("script");
94            let new_snippet = original_snippet.cloneNode(true);
95            new_snippet.setAttribute("type", "text/javascript");
96            original_snippet.closest(".js-cookies-wrapper").before(new_snippet);
97        }
98    }
99}
100
101/* Group Cookies by key */
102const groupCookieBy = (array, key) => {
103    return array.reduce((acc, current) => {
104        acc[current[key]] = acc[current[key]] || [];
105        acc[current[key]].push(current);
106        return acc;
107    }, []);
108};
109
110/* Function to show cookies banner */
111const checkCookiesBannerVisibility = () => {
112    if (!readCookie(cookieControlGeneral)) {
113        //$(".js-cookies-banner").show();
114        setCookieBanner();
115        if($('#myModal').length>0)
116            $('#myModal').hide();
117    }else{
118        
119		var cookieName = $("input[name=cookiePopUp]").val();
120  // Mostramos el popup si está la cookie a false
121	  if (getCookie(cookieName)=='false' || getCookie(cookieName)=='') {
122		  $('#myModal').show();
123	  }else if(getCookie(cookieName)=='true'){
124        $('#myModal').hide();
125      }
126      
127	}
128  function setCookieBanner(){
129    document.body.classList.add('has-cookie-banner');
130    var cookiecont = document.querySelector('.js-cookies-banner');
131    cookiecont.classList.add('is-visible')
132    var lastFsable = document.querySelector('.js-cookies-configure');
133    lastFsable.addEventListener('keydown', function(e){
134      if (!e.shiftKey && e.key == 'Tab' && document.activeElement === lastFsable) {
135        e.preventDefault();
136        var modalConfig = document.querySelector('.cookies-panel');
137        if (modalConfig.getBoundingClientRect().height > 0){
138          modalConfig.setAttribute('tabindex', '-1');
139          modalConfig.focus();
140        } else {
141          document.querySelector('.js-cookies-accept').focus();
142        }
143      }
144    });
145  }
146
147}
148
149/* Function triggered when cookies are accepted via "js-cookies-accept" button */
150const acceptCookies = () => {
151
152    removeAllCookies();
153    createControlCookie(cookieControlGeneral, true);
154
155    const cookies = mapCookiesElements(document.getElementsByClassName("js-cookie"));
156
157    /* Strictly necessary cookies */
158    createCookiesByType(cookies, "necessary");
159
160    /* Functionality cookies */
161    const funct_checkbox = document.getElementById("functionality-check");
162    createControlCookie(cookieControlFunctionality, funct_checkbox.checked);
163    if (funct_checkbox.checked) createCookiesByType(cookies, "functionality");
164
165    /* Analysis cookies */
166    const analysis_checkbox = document.getElementById("analysis-check");
167    createControlCookie(cookieControlAnalysis, analysis_checkbox.checked);
168    if (analysis_checkbox.checked) createCookiesByType(cookies, "analysis");
169
170    document.body.classList.remove('has-cookie-banner');
171    var cookiecont = document.querySelector('.js-cookies-banner');
172    cookiecont.classList.remove('is-visible')
173
174    location.reload();
175}
176
177const rejectCookies = () => {
178
179    removeAllCookies();
180    //reject all cookies
181    createControlCookie(cookieControlGeneral, true);
182    createControlCookie(cookieControlFunctionality, false);
183    createControlCookie(cookieControlAnalysis, false);
184
185    document.body.classList.remove('has-cookie-banner');
186    var cookiecont = document.querySelector('.js-cookies-banner');
187    cookiecont.classList.remove('is-visible')
188
189    location.reload();
190}
191
192/* const showCookiesModal = () => {
193    $("#js-cookies-panel").addClass("show");
194} */
195
196/* Map every HTML elements to cookies object */
197const mapCookiesElements = (cookies_elements) => {
198    return Array.from(cookies_elements)
199        .map((cookieElement) => mapCookie(jQuery(cookieElement)))
200        .filter(cookie => cookie.enabled);
201}
202
203/* Map HTML element to Cookie Object */
204const mapCookie = (element) => {
205    let expires = "";
206    if (element.data("maxage")) {
207        let maxAge = element.data("maxage");
208        maxAge = isNaN(maxAge) && maxAge.includes(",") ? parseInt(maxAge.replace(",", "")) : maxAge;
209        const date = new Date();
210        date.setTime(date.getTime() + (maxAge * 1e3));
211        expires = date.toUTCString();
212    }
213
214    return {
215        "name": element.data("name"),
216        "value": element.data("value"),
217        "type": element.data("type"),
218        "enabled": element.data("enabled"),
219        "expires": expires,
220        "domain": element.data("domain"),
221        "path": element.data("path"),
222        "tagUuid": element.data("taguuid"),
223        "secure": element.data("secure")
224    };
225}
226
227/* Create control cookie */
228const createControlCookie = (name, value) => {
229    document.cookie =
230        name + "=" + value + ";" +
231        "domain=" + window.location.hostname + "; " +
232        "path=/";
233}
234
235const createCookiesByType = (cookies, type) => {
236    cookies.filter(cookie =>
236 cookie.type === type).forEach((cookie) => {
237        document.cookie =
238            cookie.name + "=" + (cookie.value || "") + "; " +
239            "expires=" + cookie.expires + "; " +
240            "domain=" + cookie.domain + "; " +
241            "path=" + cookie.path + "; ";
242    });
243}
244
245/* Remove all cookies */
246const removeAllCookies = () => {
247    const cookies = document.cookie.split(";");
248    for (let i = 0; i < cookies.length; i++) {
249        const cookie = cookies[i];
250        const eqPos = cookie.indexOf("=");
251        const name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
252        document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
253    }
254}
255
256/* Remove specific cookie */
257const removeCookie = (cookieName) => {
258    document.cookie = cookie.name + "=; Max-Age=-99999999;"
259}
260
261/* Get cookie by name */
262const readCookie = (name) => {
263    const name_EQ = name + "=";
264    const ca = document.cookie.split(';');
265    for (var i = 0; i < ca.length; i++) {
266        var c = ca[i];
267        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
268        if (c.indexOf(name_EQ) == 0) return c.substring(name_EQ.length, c.length);
269    }
270    return null;
271}
272
273
274//Funcion para crear las cookies de los popups
275function createCookiePopUp(input, tipoCookieConsentimiento){
276	if (readCookie(tipoCookieConsentimiento)=="true") {
277		var date = new Date();
278		date.setTime(date.getTime()+(7*24*60*60*1000));
279		var expires = "; expires="+date.toGMTString();
280		var cookie = document.getElementsByName(input);
281		if(cookie.length>0){
282			var nombreCookie = cookie[0].value;
283		var marcado = cookie[0].checked;
284		var pathname = window.location.pathname;
285		self.document.cookie = nombreCookie+"="+marcado+expires+";path="+pathname+";";
286		}
287	}
288}
289
290//Funcion para crear las cookies de los popups
291function createCookiePopUpYear(input, tipoCookieConsentimiento){
292    if (readCookie(tipoCookieConsentimiento)=="true") {
293		var date = new Date();
294		date.setTime(date.getTime()+(365*24*60*60*1000));
295		var expires = "; expires="+date.toGMTString();
296
297		var cookie = document.getElementsByName(input);
298		if(cookie.length>0){
299			var nombreCookie = cookie[0].value;
300			var marcado = cookie[0].checked;
301			var pathname = window.location.pathname;
302			self.document.cookie = nombreCookie+"="+marcado+expires+";path="+pathname+";";
303		}
304	}
305    //cierra la modal
306    document.getElementById('myModal').style.visibility = "hidden";
307}
308
309//Funcion para obtener el valor de una cookie
310function getCookie(cname) {
311    var name = cname + "=";
312    var decodedCookie = decodeURIComponent(document.cookie);
313    var ca = decodedCookie.split(';');
314    for (var i = 0; i < ca.length; i++) {
315        var c = ca[i];
316        while (c.charAt(0) === ' ') {
317            c = c.substring(1);
318        }
319        if (c.indexOf(name) === 0) {
320      	  var val = c.substring(name.length, c.length);
321            return val;
322        }
323    }
324    return "";
325}

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.