PageSourceSearch

https://www.ifap.pt/portal/o/ifap-theme/js/cookies.js

js ifap.pt collected 2026-10-03 19:25:43 UTC 5,564 bytes, 167 lines download raw bytes

1var CONSENT_COOKIE_NAME = "IFAP_USER_CONSENT";
2
3function manageCookies(type){
4    if (type == "all"){
5        addCookies(1);
6    } else if (type == "management"){
7        var isSelect = document.getElementById("checkAnalytics").checked;
8
9        if (isSelect){
10            addCookies(1);
11        } else {
12            addCookies(0);
13            removeCookiesFromGoogleTagManager();
14        }
15    }
16    location.reload(true);
17}
18
19function addCookies(value){
20    var name = CONSENT_COOKIE_NAME;
21    var date = new Date();
22    var cookieValue = {"analysis": value, "timestamp": Date.now() / 1000 | 0};
23    date.setTime(date.getTime() + (365*20*24*60*60*1000));
24    var expires = "expires="+ date.toUTCString();
25    document.cookie = name + "=" + JSON.stringify(cookieValue) + ";" + expires + ";domain=" + getCookieDomain() + ";path=/" ;
26    hideModal();
27}
28
29function showModal(){
30    $(".cookie-msg.modal").css("display", "initial");
31    $(".cookie-msg.modal").css("height", "auto");
32    $(".cookies-dark-filter").css("display", "initial");
33}
34
35function hideModal(){
36    $(".cookie-msg.modal").css("display", "none");
37    $(".cookies-dark-filter").css("display", "none");
38}
39
40function updateCookiePreferences(){
41    var isCreate = document.cookie.indexOf(CONSENT_COOKIE_NAME);
42    var isCorrectValue;
43    if (isCreate != -1){
44        isCorrectValue = checkCookie();
45    }
46    showModal();
47    var acc = document.getElementById("management");
48    acc.classList.add("disable");
49    var panel = document.getElementsByClassName("secondModal")[0];
50    panel.classList.add("active");
51    panel.style.maxHeight = panel.scrollHeight + "px";
52    
53    if (isCreate != -1 || !isCorrectValue){
54        addEvents();
55        var cookie = Cookies.get(CONSENT_COOKIE_NAME,{domain:getCookieDomain()});
56        try{
57            var jsonCookie = JSON.parse(cookie);
58
59            if (jsonCookie["analysis"] == 1) {
60                document.getElementById("checkAnalytics").checked = true;
61            } else {
62                document.getElementById("checkAnalytics").checked = false;
63            }
64        } catch(error){}
65    }
66}
67
68function checkCookie(){
69    var cookie = Cookies.get(CONSENT_COOKIE_NAME,{domain:getCookieDomain()});
70    try{
71        var jsonCookie = JSON.parse(cookie);
72        var isCorrectAnalysisValue  = (jsonCookie["analysis"] == 1 || jsonCookie["analysis"] == 0) ? true : false;
73    } catch(error){
74        console.error("Error checking cookies", error);
75    }
76
77    return isCorrectAnalysisValue;
78}
79
80function getCookieDomain(){
81    var host = location.hostname;         
82    var domainParts = host.split('.');
83    domainParts.shift();
84    var domain = '.'+domainParts.join('.');
85    
86    return domain;
87}
88function removeCookiesFromGoogleTagManager(){
89    var cookiesArray = document.cookie.split(";");
90    for(var i = 0; i<cookiesArray.length; i++){
91        var cookieName = cookiesArray[i].split('=')[0].trim(); 	// We get cookie's name...
92        if(cookieName != CONSENT_COOKIE_NAME){
93            Cookies.remove(cookieName ,{path: "/", domain: getCookieDomain()});	//(except the one we've created)
94        }
95    }
96}
97
98function checkAnalytics(){
99    var cookie = Cookies.get(CONSENT_COOKIE_NAME);
100    try{
101        if (document.cookie.indexOf(CONSENT_COOKIE_NAME) == -1){
102            var googleAnalyticsId = $("input#googleAnalyticsId").val();
103            window['ga-disable-' + googleAnalyticsId] = true;
104            removeCookiesFromGoogleTagManager();
105        } else {
106            var jsonCookie = JSON.parse(cookie);
107
108            if (jsonCookie["analysis"] == 0) {
109                var googleAnalyticsId = $("input#googleAnalyticsId").val();
110                window['ga-disable-' + googleAnalyticsId] = true;
111                removeCookiesFromGoogleTagManager();
112            } 
113        }
114        
115    } catch(error){
116        console.error("Error setting Google Analytics cookies", error);
117    }
118}
119window.onload = function(){
120    var isCreate = document.cookie.indexOf(CONSENT_COOKIE_NAME);
121    var isCorrectValue;
122    checkAnalytics();
123    if (isCreate != -1){
124        isCorrectValue = checkCookie();
125        if (!isCorrectValue){
126            showModal();
127            addEvents();
128        }
129    } else {
130        showModal();
131        addEvents();
132    }
133}
134
135function addEvents(){
136    //button to show second Modal event
137    var acc = document.getElementById("management");
138    acc.addEventListener("click", function() {
139        this.classList.add("disable");
140        var panel = document.getElementsByClassName("secondModal")[0];
141        panel.classList.add("active");
142        panel.style.maxHeight = panel.scrollHeight + "px";
143    });
144
145    //button accept all cookies
146    var acceptAll = document.getElementById("accept");
147    acceptAll.addEventListener("click", function(){manageCookies("all")});
148
149    //button accept 
150    var acceptManagement = document.getElementById("acceptManagement");
151    acceptManagement.addEventListener("click", function(){manageCookies("management")});
152}
153
154/**
155 * Mostra o modal para gerir as opções de consentimento do utilizador
156 */
157function showIfapUserConsent() {
158    showModal();
159    addEvents();
160}
161
162/**
163 * Elimina o cookie onde estão guardadas as opções de consentimento dadas pelo utilizador
164 */
165function removeIfapUserConsent() {
166    document.cookie = CONSENT_COOKIE_NAME + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=" + getCookieDomain() + ";path=/";
167}

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.