(function( w ){ var loadJS = function( src, cb, ordered ){ "use strict"; var tmp; var ref = w.document.getElementsByTagName( "script" )[ 0 ]; var script = w.document.createElement( "script" ); if (typeof(cb) === 'boolean') { tmp = ordered; ordered = cb; cb = tmp; } script.src = src; script.async = !ordered; ref.parentNode.insertBefore( script, ref ); if (cb && typeof(cb) === "function") { script.onload = cb; } return script; }; // commonjs if( typeof module !== "undefined" ){ module.exports = loadJS; } else { w.loadJS = loadJS; } }( typeof global !== "undefined" ? global : this )); /* Bootstrap */ loadJS("https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js"); /* Menu toggling */ var menuButton = document.getElementById("menuButton"); if(menuButton){ menuButton.addEventListener("click",function(e){ try{ let collapse = document.getElementById('main-nav'); if(!collapse.classList.contains("show")){ collapse.classList.add('show'); console.log("Menu opened!"); var elemDiv = document.createElement('div'); elemDiv.id = "bgMobileFloating"; elemDiv.style.cssText = 'position:fixed;top:0;left:0;width:100%;height:100%;opacity:0.5;z-index:100;background:#000;'; document.body.appendChild(elemDiv); }else{ console.log("Menu closed!"); collapse.classList.remove("show"); document.getElementById("bgMobileFloating").remove(); } }catch(error){ console.log("%cError on mobile menu: "+error, "color:red; font-weight:bold;"); } }); }else{ console.log("%cError on mobile menu: Button does not exists!", "color:red; font-weight:bold;"); } /* Social sharing */ try{ var share_button = document.getElementById("share"); if(share_button){ if(navigator.share){ share_button.addEventListener("click",function(e){ navigator.share({ title: document.title, text: document.title, url: window.location.href, }) .catch((error) => console.log("%cError on social sharing: "+error, "color:red; font-weight:bold;")); }, false); }else{ share_button.remove(); console.log("%cError on social sharing: Browser not supported", "color:red; font-weight:bold;"); } } }catch(error){ console.log("%cError on social sharing: "+error, "color:red; font-weight:bold;"); } window.onload = function(){ document.body.className = document.body.className.replace("no-js", ""); console.log("%c Animations enabled by theme options.", "color:green; font-weight:bold;"); /* * * Link optimization * */ try{ var anchors = document.querySelectorAll('span[data-link-optimizer], div[data-link-optimizer], button[data-link-optimizer]'); if(anchors && anchors.length>0){ for(var i = 0; i < anchors.length; i++){ var anchor = anchors[i]; anchor.addEventListener("click", function(event){ if(typeof event.target !== 'undefined' && event.target !== undefined){ if(event.target.localName == "a"){ return true; } var anchor = (event.target || event.srcElement); var url = this.getAttribute("data-link-optimizer"); if(url != null && typeof url !== 'undefined' && url !== undefined){ var target = anchor.getAttribute('data-link-target'); if(typeof target !== 'undefined' && target !== false && target == "_blank"){ window.open(atob(url), '_blank'); }else{ window.location.href=atob(url); } }else{ console.log("%cData link is not valid: "+error, "color:red; font-weight:bold;"); } } }, false); } } }catch(error){ console.log("%cError on 'links' module: "+error, "color:red; font-weight:bold;"); } } /*/ /* Going to top. /*/ try{ /* Go to top */ document.getElementById("go-to-top").addEventListener("click", function(e){ window.scrollTo(0,0); },false); /* Show & Hide go-to-top on scroll */ window.onscroll = function(){ let pageOffset = (document.documentElement.scrollTop || document.body.scrollTop); if(pageOffset >= 100){ document.getElementById("go-to-top").style.display="block"; }else{ document.getElementById("go-to-top").style.display="none"; } }; }catch(error){ console.log("%cError on 'go to top' module: "+error, "color:red; font-weight:bold;"); } /* Index table */ try{ function toggleIndexTable(){ var index = document.getElementById("index-table"); if(index.classList.contains("hidden")){ index.classList.remove("hidden"); index.classList.add("active"); document.getElementById("toggleIndex").innerHTML = ''; }else{ index.classList.add("hidden"); index.classList.remove("active"); document.getElementById("toggleIndex").innerHTML = ''; } } }catch(error){ console.log("%cError on 'index tables' module: "+error, "color:red; font-weight:bold;"); } /* Scroll menu */ try{ }catch(error){ console.log("%cError on 'sticky header' module: "+error, "color:red; font-weight:bold;"); } /* Disable right click */ try{ }catch(error){ console.log("%cError on 'disable right click' module: "+error, "color:red; font-weight:bold;"); } /* Google Analytics */ try{ }catch(error){ console.log("%cError on 'google analytics' module: "+error, "color:red; font-weight:bold;"); } /* Adsense */ try{ function gads(){const e=document.createElement("script");e.async=!0,e.setAttribute("crossorigin","anonymous"),e.src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7912518993246104";let t=0;document.addEventListener("mousemove",function(){1==++t&&document.getElementsByTagName("HEAD").item(0).appendChild(e)}),window.onscroll=function(n){1==++t&&document.getElementsByTagName("HEAD").item(0).appendChild(e)},setTimeout(function(){0===t&&(t++,document.getElementsByTagName("HEAD").item(0).appendChild(e))},5e3)} }catch(error){ console.log("%cError on 'adsense' module: "+error, "color:red; font-weight:bold;"); } /* Add custom code */ try{ /* Pure Javascript only */ console.clear(); /* Botón de compartir */ if(!navigator.share){ try{ document.getElementById("compartir").remove(); console.log("Eliminados botones de compartir. Este dispositivo no es compatible."); }catch(error){ console.error("Error al eliminar botón de compartir: "+error); } } function evento_carrera_a_universidad(){ if (typeof ga === 'function'){ console.log("Evento enviado (carrera hacia universidad)."); ga('send', {hitType: 'event', eventCategory: 'Clic en botón de Universidad dentro de grado', eventAction: 'Clic', eventLabel: window.location.href}); } } /* Compartir página */ function share(){ if(navigator.share){ if (typeof ga === 'function'){ console.log("Evento enviado (share)."); ga('send', {hitType: 'event', eventCategory: 'Compartir página', eventAction: 'Clic', eventLabel: window.location.href}); } navigator.share({ title: window.title, text: 'Comprova les notes de tall per a la teva universitat en aquesta pàgina.', url: window.location.href }) .then(() => console.log('Página compartida correctamente')) .catch((error) => console.log('Error al compartir página', error)); }else{ alert("No se puede compartir esta página desde tu dispositivo"); } } }catch(error){ console.log("%cError on 'custom code' module: "+error, "color:red; font-weight:bold;"); } /* Resize window, menu options */ function checkDropdownTypes(){ var dropdownType = (window.innerWidth<700 ? 'dropdown' : 'collapse'); var links = document.querySelectorAll("#main-nav a.dropdown-toggle.nav-link[data-bs-toggle]"); if(links.length>0){ for(var i=0; isocios (incluido Google) pueden almacenar, compartir y gestionar tus datos para ofrecer anuncios personalizados. Recuerda que puedes modificar este consentimiento en el aviso legal en cualquier momento.', "statistics": "Estadísticas", "marketing": "Marketing", "consent_edit": "En este lugar, podrás modificar y editar tus opciones de consentimiento. Podrás modificarlo más adelante, pero ten en cuenta que la desactivación de algunas opciones puede perjudicar el funcionamiento de la página web.", "statistics_info": "Las cookies de estadísticas nos permiten comprender y analizar de forma anónima cómo interactúan los visitantes con la web. Con estos datos, podemos mejorar el servicio que ofrecemos.", "marketing_info": "Las cookies de marketing son usadas para analizar a los visitantes en las páginas web, con el objetivo de mostrar anuncios más relevantes, útiles y atractivos para el usuario. Este tipo de cookies permite ofrecer una mejor experiencia tanto para el usuario como para el editor.", "preferences": "Preferencias", "preferences_info": "Las cookies de preferencias son aquellas enfocadas en recordar información sobre la forma de la página, cómo se comporta o su aspecto. Por otra parte, también permite recordar el idioma preferido o la región en la que te encuentras. Este sitio web no utiliza este tipo de cookies.", "allow_personalized_ads": "Permitir anuncios que estén basados en mi historial de navegación", "required": "Necesarias", "required_info": "Este tipo de cookies permiten que la web funcione. Sin estas webs, no podrás navegar, acceder a áreas seguras de la página web o simplemente buscar." }; }else if(language == "ca"){ var languages = { "title": "Aquesta pàgina web utilitza cookies", "accept": "Accepto", "cancel": "Cancel·lar", "save": "Desa", "accept_continue": "Acceptar i continuar amb les recomanades", "first_message": "T'informem que fem servir cookies pròpies, d'analítiques i estadístiques, de xarxes socials, de personalització del contingut i d'anuncis per assegurar el funcionament correcte del web.", "second_message": 'Els nostres socis (inclòs Google) poden emmagatzemar, compartir i gestionar les dades per oferir anuncis personalitzats. Recordeu que podeu modificar aquest consentiment a l\'avís legal en qualsevol moment.', "statistics": "Estadístiques", "marketing": "Màrqueting", "consent_edit": "En aquest lloc, podreu modificar i editar les vostres opcions de consentiment. Podràs modificar-ho més endavant, però tingues en compte que la desactivació d'algunes opcions pot perjudicar el funcionament de la pàgina web.", "statistics_info": "Les galetes d'estadístiques ens permeten comprendre i analitzar de manera anònima com interactuen els visitants amb la web. Amb aquestes dades podem millorar el servei que oferim.", "marketing_info": "Les galetes de màrqueting són usades per analitzar els visitants a les pàgines web, amb l'objectiu de mostrar anuncis més rellevants, útils i atractius per a l'usuari. Aquest tipus de galetes permet oferir una millor experiència tant per a l'usuari com per a l'editor.", "preferences": "Preferències", "preferences_info": "Les galetes de preferències són aquelles enfocades a recordar informació sobre la forma de la pàgina, com es comporta o el seu aspecte. D'altra banda, també permet recordar l'idioma preferit o la regió on et trobes. Aquest lloc web no utilitza aquest tipus de galetes.", "allow_personalized_ads": "Permetre anuncis basats en el meu historial de navegació", "required": "Necessàries", "required_info": "Aquest tipus de galetes permeten que la web funcioni. Sense aquests webs, no podràs navegar, accedir a àrees segures de la pàgina web o simplement cercar." }; }else if(language == "en"){ var languages = { "title": "This website uses cookies", "accept": "Accept", "cancel": "Cancel", "save": "Save", "accept_continue": "Accept and continue with the recommended", "first_message": "We inform you that we use our own cookies, for analytics and statistics, social networks, content personalization and ads to ensure the proper functioning of the website.", "second_message": 'Our partners (including Google) may store, share and manage your data to deliver personalized ads. Remember that you can modify this consent in the legal notice at any time.', "statistics": "Statistics", "marketing": "Marketing", "consent_edit": "In this place, you will be able to modify and edit your consent options. You can modify it later, but keep in mind that the deactivation of some options may impair the functioning of the website.", "statistics_info": "Statistics cookies allow us to anonymously understand and analyze how visitors interact with the website. With this data, we can improve the service we offer.", "marketing_info": "Marketing cookies are used to analyze visitors on web pages, with the aim of showing more relevant, useful and attractive advertisements for the user. This type of cookie allows us to offer a better experience for both the user and the editor.", "preferences": "Preferences", "preferences_info": "Preference cookies are those focused on remembering information about the shape of the page, how it behaves or its appearance. On the other hand, it also allows you to remember the preferred language or the region in which you are. This website does not use this type of cookies.", "allow_personalized_ads": "Allow ads that are based on my browsing history.", "required": "Required", "required_info": "These types of cookies allow the website to function. Without these websites, you will not be able to navigate, access secure areas of the website or simply search." }; }else if(language == "fr"){ var languages = { "title": "Ce site web utilise des cookies", "accept": "Accepter", "cancel": "Annuler", "save": "Sauvegarder", "accept_continue": "Acceptez et continuez avec les recommandations", "first_message": "Nous vous informons que nous utilisons nos propres cookies, pour l'analyse et les statistiques, les réseaux sociaux, la personnalisation du contenu et les publicités pour assurer le bon fonctionnement du site Web.", "second_message": 'Nos partenaires (y compris Google) peuvent stocker, partager et gérer vos données pour diffuser des annonces personnalisées. N\'oubliez pas que vous pouvez modifier ce consentement dans les mentions légales à tout moment.', "statistics": "Statistiques", "marketing": "Commercialisation", "consent_edit": "Dans cet endroit, vous pourrez modifier et éditer vos options de consentement. Vous pourrez le modifier ultérieurement, mais gardez à l'esprit que la désactivation de certaines options peut altérer le fonctionnement du site.", "statistics_info": "Les cookies de statistiques nous permettent de comprendre et d'analyser de manière anonyme la façon dont les visiteurs interagissent avec le site Web. Avec ces données, nous pouvons améliorer le service que nous offrons.", "marketing_info": "Les cookies de marketing sont utilisés pour analyser les visiteurs sur les pages Web, dans le but de montrer des publicités plus pertinentes, utiles et attrayantes pour l'utilisateur. Ce type de cookie nous permet d'offrir une meilleure expérience à la fois à l'utilisateur et à l'éditeur.", "preferences": "Préférences", "preferences_info": "Les cookies de préférence sont ceux qui se concentrent sur la mémorisation d'informations sur la forme de la page, son comportement ou son apparence. D'autre part, cela vous permet également de vous souvenir de la langue préférée ou de la région dans laquelle vous vous trouvez. Ce site n'utilise pas ce type de cookies.", "allow_personalized_ads": "Autoriser les annonces basées sur mon historique de navigation.", "required": "Nécessaire", "required_info": "Ces types de cookies permettent au site Web de fonctionner. Sans ces sites Web, vous ne pourrez pas naviguer, accéder aux zones sécurisées du site Web ou simplement effectuer une recherche." }; } div.innerHTML = '
'+(languages.title)+'

'+(languages.first_message)+'

'+(languages.second_message)+'

'+(languages.consent_edit)+'

'+(languages.required_info)+'

'+(languages.preferences_info)+'

'+(languages.marketing_info)+'

'+(languages.statistics_info)+'

'; /* Add the div to the body */ document.body.appendChild(div); /* Cancel consent modification */ var cancel = document.getElementById("cancelConsent"); cancel.addEventListener("click", function(e){ document.getElementById("cookiePreferences").className = ''; document.getElementById("cookieText").className = 'visible'; }); /* Edit consent */ var modify = document.getElementById("modifyConsent"); modify.addEventListener("click", function(e){ document.getElementById("cookiePreferences").className = 'visible'; document.getElementById("cookieText").className = 'hidden'; }); /* Save consent */ var modify = document.getElementById("saveConsent"); modify.addEventListener("click", function(e){ document.getElementById("cookiePreferences").className = 'visible'; document.getElementById("cookieText").className = 'hidden'; }); /* Accept consent */ var acceptConsent = document.getElementById("acceptConsent"); acceptConsent.addEventListener("click", function(e){ console.log("%c✔ Consent accepted!", "color:green; font-weight:bold;"); setCookie("consent", "accepted", 365*100); loadExternalScripts(); document.getElementById("cookieConsent").remove(); }); } if(!getCookie("consent") || getCookie("consent") != "accepted"){ /* Current browser language */ var lang = (navigator.language || navigator.userLanguage).substr(0, 2); /* Remove all cookies, if set */ document.cookie.split(';').some(c => { return c.trim().startsWith(name + '='); }); /* Show the consent dialog */ renderConsent(lang); console.log("%c⚠ Consent not accepted, awaiting user confirmation.", "color:orange; font-weight:bold;"); }else{ /* If consent already accepted, load it. */ console.log("%c✔ Consent already accepted!", "color:green; font-weight:bold;"); loadExternalScripts(); } /* All ok? */ console.log("%c✔ All scripts loaded sucessfully", "color:green; font-weight:bold;");