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.