1<!DOCTYPE HTML> 2<html lang="ca" xmlns="http://www.w3.org/1999/xhtml" xml:lang="ca" > 3 <head> 4 <!-- METADATA --> 5<meta charset="utf-8"> 6<meta name="viewport" content="width=device-width, initial-scale=1"> 7<meta name="title" lang="ca" content="Contactar - Ajuntament d'Avià "> 8<meta name="description" lang="ca" content=""> 9<meta name="author" lang="ca" content="Ajuntament d'Avià "> 10<meta name="date" lang="ca" content="2014-12-22 09:51:38"> 11<meta name="generator" lang="ca" content="Ajuntament d'Avià "> 12<meta name="robots" content="index, follow"> 13 14 <title>Contactar - Ajuntament d'Avià </title> 15 16 <!-- Global Site Tag (gtag.js) - Google Analytics v4-->
vendor: 124 bytes, lines 16-17
16 17<script type="text/plain" data-type="text/javascript" data-name="ga" data-src="https://www.googletagmanager.com/gtag/js?id=
17G-4X25MLZ3HH
vendor: 12 bytes, line 17
17"></script>
18<script type="text/plain" data-type="text/javascript" data-name="ga"> 19
vendor: 140 bytes, lines 19-23
19window.dataLayer = window.dataLayer || []; 20 function gtag(){dataLayer.push(arguments);} 21 gtag('js', new Date()); 22 23 gtag('config', '
23G-4X25MLZ3HH
vendor: 8 bytes, lines 23-24
23'); 24
24// Creates the default tracker. 25 gtag('event', 'page_view', { 'send_to': 'G-4X25MLZ3HH' }); 26</script>
26 27<!-- End of code Global Site Tag (gtag.js) - Google Analytics v4--> 28 <link rel="canonical" href="/altres-continguts/contactar"> 29 30 <link rel="stylesheet" href="/front/view/js/bower_components/bootstrap/dist/css/bootstrap.min.css?ver=1790949915"> 31<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css?ver=1790949915"> 32<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-icons.min/index.css?ver=1790949915"> 33<link rel="stylesheet" href="/front/view/js/bower_components/tempus-dominus.min.css/index.css?ver=1790949915"> 34<link rel="stylesheet" href="/common/bower_components/select2/dist/css/select2.min.css?ver=1790949915"> 35 36 <!-- Real Favicon Genenrator--> 37<link rel="apple-touch-icon" href="/themes/avia/images/favicons/apple-touch-icon.png"> 38<link rel="icon" type="image/png" href="/themes/avia/images/favicons/favicon-16x16.png" sizes="16x16"> 39<link rel="icon" type="image/png" href="/themes/avia/images/favicons/favicon-32x32.png" sizes="32x32"> 40<link rel="shortcut icon" href="/themes/avia/images/favicons/favicon.ico"> 41
41<script src="/front/controller/klaro-config.php"></script>
vendor: 1 bytes, line 41
41
42<script> 43 // Fallback defensiu: si per algun motiu el PHP no retorna la configuració, 44 // assegurem una configuració mÃnima perquè Klaro no falli i mostri el banner. 45 window.klaroConfig = window.klaroConfig || { 46 version: '1.0', 47 elementID: 'klaro', 48 storageMethod: 'cookie', 49 storageName: 'klaro', 50 cookieName: 'klaro', 51 htmlTexts: true, 52 acceptAll: true, 53 hideDeclineAll: false, 54 services: [] 55 }; 56</script>
vendor: 1 bytes, line 56
56
57<script src="/front/view/js/klaro.min.js?ver=1790949915"></script>
vendor: 1 bytes, line 57
57
58<script src="/front/view/js/klaro-init.js?ver=1790949915"></script>
58 59 60 <!-- Twitter Card data --> 61<meta name="twitter:card" content="summary"> 62<meta name="twitter:title" content="Contactar"> 63<meta name="twitter:description" content=""> 64<meta name="twitter:image" content="https://www.avia.cat/themes/avia/images/logos/header.png"> 65 <meta name="twitter:image:alt" content="Logo"> 66 <!-- Open Graph data --> 67<meta property="og:title" content="Contactar"> 68<meta property="og:type" content="website"> 69<meta property="og:url" content="https://www.avia.cat/altres-continguts/contactar"> 70<meta property="og:image" content="https://www.avia.cat/themes/avia/images/logos/header.png"> 71 <meta property="og:image:alt" content="Logo"> 72 <meta property="og:image" content="https://www.avia.cat/themes/avia/images/logos/header_inv.png"> 73 <meta property="og:image:alt" content="Logo invertit"> 74 <meta property="og:description" content=""> 75<meta property="og:site_name" content="Ajuntament d'Avià "> 76 77 <!-- HTML5 compatible tags -->
78<script> 79 document.createElement('header'); 80 document.createElement('footer'); 81 document.createElement('section'); 82 document.createElement('aside'); 83 document.createElement('nav'); 84 document.createElement('article'); 85 document.createElement('hgroup'); 86 document.createElement('lh'); 87</script>
87 88
88<script>window.mapsConfig = { layerType: 'OpenStreetMap_Mapnik' };</script>
88 89<link rel="stylesheet" href="/front/view/js/bower_components/FreezeUI/freeze-ui.min.css"> 90<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/leaflet.css"> 91<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/Control.Loading.css">
92<script src="/front/view/js/bower_components/FreezeUI/freeze-ui.min.js"></script>
vendor: 1 bytes, line 92
92
93<script src="/front/view/js/bower_components/Leaflet/default/leaflet.js"></script>
vendor: 1 bytes, line 93
93
94<script src="/front/view/js/bower_components/es6-promise/es6-promise.min.js"></script>
vendor: 1 bytes, line 94
94
95<script>ES6Promise.polyfill();</script>
vendor: 1 bytes, line 95
95
96<script src='/front/view/js/bower_components/Leaflet/default/Leaflet.GoogleMutant.js'></script>
vendor: 1 bytes, line 96
96
97<script src="/front/view/js/googleMapsInit.js"></script>
vendor: 1 bytes, line 97
97
98<script type="text/plain" data-type="text/javascript" data-name="maps" data-src="https://maps.google.com/maps/api/js?key=AIzaSyDzMQfPcdyACxfYosZzQs43alxB8BKfkx8&loading=async&callback=onGoogleMapsReady"></script>
vendor: 1 bytes, line 98
98
99<script src="/front/view/js/bower_components/Leaflet/default/leaflet.maps.js"></script>
vendor: 1 bytes, line 99
99
100<script src="/front/view/js/bower_components/Leaflet/default/leaflet.clone.js"></script>
vendor: 1 bytes, line 100
100
101<script src="/front/view/js/bower_components/Leaflet/default/Control.Loading.js"></script>
vendor: 1 bytes, line 101
101
102<script src="/front/view/js/bower_components/jquery.min/index.js"></script>
vendor: 1 bytes, line 102
102
103<script src="/front/view/js/maps.js"></script>
103 <!-- Init addHeadExtraStyles --> 104 <style>html body{font-size:1em !important;} </style> 105 <!-- End addHeadExtraStyles --> 106 <!-- Font Awesome 7 + v4-shims for backward compatibility --> 107 <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all.min.css" rel="stylesheet"> 108 <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/v4-shims.min.css" rel="stylesheet"> 109 <!-- Popperjs + Tempus Dominus --> 110
110<script src="/front/view/js/bower_components/popper.min/index.js?ver=1790949915"></script>
vendor: 1 bytes, line 110
110
111<script src="/front/view/js/bower_components/tempus-dominus.min.js/index.js?ver=1790949915"></script>
111 112 <link rel="stylesheet" media="all" href="/themes/avia/styles/style.min.css?ver=1790949915"> 113 </head> 114 <body class="page id-62"> 115 <nav class="skip-links" aria-label="Dreceres d'accessibilitat"><ul><li><a href="#site-header">Saltar a la capçalera</a></li><li><a href="#readspeakerPage">Saltar al contingut</a></li><li><a href="#footer-content">Saltar al peu de pà gina</a></li></ul></nav> <header id="site-header" tabindex="-1"> 116 <div class="toolbar clearfix"> 117 <div class="container-xl"> 118 <div class="fright"> 119 <div class="toolbarItem"> 120 <div class="toolbarItem page-62 page-contactar current"> 121 <a 122 href="/altres-continguts/contactar" 123 target="_self" 124 rel="" 125 > 126 Contactar </a> 127</div> 128</div> <div id="social" class="toolbarItem"> 129 130 <a target="_blank" aria-label="Twitter" href="https://twitter.com/ajuntamentavia?lang=ca" title="Obre en finestra nova: Twitter"> 131 <span style="display: none">Twitter</span> 132 <img src="/themes/avia/images/icons/social/twitter.png" alt="Twitter" width="32" height="32"> 133 </a> 134 135 <a target="_blank" aria-label="Facebook" href="https://www.facebook.com/ajuntamentavia/" title="Obre en finestra nova: Facebook"> 136 <span style="display: none">Facebook</span> 137 <img src="/themes/avia/images/icons/social/facebook.png" alt="Facebook" width="32" height="32"> 138 </a> 139 140 <a target="_blank" aria-label="Instagram" href="https://www.instagram.com/ajuntamentavia/" title="Obre en finestra nova: Instagram"> 141 <span style="display: none">Instagram</span> 142 <img src="/themes/avia/images/icons/social/instagram.png" alt="Instagram" width="32" height="32"> 143 </a> 144 </div> 145 <div class="toolbarItem"> 146 <div id="toolbarLanguages"> 147 <ul id="languages"> 148 <li><a href="#" role="button" aria-expanded="false" aria-controls="languagesList" id="languagesToggle">Idiomes</a> 149 <ul id="languagesList"> 150 <li><a class="link-language" href="https://www.avia.cat/altres-continguts/contactar?lang=ca" data-target="https://www.avia.cat/altres-continguts/contactar?lang=ca">Català </a></li> 151 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=esie=UTF-8&u=https://www.avia.cat/altres-continguts/contactar&sl=ca&tl=es" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=esie=UTF-8&u=https://www.avia.cat/altres-continguts/contactar&sl=ca&tl=es">Castellà </a></li> 152 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=enie=UTF-8&u=https://www.avia.cat/altres-continguts/contactar&sl=ca&tl=en" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=enie=UTF-8&u=https://www.avia.cat/altres-continguts/contactar&sl=ca&tl=en">Anglès</a></li> 153 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=deie=UTF-8&u=https://www.avia.cat/altres-continguts/contactar&sl=ca&tl=de" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=deie=UTF-8&u=https://www.avia.cat/altres-continguts/contactar&sl=ca&tl=de">Alemany</a></li> 154 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=frie=UTF-8&u=https://www.avia.cat/altres-continguts/contactar&sl=ca&tl=fr" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=frie=UTF-8&u=https://www.avia.cat/altres-continguts/contactar&sl=ca&tl=fr">Francès</a></li> 155 </ul> 156 </li> 157 </ul> 158</div>
159<script> 160(function () { 161 var toggle = document.getElementById('languagesToggle'); 162 if (!toggle) return; 163 var li = toggle.parentElement; 164 var submenu = li.querySelector('ul'); 165 var links = Array.prototype.slice.call(submenu.querySelectorAll('a')); 166 167 function keyName(e) { 168 return e.key || e.code || e.keyCode; 169 } 170 171 function isSpaceKey(e) { 172 var key = keyName(e); 173 return key === ' ' || key === 'Spacebar' || key === 'Space' || key === 32; 174 } 175 176 function open(focusFirst) { 177 li.classList.add('is-open'); 178 submenu.style.display = 'block'; 179 submenu.style.padding = '1em'; 180 toggle.setAttribute('aria-expanded', 'true'); 181 if (focusFirst && links.length) links[0].focus(); 182 } 183 184 function close() { 185 li.classList.remove('is-open'); 186 submenu.style.display = ''; 187 submenu.style.padding = ''; 188 toggle.setAttribute('aria-expanded', 'false'); 189 } 190 191 function isOpen() { 192 return toggle.getAttribute('aria-expanded') === 'true'; 193 } 194 195 function focusLink(index) { 196 if (!links.length) return; 197 links[(index + links.length) % links.length].focus(); 198 } 199 200 function focusedLinkIndex() { 201 return links.indexOf(document.activeElement); 202 } 203 204 toggle.addEventListener('click', function (e) { 205 e.preventDefault(); 206 isOpen() ? close() : open(false); 207 }); 208 209 toggle.addEventListener('keydown', function (e) { 210 var key = keyName(e); 211 if (key === 'Enter' || isSpaceKey(e)) { 212 e.preventDefault(); 213 isOpen() ? close() : open(false); 214 } else if (key === 'ArrowDown' || key === 40) { 215 e.preventDefault(); 216 open(true); 217 } else if (key === 'ArrowUp' || key === 38) { 218 e.preventDefault(); 219 open(false); 220 focusLink(links.length - 1); 221 } else if (key === 'Escape' || key === 'Esc' || key === 27) { 222 if (isOpen()) { 223 e.preventDefault(); 224 close(); 225 } 226 } 227 }); 228 229 submenu.addEventListener('keydown', function (e) { 230 var key = keyName(e); 231 var index = focusedLinkIndex(); 232 233 if (key === 'ArrowDown' || key === 40) { 234 e.preventDefault(); 235 focusLink(index + 1); 236 } else if (key === 'ArrowUp' || key === 38) { 237 e.preventDefault(); 238 focusLink(index - 1); 239 } else if (key === 'Home' || key === 36) { 240 e.preventDefault(); 241 focusLink(0); 242 } else if (key === 'End' || key === 35) { 243 e.preventDefault(); 244 focusLink(links.length - 1); 245 } else if (isSpaceKey(e)) { 246 e.preventDefault(); 247 if (document.activeElement && document.activeElement.click) { 248 document.activeElement.click(); 249 } 250 } else if (key === 'Escape' || key === 'Esc' || key === 27) { 251 e.preventDefault(); 252 close(); 253 toggle.focus(); 254 } 255 }); 256 257 li.addEventListener('focusout', function () { 258 window.setTimeout(function () { 259 if (!li.contains(document.activeElement)) close(); 260 }, 0); 261 }); 262 263 document.addEventListener('click', function (e) { 264 if (!li.contains(e.target)) close(); 265 }); 266})(); 267</script>
267 268 <div class="currentDate" style='padding:9px;color:white'> 269 <span id="clock" class="clock" title='Data i hora oficial' > 270 02.10.2026 | 16:05 </span> 271</div> </div> 272 </div> 273 </div> 274</div> 275<div class="header "> 276 <div class="branding"> 277 <div class="container-xl"> 278 <div class="row"> 279 <div class="col-md-8 col-sm-8 col-lg-8 logo_box"> 280 <a class="logo" href="/" aria-label="Ajuntament d'Avià - Pà gina d'inici"> 281 <img src="/themes/avia/images/logos/header.png" alt="" width="324" height="116" id="mainLogo"> 282 </a> 283 </div> <div class="col-md-4 col-sm-4 col-lg-4 middle search_box"> 284 <form id="search_box" aria-label="Cercar:" name="search_box" method="get" action="/search"> 285 <label for="search" accesskey="4"> 286 <span class="visually-hidden">Cercar:</span> 287 </label> 288 <input id="search" name="search" type="text" aria-label="Cercar:" title="Cerca a tot el web" value="" placeholder="Cercar..."> 289 <button type="submit" class="search-button" aria-label="Cerca"><i class="fa fa-search"></i></button> 290 </form> 291</div> 292 </div> 293 </div> 294 </div> 295 <div id="navbar-top" class="navbar navbar-expand-lg navbar-dark"><div class="nav"><div class="container-xl"><div class="row"><div class="col"><nav class="menu_principal" aria-label="menú"><div class="menu-flexible__wrapper menu-font-medium menu-alignment-left menu-spacing-normal menu-animation-fade menu-text-transform-none menu-columns-1" style="--menu-cols:1;--menu-submenu-width:200px;--menu-hover-delay:300ms;--menu-image-width:160px;" data-menu-columns="1" data-expand-type="click" data-menu-sticky="false" data-menu-alignment="left" data-menu-spacing="normal" data-menu-animation="fade" data-menu-external-icon="auto" data-menu-external-dim="false" data-menu-text-transform="none"><div class="menu-flexible__topbar"><a href="#" class="menu-flexible__toggle phoneMenuButton" aria-label="Menú" aria-expanded="false"><i class="fa fa-bars"></i></a></div><ul class="menu-flexible menu-flexible__list"><li class="menu-flexible__item page-1 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament" ><span class="menu-flexible__item-text">Ajuntament</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-12 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/alcaldia" ><span class="menu-flexible__item-text">Salutació de l'Alcalde</span></a></li><li class="menu-flexible__item page-8 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament/govern" ><span class="menu-flexible__item-text">Govern</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-13 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/consistori-municipal" ><span class="menu-flexible__item-text">Consistori municipal</span></a></li><li class="menu-flexible__item page-14 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/regidories-organitzacio-municipal" ><span class="menu-flexible__item-text">Regidories</span></a></li><li class="menu-flexible__item page-115 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/informacio-dels-regidors" ><span class="menu-flexible__item-text">Informació dels regidors</span></a></li><li class="menu-flexible__item page-116 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/agenda-politica" ><span class="menu-flexible__item-text">Agenda polÃtica</span></a></li><li class="menu-flexible__item page-15 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/grups-municipals" ><span class="menu-flexible__item-text">Grups municipals</span></a></li><li class="menu-flexible__item page-132 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/altres-administracions" ><span class="menu-flexible__item-text">Altres administracions</span></a></li><li class="menu-flexible__item page-127 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="http://aplicacions.municat.gencat.cat/index.php?page=consulta&mostraEns=0801160009&accio=eleccions" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Resultats electorals</span></a></li></ul></li><li class="menu-flexible__item page-80 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/web/avia
295/govern-obert-i-transparencia/accio-de-govern-i-normativa/accio-de-govern-i-partits-politics/actes-de-ple" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Ple municipal</span></a></li><li class="menu-flexible__item page-20 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/web/avia/govern-obert-i-transparencia/accio-de-govern-i-normativa/accio-de-govern-i-partits-politics/acords-de-junta-de-govern" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Juntes de govern</span></a></li><li class="menu-flexible__item page-16 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/projectes-plans-campanyes-i-programes" ><span class="menu-flexible__item-text">Projectes, plans, campanyes i programes</span></a></li><li class="menu-flexible__item page-18 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://avia.eadministracio.cat/board" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Tauler d'anuncis</span></a></li><li class="menu-flexible__item page-26 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://contractaciopublica.gencat.cat/ecofin_pscp/AppJava/cap.pscp?reqCode=viewDetail&keyword=avi%C3%A0&idCap=10905966&ambit=&" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Perfil de contractant</span></a></li><li class="menu-flexible__item page-126 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/web/avia/govern-obert-i-transparencia/accio-de-govern-i-normativa/normativa-plans-i-programes" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Normativa</span></a></li><li class="menu-flexible__item page-139 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/ordenances-fiscals" ><span class="menu-flexible__item-text">Ordenances Fiscals</span></a></li><li class="menu-flexible__item page-135 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament/planejament-urbanistic" ><span class="menu-flexible__item-text">Planejament urbanÃstic</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-155 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/planejament-urbanistic/mapa-de-capacitat-acustica-del-municipi-" ><span class="menu-flexible__item-text">Mapa de capacitat acústica del municipi </span></a></li><li class="menu-flexible__item page-156 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/planejament-urbanistic/carta-de-colors" ><span class="menu-flexible__item-text">Carta de colors</span></a></li><li class="menu-flexible__item page-136 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/planejament-urbanistic/poum" ><span class="menu-flexible__item-text">POUM</span></a></li><li class="menu-flexible__item page-137 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament/planejament-urbanistic/modificacions-del-poum" ><span class="menu-flexible__item-text">Modificacions del POUM</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-164 level4"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament/planejament-urbanistic/modificacions-del-poum/modificacions-en-tramit-daprovacio" ><span class="menu-flexible__item-text">Modificacions en trà mit d'aprovació</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-165 level5"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/planejament-urbanistic/modificacions-del-poum/modificacions-en-tramit-daprovacio/aprovacio-inicial-del-poum-en-lambit-del-pau-8-cal-piteu-davia" ><span class="menu-flexible__item-text">Aprovació inicial del (POUM) en l'à mbit del PAU-8 Cal Piteu d'Avià </span></a></li></ul></li></ul></li><li class="menu-flexible__item page-138 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/plane
295jament-urbanistic/cataleg-de-masies-" ><span class="menu-flexible__item-text">Catà leg de masies </span></a></li></ul></li><li class="menu-flexible__item page-122 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/que-es-la-seu-electronica" ><span class="menu-flexible__item-text">Seu electrònica</span></a></li><li class="menu-flexible__item page-123 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/transparencia" ><span class="menu-flexible__item-text">Transparència</span></a></li></ul></li><li class="menu-flexible__item page-10 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/serveis-i-tramits" ><span class="menu-flexible__item-text">Serveis i trà mits</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-160 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/documentacio-complementaria-a-la-sollicitud-dobres-provisionals" ><span class="menu-flexible__item-text">Documentació complementà ria a la sol·licitud d'obres provisionals</span></a></li><li class="menu-flexible__item page-148 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/comunicacio-primera-ocupacio-dun-edifici" ><span class="menu-flexible__item-text">Comunicació primera ocupació d'un edifici</span></a></li><li class="menu-flexible__item page-146 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/comunicacio-previa-dobra" ><span class="menu-flexible__item-text">Comunicació prèvia d'obra</span></a></li><li class="menu-flexible__item page-144 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/comunicacio-previa-dinstallacions-fotovoltaiques-en-sol-urba" ><span class="menu-flexible__item-text">Comunicació prèvia d'instal·lacions fotovoltaiques en sòl urbà </span></a></li><li class="menu-flexible__item page-82 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/oficines-municipals" ><span class="menu-flexible__item-text">Oficines municipals</span></a></li><li class="menu-flexible__item page-33 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/serveis" ><span class="menu-flexible__item-text">Serveis</span></a></li><li class="menu-flexible__item page-31 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://avia.eadministracio.cat/dossier.1" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Trà mits i gestions</span></a></li><li class="menu-flexible__item page-32 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/impostos" ><span class="menu-flexible__item-text">Impostos</span></a></li><li class="menu-flexible__item page-88 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/factura-electronica" ><span class="menu-flexible__item-text">Factura electrònica</span></a></li></ul></li><li class="menu-flexible__item page-2 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/avia" ><span class="menu-flexible__item-text">Avià </span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-34 level2"><a class="menu-flexible__link" aria-expanded="false" href="/avia/com-arribar-hi" ><span class="menu-flexible__item-text">Com arribar-hi</span></a></li><li class="menu-flexible__item page-36 level2"><a class="menu-flexible__link" aria-expanded="false" href="/avia/planol--guia-de-carrers" ><span class="menu-flexible__item-text">Plà nol / Guia de carrers</span></a></li><li class="menu-flexible__item page-3 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/avia/guia-del-municipi" ><span class="menu-flexible__item-text">Guia del municipi</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-37 level3"><a class="menu-flexible__link" aria-expanded="false" href="/avia/guia-del-municipi/equipaments" ><span class="menu-flexible__item-text">Equipaments</span></a></li><li class="menu-flexible__item page-39 level3"><a class="menu-flexible__link" aria-expanded="false" href="/avia/guia-del-municipi/empreses-i-comercos" ><span class="menu-flexible__item-text">Empreses i comerços</span></a></li><li class="menu-flexible__item page-40 level3"><a class="menu-flexible__link" aria-expanded="false" href="/avia/guia-del-municipi/entitats-i-associacions" ><span class="menu-flexible__item-text">Entitats i associacions</span></a></li><li class="menu-flexible__item page-42 level3"><a class="menu-flexible__link" aria-expanded="false" href="/avia/guia-del-municipi/submnistraments" ><span class="menu-flexible__item-text">Submnistraments</span></a></li><li class="menu-flexible__item page-43 level3"><a class="menu-flexible__link" aria-expanded="false" href="/avia/guia-del-municipi/emergencie
295s" ><span class="menu-flexible__item-text">Emergències</span></a></li></ul></li><li class="menu-flexible__item page-7 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/avia/informacio-del-municipi" ><span class="menu-flexible__item-text">Informació del municipi</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-46 level3"><a class="menu-flexible__link" aria-expanded="false" href="/avia/informacio-del-municipi/historia" ><span class="menu-flexible__item-text">Història</span></a></li><li class="menu-flexible__item page-47 level3"><a class="menu-flexible__link" aria-expanded="false" href="/avia/informacio-del-municipi/el-municipi-en-xifres" ><span class="menu-flexible__item-text">El municipi en xifres</span></a></li><li class="menu-flexible__item page-49 level3"><a class="menu-flexible__link" aria-expanded="false" href="/avia/informacio-del-municipi/patrimoni-cultural" ><span class="menu-flexible__item-text">Patrimoni cultural</span></a></li></ul></li><li class="menu-flexible__item page-48 level2"><a class="menu-flexible__link" aria-expanded="false" href="/avia/informacio-geografica" ><span class="menu-flexible__item-text">Informació geogrà fica</span></a></li></ul></li><li class="menu-flexible__item page-131 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/visitans" ><span class="menu-flexible__item-text">Visita'ns</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-50 level2"><a class="menu-flexible__link" aria-expanded="false" href="/visitans/festes-i-fires" ><span class="menu-flexible__item-text">Festes i fires</span></a></li><li class="menu-flexible__item page-41 level2"><a class="menu-flexible__link" aria-expanded="false" href="/visitans/llocs-dinteres" ><span class="menu-flexible__item-text">Llocs d'interès</span></a></li><li class="menu-flexible__item page-129 level2"><a class="menu-flexible__link" aria-expanded="false" href="/visitans/rutes" ><span class="menu-flexible__item-text">Rutes</span></a></li><li class="menu-flexible__item page-38 level2"><a class="menu-flexible__link" aria-expanded="false" href="/visitans/on-dormir" ><span class="menu-flexible__item-text">On dormir</span></a></li><li class="menu-flexible__item page-130 level2"><a class="menu-flexible__link" aria-expanded="false" href="/visitans/on-menjar" ><span class="menu-flexible__item-text">On menjar</span></a></li></ul></li><li class="menu-flexible__item page-4 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/actualitat" ><span class="menu-flexible__item-text">Actualitat</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-53 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/noticies" ><span class="menu-flexible__item-text">NotÃcies</span></a></li><li class="menu-flexible__item page-54 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/agenda" ><span class="menu-flexible__item-text">Agenda</span></a></li><li class="menu-flexible__item page-128 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/avisos" ><span class="menu-flexible__item-text">Avisos</span></a></li><li class="menu-flexible__item page-55 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/butlleti-digital" ><span class="menu-flexible__item-text">Butlletà digital</span></a></li><li class="menu-flexible__item page-56 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/butlleti-municipal" ><span class="menu-flexible__item-text">Butlletà municipal</span></a></li><li class="menu-flexible__item page-57 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/rss" ><span class="menu-flexible__item-text">Rss</span></a></li><li class="menu-flexible__item page-58 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/hemeroteca" ><span class="menu-flexible__item-text">Hemeroteca</span></a></li></ul></li><li class="menu-flexible__item page-5 level1"><a class="menu-flexible__link" aria-expanded="false" href="/adreces-i-telefons" ><span class="menu-flexible__item-text">Adreces i telèfons</span></a></li><li class="menu-flexible__item page-150 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/subvencions-municipals" ><span class="menu-flexible__item-text">Subvencions</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-154 level2"><a class="menu-flexible__link" aria-expanded="false" href="/subvencions-municipals/subvencions-entitats" ><span class="menu-flexible__item-text">Subvencions Entitats</span></a></li></ul></li><li class="menu-flexible__item page-0 level1"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.weatherlink.com/embeddablePage/show/70c2bb95d6e1478eb46fb0678258e094/summary" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Estació Meteorològica</span></a></li></ul></div>
295<script>(function() { 296 'use strict'; 297 298 // Mega panel 299 300 function initMegaPanels(navContainer) { 301 var menuItems = Array.prototype.slice.call(navContainer.querySelectorAll('[data-mega-id]')); 302 if (!menuItems.length) return; 303 304 var navUl = navContainer.querySelector('ul'); 305 var topItems = navUl 306 ? menuItems.filter(function(el) { return el.parentElement === navUl; }) 307 : menuItems; 308 309 var wrapper = navContainer.closest('.menu-flexible__wrapper'); 310 var isClick = wrapper && wrapper.getAttribute('data-expand-type') === 'click'; 311 312 menuItems.forEach(function(item) { 313 var panel = getPanelForItem(item, navContainer); 314 if (!panel) return; 315 316 if (isClick) { 317 var link = item.querySelector('a'); 318 if (link) { 319 link.addEventListener('click', function(e) { 320 // En mòbil, els elements naveguen directament sense desplegar submenús 321 if (window.innerWidth <= 992) return; 322 if (panel.classList.contains('mf-mega-visible')) { 323 // Segon clic: navegar 324 return; 325 } 326 e.preventDefault(); 327 hideAllMegaPanels(navContainer); 328 showPanel(item, panel); 329 }); 330 } 331 } else { 332 var hoverDelay = parseInt( 333 getComputedStyle(wrapper).getPropertyValue('--menu-hover-delay'), 10 334 ) || 0; 335 var hoverTimer = null; 336 337 var leaveTimer = null; 338 339 item.addEventListener('mouseenter', function() { 340 clearTimeout(hoverTimer); 341 clearTimeout(leaveTimer); 342 if (hoverDelay > 0) { 343 hoverTimer = setTimeout(function() { showPanel(item, panel); }, hoverDelay); 344 } else { 345 showPanel(item, panel); 346 } 347 }); 348 item.addEventListener('mouseleave', function(e) { 349 clearTimeout(hoverTimer); 350 if (!panel.contains(e.relatedTarget)) { 351 leaveTimer = setTimeout(function() { hidePanel(item, panel); }, 300); 352 } 353 }); 354 panel.addEventListener('mouseenter', function() { 355 clearTimeout(leaveTimer); 356 }); 357 panel.addEventListener('mouseleave', function(e) { 358 clearTimeout(hoverTimer); 359 clearTimeout(leaveTimer); 360 if (!item.contains(e.relatedTarget)) hidePanel(item, panel); 361 }); 362 363 // Tà ctil: fallback quan hover no disponible (només escriptori tà ctil) 364 var link = item.querySelector('a'); 365 if (link) { 366 link.addEventListener('click', function(e) { 367 if (window.matchMedia('(hover: none)').matches && window.innerWidth > 992) { 368 if (panel.classList.contains('mf-mega-visible')) { 369 // Segon clic en tà ctil: navegar 370 return; 371 } 372 e.preventDefault(); 373 hideAllMegaPanels(navContainer); 374 showPanel(item, panel); 375 } 376 }); 377 } 378 } 379 }); 380 381 navContainer.addEventListener('keydown', function(e) { 382 handleMegaKeydown(e, navContainer, topItems); 383 }); 384 385 if (!isClick) { 386 navContainer.addEventListener('focusin', function(e) { 387 var item = e.target.closest('[data-mega-id]'); 388 if (!item) return; 389 var panel = getPanelForItem(item, navContainer); 390 if (!panel) return; 391 hideAllMegaPanels(navContainer); 392 showPanel(item, panel); 393 }); 394 } 395 396 navContainer.addEventListener('focusout', function() { 397 setTimeout(function() { 398 if (!navContainer.contains(document.activeElement)) { 399 hideAllMegaPanels(navContainer); 400 } 401 }, 0); 402 }); 403 404 document.addEventListener('click', function(e) { 405 if (!navContainer.contains(e.target)) { 406 hideAllMegaPanels(navContainer); 407 } 408 }); 409 } 410 411 function handleMegaKeydown(e, navContainer, topItems) { 412 var focused = document.activeElement; 413 if (!focused) return; 414 415 var currentItem = focused.closest('[data-mega-id]'); 416 var currentPanel = focused.closest('.menu-flexible__mega-panel'); 417 var key = e.key || e.code || e.keyCode; 418 419 function directLink(item) { 420 if (!item) return null; 421 return Array.prototype.slice.call(item.children).find(function(el) { 422 return el.tagName === 'A'; 423 }) || item.querySelector('a'); 424 } 425 426 function itemForPanel(panel) { 427 if (!panel) return null; 428 var id = panel.getAttribute('data-mega-id'); 429 return id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null; 430 } 431 432 function focusPanelLink(panel, index) { 433 var links = Array.prototype.slice.call(panel.querySelectorAll('a')); 434 if (!links.length) return; 435 links[(index + links.length) % links.length].focus(); 436 } 437 438 function focusPanelSibling(panel, offset) { 439 var links = Array.prototype.slice.call(panel.querySelectorAll('a')); 440 var idx = links.indexOf(focused); 441 if (idx === -1) return; 442 links[(idx + offset + links.length) % links.length].focus(); 443 } 444 445 function panelColumnForLink(link) { 446 return link ? link.closest('.menu-flexible__mega-col') : null; 447 } 448 449 function focusAdjacentPanelColumn(panel, offset) { 450 var columns = Array.prototype.slice.call(panel.querySelectorAll('.menu-flexible__mega-col')); 451 var currentColumn = panelColumnForLink(focused); 452 var idx = columns.indexOf(currentColumn); 453 if (idx === -1) return false;
454 455 var targetColumn = columns[(idx + offset + columns.length) % columns.length]; 456 var targetLink = targetColumn.querySelector('a'); 457 if (targetLink) { 458 targetLink.focus(); 459 return true; 460 } 461 462 return false; 463 } 464 465 function focusTopItem(item, offset) { 466 var idx = topItems.indexOf(item); 467 if (idx === -1) return; 468 469 var next = topItems[(idx + offset + topItems.length) % topItems.length]; 470 hideAllMegaPanels(navContainer); 471 472 var nextLink = directLink(next); 473 if (nextLink) { 474 nextLink.focus(); 475 var nextPanel = getPanelForItem(next, navContainer); 476 if (nextPanel) showPanel(next, nextPanel); 477 } 478 } 479 480 switch (key) { 481 case 'Escape': 482 case 'Esc': 483 case 27: { 484 e.preventDefault(); 485 hideAllMegaPanels(navContainer); 486 if (currentPanel) { 487 var item = itemForPanel(currentPanel); 488 var lnk = directLink(item); 489 if (lnk) lnk.focus(); 490 } 491 break; 492 } 493 494 case 'ArrowRight': 495 case 39: 496 case 'ArrowLeft': 497 case 37: { 498 var direction = (key === 'ArrowRight' || key === 39) ? 1 : -1; 499 e.preventDefault(); 500 501 if (currentPanel) { 502 if (!focusAdjacentPanelColumn(currentPanel, direction)) { 503 var ownerItem = itemForPanel(currentPanel); 504 focusTopItem(ownerItem, direction); 505 } 506 break; 507 } 508 509 if (!currentItem) return; 510 focusTopItem(currentItem, direction); 511 break; 512 } 513 514 case 'ArrowDown': 515 case 40: { 516 e.preventDefault(); 517 if (currentPanel) { 518 focusPanelSibling(currentPanel, 1); 519 break; 520 } 521 if (!currentItem) return; 522 var panel = getPanelForItem(currentItem, navContainer); 523 if (!panel) return; 524 if (!panel.classList.contains('mf-mega-visible')) { 525 hideAllMegaPanels(navContainer); 526 showPanel(currentItem, panel); 527 } 528 focusPanelLink(panel, 0); 529 break; 530 } 531 532 case ' ': 533 case 'Space': 534 case 'Spacebar': 535 case 32: { 536 if (currentPanel || !currentItem) return; 537 var spacePanel = getPanelForItem(currentItem, navContainer); 538 if (!spacePanel) return; 539 540 e.preventDefault(); 541 if (spacePanel.classList.contains('mf-mega-visible')) { 542 hidePanel(currentItem, spacePanel); 543 } else { 544 hideAllMegaPanels(navContainer); 545 showPanel(currentItem, spacePanel); 546 } 547 break; 548 } 549 550 case 'ArrowUp': 551 case 38: { 552 if (!currentPanel) return; 553 e.preventDefault(); 554 var panelLinks = Array.prototype.slice.call(currentPanel.querySelectorAll('a')); 555 var focusedIndex = panelLinks.indexOf(focused); 556 557 if (focusedIndex > 0) { 558 focusPanelLink(currentPanel, focusedIndex - 1); 559 } else { 560 var parentItem = itemForPanel(currentPanel); 561 var parentLink = directLink(parentItem); 562 if (parentLink) parentLink.focus(); 563 if (parentItem) hidePanel(parentItem, currentPanel); 564 } 565 break; 566 } 567 } 568 } 569 570 function getPanelForItem(item, navContainer) { 571 var id = item.getAttribute('data-mega-id'); 572 return id 573 ? navContainer.querySelector('.menu-flexible__mega-panel[data-mega-id="' + id + '"]') 574 : null; 575 } 576 577 function showPanel(item, panel) { 578 panel.classList.add('mf-mega-visible'); 579 panel.setAttribute('aria-hidden', 'false'); 580 var link = item.querySelector('a'); 581 if (link) link.setAttribute('aria-expanded', 'true'); 582 } 583 584 function hidePanel(item, panel) { 585 panel.classList.remove('mf-mega-visible'); 586 panel.setAttribute('aria-hidden', 'true'); 587 var link = item.querySelector('a'); 588 if (link) link.setAttribute('aria-expanded', 'false'); 589 } 590 591 function hideAllMegaPanels(navContainer) { 592 navContainer.querySelectorAll('.menu-flexible__mega-panel.mf-mega-visible') 593 .forEach(function(panel) { 594 var id = panel.getAttribute('data-mega-id'); 595 var item = id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null; 596 if (item) { 597 hidePanel(item, panel); 598 } else { 599 panel.classList.remove('mf-mega-visible'); 600 panel.setAttribute('aria-hidden', 'true'); 601 } 602 }); 603 } 604 605 606 // Tecles de fletxa (menú està ndard) 607 608 function initStandardKeyboard(wrapper) { 609 var menu = wrapper.querySelector('.menu-flexible__list'); 610 if (!menu) return; 611 612 function closeAll() { 613 Array.prototype.slice.call(menu.querySelectorAll('.menu-flexible__item[focus="true"]')) 614 .forEach(function(item) { 615 item.setAttribute('focus', 'false'); 616 var submenu = Array.prototype.slice.call(item.children).find(function(el) { 617 return el.classList && el.classList.contains('menu-flexible__submenu'); 618 }); 619 if (submenu) { 620 submenu.style.left = ''; 621 submenu.style.opacity = ''; 622 submenu.style.visibility = ''; 623 submenu.style.pointerEvents = ''; 624 submenu.style.transform = ''; 625 } 626 var link = Array.prototype.slice.call(item.children).find(function(el) { 627 return el.tagName === 'A'; 628 }); 629 if (link && link.classList.contains('menu-flexible__link--dropdown')) { 630 link.setAttribute('aria-expanded', 'false'); 631 } 632 }); 633 } 634 635 wrapper.addEventListener('keydown', function(e) { 636 handleStandardKeydown(e, menu); 637 }); 638 639 wrapper.addEventListener('focusout', function() { 640 setTimeout(function() { 641 if (!wrapper.contains(document.activeElement)) { 642 closeAll(); 643 } 644 }, 0); 645 }); 646 } 647 648 function handleStandardKeydown(e, menu) { 649 var focused = document.activeElement; 650 if (!focused || !menu.contains(focused)) return; 651 652 var itemSel = '.menu-flexible__item'; 653 var linkSel = '.menu-flexible__link'; 654 655 var currentLi = focused.closest(itemSel); 656 if (!currentLi) return; 657 658 var parentUl = currentLi.parentElement; 659 var isLevel1 = parentUl === menu;
660 661 function directLink(li) { 662 var direct = Array.prototype.slice.call(li.children).find(function(el) { 663 return el.tagName === 'A'; 664 }); 665 return direct || li.querySelector(linkSel); 666 } 667 668 function siblingItems(ul) { 669 return Array.prototype.slice.call(ul.children).filter(function(el) { 670 return el.matches(itemSel); 671 }); 672 } 673 674 function childMenu(li) { 675 return Array.prototype.slice.call(li.children).find(function(el) { 676 return el.classList && el.classList.contains('menu-flexible__submenu'); 677 }); 678 } 679 680 function setSubmenuVisible(li, visible) { 681 var submenu = childMenu(li); 682 if (!submenu) return; 683 684 if (visible) { 685 submenu.style.left = li.parentElement === menu ? '0' : '100%'; 686 submenu.style.opacity = '1'; 687 submenu.style.visibility = 'visible'; 688 submenu.style.pointerEvents = 'auto'; 689 submenu.style.transform = 'none'; 690 } else { 691 submenu.style.left = ''; 692 submenu.style.opacity = ''; 693 submenu.style.visibility = ''; 694 submenu.style.pointerEvents = ''; 695 submenu.style.transform = ''; 696 } 697 } 698 699 function setExpanded(li, expanded) { 700 li.setAttribute('focus', expanded ? 'true' : 'false'); 701 setSubmenuVisible(li, expanded); 702 var lnk = directLink(li); 703 if (lnk && lnk.classList.contains('menu-flexible__link--dropdown')) { 704 lnk.setAttribute('aria-expanded', expanded ? 'true' : 'false'); 705 } 706 if (!expanded) { 707 Array.prototype.slice.call(li.querySelectorAll(itemSel + '[focus="true"]')) 708 .forEach(function(item) { 709 item.setAttribute('focus', 'false'); 710 setSubmenuVisible(item, false); 711 var childLink = directLink(item); 712 if (childLink && childLink.classList.contains('menu-flexible__link--dropdown')) { 713 childLink.setAttribute('aria-expanded', 'false'); 714 } 715 }); 716 } 717 } 718 719 function closeSiblings(li) { 720 Array.prototype.slice.call(li.parentElement.children) 721 .filter(function(item) { 722 return item !== li && item.matches(itemSel); 723 }) 724 .forEach(function(item) { 725 setExpanded(item, false); 726 }); 727 } 728 729 function openChild(li) { 730 var submenu = childMenu(li); 731 if (!submenu) return false; 732 closeSiblings(li); 733 setExpanded(li, true); 734 var firstChild = submenu.querySelector(linkSel); 735 if (firstChild) firstChild.focus(); 736 return true; 737 } 738 739 function focusSibling(offset) { 740 var sibs = siblingItems(parentUl); 741 var idx = sibs.indexOf(currentLi); 742 var lnk = directLink(sibs[(idx + offset + sibs.length) % sibs.length]); 743 if (lnk) lnk.focus(); 744 } 745 746 var key = e.key || e.code || e.keyCode; 747 748 switch (key) { 749 case 'ArrowRight': 750 case 39: { 751 if (!isLevel1) return; 752 e.preventDefault(); 753 setExpanded(currentLi, false); 754 focusSibling(1); 755 break; 756 } 757 case 'ArrowLeft': 758 case 37: { 759 if (!isLevel1) return; 760 e.preventDefault(); 761 setExpanded(currentLi, false); 762 focusSibling(-1); 763 break; 764 } 765 case 'ArrowDown': 766 case 40: { 767 e.preventDefault(); 768 if (focused === directLink(currentLi) && openChild(currentLi)) { 769 break; 770 } 771 var sibsDown = siblingItems(parentUl); 772 var idxDown = sibsDown.indexOf(currentLi); 773 if (idxDown < sibsDown.length - 1) { 774 var lnkDown = directLink(sibsDown[idxDown + 1]); 775 if (lnkDown) lnkDown.focus(); 776 } 777 break; 778 } 779 case 'ArrowUp': 780 case 38: { 781 e.preventDefault(); 782 var sibsUp = siblingItems(parentUl); 783 var idxUp = sibsUp.indexOf(currentLi); 784 if (idxUp > 0) { 785 var lnkUp = directLink(sibsUp[idxUp - 1]); 786 if (lnkUp) lnkUp.focus(); 787 } else if (!isLevel1) { 788 var parentItemUp = parentUl.closest(itemSel); 789 if (parentItemUp) { 790 setExpanded(parentItemUp, false); 791 var parentLinkUp = directLink(parentItemUp); 792 if (parentLinkUp) parentLinkUp.focus(); 793 } 794 } 795 break; 796 } 797 case ' ': 798 case 'Space': 799 case 'Spacebar': 800 case 32: { 801 if (!focused.classList.contains('menu-flexible__link--dropdown')) return; 802 e.preventDefault(); 803 currentLi.getAttribute('focus') === 'true' 804 ? setExpanded(currentLi, false) 805 : openChild(currentLi); 806 break; 807 } 808 case 'Escape': 809 case 'Esc': 810 case 27: { 811 if (isLevel1 && currentLi.getAttribute('focus') !== 'true') return; 812 e.preventDefault(); 813 if (!isLevel1) { 814 var parentItemEsc = parentUl.closest(itemSel); 815 if (parentItemEsc) { 816 setExpanded(parentItemEsc, false); 817 var parentLinkEsc = directLink(parentItemEsc); 818 if (parentLinkEsc) parentLinkEsc.focus(); 819 } 820 } else { 821 setExpanded(currentLi, false); 822 } 823 break; 824 } 825 } 826 } 827 828 829 // Click mode: expandir submenús via [focus=true] 830 831 function initClickExpand(wrapper) { 832 var menu = wrapper.querySelector('.menu-flexible__list'); 833 if (!menu) return; 834 835 var itemSel = '.menu-flexible__item'; 836 var dropdownSel = '.menu-flexible__link--dropdown'; 837 838 function closeAll(container) { 839 Array.prototype.slice.call(container.querySelectorAll(itemSel + '[focus="true"]')) 840 .forEach(function(el) { el.setAttribute('focus', 'false'); }); 841 } 842 843 function closeSiblings(item) { 844 var parentUl = item.parentElement; 845 Array.prototype.slice.call(parentUl.children) 846 .filter(function(el) { 847 return el !== item 848 && el.matches(itemSel) 849 && el.getAttribute('focus') === 'true'; 850 }) 851 .forEach(function(el) { 852 el.setAttribute('focus', 'false'); 853 closeAll(el); 854 }); 855 } 856 857 menu.addEventListener('click', function(e) { 858 var link = e.target.closest(dropdownSel); 859 if (!link || !menu.contains(link)) return; 860 861 var item = link.parentElement; 862 if (!item || !item.matches(itemSel)) return; 863 864 // En mòbil, els elements naveguen directament sense desplegar submenús 865 if (window.innerWidth <= 992) return; 866 867 var isOpen = item.getAttribute('focus') === 'true'; 868 869 if (isOpen) { 870 // Segon clic: navegar 871 return; 872 } 873 874 e.preventDefault(); 875 closeSiblings(item); 876 item.setAttribute('focus', 'true'); 877 }); 878 879 document.addEventListener('click', function(e) { 880 var openItem = menu.querySelector(itemSel + '[focus="true"]'); 881 if (!openItem) return; 882 if (!openItem.contains(e.target)) { 883 closeAll(menu); 884 } 885 }); 886 } 887 888 889 // Hamburger (mòbil â¤992px) 890 891 class MenuFlexible { 892 constructor(wrapper) { 893 this.wrapper = wrapper; 894 this.hamburger = wrapper.querySelector('.menu-flexible__toggle'); 895 this.menu = wrapper.querySelector('.menu-flexible__list'); 896 897 if (!this.hamburger || !this.menu) return; 898 899 var parent = this.menu.parentElement; 900 this.isMega = parent && parent.classList.contains('menu-flexible__nav-container'); 901 this.target = this.isMega ? parent : this.menu; 902 903 // Ancestre que en mòbil és barra fixa de 44px amb overflow:clip i retalla 904 // el menú desplegat. En obrir, l'eixamplem; en tancar, el restaurem. 905 this.clipper = wrapper.closest('.nav'); 906 907 this.init(); 908 window.addEventListener('resize', () => this.handleResize()); 909 } 910 911 init() { 912 this.hamburger.addEventListener('click', (e) => { 913 e.preventDefault(); 914 e.stopPropagation(); 915 this.toggleMenu(); 916 }); 917 918 document.addEventListener('click', (e) => { 919 if (!this.wrapper.contains(e.target) && this.isOpen()) { 920 this.closeMenu(); 921 } 922 }); 923 924 this.menu.querySelectorAll('a').forEach(link => { 925 link.addEventListener('click', () => { 926 if (window.innerWidth <= 992 && this.isOpen()) { 927 this.closeMenu(); 928 } 929 }); 930 }); 931 } 932 933 isOpen() { return this.target.classList.contains('show'); } 934 toggleMenu() { this.isOpen() ? this.closeMenu() : this.openMenu(); } 935 936 liftClip() { 937 if (this.clipper && window.innerWidth <= 992) { 938 this.clipper.style.height = 'auto'; 939 this.clipper.style.maxHeight = 'none'; 940 this.clipper.style.overflow = 'visible'; 941 } 942 } 943 944 restoreClip() { 945 if (this.clipper) { 946 this.clipper.style.height = ''; 947 this.clipper.style.maxHeight = ''; 948 this.clipper.style.overflow = ''; 949 } 950 } 951 952 openMenu() { 953 this.target.classList.add('show'); 954 this.target.style.display = this.isMega ? 'block' : 'flex'; 955 if (this.isMega) this.menu.style.display = 'flex'; 956 this.liftClip(); 957 this.hamburger.classList.add('active'); 958 this.hamburger.setAttribute('aria-expanded', 'true'); 959 } 960 961 closeMenu() { 962 this.target.classList.remove('show'); 963 this.target.style.display = 'none'; 964 if (this.isMega) { 965 this.menu.style.display = ''; 966 var nc = this.wrapper.querySelector('.menu-flexible__nav-container'); 967 if (nc) hideAllMegaPanels(nc); 968 } 969 this.restoreClip(); 970 this.hamburger.classList.remove('active'); 971 this.hamburger.setAttribute('aria-expanded', 'false'); 972 } 973 974 handleResize() { 975 if (window.innerWidth > 992) { 976 this.target.classList.remove('show'); 977 this.target.style.display = ''; 978 if (this.isMega) this.menu.style.display = ''; 979 this.restoreClip(); 980 this.hamburger.classList.remove('active'); 981 this.hamburger.setAttribute('aria-expanded', 'false'); 982 } 983 } 984 } 985 986 987 // Init 988
989 function init() { 990 document.querySelectorAll('.menu-flexible__wrapper').forEach(function(wrapper) { 991 var navContainer = wrapper.querySelector('.menu-flexible__nav-container'); 992 if (navContainer) { 993 initMegaPanels(navContainer); 994 } else { 995 initStandardKeyboard(wrapper); 996 if (wrapper.getAttribute('data-expand-type') === 'click') { 997 initClickExpand(wrapper); 998 } 999 } 1000 new MenuFlexible(wrapper); 1001 if (wrapper.getAttribute('data-menu-sticky') === 'true') { 1002 var stickyTarget = wrapper.closest('#navbar-top') 1003 || wrapper.closest('.navbar') 1004 || wrapper.closest('nav'); 1005 if (stickyTarget) { 1006 stickyTarget.classList.add('menu-sticky-enabled'); 1007 document.body.classList.add('has-sticky-menu'); 1008 1009 var navbarHeight = stickyTarget.offsetHeight; 1010 var navbarTop = stickyTarget.getBoundingClientRect().top + window.scrollY; 1011 var bodyPadApplied = false; 1012 1013 function updateStickyOffset() { 1014 navbarHeight = stickyTarget.offsetHeight; 1015 document.documentElement.style.setProperty('--skip-links-sticky-offset', navbarHeight + 'px'); 1016 1017 if (bodyPadApplied) { 1018 document.body.style.paddingTop = navbarHeight + 'px'; 1019 } 1020 } 1021 1022 function getTargetFromHash(hash) { 1023 if (!hash || hash.charAt(0) !== '#') { 1024 return null; 1025 } 1026 1027 try { 1028 return document.getElementById(decodeURIComponent(hash.substring(1))); 1029 } catch (error) { 1030 return document.getElementById(hash.substring(1)); 1031 } 1032 } 1033 1034 function scrollToSkipTarget(hash) { 1035 var target = getTargetFromHash(hash); 1036 if (!target) { 1037 return; 1038 } 1039 1040 updateStickyOffset(); 1041 1042 var expectedTop = target.getBoundingClientRect().top + window.scrollY - navbarHeight; 1043 if (expectedTop > navbarTop) { 1044 applyFixed(); 1045 } else { 1046 removeFixed(); 1047 } 1048 1049 try { 1050 target.focus({ preventScroll: true }); 1051 } catch (error) { 1052 target.focus(); 1053 } 1054 1055 var targetTop = target.getBoundingClientRect().top + window.scrollY; 1056 window.scrollTo(0, Math.max(targetTop - navbarHeight, 0)); 1057 } 1058 1059 document.querySelectorAll('.skip-links a[href^="#"]').forEach(function(link) { 1060 link.addEventListener('click', function(event) { 1061 var hash = link.getAttribute('href'); 1062 var target = getTargetFromHash(hash); 1063 if (!target) { 1064 return; 1065 } 1066 1067 event.preventDefault(); 1068 1069 if (window.history && window.history.pushState) { 1070 window.history.pushState(null, '', hash); 1071 } else { 1072 window.location.hash = hash; 1073 } 1074 1075 scrollToSkipTarget(hash); 1076 }); 1077 }); 1078 1079 updateStickyOffset(); 1080 1081 function applyFixed() { 1082 if (!stickyTarget.classList.contains('fixed-top')) { 1083 updateStickyOffset(); 1084 stickyTarget.classList.add('fixed-top');
1085 document.body.style.paddingTop = navbarHeight + 'px'; 1086 bodyPadApplied = true; 1087 } 1088 } 1089 1090 function removeFixed() { 1091 if (stickyTarget.classList.contains('fixed-top')) { 1092 stickyTarget.classList.remove('fixed-top'); 1093 document.body.style.paddingTop = ''; 1094 bodyPadApplied = false; 1095 } 1096 } 1097 1098 window.addEventListener('scroll', function() { 1099 if (window.scrollY > navbarTop) { 1100 applyFixed(); 1101 } else { 1102 removeFixed(); 1103 } 1104 }); 1105 1106 window.addEventListener('resize', function() { 1107 updateStickyOffset(); 1108 if (!stickyTarget.classList.contains('fixed-top')) { 1109 navbarTop = stickyTarget.getBoundingClientRect().top + window.scrollY; 1110 } 1111 }); 1112 1113 if ('ResizeObserver' in window) { 1114 new ResizeObserver(updateStickyOffset).observe(stickyTarget); 1115 } 1116 1117 stickyTarget.querySelectorAll('img').forEach(function(image) { 1118 if (!image.complete) { 1119 image.addEventListener('load', updateStickyOffset, { once: true }); 1120 } 1121 }); 1122 1123 window.addEventListener('load', updateStickyOffset); 1124 1125 if (window.scrollY > navbarTop) applyFixed(); 1126 1127 if (window.location.hash) { 1128 window.setTimeout(function() { 1129 scrollToSkipTarget(window.location.hash); 1130 }, 0); 1131 } 1132 } 1133 } 1134 }); 1135 } 1136 1137 if (document.readyState === 'loading') { 1138 document.addEventListener('DOMContentLoaded', init); 1139 } else { 1140 init(); 1141 } 1142})(); 1143</script>
1143</nav></div></div></div></div></div> </div> </header> 1144 <main id="main-content" tabindex="-1"> 1145 <div class="content"> 1146 <div class="container-xl columns " id="Path"> 1147 <div class="row"> 1148 <nav aria-label="breadcrumb"> 1149 <ol class="breadcrumb"> 1150 <li class="breadcrumb-item"> 1151 <a href="/" target="_self"> 1152 <span style="display: none">home</span><i class="fa fa-home" aria-hidden="true"></i> </a> 1153 </li> 1154<li class="breadcrumb-item"> 1155 <a href="/altres-continguts" target="_self"> 1156 Altres continguts </a> 1157 <button class="btn dropdown-toggle" type="button" id="defaultDropdow6" data-bs-toggle="dropdown" data-bs-auto-close="true" aria-expanded="false" aria-label="Desplega"></button> 1158 <ul class="dropdown-menu" aria-label="defaultDropdown6"> 1159 <li><a class="dropdown-item" href="/altres-continguts/credits">Crèdits</a></li> 1160 <li><a class="dropdown-item" href="/altres-continguts/accessibilitat">Accessibilitat</a></li> 1161 <li><a class="dropdown-item" href="/altres-continguts/contactar">Contactar</a></li> 1162 <li><a class="dropdown-item" href="/altres-continguts/avis-legal">AvÃs legal</a></li> 1163 <li><a class="dropdown-item" href="/altres-continguts/proteccio-de-dades">Protecció de dades</a></li> 1164 <li><a class="dropdown-item" href="/altres-continguts/politica-de-xarxes-socials">PolÃtica de Xarxes Socials</a></li> 1165 </ul> 1166 </li> 1167 </ol> 1168 </nav> 1169 </div> 1170</div> 1171 <div class="container-xl columns"> 1172 <div class="row"> 1173 <div class="col-xs-12 col-sm-12 col-md-3 col-lg-3 leftSidebar responsiveHeight" data-nosnippet> 1174 <nav class="menuLeft" id="Menuleft_page" aria-label="Menú Contactar"> 1175 <ul> 1176 <li class="subMenuPage-63 level2"> 1177 <a href="/altres-continguts/credits" target="_self"> 1178 Crèdits </a> 1179 1180 </li> 1181<li class="subMenuPage-158 level2"> 1182 <a href="/altres-continguts/accessibilitat" target="_self"> 1183 Accessibilitat </a> 1184 1185 </li> 1186<li class="subMenuPage-62 current level2"> 1187 <a href="/altres-continguts/contactar" target="_self" aria-current="page"> 1188 Contactar </a> 1189 1190 </li> 1191<li class="subMenuPage-59 level2"> 1192 <a href="/altres-continguts/avis-legal" target="_self"> 1193 AvÃs legal </a> 1194 1195 </li> 1196<li class="subMenuPage-60 level2"> 1197 <a href="/altres-continguts/proteccio-de-dades" target="_self"> 1198 Protecció de dades </a> 1199 1200 </li> 1201<li class="subMenuPage-145 level2"> 1202 <a href="/altres-continguts/politica-de-xarxes-socials" target="_self"> 1203 PolÃtica de Xarxes Socials </a> 1204 1205 </li> 1206 </ul> 1207 </nav> 1208</div> 1209 <div class="col-xs-12 col-sm-12 col-md-9 col-lg-9 article responsiveHeight" id="readspeakerPage" tabindex="-1"> 1210 <div class="hideTablets"> 1211 </div> 1212<h1 class="title" id='title0' data-attribute="Contactar">Contactar</h1><div class="showTablets"> 1213 </div> 1214<div> 1215 <div class="dinamic"> 1216 </div> <div id="form"> 1217 <form id="Form1" aria-label="Formulari de contacte" name="buildedForm" method="post" enctype="multipart/form-data" action="https://www.avia.cat/altres-continguts/contactar" autocomplete="on" novalidate> 1218 <button type="button" class="form-hide" aria-label="Tanca formulari" onclick="$('#Form1 .form-body').slide
1218Up('fold', function () { setEqualHeight($('.content .container > div.enlarge'));$('#Form1 .form-show').show(); $('#Form1 .form-hide').hide(); });"> 1219 <i class="fa fa-chevron-up" aria-hidden="true"></i> 1220 </button> 1221 <button type="button" class="form-show" aria-label="Mostra formulari" style="display:none;" onclick="$('#Form1 .form-body').slideDown('fold', function () { $('#Form1 .form-show').hide(); $('#Form1 .form-hide').show(); });"> 1222 <i class="fa fa-chevron-down" aria-hidden="true"></i> 1223 </button> 1224 <h2 class="form-title ">Formulari de contacte </h2> 1225 <div class="form-body"> 1226 <div> </div> 1227 <div id="errorSubmit" class="container"></div> 1228 <input type="hidden" name="cm_form" value="1"/> 1229 <input type="hidden" name="idform" value="1"> 1230 <input type="hidden" name="cref" value="1"> 1231 <input type="hidden" name="titol" value="Formulari de contacte"> 1232 <input type="hidden" name="rload" value="https://www.avia.cat/altres-continguts/contactar"> 1233 <!--TODO revisió om fer el honeypot que no doni errors d'accessibilitat--> 1234 <div class="honeypot" aria-hidden="true"> 1235 <label for="extra_option_text" class="visually-hidden">No omplir</label> 1236 <input type="text" id="extra_option_text" name="extra_option_text" tabindex="-1" autocomplete="off"> 1237 </div> 1238 <p class="text-danger">Els camps marcats amb un asterisc (*) són obligatoris.</p><div id='form1-1' class="form-field"> 1239 <span id='sprytextfield1'> 1240 <label for="1" title="Nom i cognoms" class="form-field-title"> 1241 Nom i cognoms </label> 1242 <input id="1" 1243 name="field_1" 1244 size="47" type='text' 1245 value="" 1246 autocomplete = "off" 1247 placeholder="" 1248 /> 1249 </span> 1250</div> 1251<div id='form1-2' class="form-field"> 1252 <span id='sprytextfield2'> 1253 <label for="2" class="form-field-title"> 1254 Correu electrònic <span class="form-field-required">*</span> </label> 1255 <input 1256 required size="47" type='email' name="field_2" 1257 id="2" 1258 value="" 1259 placeholder="" 1260 autocomplete="email" 1261 /> 1262 <label for="copia_2" class="form-field-title">Correu electrònic (còpia)</label> 1263 <input style="border-left-width: 8px;" 1264 size="47" autocomplete="email" 1265 type='email' name="copia_field_2" 1266 id="copia_2" 1267 value="" 1268 required placeholder="" 1269 /> 1270 <span class="help">S'ha d'escriure dues vegades per assegurar que l'escrivim correctament.</span> 1271 </span> 1272</div> 1273<div id='form1-4' class="form-field"> 1274 <span id='sprytextfield4' > 1275 <label for="4" class="form-field-title"> 1276 Comentari o consulta </label> 1277 <textarea id="4" name="field_4" rows="2" cols="37" placeholder="" autocomplete = "off"></textarea> 1278 </span> 1279</div> 1280 <div class="rgpd-box"><div class="page-62 js-widget o-widget clearfix boxBX default " > <div class="o-widget-wrapper clearfix default-BX row o-widget-wrapper--title-top o-widget-wrapper--title-style-text" ><div class="o-widget-title-slot o-widget__title"><span>Protecció de dades</span></div><div class="o-widget-container "><p>L'enviament des les dades introduïdes en aquest formulari per part de l'usuari, implicarà l'acceptació expressa i sense reserves de la polÃtica de protecció de dades personals que figura al peu d'aquesta pà gina.</p> 1281 1282<p>L'Ajuntament utilitzarà aquestes dades exclusivament per a la prestació del servei o gestió sol·licitada. En cap cas es cedirà o comunicarà a tercers les dades recollides sense consentiment de l'usuari, excepte quan siguin necessà ries per a la prestació del servei s
1282ol·licitat o siguin requerides per les autoritats públiques competents, de conformitat amb les disposicions legals i reglamentà ries aplicables en cada moment.</p> 1283</div> </div></div></div> <div class="form-consent"> 1284 <div class="form-consent__field"> 1285 <input type="checkbox" required="" value="acceptterms" name="acceptterms" id="acceptterms"> 1286 <label for="acceptterms">SÃ, DONO EL MEU CONSENTIMENT.</label> 1287 </div> 1288 </div> 1289 <div class="alert ko captcha-error" role="alert" aria-live="assertive" hidden> 1290 No s'ha pogut validar el filtre anti-spam. Torneu-ho a provar.</div>
1291<script> 1292 (function () { 1293 var formId = "Form1"; 1294 var siteKey = "6Lf9ma4mAAAAALLhrF6NaUwZ8QGndEhcyKmOHpVv"; 1295 var action = "formulari_1"; 1296 var form = document.getElementById(formId); 1297 1298 if (!form) { 1299 return; 1300 } 1301 1302 action = action.replace(/[^a-zA-Z0-9_\/]/g, '_').substring(0, 50); 1303 1304 if (!window.barnaRecaptchaV3Loader) { 1305 window.barnaRecaptchaV3Loader = (function () { 1306 var loadingPromise = null; 1307 var configuredSiteKey = null; 1308 var scriptElement = null; 1309 var loadTimeout = 15000; 1310 1311 function isReady() { 1312 return typeof window.grecaptcha !== 'undefined' 1313 && typeof window.grecaptcha.ready === 'function' 1314 && typeof window.grecaptcha.execute === 'function'; 1315 } 1316 1317 function load(requestedSiteKey) { 1318 if (isReady()) { 1319 return Promise.resolve(window.grecaptcha); 1320 } 1321 1322 if (configuredSiteKey !== null && configuredSiteKey !== requestedSiteKey) { 1323 return Promise.reject(new Error('reCAPTCHA v3 ja s\'ha inicialitzat amb una altra clau.')); 1324 } 1325 1326 configuredSiteKey = requestedSiteKey; 1327 1328 if (loadingPromise !== null) { 1329 return loadingPromise; 1330 } 1331 1332 loadingPromise = new Promise(function (resolve, reject) { 1333 var settled = false; 1334 var timeoutId = null; 1335 1336 function cleanupListeners() { 1337 if (!scriptElement) { 1338 return; 1339 } 1340 1341 scriptElement.removeEventListener('load', handleLoad); 1342 scriptElement.removeEventListener('error', handleError); 1343 } 1344 1345 function resolveWhenReady() { 1346 if (settled) { 1347 return; 1348 } 1349 1350 if ( 1351 typeof window.grecaptcha === 'undefined' 1352 || typeof window.grecaptcha.ready !== 'function' 1353 ) { 1354 rejectLoad(new Error('La API de reCAPTCHA v3 no està disponible.')); 1355 return; 1356 } 1357 1358 window.grecaptcha.ready(function () { 1359 if (settled) { 1360 return; 1361 } 1362 1363 if (typeof window.grecaptcha.execute !== 'function') { 1364 rejectLoad(new Error('La API de reCAPTCHA v3 no es pot executar.')); 1365 return; 1366 } 1367 1368 settled = true; 1369 window.clearTimeout(timeoutId); 1370 cleanupListeners(); 1371 resolve(window.grecaptcha); 1372 }); 1373 } 1374 1375 function rejectLoad(error) { 1376 if (settled) { 1377 return; 1378 } 1379 1380 settled = true; 1381 window.clearTimeout(timeoutId); 1382 cleanupListeners(); 1383 1384 if (scriptElement && scriptElement.parentNode) { 1385 scriptElement.parentNode.removeChild(scriptElement); 1386 } 1387 scriptElement = null; 1388 reject(error); 1389 } 1390 1391 function handleLoad() { 1392 resolveWhenReady(); 1393 } 1394 1395 function handleError() { 1396 rejectLoad(new Error('No s\'ha pogut carregar la API de reCAPTCHA v3.')); 1397 } 1398 1399 scriptElement = document.createElement('script'); 1400 scriptElement.src = 'https://www.google.com/recaptcha/api.js?render=' + encodeURIComponent(requestedSiteKey); 1401 scriptElement.async = true; 1402 scriptElement.defer = true; 1403 scriptElement.setAttribute('data-barna-recaptcha-v3', 'true'); 1404 scriptElement.addEventListener('load', handleLoad); 1405 scriptElement.addEventListener('error', handleError); 1406 1407 timeoutId = window.setTimeout(function () { 1408 rejectLoad(new Error('Temps d\'espera exhaurit carregant reCAPTCHA v3.')); 1409 }, loadTimeout); 1410 1411 document.head.appendChild(scriptElement); 1412 }).then(function (recaptcha) { 1413 loadingPromise = null; 1414 return recaptcha; 1415 }, function (error) { 1416 loadingPromise = null; 1417 throw error; 1418 }); 1419 1420 return loadingPromise; 1421 } 1422 1423 return { 1424 load: load 1425 }; 1426 })(); 1427 } 1428 1429 var loader = window.barnaRecaptchaV3Loader; 1430 var submitInProgress = false;
1431 var currentAttempt = 0; 1432 var operationTimeout = 15000; 1433 1434 function getSubmitButton() { 1435 return form.querySelector('input[type="submit"], button[type="submit"]'); 1436 } 1437 1438 function getErrorMessage() { 1439 return form.querySelector('.captcha-error'); 1440 } 1441 1442 function hideErrorMessage() { 1443 var errorMessage = getErrorMessage(); 1444 if (errorMessage) { 1445 errorMessage.hidden = true; 1446 } 1447 } 1448 1449 function showErrorMessage() { 1450 var errorMessage = getErrorMessage(); 1451 if (errorMessage) { 1452 errorMessage.hidden = false; 1453 } 1454 } 1455 1456 function removeCurrentToken() { 1457 var currentToken = form.querySelector('input[name="g-recaptcha-response"]'); 1458 if (currentToken && currentToken.parentNode) { 1459 currentToken.parentNode.removeChild(currentToken); 1460 } 1461 } 1462 1463 function addToken(token) { 1464 var tokenField = document.createElement('input'); 1465 tokenField.type = 'hidden'; 1466 tokenField.name = 'g-recaptcha-response'; 1467 tokenField.value = token; 1468 form.insertBefore(tokenField, form.firstChild); 1469 } 1470 1471 function setSubmitDisabled(disabled) { 1472 var submitButton = getSubmitButton(); 1473 if (submitButton) { 1474 submitButton.disabled = disabled; 1475 } 1476 } 1477 1478 function withTimeout(promise, timeout) { 1479 return new Promise(function (resolve, reject) { 1480 var settled = false; 1481 var timeoutId = window.setTimeout(function () { 1482 if (settled) { 1483 return; 1484 } 1485 1486 settled = true; 1487 reject(new Error('Temps d\'espera exhaurit validant reCAPTCHA v3.')); 1488 }, timeout); 1489 1490 promise.then(function (result) { 1491 if (settled) { 1492 return; 1493 } 1494 1495 settled = true; 1496 window.clearTimeout(timeoutId); 1497 resolve(result); 1498 }, function (error) { 1499 if (settled) { 1500 return; 1501 } 1502 1503 settled = true; 1504 window.clearTimeout(timeoutId); 1505 reject(error); 1506 }); 1507 }); 1508 } 1509 1510 function resetSubmit(attempt, showCaptchaError) { 1511 if (attempt !== currentAttempt) { 1512 return; 1513 } 1514 1515 currentAttempt++; 1516 submitInProgress = false; 1517 removeCurrentToken(); 1518 setSubmitDisabled(false); 1519 1520 if (showCaptchaError) { 1521 showErrorMessage(); 1522 } 1523 } 1524 1525 form.onsubmit = function (evt) { 1526 evt.preventDefault(); 1527 1528 if (submitInProgress) { 1529 return false; 1530 } 1531 1532 submitInProgress = true; 1533 var attempt = ++currentAttempt; 1534 1535 hideErrorMessage(); 1536 removeCurrentToken(); 1537 setSubmitDisabled(true); 1538 1539 var tokenPromise = loader.load(siteKey).then(function (recaptcha) { 1540 if (attempt !== currentAttempt) { 1541 throw new Error('Intent de reCAPTCHA v3 cancel·lat.'); 1542 } 1543 1544 return recaptcha.execute(siteKey, {action: action}); 1545 }); 1546 1547 withTimeout(tokenPromise, operationTimeout).then(function (token) { 1548 if (attempt !== currentAttempt) { 1549 return; 1550 } 1551 1552 if (typeof token !== 'string' || token.trim() === '') { 1553 throw new Error('reCAPTCHA v3 ha retornat un token buit.'); 1554 } 1555 1556 addToken(token); 1557 1558 if (reviewForm(form) !== true) { 1559 resetSubmit(attempt, false); 1560 return; 1561 } 1562 1563 HTMLFormElement.prototype.submit.call(form); 1564 }).catch(function () { 1565 resetSubmit(attempt, true); 1566 }); 1567 1568 return false;
1569 }; 1570 1571 // Inicia la cà rrega en renderitzar la pà gina per mantenir el context de reCAPTCHA v3. 1572 // Si falla, el primer submit tornarà a intentar-la i mostrarà l'error només si no es recupera. 1573 loader.load(siteKey).catch(function () {}); 1574 })(); 1575</script>
1575 1576 1577 1578 <input type="submit" id="buttonSubmit" value="Enviar" class="btn" aria-label='Enviar'> 1579 </div> 1580 </form> 1581 1582 </div> 1583 1584<div id="formCancel"></div>
1585<script> 1586 function calcul_total() { 1587 var total = 0; 1588 $("input[id$=_total]").each(function() { 1589 const id_total = $(this).attr('id'); 1590 const id = id_total.replace('_total',''); 1591 const id_quantitat = id_total.replace('_total','_quantitat'); 1592 const id_percentatge = id_total.replace('_total','_percentatge'); 1593 const id_preu = id_total.replace('_total','_preu'); 1594 const id_select = id_total.replace('_total','_select_field'); 1595 if ( ($("#"+id_quantitat).length) ) { 1596 t = parseFloat($("#"+id).val().replace(',','.')) 1597 * 1598 parseFloat($("#"+id_quantitat).val().replace(',','.')); 1599 1600 } 1601 if ( ($("#"+id_preu).length) ) { 1602 t = parseFloat($("#"+id).val().replace(',','.')) 1603 * 1604 parseFloat($("#"+id_preu).val().replace(',','.')); 1605 } 1606 if ( ($("#"+id_percentatge).length) ) { 1607 t = parseFloat($("#"+id).val().replace(',','.')) 1608 * 1609 parseFloat($("#"+id_percentatge).val().replace(',','.'))/100; 1610 } 1611 if ( ($("#"+id_select).length) ) { 1612 t = parseFloat($("#"+id+'_total').val().replace(',','.')); 1613 } 1614 if (!isNaN(t)) { total += t;} 1615 }); 1616 return (total); 1617 } 1618 window.addEventListener('load', function(){ 1619 // cà lcul subtotals abans de la interacció de l'usuari 1620 for (let i = 0; i < 100; i++) { 1621 if (typeof window["quantityChange_"+i] === "function") { 1622 console.log("quantityChange_"+i+" is a function"); 1623 window["quantityChange_"+i](); 1624 } 1625 if (typeof window["priceChange_"+i] === "function") { 1626 console.log("priceChange_"+i+" is a function"); 1627 window["priceChange_"+i](); 1628 } 1629 } 1630 // cà lcul total 1631 if (typeof window["calcul_total"] === "function") { 1632 valorMostrar = ((Math.round((calcul_total() + Number.EPSILON) * 100) / 100) + "").replace('.', ',') 1633 const numberFormat = new Intl.NumberFormat('es-ES'); 1634 const stringNumber = valorMostrar.toString().replace(',', '.'); 1635 $("#Total_total").text(numberFormat.format(stringNumber)+" Euros"); 1636 $("#total").val(calcul_total()); 1637 } 1638 }); 1639</script>
1639 1640 </div> 1641<div class="hideTablets"> 1642 </div> 1643<div id="share"><div class="js-widget o-widget clearfix boxBX default " > <div class="o-widget-wrapper clearfix default-BX row " ><div class="o-widget-container "><div class="o-share o-share--icones_rodones"> 1644 1645 <div class="o-share__list"> 1646 <a 1647 class="o-share__link o-share__link--facebook" 1648 href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.avia.cat%2Faltres-continguts%2Fcontactar" 1649 target="_blank" 1650 rel="noopener" 1651 title="Facebook" 1652 > 1653 <span class="o-share__icon" aria-hidden="true"> 1654 <i class="fa-brands fa-facebook-f"></i> 1655 </span> 1656 <span class="visually-hidden">Facebook</span> 1657 </a> 1658 <a 1659 class="o-share__link o-share__link--x" 1660 href="https://twitter.com/intent/tweet?text=Contactar&url=https%3A%2F%2Fwww.avia.cat%2Faltres-continguts%2Fcontactar" 1661 target="_blank" 1662 rel="noopener" 1663 title="X" 1664 > 1665 <span class="o-share__icon" aria-hidden="true"> 1666 <i class="fa-brands fa-x-twitter"></i> 1667 </span> 1668 <span class="visually-hidden">X</span> 1669 </a> 1670 </div> 1671</div> 1672</div> </div></div></div> 1673<span class="updated">Darrera actualització: 22.12.2014 | 09:51</span> 1674 </div> 1675 </div> 1676 </div> 1677 </div> 1678 </main> 1679 <footer id="footer-content" tabindex="-1"> 1680 <div class="footer"> 1681 <div class="shortcuts"> 1682 <div class="container-xl"> 1683 <div class="featuredItem responsiveHeight"> 1684 <h2 class="title">RSS</h2> 1685 <p class="subtitle">L'actualitat a un clic</p> 1686 <ul id="cm_rss"> 1687 <li style="background-image: url('/themes/avia/images/ico_16_rss.png');"> 1688 <a href="/rss/12"> 1689 Agenda </a> 1690</li> 1691<li style="background-image: url('/themes/avia/images/ico_16_rss.png');"> 1692 <a href="/rss/15"> 1693 Agenda polÃtica </a> 1694</li> 1695<li style="background-image: url('/themes/avia/images/ico_16_rss.png');"> 1696 <a href="/rss/13"> 1697 Avisos </a> 1698</li> 1699<li style="background-image: url('/themes/avia/images/ico_16_rss.png');"> 1700 <a href="/rss/11"> 1701 NotÃcies </a> 1702</li> 1703<li style="background-image: url('/themes/avia/images/ico_16_rss.png');"> 1704 <a href="/rss/14"> 1705 Publicacions </a> 1706</li> 1707 </ul> 1708</div> 1709<div class="featuredItem responsiveHeight"> 1710 <h2 class="title">Adreces i telèfons</h2> 1711 1712 <img width="96" height="96" src="/themes/avia/images/icons/plugin_home.png" alt=""> 1713 1714 <p class="elem_button"> 1715 <a href="/adreces-i-telefons" aria-label="Adreces i telèfons"> 1716 Accedeix </a> 1717 </p> 1718</div> 1719<div class="featuredItem"> 1720 <h2 class="title">Meteo</h2> 1721 <div id="cm_meteocat"> 1722 <ul class="bxslider"> 1723 <li> 1724 Dissabte, 3 dâoctubre <img width="80" height="80" 1725 alt="entre mig i molt ennuvolat" 1726 src="/themes/avia/images/meteocat/nuvol.png" 1727 > 1728 <p> 1729 T.Mà x: 22° 1730 <br> 1731 T.Min: 13° 1732 </p> 1733 <p> 1734 Tarda 1735 <img alt="xà fec amb tempesta" width="24" height="24" 1736 src="/themes/avia/images/meteocat/tempesta.png" 1737 > 1738 </p> 1739 </li> 1740<li> 1741 Diumenge, 4 dâoctubre <img width="80" height="80" 1742 alt="entre poc i mig ennuvolat" 1743 src="/themes/avia/images/meteocat/nuvolina.png" 1744 > 1745 <p> 1746 T.Mà x: 21° 1747 <br> 1748 T.Min: 13° 1749 </p> 1750 <p> 1751 Tarda 1752 <img alt="entre mig i molt ennuvolat" width="24" height="24" 1753 src="/themes/avia/images/meteocat/nuvol.png" 1754 > 1755 </p> 1756 </li> 1757 </ul> 1758 <div class="outside"> 1759 <p><span id="slider-prev"></span><span id="slider-next"></span></p> 1760 </div> 1761 1762 </div> 1763</div> 1764<div class="featuredItem responsiveHeight"> 1765 <h2 class="title">Butlletà digital</h2> 1766 <img width="96" height="96" src="/front/view/images/icons/plugin_newsletter.png" alt=""> 1767 <p class="elem_button"> 1768 <a href="/actualitat/butlleti-digital" aria-label="Butlletà digital"> 1769 Subscriu-te </a> 1770 </p> 1771</div> 1772<div id="cm_planol" class="featuredItem responsiveHeight"> 1773 <h2 class="title">Plà nol / Carrers</h2> 1774 1775 <img width="96" height="96" src="/themes/avia/images/icons/plugin_map.png" alt=""> 1776 1777 <p class="elem_button"> 1778 <a href="/avia/planol--guia-de-carrers" aria-label="Plà nol"> 1779 Accedeix </a> 1780 </p> 1781</div> 1782 </div> 1783</div> 1784 <div class="hightlights"> 1785 <div class="container-xl"> 1786 <div class="highlights">
1787 <ul class="bxslider"> 1788 <li> 1789 <a href="https://play.google.com/store/apps/details?id=com.dumainteractiva.avia" target="_blank" class="banner"> 1790 <img src="/media/repository/baners_destacats/portada_peu/app_quadrada.png" alt="app" class="banner"> 1791 APP </a> 1792 </li> 1793 </ul> 1794</div> </div> 1795 </div> 1796 <nav class="menu" aria-label="Peu de menú"> 1797 <ul class="container-xl sitemap"> 1798 <li class="page-1 Inferior"> <a class="page-1" href="/ajuntament" target="_self" >Ajuntament </a><ul id="footer-menu-1"><li class="subMenuPage-12"> <a class="subMenuPage-12" href="/ajuntament/alcaldia" target="_self" >Salutació de l'Alcalde </a></li><li class="subMenuPage-8"> <a class="subMenuPage-8" href="/ajuntament/govern" target="_self" >Govern </a></li><li class="subMenuPage-80"> <a class="subMenuPage-80" href="https://www.seu-e.cat/web/avia/govern-obert-i-transparencia/accio-de-govern-i-normativa/accio-de-govern-i-partits-politics/actes-de-ple" target="_blank" rel="noopener noreferrer" >Ple municipal </a></li><li class="subMenuPage-20"> <a class="subMenuPage-20" href="https://www.seu-e.cat/web/avia/govern-obert-i-transparencia/accio-de-govern-i-normativa/accio-de-govern-i-partits-politics/acords-de-junta-de-govern" target="_blank" rel="noopener noreferrer" >Juntes de govern </a></li><li class="subMenuPage-16"> <a class="subMenuPage-16" href="/ajuntament/projectes-plans-campanyes-i-programes" target="_self" >Projectes, plans, campanyes i programes </a></li><li class="subMenuPage-18"> <a class="subMenuPage-18" href="https://avia.eadministracio.cat/board" target="_blank" rel="noopener noreferrer" >Tauler d'anuncis </a></li><li class="subMenuPage-26"> <a class="subMenuPage-26" href="https://contractaciopublica.gencat.cat/ecofin_pscp/AppJava/cap.pscp?reqCode=viewDetail&keyword=avi%C3%A0&idCap=10905966&ambit=&" target="_blank" rel="noopener noreferrer" >Perfil de contractant </a></li><li class="subMenuPage-126"> <a class="subMenuPage-126" href="https://www.seu-e.cat/web/avia/govern-obert-i-transparencia/accio-de-govern-i-normativa/normativa-plans-i-programes" target="_blank" rel="noopener noreferrer" >Normativa </a></li><li class="subMenuPage-139"> <a class="subMenuPage-139" href="/ajuntament/ordenances-fiscals" target="_self" >Ordenances Fiscals </a></li><li class="subMenuPage-135"> <a class="subMenuPage-135" href="/ajuntament/planejament-urbanistic" target="_self" >Planejament urbanÃstic </a></li><li class="subMenuPage-122"> <a class="subMenuPage-122" href="/ajuntament/que-es-la-seu-electronica" target="_self" >Seu electrònica </a></li><li class="subMenuPage-123"> <a class="subMenuPage-123" href="/ajuntament/transparencia" target="_self" >Transparència </a></li></ul></li><li class="page-10 Inferior"> <a class="page-10" href="/serveis-i-tramits" target="_self" >Serveis i trà mits </a><ul id="footer-menu-10"><li class="subMenuPage-160"> <a class="subMenuPage-160" href="/serveis-i-tramits/documentacio-complementaria-a-la-sollicitud-dobres-provisionals" target="_self" >Documentació complementà ria a la sol·licitud d'obres provisionals </a></li><li class="subMenuPage-148"> <a class="subMenuPage-148" href="/serveis-i-tramits/comunicacio-primera-ocupacio-dun-edifici" target="_self" >Comunicació primera ocupació d'un edifici </a></li><li class="subMenuPage-146"> <a class="subMenuPage-146" href="/serveis-i-tramits/comunicacio-previa-dobra" target="_self" >Comunicació prèvia d'obra </a></li><li class="subMenuPage-144"> <a class="subMenuPage-144" href="/serveis-i-tramits/comunicacio-previa-dinstallacions-fotovoltaiques-en-sol-urba" target="_self" >Comunicació prèvia d'instal·lacions fotovoltaiques en sòl urbà </a></li><li class="subMenuPage-82"> <a class="subMenuPage-82" href="/serveis-i-tramits/oficines-municipals" target="_self" >Oficines municipals </a></li><li class="subMenuPage-33"> <a class="subMenuPage-33" href="/serveis-i-tramits/serveis" target="_self" >Serveis </a></li><li class="subMenuPage-31"> <a class="subMenuPage-31" href="https://avia.eadministracio.cat/dossier.1" target="_blank" rel="noopener noreferrer" >Trà mits i gestions </a></li><li class="subMenuPage-32"> <a class="subMenuPage-32" href="/serveis-i-tramits/impostos" target="_self" >Impostos </a></li><li class="subMenuPage-88"> <a class="subMenuPage-88" href="/serveis-i-tramits/factura-electronica" target="_self" >Factura electrònica </a></li></ul></li><li class="page-2 Inferior"> <a class="page-2" href="/avia" target="_self" >Avià </a><ul id="footer-menu-2"><li class="subMenuPage-34"> <a class="subMenuPage-34" href="/avia/com-arribar-hi" target="_self" >Com arribar-hi </a></li><li class="subMenuPage-36"> <a class="subMenuPage-36" href="/avia/planol--guia-de-carrers" target="_self" >Plà nol / Guia de carrers </a></li><li class="subMenuPage-3"> <a class="subMenuPage-3" href="/avia/guia-del-municipi" target="_self" >Guia del municipi </a></li><li class="subMenuPage-7"> <a class="subMenuPage-7" href="/avia/informacio-del-municipi" target="_self" >Informació del municipi </a></li><li class="subMenuPage-48"> <a class="subMenuPage-48" href="/avia/informacio-geografica" target="_self" >Informació geogrà fica </a></li></ul></li><li class="page-131 Inferior"> <a class="page-131" href="/visitans" target="_self" >Visita'ns </a><ul id="footer-menu-131"><li class="subMenuPage-50"> <a class="subMenuPage-50" href="/visitans/festes-i-fires" target="_self" >Festes i fires </a></li><li class="subMenuPage-41"> <a class="subMenuPage-41" href="/visitans/llocs-dinteres" target="_self" >Llocs d'interès </a></li><li class="subMenuPage-129"> <a class="subMenuPage-129" href="/visitans/rutes" target="_self" >Rutes </a></li><li class="subMenuPage-38"> <a class="subMenuPage-38" href="/visitans/on-dormir" target="_self" >On dormir </a></li><li class="subMenuPage-130"> <a class="subMenuPage-130" href="/visitans/on-menjar" target="_self" >On menjar </a></li></ul></li><li class="page-4 Inferior"> <a class="page-4" href="/actualitat" target="_self" >Actualitat </a><ul id="footer-menu-4"><li class="subMenuPage-53"> <a class="subMenuPage-53" href="/actualitat/noticies" target="_self" >NotÃcies </a></li><li class="subMenuPage-54"> <a class="subMenuPage-54" href="/actualitat/agenda" target="_self" >Agenda </a></li><li class="subMenuPage-128"> <a class="subMenuPage-128" href="/actualitat/avisos" target="_self" >Avisos </a></li><li class="subMenuPage-55"> <a class="subMenuPage-55" href="/actualitat/butlleti-digital" target="_self" >Butlletà digital </a></li><li class="subMenuPage-56"> <a class="subMenuPage-56" href="/actualitat/butlleti-municipal" target="_self" >Butlletà municipal </a></li><li class="subMenuPage-57"> <a class="subMenuPage-57" href="/actualitat/rss" target="_self" >Rss </a></li><li class="subMenuPage-58"> <a class="subMenuPage-58" href="/actualitat/hemeroteca" target="_self" >Hemeroteca </a></li></ul></li> </ul> 1799 </nav> 1800 <div class="links"> 1801 <div class="container-xl"> 1802 <div class="row"> 1803 <div class="xxss col-md-6 col-sm-6 col-lg-6 middle">
1804 <span class="titol">Xarxes socials:</span> 1805 1806 <a target="_blank" aria-label="Twitter" href="https://twitter.com/ajuntamentavia?lang=ca" title="Obre en finestra nova: Twitter"> 1807 <span style="display: none">Twitter</span> 1808 <img src="/themes/avia/images/icons/social/twitter.png" alt="Twitter" width="32" height="32"> 1809 </a> 1810 1811 <a target="_blank" aria-label="Facebook" href="https://www.facebook.com/ajuntamentavia/" title="Obre en finestra nova: Facebook"> 1812 <span style="display: none">Facebook</span> 1813 <img src="/themes/avia/images/icons/social/facebook.png" alt="Facebook" width="32" height="32"> 1814 </a> 1815 1816 <a target="_blank" aria-label="Instagram" href="https://www.instagram.com/ajuntamentavia/" title="Obre en finestra nova: Instagram"> 1817 <span style="display: none">Instagram</span> 1818 <img src="/themes/avia/images/icons/social/instagram.png" alt="Instagram" width="32" height="32"> 1819 </a> 1820 </div> 1821 <div class="col-md-6 col-sm-6 col-lg-6 middle"> 1822 <nav class="menu"><ul id="Inferior2"><li class="page-63"> <a href="/altres-continguts/credits" target="_self" >Crèdits </a></li><li class="page-62"> <a href="/altres-continguts/contactar" target="_self" >Contactar </a></li><li class="page-60"> <a href="/altres-continguts/proteccio-de-dades" target="_self" >Protecció de dades </a></li><li class="page-59"> <a href="/altres-continguts/avis-legal" target="_self" >AvÃs legal </a></li><li class="page-158"> <a href="/altres-continguts/accessibilitat" target="_self" >Accessibilitat </a></li><li class="page-145"> <a href="/altres-continguts/politica-de-xarxes-socials" target="_self" >PolÃtica de Xarxes Socials </a></li></ul></nav> </div> 1823 </div> 1824 </div> 1825 </div> 1826 <div class="contact"> 1827 <div class="container-xl"> 1828 <div class="row"> 1829 <address class="address col-md-6 col-sm-6 col-lg-6"> 1830 <div class="title"> 1831 Ajuntament d'Avià </div> 1832 Av. Pau Casals, 22<br>08610 Avià <br>Tel. 938 230 000<br>NIF P0801100I<br></address><div class="diba col-md-6 col-sm-6 col-lg-6" id="diba-partner"> 1833 <div class="title"> 1834 Amb la col·laboració de: </div> 1835 <a href="http://diba.cat/" target="_blank" aria-label="Anar a la web Diputació de Barcelona" title="Obre en finestra nova: Diputació de Barcelona"> 1836 <span style="display: none">Diputació de Barcelona</span> 1837 <img src="/front/view//images/logoDiba/Blanc.svg" alt="Diputació de Barcelona" class="logo-diba"> 1838 </a> 1839</div> </div> 1840 </div> 1841 </div> 1842</div> 1843 </footer> 1844 <!-- Llibreries de tercers + js propis registrats a AssetManager (jQuery primer) -->
1845<script src="/front/view/js/bower_components/jquery/dist/jquery.min.js?ver=1790949915"></script>
vendor: 1 bytes, line 1845
1845
1846<script src="/front/view/js/bower_components/bootstrap/dist/js/bootstrap.bundle.min.js?ver=1790949915"></script>
vendor: 1 bytes, line 1846
1846
1847<script src="/front/view/js/bower_components/bxslider-4/dist/jquery.bxslider.js?ver=1790949915"></script>
vendor: 1 bytes, line 1847
1847
1848<script src="/front/view/js/bower_components/jscal/index.js?ver=1790949915"></script>
vendor: 1 bytes, line 1848
1848
1849<script src="/common/bower_components/select2/dist/js/select2.min.js?ver=1790949915"></script>
vendor: 1 bytes, line 1849
1849
1850<script src="/common/bower_components/select2/dist/js/i18n/ca.js?ver=1790949915"></script>
vendor: 1 bytes, line 1850
1850
1851<script src="/common/bower_components/strength.js/src/strength.min.js?ver=1790949915"></script>
vendor: 1 bytes, line 1851
1851
1852<script src="/front/view/js/bower_components/masonry-layout/dist/masonry.pkgd.min.js?ver=1790949915"></script>
vendor: 1 bytes, line 1852
1852
1853<script src="/front/view/js/constants.js?ver=1790949915"></script>
vendor: 1 bytes, line 1853
1853
1854<script src="/front/view/js/functions.js?ver=1790949915"></script>
vendor: 1 bytes, line 1854
1854
1855<script src="/front/view/js/functions/footer.js?ver=1790949915"></script>
vendor: 1 bytes, line 1855
1855
1856<script src="/front/view/js/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js?ver=1790949915"></script>
vendor: 1 bytes, line 1856
1856
1857<script src="/front/view/js/bower_components/jquery.prettyPhoto/index.js?ver=1790949915"></script>
vendor: 1 bytes, line 1857
1857
1858<script> 1859 $(document).ready(function(){ 1860 $("a[rel^='prettyPhoto']").prettyPhoto(); 1861 $("a[rel^='prettyFrame']").prettyPhoto(); 1862 }); 1863</script>
vendor: 1 bytes, line 1863
1863
1864<script> 1865 var TWITTER = true; 1866 var FACEBOOK = true; 1867 $(window).on("load", function() { 1868 start(); 1869 }); 1870 $(document).ready(function() { 1871 if (typeof articlesId !== 'undefined') { 1872 var today = new Date(); 1873 var date = today 1874 articlesId.push('internal_calendar'); 1875 1876 var oneYearAfter = new Date(); 1877 oneYearAfter.setDate(oneYearAfter.getDate() + 365); 1878 for (id in articlesId) { 1879 Calendar.setup({ 1880 id: articlesId[id], 1881 cont: "dv_calendar_" + articlesId[id], 1882 fdow: 1, 1883 date: date, 1884 noScroll: true, 1885 bottomBar: false, 1886 max: oneYearAfter, 1887 animation: false, 1888 titleFormat: "%B %Y", 1889 dateInfo: getDateInfo 1890 }); 1891 setEqualContentColumns(); 1892 } 1893 } 1894 }); 1895 1896 1897 // Initialize Select2 with icon support for category filter 1898 $(document).ready(function() { 1899 if ($('#categoryFilter').length) { 1900 $('#categoryFilter').select2({ 1901 templateResult: function(option) { 1902 if (!option.id) return option.text; 1903 var icon = $(option.element).data('icon'); 1904 if (!icon) return option.text; 1905 return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>'); 1906 }, 1907 templateSelection: function(option) { 1908 if (!option.id) return option.text; 1909 var icon = $(option.element).data('icon'); 1910 if (!icon) return option.text; 1911 return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>'); 1912 }, 1913 allowHtml: true 1914 }); 1915 } 1916 }); 1917</script>
1917 1918 <!-- CSS final--> 1919 1920
1920<script> 1921 const css = "div.page-62 .o-widget-wrapper {\n border: 0;\n}\n"; 1922 const style = document.createElement('style'); 1923 style.textContent = css; 1924 document.head.appendChild(style); 1925 </script>
1925 1926 1927 <!-- Start Modal views--> 1928 1929 <div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-hidden="true"> 1930 <div class="modal-dialog modal-dialog-centered" role="document"> 1931 <div class="modal-content"> 1932 <div class="modal-header"> 1933 <div class="title-head"></div> 1934 </div> 1935 <div class="modal-body"> 1936 <div class="tiktok-div-embed"></div> 1937 <iframe id="iframeVideo" title="VÃdeo" class="iframeVideo" allowfullscreen></iframe> 1938 1939 </div> 1940 <div class="modal-footer"> 1941 <span id="titleVideo" class="titleVideo"></span> 1942 <a id="closeModalVideo" class="close" href="javascript:void(0)" data-bs-dismiss="modal"><span style="display: none">X</span></a> 1943 1944 </div> 1945 </div> 1946 </div> 1947</div> <div class="modal fade" id="pdfModal" tabindex="-1" role="dialog" aria-hidden="true"> 1948 <div id="documentDialog" class="modal-dialog modal-dialog-centered" role="document"> 1949 <div class="modal-content"> 1950 <div class="modal-header"> 1951 <div class="title-head"></div> 1952 </div> 1953 <div class="modal-body"> 1954 <iframe id="iframePdf" title='Document' class="pdfview" style="width: 100%; height: 100%"></iframe> 1955 </div> 1956 <div class="modal-footer"> 1957 <span id="titlePdf" class="titlePdf"></span> 1958 <a id="closeModalPDF" class="close" href="javascript:void(0)"><span style="display: none">X</span></a> 1959 </div> 1960 </div> 1961 </div> 1962</div> <!-- End Modal views --> 1963
1963<script src="/front/view/js/endScript.js?ver=1790949915"></script>
1963 1964 <!-- Només activar per desenvolupament 1965
1965<script src="../../../node_modules/axe-core/axe.js"></script>
1965 1966
1966<script src="../../../dist/my-first-webpack.bundle.js"></script>
1966 1967 --> 1968
1968<script> 1969 $(document).ready(function () { 1970 startClock(1790949915); 1971 if (typeof (callMenuAfterJQueryLoaded) == "function") { 1972 callMenuAfterJQueryLoaded(); 1973 } 1974 1975 datepickerInit(); 1976 carouselControlSmall(); 1977 1978 if (typeof (callMenuBeforeJQueryLoaded) == "function") { 1979 callMenuBeforeJQueryLoaded(); 1980 } 1981 1982 if (typeof (callMenuBeforeTopJQueryLoaded) == "function") { 1983 callMenuBeforeTopJQueryLoaded(); 1984 } 1985 addAttributesDivVcards(); 1986 modalsImage(); 1987 modalsPdf(); 1988 translateWeb(); 1989 var carousel = $('#carouselControls'); 1990 carousel.on('slide.bs.carousel', function (event) { 1991 toSlideImage(event); 1992 }); 1993 /** Només activar per desenvolupament 1994 axe.configure({ 1995 locale: { 1996 lang: 'es', 1997 } 1998 }); 1999 2000 axe.run().then(results => { 2001 if (results.violations.length) { 2002 console.log(results.violations); 2003 throw new Error('Accessibility issues found'); 2004 } 2005 }) 2006 .catch(err => { 2007 console.log('Something bad happened:', err.message); 2008 }); 2009 */ 2010 }); 2011 2012 $(window).resize(function() { 2013 equalHeightIconTime(); 2014 }) 2015 </script>
2015 2016 </body> 2017</html>
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.