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 - "> 8<meta name="description" lang="ca" content=""> 9<meta name="author" lang="ca" content="Ajuntament de Santa Margarida de Montbui"> 10<meta name="date" lang="ca" content="2025-02-18 10:04:54"> 11<meta name="generator" lang="ca" content=""> 12<meta name="robots" content="index, follow"> 13 14 <title>Contactar - </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-C1TPPG2GF4
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-C1TPPG2GF4
vendor: 8 bytes, lines 23-24
23'); 24
24// Creates the default tracker. 25 gtag('event', 'page_view', { 'send_to': 'G-C1TPPG2GF4' }); 26</script>
26 27<!-- End of code Global Site Tag (gtag.js) - Google Analytics v4--><!-- Global Site Tag (gtag.js) - Google Analytics v4-->
vendor: 124 bytes, lines 27-28
27 28<script type="text/plain" data-type="text/javascript" data-name="ga" data-src="https://www.googletagmanager.com/gtag/js?id=
28UA-126015970-1
vendor: 12 bytes, line 28
28"></script>
29<script type="text/plain" data-type="text/javascript" data-name="ga"> 30
vendor: 140 bytes, lines 30-34
30window.dataLayer = window.dataLayer || []; 31 function gtag(){dataLayer.push(arguments);} 32 gtag('js', new Date()); 33 34 gtag('config', '
34UA-126015970-1
vendor: 8 bytes, lines 34-35
34'); 35
35// Creates the default tracker. 36 gtag('event', 'page_view', { 'send_to': 'UA-126015970-1' }); 37</script>
37 38<!-- End of code Global Site Tag (gtag.js) - Google Analytics v4--> 39 <link rel="canonical" href="/altra-informacio/contactar"> 40 41 <link rel="stylesheet" href="/front/view/js/bower_components/bootstrap/dist/css/bootstrap.min.css?ver=1790940362"> 42<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css?ver=1790940362"> 43<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-icons.min/index.css?ver=1790940362"> 44<link rel="stylesheet" href="/front/view/js/bower_components/tempus-dominus.min.css/index.css?ver=1790940362"> 45<link rel="stylesheet" href="/common/bower_components/select2/dist/css/select2.min.css?ver=1790940362"> 46 47 <!-- Real Favicon Genenrator--> 48<link rel="apple-touch-icon" href="/themes/santamargaridademontbui/images/favicons/apple-touch-icon.png"> 49<link rel="icon" type="image/png" href="/themes/santamargaridademontbui/images/favicons/favicon-16x16.png" sizes="16x16"> 50<link rel="icon" type="image/png" href="/themes/santamargaridademontbui/images/favicons/favicon-32x32.png" sizes="32x32"> 51<link rel="shortcut icon" href="/themes/santamargaridademontbui/images/favicons/favicon.ico"> 52
52<script src="/front/controller/klaro-config.php"></script>
vendor: 1 bytes, line 52
52
53<script> 54 // Fallback defensiu: si per algun motiu el PHP no retorna la configuració, 55 // assegurem una configuració mÃnima perquè Klaro no falli i mostri el banner. 56 window.klaroConfig = window.klaroConfig || { 57 version: '1.0', 58 elementID: 'klaro', 59 storageMethod: 'cookie', 60 storageName: 'klaro', 61 cookieName: 'klaro', 62 htmlTexts: true, 63 acceptAll: true, 64 hideDeclineAll: false, 65 services: [] 66 }; 67</script>
vendor: 1 bytes, line 67
67
68<script src="/front/view/js/klaro.min.js?ver=1790940362"></script>
vendor: 1 bytes, line 68
68
69<script src="/front/view/js/klaro-init.js?ver=1790940362"></script>
69 70 71 <!-- Twitter Card data --> 72<meta name="twitter:card" content="summary"> 73<meta name="twitter:site" content="@ajmontbui"> 74<meta name="twitter:title" content="Contactar"> 75<meta name="twitter:description" content=""> 76<meta name="twitter:image" content="https://www.montbui.cat/themes/santamargaridademontbui/images/logos/header.png"> 77 <meta name="twitter:image:alt" content="Logo"> 78 <!-- Open Graph data --> 79<meta property="og:title" content="Contactar"> 80<meta property="og:type" content="website"> 81<meta property="og:url" content="https://www.montbui.cat/altra-informacio/contactar"> 82<meta property="og:image" content="https://www.montbui.cat/themes/santamargaridademontbui/images/logos/header.png"> 83 <meta property="og:image:alt" content="Logo"> 84 <meta property="og:image" content="https://www.montbui.cat/themes/santamargaridademontbui/images/logos/header_inv.png"> 85 <meta property="og:image:alt" content="Logo invertit"> 86 <meta property="og:description" content=""> 87<meta property="og:site_name" content="Ajuntament de Santa Margarida de Montbui"> 88 89 <!-- HTML5 compatible tags -->
90<script> 91 document.createElement('header'); 92 document.createElement('footer'); 93 document.createElement('section'); 94 document.createElement('aside'); 95 document.createElement('nav'); 96 document.createElement('article'); 97 document.createElement('hgroup'); 98 document.createElement('lh'); 99</script>
99 100
100<script>window.mapsConfig = { layerType: 'OpenStreetMap_Mapnik' };</script>
100 101<link rel="stylesheet" href="/front/view/js/bower_components/FreezeUI/freeze-ui.min.css"> 102<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/leaflet.css"> 103<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/Control.Loading.css">
104<script src="/front/view/js/bower_components/FreezeUI/freeze-ui.min.js"></script>
vendor: 1 bytes, line 104
104
105<script src="/front/view/js/bower_components/Leaflet/default/leaflet.js"></script>
vendor: 1 bytes, line 105
105
106<script src="/front/view/js/bower_components/es6-promise/es6-promise.min.js"></script>
vendor: 1 bytes, line 106
106
107<script>ES6Promise.polyfill();</script>
vendor: 1 bytes, line 107
107
108<script src='/front/view/js/bower_components/Leaflet/default/Leaflet.GoogleMutant.js'></script>
vendor: 1 bytes, line 108
108
109<script src="/front/view/js/googleMapsInit.js"></script>
vendor: 1 bytes, line 109
109
110<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 110
110
111<script src="/front/view/js/bower_components/Leaflet/default/leaflet.maps.js"></script>
vendor: 1 bytes, line 111
111
112<script src="/front/view/js/bower_components/Leaflet/default/leaflet.clone.js"></script>
vendor: 1 bytes, line 112
112
113<script src="/front/view/js/bower_components/Leaflet/default/Control.Loading.js"></script>
vendor: 1 bytes, line 113
113
114<script src="/front/view/js/bower_components/jquery.min/index.js"></script>
vendor: 1 bytes, line 114
114
115<script src="/front/view/js/maps.js"></script>
115 <!-- Init addHeadExtraStyles --> 116 <style>html body{font-size:1em !important;} </style> 117 <!-- End addHeadExtraStyles --> 118 <!-- Font Awesome 7 + v4-shims for backward compatibility --> 119 <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all.min.css" rel="stylesheet"> 120 <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/v4-shims.min.css" rel="stylesheet"> 121 <!-- Popperjs + Tempus Dominus --> 122
122<script src="/front/view/js/bower_components/popper.min/index.js?ver=1790940362"></script>
vendor: 1 bytes, line 122
122
123<script src="/front/view/js/bower_components/tempus-dominus.min.js/index.js?ver=1790940362"></script>
123 124 <link rel="stylesheet" media="all" href="/themes/santamargaridademontbui/styles/style.min.css?ver=1790940362"> 125 </head> 126 <body class="page id-62"> 127 <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"> 128 <div class="toolbar clearfix"> 129 <div class="container-xl"> 130 <div class="fright"> 131 <div class="toolbarItem"> 132 <div class="toolbarItem page-62 page-contactar current"> 133 <a 134 href="/altra-informacio/contactar" 135 target="_self" 136 rel="" 137 > 138 Contactar </a> 139</div> 140</div> <div id="social" class="toolbarItem"> 141 142 <a target="_blank" aria-label="Facebook" href="https://www.facebook.com/ajmontbui/" title="Obre en finestra nova: Facebook"> 143 <span style="display: none">Facebook</span> 144 <img src="/front/view/images/icons/social/facebook.png" alt="Facebook" width="32" height="32"> 145 </a> 146 147 <a target="_blank" aria-label="Youtube" href="https://www.youtube.com/channel/UCjqVEXuDeLfW4I1pQM7xxJw" title="Obre en finestra nova: Youtube"> 148 <span style="display: none">Youtube</span> 149 <img src="/front/view/images/icons/social/youtube.png" alt="Youtube" width="32" height="32"> 150 </a> 151 152 <a target="_blank" aria-label="Instagram" href="https://www.instagram.com/ajmontbui" title="Obre en finestra nova: Instagram"> 153 <span style="display: none">Instagram</span> 154 <img src="/front/view/images/icons/social/instagram.png" alt="Instagram" width="32" height="32"> 155 </a> 156 157 <a target="_blank" aria-label="Tiktok" href="https://www.tiktok.com/@ajmontbui" title="Obre en finestra nova: Tiktok"> 158 <span style="display: none">Tiktok</span> 159 <img src="/front/view/images/icons/social/tiktok.png" alt="Tiktok" width="32" height="32"> 160 </a> 161 162 <a target="_blank" aria-label="Whatsapp" href="https://whatsapp.com/channel/0029VaDQmgZ8qIzxjSLbXF2j" title="Obre en finestra nova: Whatsapp"> 163 <span style="display: none">Whatsapp</span> 164 <img src="/front/view/images/icons/social/whatsapp.png" alt="Whatsapp" width="32" height="32"> 165 </a> 166 </div> 167 <div class="toolbarItem"> 168 <div id="toolbarLanguages"> 169 <ul id="languages"> 170 <li><a href="#" role="button" aria-expanded="false" aria-controls="languagesList" id="languagesToggle">Idiomes</a> 171 <ul id="languagesList"> 172 <li><a class="link-language" href="https://www.montbui.cat/altra-informacio/contactar?lang=ca" data-target="https://www.montbui.cat/altra-informacio/contactar?lang=ca">Català </a></li> 173 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=esie=UTF-8&u=https://www.montbui.cat/altra-informacio/contactar&sl=ca&tl=es" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=esie=UTF-8&u=https://www.montbui.cat/altra-informacio/contactar&sl=ca&tl=es">Castellà </a></li> 174 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=enie=UTF-8&u=https://www.montbui.cat/altra-informacio/contactar&sl=ca&tl=en" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=enie=UTF-8&u=https://www.montbui.cat/altra-informacio/contactar&sl=ca&tl=en">Anglès</a></li> 175 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=deie=UTF-8&u=https://www.montbui.cat/altra-informacio/contactar&sl=ca&tl=de" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=deie=UTF-8&u=https://www.montbui.cat/altra-informacio/contactar&sl=ca&tl=de">Alemany</a></li> 176 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=frie=UTF-8&u=https://www.montbui.cat/altra-informacio/contactar&sl=ca&tl=fr" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=frie=UTF-8&u=https://www.montbui.cat/altra-informacio/contactar&sl=ca&tl=fr">Francès</a></li> 177 </ul> 178 </li> 179 </ul> 180</div>
181<script> 182(function () { 183 var toggle = document.getElementById('languagesToggle'); 184 if (!toggle) return; 185 var li = toggle.parentElement; 186 var submenu = li.querySelector('ul'); 187 var links = Array.prototype.slice.call(submenu.querySelectorAll('a')); 188 189 function keyName(e) { 190 return e.key || e.code || e.keyCode; 191 } 192 193 function isSpaceKey(e) { 194 var key = keyName(e); 195 return key === ' ' || key === 'Spacebar' || key === 'Space' || key === 32; 196 } 197 198 function open(focusFirst) { 199 li.classList.add('is-open'); 200 submenu.style.display = 'block'; 201 submenu.style.padding = '1em'; 202 toggle.setAttribute('aria-expanded', 'true'); 203 if (focusFirst && links.length) links[0].focus(); 204 } 205 206 function close() { 207 li.classList.remove('is-open'); 208 submenu.style.display = ''; 209 submenu.style.padding = ''; 210 toggle.setAttribute('aria-expanded', 'false'); 211 } 212 213 function isOpen() { 214 return toggle.getAttribute('aria-expanded') === 'true'; 215 } 216 217 function focusLink(index) { 218 if (!links.length) return; 219 links[(index + links.length) % links.length].focus(); 220 } 221 222 function focusedLinkIndex() { 223 return links.indexOf(document.activeElement); 224 } 225 226 toggle.addEventListener('click', function (e) { 227 e.preventDefault(); 228 isOpen() ? close() : open(false); 229 }); 230 231 toggle.addEventListener('keydown', function (e) { 232 var key = keyName(e); 233 if (key === 'Enter' || isSpaceKey(e)) { 234 e.preventDefault(); 235 isOpen() ? close() : open(false); 236 } else if (key === 'ArrowDown' || key === 40) { 237 e.preventDefault(); 238 open(true); 239 } else if (key === 'ArrowUp' || key === 38) { 240 e.preventDefault(); 241 open(false); 242 focusLink(links.length - 1); 243 } else if (key === 'Escape' || key === 'Esc' || key === 27) { 244 if (isOpen()) { 245 e.preventDefault(); 246 close(); 247 } 248 } 249 }); 250 251 submenu.addEventListener('keydown', function (e) { 252 var key = keyName(e); 253 var index = focusedLinkIndex(); 254 255 if (key === 'ArrowDown' || key === 40) { 256 e.preventDefault(); 257 focusLink(index + 1); 258 } else if (key === 'ArrowUp' || key === 38) { 259 e.preventDefault(); 260 focusLink(index - 1); 261 } else if (key === 'Home' || key === 36) { 262 e.preventDefault(); 263 focusLink(0); 264 } else if (key === 'End' || key === 35) { 265 e.preventDefault(); 266 focusLink(links.length - 1); 267 } else if (isSpaceKey(e)) { 268 e.preventDefault(); 269 if (document.activeElement && document.activeElement.click) { 270 document.activeElement.click(); 271 } 272 } else if (key === 'Escape' || key === 'Esc' || key === 27) { 273 e.preventDefault(); 274 close(); 275 toggle.focus(); 276 } 277 }); 278 279 li.addEventListener('focusout', function () { 280 window.setTimeout(function () { 281 if (!li.contains(document.activeElement)) close(); 282 }, 0); 283 }); 284 285 document.addEventListener('click', function (e) { 286 if (!li.contains(e.target)) close(); 287 }); 288})(); 289</script>
289 290 <div class="currentDate" style='padding:9px;color:white'> 291 <span id="clock" class="clock" title='Data i hora oficial' > 292 02.10.2026 | 13:26 </span> 293</div> </div> 294 </div> 295 </div> 296</div> 297<div class="header "> 298 <div class="branding"> 299 <div class="container-xl"> 300 <div class="row"> 301 <div class="col-md-8 col-sm-8 col-lg-8 logo_box"> 302 <a class="logo" href="/" aria-label=" - Pà gina d'inici"> 303 <img src="/themes/santamargaridademontbui/images/logos/header.png" alt="" width="400" height="111" id="mainLogo"> 304 </a> 305 </div> <div class="col-md-4 col-sm-4 col-lg-4 middle search_box"> 306 <form id="search_box" aria-label="Cercar:" name="search_box" method="get" action="/search"> 307 <label for="search" accesskey="4"> 308 <span class="visually-hidden">Cercar:</span> 309 </label> 310 <input id="search" name="search" type="text" aria-label="Cercar:" title="Cerca a tot el web" value="" placeholder="Cercar..."> 311 <button type="submit" class="search-button" aria-label="Cerca"><i class="fa fa-search"></i></button> 312 </form> 313</div> 314 </div> 315 </div> 316 </div> 317 <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-134 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament" ><span class="menu-flexible__item-text">L'Ajuntament</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-8 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/govern-municipal" ><span class="menu-flexible__item-text">Govern municipal</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-12 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/govern-municipal/salutacio-de-lequip-de-govern" ><span class="menu-flexible__item-text">Salutació de l'Equip de Govern</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-143 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/govern-municipal/salutacio-de-lequip-de-govern/lespai-de-lalcalde-" ><span class="menu-flexible__item-text">L'Espai de l'Alcalde </span></a></li></ul></li><li class="menu-flexible__item page-116 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/govern-municipal/agenda-de-lequip-de-govern" ><span class="menu-flexible__item-text">Agenda de l'Equip de Govern</span></a></li><li class="menu-flexible__item page-14 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/govern-municipal/14-consistori" ><span class="menu-flexible__item-text">Consistori</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-115 level4"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/santamargaridademontbui/govern-obert-i-transparencia/informacio-institucional-i-organitzativa/organitzacio-politica-i-retribucions/alts-carrecs-personal-directiu-i-carrecs-eventuals" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Informació dels cà rrecs electes</span></a></li><li class="menu-flexible__item page-15 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/govern-municipal/14-consistori/grups-municipals" ><span class="menu-flexible__item-text">Grups municipals</span></a></li></ul></li><li class="menu-flexible__item page-133 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/santamargaridademontbui/dades-obertes/-/dadesobertes/dataset/eleccions-municipals-resultats-historics-en-vots/resource/3539f7e6-4a48-4b57-9b55-b8c41079b3cd?p_auth=SiufxuBC" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Resultats electorals</span></a></li><li class="menu-flexible__item page-81 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/govern-municipal/organismes-depenents-o-vinculats" ><span class="menu-flexible__item-text">Organismes depenents o vinculats</span></a></li><li class="menu-flexible__item page-249 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/govern-municipal/organs-de-govern" ><span class="menu-flexible__item-text">Ãrgans de govern</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-281 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/govern-municipal/organs-de-govern/organitzacio-municipal-acords-de-cartipas-i-delegacions" ><span class="menu-flexible__item-text">Organització municipal (acords de cartipà s i delegacions)</span></a></li><li class="menu-flexible__item page-19 level4"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/santamargaridademontbui/govern-obert-i-transparencia/accio-de-govern-i-normativa/accio-de-govern-i-grups-politics/actes-de-ple" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Actes de ple</span></a></li><li class="menu-flexible__item page-20 level4"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/santamargaridademontbui/govern-obert-i-transparencia/accio-de-govern-i-normativa/accio-de-govern-i-grups-politics/acords-de-junta-de-govern" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Actes de Juntes de Govern</span></a></li><li class="menu-flexible__item page-21 level4"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/santamargaridademontbui/govern-obert-i-transparencia/accio-de-govern-i-normativa/accio-de-govern-i-grups-politics/convocatories-de-sessions-del-ple" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Convocatòries del Ple</span></a></li></ul></li></ul></li><li class="menu-flexible__item page-9 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/informacio-oficial" ><span class="menu-flexible__item-text">Informació oficial</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-276 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/informacio-oficial/gestio-economica" ><span class="menu-flexible__item-text">Gestió Econòmica</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-277 level4"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/ca/web/santamargaridademontbui/govern-obert-i-transparencia/gestio-economica/pressupost/pressupost/despeses-per-programa" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Pressupost</span></a></li><li class="menu-flexible__item page-278 level4"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/ca/web/santamargaridademontbui/govern-obert-i-transparencia/gestio-economica/pressupost/liquid
317acio-del-pressupost/despeses-per-programa" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Liquidació del pressupost</span></a></li><li class="menu-flexible__item page-279 level4"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/ca/web/santamargaridademontbui/govern-obert-i-transparencia/gestio-economica/pressupost/compliment-dels-objectius-d-estabilitat-pressupostaria" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Compliment dels objectius d'estabilitat pressupostà ria</span></a></li></ul></li><li class="menu-flexible__item page-257 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/informacio-oficial/recursos-humans" ><span class="menu-flexible__item-text">Recursos Humans</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-120 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/recursos-humans/ofertes-de-treball" ><span class="menu-flexible__item-text">Ofertes de treball</span></a></li><li class="menu-flexible__item page-265 level4"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/santamargaridademontbui/govern-obert-i-transparencia/informacio-institucional-i-organitzativa/empleats-publics/plantilla-empleats-publics" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Plantilla d'empleats públics</span></a></li><li class="menu-flexible__item page-258 level4"><a class="menu-flexible__link menu-flexible__link--dropdown menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/santamargaridademontbui/govern-obert-i-transparencia/informacio-institucional-i-organitzativa/empleats-publics/relacio-de-llocs-de-treball-rlt" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Relació de Llocs de Treball</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-264 level5"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/santamargaridademontbui/govern-obert-i-transparencia/informacio-institucional-i-organitzativa/empleats-publics/oferta-publica-d-ocupacio-208" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Oferta Pública d'Ocupació</span></a></li></ul></li><li class="menu-flexible__item page-169 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/recursos-humans/servei-local-docupacio-ofertes" ><span class="menu-flexible__item-text">Servei Local d'Ocupació (ofertes)</span></a></li></ul></li><li class="menu-flexible__item page-246 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/informacio-oficial/contractacio" ><span class="menu-flexible__item-text">Contractació</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-26 level4"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://contractaciopublica.gencat.cat/ecofin_pscp/AppJava/cap.pscp?reqCode=viewDetail&idCap=13027370" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Perfil de contractant</span></a></li></ul></li><li class="menu-flexible__item page-259 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/informacio-oficial/normativa" ><span class="menu-flexible__item-text">Normativa</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-260 level4"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/informacio-oficial/normativa/ajuts-i-subvencions" ><span class="menu-flexible__item-text">Ajuts i subvencions</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-185 level5"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/normativa/ajuts-i-subvencions/sollicitud-dajuts-per-a-arranjaments-dhabitatges-per-a-gent-gran-persones-amb-dificultats-de-mobilitat-o-en-risc-dexclusio-social-del-29-de-setembre-al-28-doctubre-de-2026" ><span class="menu-flexible__item-text">Sol·licitud d'ajuts per a arranjaments d'habitatges per a gent gran, persones amb dificultats de mobilitat o en risc d'exclusió social (del 29 de setembre al 28 d'octubre de 2026)</span></a></li></ul></li><li class="menu-flexible__item page-238 level4"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/santamargaridademontbui/govern-obert-i-transparencia/accio-de-govern-i-normativa/normativa-plans-i-programes/plans-i-programes-sobre-les-politiques-publiques" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Plans i programes sobre les polÃtiques públiques</span></a></li><li class="menu-flexible__item page-27 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/normativa/ordenances-generals" ><span class="menu-flexible__item-text">Ordenances Generals</span></a></li><li class="menu-flexible__item page-240 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/normativa/participacio-en-ordenances-i-reglaments" ><span class="menu-flexible__item-text">Participació en ordenances i reglaments</span></a></li><li class="menu-flexible__item page-168 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/normativa/informacio-publica-" ><span class="menu-flexible__item-text">Informació pública </span></a></li><li class="menu-flexible__item page-202 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/normativa/normativa-admin-electronica" ><span class="menu-flexible__item-text">Normativa Admin. Electrònica</span></a></li><li class="menu-flexible__item page-22 level4"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/informacio-oficial/normativa/ordenances-fiscals" ><span class="menu-flexible__item-text">Ordenances Fiscals</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-164 level5"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/normativa/ordenances-fiscals/calendari-fiscal" ><span class="menu-flexible__item-text">Calendari fiscal</span></a></li></ul></li><li class="menu-flexible__item page-28 level4"><a class="menu-flexible__link menu-flexible__link--dropdown menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/web/santamargaridademontbui/govern-obert-i-transparencia/accio-de-govern-i-normativa/urbanisme" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Urbanisme</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="/lajuntament/informacio-oficial/normativa/urbanisme/pla-dordenacio-urbanistica-municipal-poum" ><span class="menu-flexible__item-text">Pla d'Ordenació UrbanÃstica Municipal (POUM)</span></a></li></ul></li></ul></li><li class="menu-flexible__item page-274 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/next-generation-a-santa-margarida-de-montbui-" ><span class="menu-flexible__item-text">Next Generation a Santa Margarida de Montbui </span></a></li><li class="menu-flexible__item page-189 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/pla-de-mesures-antifrau" ><span class="menu-flexible__item-text">Pla de mesures antifrau</span></a></li><li class="menu-flexible__item page-170 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/acordsmocionsdeclaracions" ><span class="menu-flexible__item-text">Acords/Mocions/Declaracions</span></a></li><li class="menu-flexible__item page-161 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/pagament-a-proveidors" ><span class="menu-flexible__item-text">Pagament a proveïdors</span></a></li><li class="menu-flexible__item page-18 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/tauler-danuncis" ><span class="menu-flexible__item-text">Tauler d'anuncis</span></a></li><li class="menu-flexible__item page-24 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/pressupostos-i-plantilles" ><span class="menu-flexible__item-text">Pressupostos i plantilles</span></a></li><li class="menu-flexible__item page-162 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/informacio-oficial/tramits-daudiencia" ><span class="menu-flexible__item-text">Trà mits d'audiència</span></a></li></ul></li><li class="menu-flexible__item page-10 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/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-127 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/serveis-i-tramits/atencio-al-ciutada" ><span class="menu-flexible__item-text">Atenció al ciutadà </span></a></li><li class="menu-flexible__item page-150 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/serveis-i-tramits/com-et-podem-ajudar-" ><span class="menu-flexible__item-text">Com et podem ajudar ?</span></a></li><li class="menu-flexible__item page-33 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/serveis-i-tramits/serveis" ><span class="menu-flexible__item-text">Serveis</span></a></li><li class="menu-flexible__item page-31 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://montbui.eadministracio.cat/info.0" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Trà mits i gestions</span></a></li><li class="menu-flexible__item page-90 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/serveis-i-tramits/carpeta-ciutadana" ><span class="menu-flexible__item-text">Carpeta ciutadana</span></a></li><li class="menu-flexible__item page-32 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/serveis-i-tramits/impostos" ><span class="menu-flexible__item-text">Impostos</span></a></li><li class="menu-flexible__item page-88 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/serveis-i-tramits/factura-electronica" ><span class="menu-flexible__item-text">Factura electrònica</span></a></li><li class="menu-flexible__item page-151 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/serveis-i-tramits/finestreta-unica-empresarial-fue" ><span class="menu-flexible__item-text">Finestreta Ãnica Empresarial (FUE)</span></a></li></ul></li></ul></li><li class="menu-flexible__item page-2 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/el-municipi" ><span class="menu-flexible__item-text">El municipi</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-3 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/el-municipi/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-34 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/com-arribar" ><span class="menu-flexible__item-text">Com arribar</span></a></li><li class="menu-flexible__item page-35 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/el-municipi/guia-del-municipi/transport-public" ><span class="menu-flexible__item-text">Transport públic</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-227 level4"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/transport-public/serveis-de-bus" ><span class="menu-flexible__item-text">Serveis de bus</span></a></li></ul></li><li class="menu-flexible__item page-36 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/guia-de-carrers" ><span class="menu-flexible__item-text">Guia de carrers</span></a></li><li class="menu-flexible__item page-37 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/equipaments" ><span class="menu-flexible__item-text">Equipaments</span></a></li><li class="menu-flexible__item page-38 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/menjar-i-dormir" ><span class="menu-flexible__item-text">Menjar i dormir</span></a></li><li class="menu-flexible__item page-39 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/comerc-i-serveis" ><span class="menu-flexible__item-text">Comerç i Serveis</span></a></li><li class="menu-flexible__item page-50 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/fires-i-festes" ><span class="menu-flexible__item-text">Fires i festes</span></a></li><li class="menu-flexible__item page-137 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/mapa-de-patrimoni-cultural" ><span class="menu-flexible__item-text">Mapa de Patrimoni Cultural</span></a></li><li class="menu-flexible__item page-41 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/llocs-interes" ><span class="menu-flexible__item-text">Llocs d'interès</span></a></li><li class="menu-flexible__item page-159 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/mapa-de-turisme" ><span class="menu-flexible__item-text">Mapa de turisme</span></a></li><li class="menu-flexible__item page-155 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/la-tossa-de-montbui" ><span class="menu-flexible__item-text">La Tossa de Montbui</span></a></li><li class="menu-flexible__item page-239 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/punt-dinformacio-turistic-la-tossa-de-montbui" ><span class="menu-flexible__item-text">Punt d'Informació TurÃstic La Tossa de Montbui</span></a></li><li class="menu-flexible__item page-136 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/rutes-pel-municipi" ><span class="menu-flexible__item-text">Rutes pel municipi</span></a></li><li class="menu-flexible__item page-40 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/entitats" ><span class="menu-flexible__item-text">Entitats</span></a></li><li class="menu-flexible__item page-42 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/subministraments" ><span class="menu-flexible__item-text">Subministraments</span></a></li><li class="menu-flexible__item page-43 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/emergencie
317s" ><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="/el-municipi/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="/el-municipi/informacio-del-municipi/historia" ><span class="menu-flexible__item-text">Història</span></a></li><li class="menu-flexible__item page-132 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-del-municipi/nuclis-de-poblacio" ><span class="menu-flexible__item-text">Nuclis de població</span></a></li><li class="menu-flexible__item page-128 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-del-municipi/climatologia" ><span class="menu-flexible__item-text">Climatologia</span></a></li><li class="menu-flexible__item page-129 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-del-municipi/medi-fisic-del-municipi" ><span class="menu-flexible__item-text">Medi fÃsic del municipi</span></a></li><li class="menu-flexible__item page-193 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-del-municipi/httpswwwgooglecommapsdviewermid1yohs93qkwguycijfrgzpaaw4ee1c5nyyandll41565245347052472c15964705499999887andz15" ><span class="menu-flexible__item-text">Mapa d'abocaments il·legals detectats al terme municipal </span></a></li><li class="menu-flexible__item page-130 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-del-municipi/patrimoni-natural" ><span class="menu-flexible__item-text">Patrimoni natural</span></a></li><li class="menu-flexible__item page-131 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-del-municipi/territori" ><span class="menu-flexible__item-text">Territori</span></a></li><li class="menu-flexible__item page-47 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-del-municipi/el-municipi-en-xifres" ><span class="menu-flexible__item-text">El municipi en xifres</span></a></li></ul></li><li class="menu-flexible__item page-48 level2"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-geografica" ><span class="menu-flexible__item-text">Informació geogrà fica</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/noticiesagenda-dactualitat" ><span class="menu-flexible__item-text">NotÃcies/Agenda d'actualitat</span></a></li><li class="menu-flexible__item page-166 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/gravacions-dels-plens-municipals" ><span class="menu-flexible__item-text">Gravacions dels Plens Municipals</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-141 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/galeria-dimatges-" ><span class="menu-flexible__item-text">Galeria d'imatges </span></a></li><li class="menu-flexible__item page-235 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/xarxes-socials" ><span class="menu-flexible__item-text">Xarxes socials</span></a></li><li class="menu-flexible__item page-138 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/whatsapp-montbui" ><span class="menu-flexible__item-text">Whatsapp Montbui</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-121 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/seu--transparencia" ><span class="menu-flexible__item-text">Seu / transparència</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-125 level2"><a class="menu-flexible__link" aria-expanded="false" href="/seu--transparencia/seu-electronica-ajuntament-santa-margarida-de-montbui" ><span class="menu-flexible__item-text">Seu electrònica Ajuntament Santa Margarida de Montbui</span></a></li><li class="menu-flexible__item page-126 level2"><a class="menu-flexible__link" aria-expanded="false" href="/seu--transparencia/portal-de-transparencia-ajuntament-de-santa-margarida-de-montbui" ><span class="menu-flexible__item-text">Portal de transparència Ajuntament de Santa Margarida de Montbui</span></a></li><li class="menu-flexible__item page-232 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://escolesbressolmontbui.eadministracio.cat/info.0" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Seu electrònica Patronat Escoles Bressol Santa Margarida de Montbui</span></a></li><li class="menu-flexible__item page-231 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://latossamontbui.eadministracio.cat" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Seu electrònica Consorci La Tossa de Montbui</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></ul></div>
317<script>(function() { 318 'use strict'; 319 320 // Mega panel 321 322 function initMegaPanels(navContainer) { 323 var menuItems = Array.prototype.slice.call(navContainer.querySelectorAll('[data-mega-id]')); 324 if (!menuItems.length) return; 325 326 var navUl = navContainer.querySelector('ul'); 327 var topItems = navUl 328 ? menuItems.filter(function(el) { return el.parentElement === navUl; }) 329 : menuItems; 330 331 var wrapper = navContainer.closest('.menu-flexible__wrapper'); 332 var isClick = wrapper && wrapper.getAttribute('data-expand-type') === 'click'; 333 334 menuItems.forEach(function(item) { 335 var panel = getPanelForItem(item, navContainer); 336 if (!panel) return; 337 338 if (isClick) { 339 var link = item.querySelector('a'); 340 if (link) { 341 link.addEventListener('click', function(e) { 342 // En mòbil, els elements naveguen directament sense desplegar submenús 343 if (window.innerWidth <= 992) return; 344 if (panel.classList.contains('mf-mega-visible')) { 345 // Segon clic: navegar 346 return; 347 } 348 e.preventDefault(); 349 hideAllMegaPanels(navContainer); 350 showPanel(item, panel); 351 }); 352 } 353 } else { 354 var hoverDelay = parseInt( 355 getComputedStyle(wrapper).getPropertyValue('--menu-hover-delay'), 10 356 ) || 0; 357 var hoverTimer = null; 358 359 var leaveTimer = null; 360 361 item.addEventListener('mouseenter', function() { 362 clearTimeout(hoverTimer); 363 clearTimeout(leaveTimer); 364 if (hoverDelay > 0) { 365 hoverTimer = setTimeout(function() { showPanel(item, panel); }, hoverDelay); 366 } else { 367 showPanel(item, panel); 368 } 369 }); 370 item.addEventListener('mouseleave', function(e) { 371 clearTimeout(hoverTimer); 372 if (!panel.contains(e.relatedTarget)) { 373 leaveTimer = setTimeout(function() { hidePanel(item, panel); }, 300); 374 } 375 }); 376 panel.addEventListener('mouseenter', function() { 377 clearTimeout(leaveTimer); 378 }); 379 panel.addEventListener('mouseleave', function(e) { 380 clearTimeout(hoverTimer); 381 clearTimeout(leaveTimer); 382 if (!item.contains(e.relatedTarget)) hidePanel(item, panel); 383 }); 384 385 // Tà ctil: fallback quan hover no disponible (només escriptori tà ctil) 386 var link = item.querySelector('a'); 387 if (link) { 388 link.addEventListener('click', function(e) { 389 if (window.matchMedia('(hover: none)').matches && window.innerWidth > 992) { 390 if (panel.classList.contains('mf-mega-visible')) { 391 // Segon clic en tà ctil: navegar 392 return; 393 } 394 e.preventDefault(); 395 hideAllMegaPanels(navContainer); 396 showPanel(item, panel); 397 } 398 }); 399 } 400 } 401 }); 402 403 navContainer.addEventListener('keydown', function(e) { 404 handleMegaKeydown(e, navContainer, topItems); 405 }); 406 407 if (!isClick) { 408 navContainer.addEventListener('focusin', function(e) { 409 var item = e.target.closest('[data-mega-id]'); 410 if (!item) return; 411 var panel = getPanelForItem(item, navContainer); 412 if (!panel) return; 413 hideAllMegaPanels(navContainer); 414 showPanel(item, panel); 415 }); 416 } 417 418 navContainer.addEventListener('focusout', function() { 419 setTimeout(function() { 420 if (!navContainer.contains(document.activeElement)) { 421 hideAllMegaPanels(navContainer); 422 } 423 }, 0); 424 }); 425 426 document.addEventListener('click', function(e) { 427 if (!navContainer.contains(e.target)) { 428 hideAllMegaPanels(navContainer); 429 } 430 }); 431 } 432 433 function handleMegaKeydown(e, navContainer, topItems) { 434 var focused = document.activeElement; 435 if (!focused) return; 436 437 var currentItem = focused.closest('[data-mega-id]'); 438 var currentPanel = focused.closest('.menu-flexible__mega-panel'); 439 var key = e.key || e.code || e.keyCode; 440 441 function directLink(item) { 442 if (!item) return null; 443 return Array.prototype.slice.call(item.children).find(function(el) { 444 return el.tagName === 'A'; 445 }) || item.querySelector('a'); 446 } 447 448 function itemForPanel(panel) { 449 if (!panel) return null; 450 var id = panel.getAttribute('data-mega-id'); 451 return id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null; 452 } 453 454 function focusPanelLink(panel, index) { 455 var links = Array.prototype.slice.call(panel.querySelectorAll('a')); 456 if (!links.length) return; 457 links[(index + links.length) % links.length].focus(); 458 } 459 460 function focusPanelSibling(panel, offset) { 461 var links = Array.prototype.slice.call(panel.querySelectorAll('a')); 462 var idx = links.indexOf(focused); 463 if (idx === -1) return; 464 links[(idx + offset + links.length) % links.length].focus(); 465 } 466 467 function panelColumnForLink(link) { 468 return link ? link.closest('.menu-flexible__mega-col') : null; 469 } 470 471 function focusAdjacentPanelColumn(panel, offset) { 472 var columns = Array.prototype.slice.call(panel.querySelectorAll('.menu-flexible__mega-col')); 473 var currentColumn = panelColumnForLink(focused); 474 var idx = columns.indexOf(currentColumn); 475 if (idx === -1) return false;
476 477 var targetColumn = columns[(idx + offset + columns.length) % columns.length]; 478 var targetLink = targetColumn.querySelector('a'); 479 if (targetLink) { 480 targetLink.focus(); 481 return true; 482 } 483 484 return false; 485 } 486 487 function focusTopItem(item, offset) { 488 var idx = topItems.indexOf(item); 489 if (idx === -1) return; 490 491 var next = topItems[(idx + offset + topItems.length) % topItems.length]; 492 hideAllMegaPanels(navContainer); 493 494 var nextLink = directLink(next); 495 if (nextLink) { 496 nextLink.focus(); 497 var nextPanel = getPanelForItem(next, navContainer); 498 if (nextPanel) showPanel(next, nextPanel); 499 } 500 } 501 502 switch (key) { 503 case 'Escape': 504 case 'Esc': 505 case 27: { 506 e.preventDefault(); 507 hideAllMegaPanels(navContainer); 508 if (currentPanel) { 509 var item = itemForPanel(currentPanel); 510 var lnk = directLink(item); 511 if (lnk) lnk.focus(); 512 } 513 break; 514 } 515 516 case 'ArrowRight': 517 case 39: 518 case 'ArrowLeft': 519 case 37: { 520 var direction = (key === 'ArrowRight' || key === 39) ? 1 : -1; 521 e.preventDefault(); 522 523 if (currentPanel) { 524 if (!focusAdjacentPanelColumn(currentPanel, direction)) { 525 var ownerItem = itemForPanel(currentPanel); 526 focusTopItem(ownerItem, direction); 527 } 528 break; 529 } 530 531 if (!currentItem) return; 532 focusTopItem(currentItem, direction); 533 break; 534 } 535 536 case 'ArrowDown': 537 case 40: { 538 e.preventDefault(); 539 if (currentPanel) { 540 focusPanelSibling(currentPanel, 1); 541 break; 542 } 543 if (!currentItem) return; 544 var panel = getPanelForItem(currentItem, navContainer); 545 if (!panel) return; 546 if (!panel.classList.contains('mf-mega-visible')) { 547 hideAllMegaPanels(navContainer); 548 showPanel(currentItem, panel); 549 } 550 focusPanelLink(panel, 0); 551 break; 552 } 553 554 case ' ': 555 case 'Space': 556 case 'Spacebar': 557 case 32: { 558 if (currentPanel || !currentItem) return; 559 var spacePanel = getPanelForItem(currentItem, navContainer); 560 if (!spacePanel) return; 561 562 e.preventDefault(); 563 if (spacePanel.classList.contains('mf-mega-visible')) { 564 hidePanel(currentItem, spacePanel); 565 } else { 566 hideAllMegaPanels(navContainer); 567 showPanel(currentItem, spacePanel); 568 } 569 break; 570 } 571 572 case 'ArrowUp': 573 case 38: { 574 if (!currentPanel) return; 575 e.preventDefault(); 576 var panelLinks = Array.prototype.slice.call(currentPanel.querySelectorAll('a')); 577 var focusedIndex = panelLinks.indexOf(focused); 578 579 if (focusedIndex > 0) { 580 focusPanelLink(currentPanel, focusedIndex - 1); 581 } else { 582 var parentItem = itemForPanel(currentPanel); 583 var parentLink = directLink(parentItem); 584 if (parentLink) parentLink.focus(); 585 if (parentItem) hidePanel(parentItem, currentPanel); 586 } 587 break; 588 } 589 } 590 } 591 592 function getPanelForItem(item, navContainer) { 593 var id = item.getAttribute('data-mega-id'); 594 return id 595 ? navContainer.querySelector('.menu-flexible__mega-panel[data-mega-id="' + id + '"]') 596 : null; 597 } 598 599 function showPanel(item, panel) { 600 panel.classList.add('mf-mega-visible'); 601 panel.setAttribute('aria-hidden', 'false'); 602 var link = item.querySelector('a'); 603 if (link) link.setAttribute('aria-expanded', 'true'); 604 } 605 606 function hidePanel(item, panel) { 607 panel.classList.remove('mf-mega-visible'); 608 panel.setAttribute('aria-hidden', 'true'); 609 var link = item.querySelector('a'); 610 if (link) link.setAttribute('aria-expanded', 'false'); 611 } 612 613 function hideAllMegaPanels(navContainer) { 614 navContainer.querySelectorAll('.menu-flexible__mega-panel.mf-mega-visible') 615 .forEach(function(panel) { 616 var id = panel.getAttribute('data-mega-id'); 617 var item = id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null; 618 if (item) { 619 hidePanel(item, panel); 620 } else { 621 panel.classList.remove('mf-mega-visible'); 622 panel.setAttribute('aria-hidden', 'true'); 623 } 624 }); 625 } 626 627 628 // Tecles de fletxa (menú està ndard) 629 630 function initStandardKeyboard(wrapper) { 631 var menu = wrapper.querySelector('.menu-flexible__list'); 632 if (!menu) return; 633 634 function closeAll() { 635 Array.prototype.slice.call(menu.querySelectorAll('.menu-flexible__item[focus="true"]')) 636 .forEach(function(item) { 637 item.setAttribute('focus', 'false'); 638 var submenu = Array.prototype.slice.call(item.children).find(function(el) { 639 return el.classList && el.classList.contains('menu-flexible__submenu'); 640 }); 641 if (submenu) { 642 submenu.style.left = ''; 643 submenu.style.opacity = ''; 644 submenu.style.visibility = ''; 645 submenu.style.pointerEvents = ''; 646 submenu.style.transform = ''; 647 } 648 var link = Array.prototype.slice.call(item.children).find(function(el) { 649 return el.tagName === 'A'; 650 }); 651 if (link && link.classList.contains('menu-flexible__link--dropdown')) { 652 link.setAttribute('aria-expanded', 'false'); 653 } 654 }); 655 } 656 657 wrapper.addEventListener('keydown', function(e) { 658 handleStandardKeydown(e, menu); 659 }); 660 661 wrapper.addEventListener('focusout', function() { 662 setTimeout(function() { 663 if (!wrapper.contains(document.activeElement)) { 664 closeAll(); 665 } 666 }, 0); 667 }); 668 } 669 670 function handleStandardKeydown(e, menu) { 671 var focused = document.activeElement; 672 if (!focused || !menu.contains(focused)) return; 673 674 var itemSel = '.menu-flexible__item'; 675 var linkSel = '.menu-flexible__link'; 676 677 var currentLi = focused.closest(itemSel); 678 if (!currentLi) return; 679 680 var parentUl = currentLi.parentElement; 681 var isLevel1 = parentUl === menu;
682 683 function directLink(li) { 684 var direct = Array.prototype.slice.call(li.children).find(function(el) { 685 return el.tagName === 'A'; 686 }); 687 return direct || li.querySelector(linkSel); 688 } 689 690 function siblingItems(ul) { 691 return Array.prototype.slice.call(ul.children).filter(function(el) { 692 return el.matches(itemSel); 693 }); 694 } 695 696 function childMenu(li) { 697 return Array.prototype.slice.call(li.children).find(function(el) { 698 return el.classList && el.classList.contains('menu-flexible__submenu'); 699 }); 700 } 701 702 function setSubmenuVisible(li, visible) { 703 var submenu = childMenu(li); 704 if (!submenu) return; 705 706 if (visible) { 707 submenu.style.left = li.parentElement === menu ? '0' : '100%'; 708 submenu.style.opacity = '1'; 709 submenu.style.visibility = 'visible'; 710 submenu.style.pointerEvents = 'auto'; 711 submenu.style.transform = 'none'; 712 } else { 713 submenu.style.left = ''; 714 submenu.style.opacity = ''; 715 submenu.style.visibility = ''; 716 submenu.style.pointerEvents = ''; 717 submenu.style.transform = ''; 718 } 719 } 720 721 function setExpanded(li, expanded) { 722 li.setAttribute('focus', expanded ? 'true' : 'false'); 723 setSubmenuVisible(li, expanded); 724 var lnk = directLink(li); 725 if (lnk && lnk.classList.contains('menu-flexible__link--dropdown')) { 726 lnk.setAttribute('aria-expanded', expanded ? 'true' : 'false'); 727 } 728 if (!expanded) { 729 Array.prototype.slice.call(li.querySelectorAll(itemSel + '[focus="true"]')) 730 .forEach(function(item) { 731 item.setAttribute('focus', 'false'); 732 setSubmenuVisible(item, false); 733 var childLink = directLink(item); 734 if (childLink && childLink.classList.contains('menu-flexible__link--dropdown')) { 735 childLink.setAttribute('aria-expanded', 'false'); 736 } 737 }); 738 } 739 } 740 741 function closeSiblings(li) { 742 Array.prototype.slice.call(li.parentElement.children) 743 .filter(function(item) { 744 return item !== li && item.matches(itemSel); 745 }) 746 .forEach(function(item) { 747 setExpanded(item, false); 748 }); 749 } 750 751 function openChild(li) { 752 var submenu = childMenu(li); 753 if (!submenu) return false; 754 closeSiblings(li); 755 setExpanded(li, true); 756 var firstChild = submenu.querySelector(linkSel); 757 if (firstChild) firstChild.focus(); 758 return true; 759 } 760 761 function focusSibling(offset) { 762 var sibs = siblingItems(parentUl); 763 var idx = sibs.indexOf(currentLi); 764 var lnk = directLink(sibs[(idx + offset + sibs.length) % sibs.length]); 765 if (lnk) lnk.focus(); 766 } 767 768 var key = e.key || e.code || e.keyCode; 769 770 switch (key) { 771 case 'ArrowRight': 772 case 39: { 773 if (!isLevel1) return; 774 e.preventDefault(); 775 setExpanded(currentLi, false); 776 focusSibling(1); 777 break; 778 } 779 case 'ArrowLeft': 780 case 37: { 781 if (!isLevel1) return; 782 e.preventDefault(); 783 setExpanded(currentLi, false); 784 focusSibling(-1); 785 break; 786 } 787 case 'ArrowDown': 788 case 40: { 789 e.preventDefault(); 790 if (focused === directLink(currentLi) && openChild(currentLi)) { 791 break; 792 } 793 var sibsDown = siblingItems(parentUl); 794 var idxDown = sibsDown.indexOf(currentLi); 795 if (idxDown < sibsDown.length - 1) { 796 var lnkDown = directLink(sibsDown[idxDown + 1]); 797 if (lnkDown) lnkDown.focus(); 798 } 799 break; 800 } 801 case 'ArrowUp': 802 case 38: { 803 e.preventDefault(); 804 var sibsUp = siblingItems(parentUl); 805 var idxUp = sibsUp.indexOf(currentLi); 806 if (idxUp > 0) { 807 var lnkUp = directLink(sibsUp[idxUp - 1]); 808 if (lnkUp) lnkUp.focus(); 809 } else if (!isLevel1) { 810 var parentItemUp = parentUl.closest(itemSel); 811 if (parentItemUp) { 812 setExpanded(parentItemUp, false); 813 var parentLinkUp = directLink(parentItemUp); 814 if (parentLinkUp) parentLinkUp.focus(); 815 } 816 } 817 break; 818 } 819 case ' ': 820 case 'Space': 821 case 'Spacebar': 822 case 32: { 823 if (!focused.classList.contains('menu-flexible__link--dropdown')) return; 824 e.preventDefault(); 825 currentLi.getAttribute('focus') === 'true' 826 ? setExpanded(currentLi, false) 827 : openChild(currentLi); 828 break; 829 } 830 case 'Escape': 831 case 'Esc': 832 case 27: { 833 if (isLevel1 && currentLi.getAttribute('focus') !== 'true') return; 834 e.preventDefault(); 835 if (!isLevel1) { 836 var parentItemEsc = parentUl.closest(itemSel); 837 if (parentItemEsc) { 838 setExpanded(parentItemEsc, false); 839 var parentLinkEsc = directLink(parentItemEsc); 840 if (parentLinkEsc) parentLinkEsc.focus(); 841 } 842 } else { 843 setExpanded(currentLi, false); 844 } 845 break; 846 } 847 } 848 } 849 850 851 // Click mode: expandir submenús via [focus=true] 852 853 function initClickExpand(wrapper) { 854 var menu = wrapper.querySelector('.menu-flexible__list'); 855 if (!menu) return; 856 857 var itemSel = '.menu-flexible__item'; 858 var dropdownSel = '.menu-flexible__link--dropdown'; 859 860 function closeAll(container) { 861 Array.prototype.slice.call(container.querySelectorAll(itemSel + '[focus="true"]')) 862 .forEach(function(el) { el.setAttribute('focus', 'false'); }); 863 } 864 865 function closeSiblings(item) { 866 var parentUl = item.parentElement; 867 Array.prototype.slice.call(parentUl.children) 868 .filter(function(el) { 869 return el !== item 870 && el.matches(itemSel) 871 && el.getAttribute('focus') === 'true'; 872 }) 873 .forEach(function(el) { 874 el.setAttribute('focus', 'false'); 875 closeAll(el); 876 }); 877 } 878 879 menu.addEventListener('click', function(e) { 880 var link = e.target.closest(dropdownSel); 881 if (!link || !menu.contains(link)) return; 882 883 var item = link.parentElement; 884 if (!item || !item.matches(itemSel)) return; 885 886 // En mòbil, els elements naveguen directament sense desplegar submenús 887 if (window.innerWidth <= 992) return; 888 889 var isOpen = item.getAttribute('focus') === 'true'; 890 891 if (isOpen) { 892 // Segon clic: navegar 893 return; 894 } 895 896 e.preventDefault(); 897 closeSiblings(item); 898 item.setAttribute('focus', 'true'); 899 }); 900 901 document.addEventListener('click', function(e) { 902 var openItem = menu.querySelector(itemSel + '[focus="true"]'); 903 if (!openItem) return; 904 if (!openItem.contains(e.target)) { 905 closeAll(menu); 906 } 907 }); 908 } 909 910 911 // Hamburger (mòbil â¤992px) 912 913 class MenuFlexible { 914 constructor(wrapper) { 915 this.wrapper = wrapper; 916 this.hamburger = wrapper.querySelector('.menu-flexible__toggle'); 917 this.menu = wrapper.querySelector('.menu-flexible__list'); 918 919 if (!this.hamburger || !this.menu) return; 920 921 var parent = this.menu.parentElement; 922 this.isMega = parent && parent.classList.contains('menu-flexible__nav-container'); 923 this.target = this.isMega ? parent : this.menu; 924 925 // Ancestre que en mòbil és barra fixa de 44px amb overflow:clip i retalla 926 // el menú desplegat. En obrir, l'eixamplem; en tancar, el restaurem. 927 this.clipper = wrapper.closest('.nav'); 928 929 this.init(); 930 window.addEventListener('resize', () => this.handleResize()); 931 } 932 933 init() { 934 this.hamburger.addEventListener('click', (e) => { 935 e.preventDefault(); 936 e.stopPropagation(); 937 this.toggleMenu(); 938 }); 939 940 document.addEventListener('click', (e) => { 941 if (!this.wrapper.contains(e.target) && this.isOpen()) { 942 this.closeMenu(); 943 } 944 }); 945 946 this.menu.querySelectorAll('a').forEach(link => { 947 link.addEventListener('click', () => { 948 if (window.innerWidth <= 992 && this.isOpen()) { 949 this.closeMenu(); 950 } 951 }); 952 }); 953 } 954 955 isOpen() { return this.target.classList.contains('show'); } 956 toggleMenu() { this.isOpen() ? this.closeMenu() : this.openMenu(); } 957 958 liftClip() { 959 if (this.clipper && window.innerWidth <= 992) { 960 this.clipper.style.height = 'auto'; 961 this.clipper.style.maxHeight = 'none'; 962 this.clipper.style.overflow = 'visible'; 963 } 964 } 965 966 restoreClip() { 967 if (this.clipper) { 968 this.clipper.style.height = ''; 969 this.clipper.style.maxHeight = ''; 970 this.clipper.style.overflow = ''; 971 } 972 } 973 974 openMenu() { 975 this.target.classList.add('show'); 976 this.target.style.display = this.isMega ? 'block' : 'flex'; 977 if (this.isMega) this.menu.style.display = 'flex'; 978 this.liftClip(); 979 this.hamburger.classList.add('active'); 980 this.hamburger.setAttribute('aria-expanded', 'true'); 981 } 982 983 closeMenu() { 984 this.target.classList.remove('show'); 985 this.target.style.display = 'none'; 986 if (this.isMega) { 987 this.menu.style.display = ''; 988 var nc = this.wrapper.querySelector('.menu-flexible__nav-container'); 989 if (nc) hideAllMegaPanels(nc); 990 } 991 this.restoreClip(); 992 this.hamburger.classList.remove('active'); 993 this.hamburger.setAttribute('aria-expanded', 'false'); 994 } 995 996 handleResize() { 997 if (window.innerWidth > 992) { 998 this.target.classList.remove('show'); 999 this.target.style.display = ''; 1000 if (this.isMega) this.menu.style.display = ''; 1001 this.restoreClip(); 1002 this.hamburger.classList.remove('active'); 1003 this.hamburger.setAttribute('aria-expanded', 'false'); 1004 } 1005 } 1006 } 1007 1008 1009 // Init 1010
1011 function init() { 1012 document.querySelectorAll('.menu-flexible__wrapper').forEach(function(wrapper) { 1013 var navContainer = wrapper.querySelector('.menu-flexible__nav-container'); 1014 if (navContainer) { 1015 initMegaPanels(navContainer); 1016 } else { 1017 initStandardKeyboard(wrapper); 1018 if (wrapper.getAttribute('data-expand-type') === 'click') { 1019 initClickExpand(wrapper); 1020 } 1021 } 1022 new MenuFlexible(wrapper); 1023 if (wrapper.getAttribute('data-menu-sticky') === 'true') { 1024 var stickyTarget = wrapper.closest('#navbar-top') 1025 || wrapper.closest('.navbar') 1026 || wrapper.closest('nav'); 1027 if (stickyTarget) { 1028 stickyTarget.classList.add('menu-sticky-enabled'); 1029 document.body.classList.add('has-sticky-menu'); 1030 1031 var navbarHeight = stickyTarget.offsetHeight; 1032 var navbarTop = stickyTarget.getBoundingClientRect().top + window.scrollY; 1033 var bodyPadApplied = false; 1034 1035 function updateStickyOffset() { 1036 navbarHeight = stickyTarget.offsetHeight; 1037 document.documentElement.style.setProperty('--skip-links-sticky-offset', navbarHeight + 'px'); 1038 1039 if (bodyPadApplied) { 1040 document.body.style.paddingTop = navbarHeight + 'px'; 1041 } 1042 } 1043 1044 function getTargetFromHash(hash) { 1045 if (!hash || hash.charAt(0) !== '#') { 1046 return null; 1047 } 1048 1049 try { 1050 return document.getElementById(decodeURIComponent(hash.substring(1))); 1051 } catch (error) { 1052 return document.getElementById(hash.substring(1)); 1053 } 1054 } 1055 1056 function scrollToSkipTarget(hash) { 1057 var target = getTargetFromHash(hash); 1058 if (!target) { 1059 return; 1060 } 1061 1062 updateStickyOffset(); 1063 1064 var expectedTop = target.getBoundingClientRect().top + window.scrollY - navbarHeight; 1065 if (expectedTop > navbarTop) { 1066 applyFixed(); 1067 } else { 1068 removeFixed(); 1069 } 1070 1071 try { 1072 target.focus({ preventScroll: true }); 1073 } catch (error) { 1074 target.focus(); 1075 } 1076 1077 var targetTop = target.getBoundingClientRect().top + window.scrollY; 1078 window.scrollTo(0, Math.max(targetTop - navbarHeight, 0)); 1079 } 1080 1081 document.querySelectorAll('.skip-links a[href^="#"]').forEach(function(link) { 1082 link.addEventListener('click', function(event) { 1083 var hash = link.getAttribute('href'); 1084 var target = getTargetFromHash(hash); 1085 if (!target) { 1086 return; 1087 } 1088 1089 event.preventDefault(); 1090 1091 if (window.history && window.history.pushState) { 1092 window.history.pushState(null, '', hash); 1093 } else { 1094 window.location.hash = hash; 1095 } 1096 1097 scrollToSkipTarget(hash); 1098 }); 1099 }); 1100 1101 updateStickyOffset(); 1102 1103 function applyFixed() { 1104 if (!stickyTarget.classList.contains('fixed-top')) { 1105 updateStickyOffset(); 1106 stickyTarget.classList.add('fixed-top');
1107 document.body.style.paddingTop = navbarHeight + 'px'; 1108 bodyPadApplied = true; 1109 } 1110 } 1111 1112 function removeFixed() { 1113 if (stickyTarget.classList.contains('fixed-top')) { 1114 stickyTarget.classList.remove('fixed-top'); 1115 document.body.style.paddingTop = ''; 1116 bodyPadApplied = false; 1117 } 1118 } 1119 1120 window.addEventListener('scroll', function() { 1121 if (window.scrollY > navbarTop) { 1122 applyFixed(); 1123 } else { 1124 removeFixed(); 1125 } 1126 }); 1127 1128 window.addEventListener('resize', function() { 1129 updateStickyOffset(); 1130 if (!stickyTarget.classList.contains('fixed-top')) { 1131 navbarTop = stickyTarget.getBoundingClientRect().top + window.scrollY; 1132 } 1133 }); 1134 1135 if ('ResizeObserver' in window) { 1136 new ResizeObserver(updateStickyOffset).observe(stickyTarget); 1137 } 1138 1139 stickyTarget.querySelectorAll('img').forEach(function(image) { 1140 if (!image.complete) { 1141 image.addEventListener('load', updateStickyOffset, { once: true }); 1142 } 1143 }); 1144 1145 window.addEventListener('load', updateStickyOffset); 1146 1147 if (window.scrollY > navbarTop) applyFixed(); 1148 1149 if (window.location.hash) { 1150 window.setTimeout(function() { 1151 scrollToSkipTarget(window.location.hash); 1152 }, 0); 1153 } 1154 } 1155 } 1156 }); 1157 } 1158 1159 if (document.readyState === 'loading') { 1160 document.addEventListener('DOMContentLoaded', init); 1161 } else { 1162 init(); 1163 } 1164})(); 1165</script>
1165</nav></div></div></div></div></div> </div> </header> 1166 <main id="main-content" tabindex="-1"> 1167 <div class="content"> 1168 <div class="container-xl columns " id="Path"> 1169 <div class="row"> 1170 <nav aria-label="breadcrumb"> 1171 <ol class="breadcrumb"> 1172 <li class="breadcrumb-item"> 1173 <a href="/" target="_self"> 1174 <span style="display: none">home</span><i class="fa fa-home" aria-hidden="true"></i> </a> 1175 </li> 1176<li class="breadcrumb-item"> 1177 <a href="/altra-informacio" target="_self"> 1178 Altra informació </a> 1179 <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> 1180 <ul class="dropdown-menu" aria-label="defaultDropdown6"> 1181 <li><a class="dropdown-item" href="/altra-informacio/avis-legal">AvÃs legal</a></li> 1182 <li><a class="dropdown-item" href="/altra-informacio/proteccio-de-dades">Protecció de dades</a></li> 1183 <li><a class="dropdown-item" href="/altra-informacio/accessibilitat">Accessibilitat</a></li> 1184 <li><a class="dropdown-item" href="/altra-informacio/contactar">Contactar</a></li> 1185 <li><a class="dropdown-item" href="/altra-informacio/credits">Crèdits</a></li> 1186 </ul> 1187 </li> 1188 </ol> 1189 </nav> 1190 </div> 1191</div> 1192 <div class="container-xl columns"> 1193 <div class="row"> 1194 <div class="col-xs-12 col-sm-12 col-md-3 col-lg-3 leftSidebar responsiveHeight" data-nosnippet> 1195 <nav class="menuLeft" id="Menuleft_page" aria-label="Menú Contactar"> 1196 <ul> 1197 <li class="subMenuPage-59 level2"> 1198 <a href="/altra-informacio/avis-legal" target="_self"> 1199 AvÃs legal </a> 1200 1201 </li> 1202<li class="subMenuPage-60 level2"> 1203 <a href="/altra-informacio/proteccio-de-dades" target="_self"> 1204 Protecció de dades </a> 1205 1206 </li> 1207<li class="subMenuPage-61 level2"> 1208 <a href="/altra-informacio/accessibilitat" target="_self"> 1209 Accessibilitat </a> 1210 1211 </li> 1212<li class="subMenuPage-62 current level2"> 1213 <a href="/altra-informacio/contactar" target="_self" aria-current="page"> 1214 Contactar </a> 1215 1216 </li> 1217<li class="subMenuPage-63 level2"> 1218 <a href="/altra-informacio/credits" target="_self"> 1219 Crèdits </a> 1220 1221 </li> 1222 </ul> 1223 </nav> 1224</div> 1225 <div class="col-xs-12 col-sm-12 col-md-9 col-lg-9 article responsiveHeight" id="readspeakerPage" tabindex="-1"> 1226 <div class="hideTablets"> 1227 </div> 1228<h1 class="title" id='title0' data-attribute="Contactar">Contactar</h1><div class="showTablets"> 1229 </div> 1230<div> 1231 <div class="dinamic"> 1232 1233 <div class="ddbbtext"> 1234 <p>Podeu contactar amb l'Ajuntament de Santa Margarida de Montbui adreçant-vos al correu electrònic [email protected]</p> 1235 </div> 1236 </div> <div id="form"> 1237 <div class="alert ko" role="alert">Aquest formulari no està actiu en aquest moment.<a class="closable" onclick="hideMsg()" name="closable">Ã</a></div><br></div> 1238 1239<div id="formCancel"></div>
1240<script> 1241 function calcul_total() { 1242 var total = 0; 1243 $("input[id$=_total]").each(function() { 1244 const id_total = $(this).attr('id'); 1245 const id = id_total.replace('_total',''); 1246 const id_quantitat = id_total.replace('_total','_quantitat'); 1247 const id_percentatge = id_total.replace('_total','_percentatge'); 1248 const id_preu = id_total.replace('_total','_preu'); 1249 const id_select = id_total.replace('_total','_select_field'); 1250 if ( ($("#"+id_quantitat).length) ) { 1251 t = parseFloat($("#"+id).val().replace(',','.')) 1252 * 1253 parseFloat($("#"+id_quantitat).val().replace(',','.')); 1254 1255 } 1256 if ( ($("#"+id_preu).length) ) { 1257 t = parseFloat($("#"+id).val().replace(',','.')) 1258 * 1259 parseFloat($("#"+id_preu).val().replace(',','.')); 1260 } 1261 if ( ($("#"+id_percentatge).length) ) { 1262 t = parseFloat($("#"+id).val().replace(',','.')) 1263 * 1264 parseFloat($("#"+id_percentatge).val().replace(',','.'))/100; 1265 } 1266 if ( ($("#"+id_select).length) ) { 1267 t = parseFloat($("#"+id+'_total').val().replace(',','.')); 1268 } 1269 if (!isNaN(t)) { total += t;} 1270 }); 1271 return (total); 1272 } 1273 window.addEventListener('load', function(){ 1274 // cà lcul subtotals abans de la interacció de l'usuari 1275 for (let i = 0; i < 100; i++) { 1276 if (typeof window["quantityChange_"+i] === "function") { 1277 console.log("quantityChange_"+i+" is a function"); 1278 window["quantityChange_"+i](); 1279 } 1280 if (typeof window["priceChange_"+i] === "function") { 1281 console.log("priceChange_"+i+" is a function"); 1282 window["priceChange_"+i](); 1283 } 1284 } 1285 // cà lcul total 1286 if (typeof window["calcul_total"] === "function") { 1287 valorMostrar = ((Math.round((calcul_total() + Number.EPSILON) * 100) / 100) + "").replace('.', ',') 1288 const numberFormat = new Intl.NumberFormat('es-ES'); 1289 const stringNumber = valorMostrar.toString().replace(',', '.'); 1290 $("#Total_total").text(numberFormat.format(stringNumber)+" Euros"); 1291 $("#total").val(calcul_total()); 1292 } 1293 }); 1294</script>
1294 1295 </div> 1296<div class="hideTablets"> 1297 </div> 1298<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"> 1299 1300 <div class="o-share__list"> 1301 <a 1302 class="o-share__link o-share__link--facebook" 1303 href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.montbui.cat%2Faltra-informacio%2Fcontactar" 1304 target="_blank" 1305 rel="noopener" 1306 title="Facebook" 1307 > 1308 <span class="o-share__icon" aria-hidden="true"> 1309 <i class="fa-brands fa-facebook-f"></i> 1310 </span> 1311 <span class="visually-hidden">Facebook</span> 1312 </a> 1313 <a 1314 class="o-share__link o-share__link--x" 1315 href="https://twitter.com/intent/tweet?text=Contactar&url=https%3A%2F%2Fwww.montbui.cat%2Faltra-informacio%2Fcontactar&via=ajmontbui" 1316 target="_blank" 1317 rel="noopener" 1318 title="X" 1319 > 1320 <span class="o-share__icon" aria-hidden="true"> 1321 <i class="fa-brands fa-x-twitter"></i> 1322 </span> 1323 <span class="visually-hidden">X</span> 1324 </a> 1325 </div> 1326</div> 1327</div> </div></div></div> 1328<span class="updated">Darrera actualització: 18.02.2025 | 10:04</span> 1329 </div> 1330 </div> 1331 </div> 1332 </div> 1333 </main> 1334 <footer id="footer-content" tabindex="-1"> 1335 <div class="footer"> 1336 <div class="shortcuts"> 1337 <div class="container-xl"> 1338 <div class="featuredItem responsiveHeight"> 1339 <h2 class="title">RSS</h2> 1340 <p class="subtitle">L'actualitat a un clic</p> 1341 <ul id="cm_rss"> 1342 <li style="background-image: url('/themes/santamargaridademontbui/images/ico_16_rss.png');"> 1343 <a href="/rss/11"> 1344 NotÃcies </a> 1345</li> 1346<li style="background-image: url('/themes/santamargaridademontbui/images/ico_16_rss.png');"> 1347 <a href="/rss/12"> 1348 Agenda </a> 1349</li> 1350<li style="background-image: url('/themes/santamargaridademontbui/images/ico_16_rss.png');"> 1351 <a href="/rss/15"> 1352 Agenda polÃtica </a> 1353</li> 1354<li style="background-image: url('/themes/santamargaridademontbui/images/ico_16_rss.png');"> 1355 <a href="/rss/13"> 1356 Avisos </a> 1357</li> 1358<li style="background-image: url('/themes/santamargaridademontbui/images/ico_16_rss.png');"> 1359 <a href="/rss/14"> 1360 Butlletins </a> 1361</li> 1362 </ul> 1363</div> 1364<div class="featuredItem responsiveHeight"> 1365 <h2 class="title">Adreces i telèfons</h2> 1366 1367 <img width="96" height="96" src="/themes/santamargaridademontbui/images/icons/plugin_home.png" alt=""> 1368 1369 <p class="elem_button"> 1370 <a href="/adreces-i-telefons" aria-label="Adreces i telèfons"> 1371 Accedeix </a> 1372 </p> 1373</div> 1374<div class="featuredItem"> 1375 <h2 class="title">Meteo</h2> 1376 <div id="cm_meteocat"> 1377 <ul class="bxslider"> 1378 <li> 1379 Dissabte, 3 dâoctubre <img width="80" height="80" 1380 alt="entre poc i mig ennuvolat" 1381 src="/themes/santamargaridademontbui/images/meteocat/nuvolina.png" 1382 > 1383 <p> 1384 T.Mà x: 24° 1385 <br> 1386 T.Min: 13° 1387 </p> 1388 <p> 1389 Tarda 1390 <img alt="ruixat" width="24" height="24" 1391 src="/themes/santamargaridademontbui/images/meteocat/pluja.png" 1392 > 1393 </p> 1394 </li> 1395<li> 1396 Diumenge, 4 dâoctubre <img width="80" height="80" 1397 alt="entre mig i molt ennuvolat" 1398 src="/themes/santamargaridademontbui/images/meteocat/nuvol.png" 1399 > 1400 <p> 1401 T.Mà x: 23° 1402 <br> 1403 T.Min: 14° 1404 </p> 1405 <p> 1406 Tarda 1407 <img alt="ruixat" width="24" height="24" 1408 src="/themes/santamargaridademontbui/images/meteocat/pluja.png" 1409 > 1410 </p> 1411 </li> 1412 </ul> 1413 <div class="outside"> 1414 <p><span id="slider-prev"></span><span id="slider-next"></span></p> 1415 </div> 1416 1417 </div> 1418</div> 1419<div class="featuredItem responsiveHeight"> 1420 <h2 class="title">Butlletà digital</h2> 1421 <img width="96" height="96" src="/front/view/images/icons/plugin_newsletter.png" alt=""> 1422 <p class="elem_button"> 1423 <a href="/actualitat/butlleti-digital" aria-label="Butlletà digital"> 1424 Subscriu-te </a> 1425 </p> 1426</div> 1427<div id="cm_planol" class="featuredItem responsiveHeight"> 1428 <h2 class="title">Plà nol / Carrers</h2> 1429 1430 <img width="96" height="96" src="/themes/santamargaridademontbui/images/icons/plugin_map.png" alt=""> 1431 1432 <p class="elem_button"> 1433 <a href="/el-municipi/guia-del-municipi/com-arribar" aria-label="Plà nol"> 1434 Accedeix </a> 1435 </p> 1436</div> 1437 </div> 1438</div> 1439 <div class="hightlights"> 1440 <div class="container-xl"> 1441 </div> 1442 </div> 1443 <nav class="menu" aria-label="Peu de menú"> 1444 <ul class="container-xl sitemap"> 1445 <li class="page-134 Inferior"> <a class="page-134" href="/lajuntament" target="_self" >L'ajuntament </a><ul id="footer-menu-134"><li class="subMenuPage-8"> <a class="subMenuPage-8" href="/lajuntament/govern-municipal" target="_self" >Govern municipal </a></li><li class="subMenuPage-9"> <a class="subMenuPage-9" href="/lajuntament/informacio-oficial" target="_self" >Informació oficial </a></li><li class="subMenuPage-10"> <a class="subMenuPage-10" href="/lajuntament/serveis-i-tramits" target="_self" >Serveis i trà mits </a></li></ul></li><li class="page-2 Inferior"> <a class="page-2" href="/el-municipi" target="_self" >El municipi </a><ul id="footer-menu-2"><li class="subMenuPage-3"> <a class="subMenuPage-3" href="/el-municipi/guia-del-municipi" target="_self" >Guia del municipi </a></li><li class="subMenuPage-7"> <a class="subMenuPage-7" href="/el-municipi/informacio-del-municipi" target="_self" >Informació del municipi </a></li><li class="subMenuPage-48"> <a class="subMenuPage-48" href="/el-municipi/informacio-geografica" target="_self" >Informació geogrà fica </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/noticiesagenda-dactualitat" target="_self" >NotÃcies/Agenda d'actualitat </a></li><li class="subMenuPage-166"> <a class="subMenuPage-166" href="/actualitat/gravacions-dels-plens-municipals" target="_self" >Gravacions dels Plens Municipals </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-141"> <a class="subMenuPage-141" href="/actualitat/galeria-dimatges-" target="_self" >Galeria d'imatges </a></li><li class="subMenuPage-235"> <a class="subMenuPage-235" href="/actualitat/xarxes-socials" target="_self" >
1445Xarxes socials </a></li><li class="subMenuPage-138"> <a class="subMenuPage-138" href="/actualitat/whatsapp-montbui" target="_self" >Whatsapp Montbui </a></li><li class="subMenuPage-58"> <a class="subMenuPage-58" href="/actualitat/hemeroteca" target="_self" >Hemeroteca </a></li></ul></li><li class="page-121 Inferior"> <a class="page-121" href="/seu--transparencia" target="_self" >Seu / transparència </a><ul id="footer-menu-121"><li class="subMenuPage-125"> <a class="subMenuPage-125" href="/seu--transparencia/seu-electronica-ajuntament-santa-margarida-de-montbui" target="_self" >Seu electrònica Ajuntament Santa Margarida de Montbui </a></li><li class="subMenuPage-126"> <a class="subMenuPage-126" href="/seu--transparencia/portal-de-transparencia-ajuntament-de-santa-margarida-de-montbui" target="_self" >Portal de transparència Ajuntament de Santa Margarida de Montbui </a></li><li class="subMenuPage-232"> <a class="subMenuPage-232" href="https://escolesbressolmontbui.eadministracio.cat/info.0" target="_blank" rel="noopener noreferrer" >Seu electrònica Patronat Escoles Bressol Santa Margarida de Montbui </a></li><li class="subMenuPage-231"> <a class="subMenuPage-231" href="https://latossamontbui.eadministracio.cat" target="_blank" rel="noopener noreferrer" >Seu electrònica Consorci La Tossa de Montbui </a></li></ul></li><li class="page-5 Inferior"> <a class="page-5" href="/adreces-i-telefons" target="_self" >Adreces i telèfons </a></li> </ul> 1446 </nav> 1447 <div class="links"> 1448 <div class="container-xl"> 1449 <div class="row"> 1450 <div class="xxss col-md-6 col-sm-6 col-lg-6 middle"> 1451 <span class="titol">Xarxes socials:</span> 1452 1453 <a target="_blank" aria-label="Facebook" href="https://www.facebook.com/ajmontbui/" title="Obre en finestra nova: Facebook"> 1454 <span style="display: none">Facebook</span> 1455 <img src="/front/view/images/icons/social/facebook.png" alt="Facebook" width="32" height="32"> 1456 </a> 1457 1458 <a target="_blank" aria-label="Youtube" href="https://www.youtube.com/channel/UCjqVEXuDeLfW4I1pQM7xxJw" title="Obre en finestra nova: Youtube"> 1459 <span style="display: none">Youtube</span> 1460 <img src="/front/view/images/icons/social/youtube.png" alt="Youtube" width="32" height="32"> 1461 </a> 1462 1463 <a target="_blank" aria-label="Instagram" href="https://www.instagram.com/ajmontbui" title="Obre en finestra nova: Instagram"> 1464 <span style="display: none">Instagram</span> 1465 <img src="/front/view/images/icons/social/instagram.png" alt="Instagram" width="32" height="32"> 1466 </a> 1467 1468 <a target="_blank" aria-label="Tiktok" href="https://www.tiktok.com/@ajmontbui" title="Obre en finestra nova: Tiktok"> 1469 <span style="display: none">Tiktok</span> 1470 <img src="/front/view/images/icons/social/tiktok.png" alt="Tiktok" width="32" height="32"> 1471 </a> 1472 1473 <a target="_blank" aria-label="Whatsapp" href="https://whatsapp.com/channel/0029VaDQmgZ8qIzxjSLbXF2j" title="Obre en finestra nova: Whatsapp"> 1474 <span style="display: none">Whatsapp</span> 1475 <img src="/front/view/images/icons/social/whatsapp.png" alt="Whatsapp" width="32" height="32"> 1476 </a> 1477 </div> 1478 <div class="col-md-6 col-sm-6 col-lg-6 middle"> 1479 <nav class="menu"><ul id="Inferior2"><li class="page-63"> <a href="/altra-informacio/credits" target="_self" >Crèdits </a></li><li class="page-62"> <a href="/altra-informacio/contactar" target="_self" >Contactar </a></li><li class="page-60"> <a href="/altra-informacio/proteccio-de-dades" target="_self" >Protecció de dades </a></li><li class="page-59"> <a href="/altra-informacio/avis-legal" target="_self" >AvÃs legal </a></li><li class="page-61"> <a href="/altra-informacio/accessibilitat" target="_self" >Accessibilitat </a></li></ul></nav> </div> 1480 </div> 1481 </div> 1482 </div> 1483 <div class="contact"> 1484 <div class="container-xl"> 1485 <div class="row"> 1486 <address class="address col-md-6 col-sm-6 col-lg-6"> 1487 <div class="title"> 1488 Ajuntament de Santa Margarida de Montbui </div> 1489 Carretera de Valls, 57<br>08710 Santa Margarida de Montbui<br>Tel. 93 803 47 35<br>Fax 93 805 23 45<br>NIF P0825000C<br></address><div class="diba col-md-6 col-sm-6 col-lg-6" id="diba-partner"> 1490 <div class="title"> 1491 Amb la col·laboració de: </div> 1492 <a href="http://diba.cat/" target="_blank" aria-label="Anar a la web Diputació de Barcelona" title="Obre en finestra nova: Diputació de Barcelona">
1493 <span style="display: none">Diputació de Barcelona</span> 1494 <img src="/front/view//images/logoDiba/Blanc.svg" alt="Diputació de Barcelona" class="logo-diba"> 1495 </a> 1496</div> </div> 1497 </div> 1498 </div> 1499</div> 1500 </footer> 1501 <!-- Llibreries de tercers + js propis registrats a AssetManager (jQuery primer) -->
1502<script src="/front/view/js/bower_components/jquery/dist/jquery.min.js?ver=1790940362"></script>
vendor: 1 bytes, line 1502
1502
1503<script src="/front/view/js/bower_components/bootstrap/dist/js/bootstrap.bundle.min.js?ver=1790940362"></script>
vendor: 1 bytes, line 1503
1503
1504<script src="/front/view/js/bower_components/bxslider-4/dist/jquery.bxslider.js?ver=1790940362"></script>
vendor: 1 bytes, line 1504
1504
1505<script src="/front/view/js/bower_components/jscal/index.js?ver=1790940362"></script>
vendor: 1 bytes, line 1505
1505
1506<script src="/common/bower_components/select2/dist/js/select2.min.js?ver=1790940362"></script>
vendor: 1 bytes, line 1506
1506
1507<script src="/common/bower_components/select2/dist/js/i18n/ca.js?ver=1790940362"></script>
vendor: 1 bytes, line 1507
1507
1508<script src="/common/bower_components/strength.js/src/strength.min.js?ver=1790940362"></script>
vendor: 1 bytes, line 1508
1508
1509<script src="/front/view/js/bower_components/masonry-layout/dist/masonry.pkgd.min.js?ver=1790940362"></script>
vendor: 1 bytes, line 1509
1509
1510<script src="/front/view/js/constants.js?ver=1790940362"></script>
vendor: 1 bytes, line 1510
1510
1511<script src="/front/view/js/functions.js?ver=1790940362"></script>
vendor: 1 bytes, line 1511
1511
1512<script src="/front/view/js/functions/footer.js?ver=1790940362"></script>
vendor: 1 bytes, line 1512
1512
1513<script src="/front/view/js/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js?ver=1790940362"></script>
vendor: 1 bytes, line 1513
1513
1514<script src="/front/view/js/bower_components/jquery.prettyPhoto/index.js?ver=1790940362"></script>
vendor: 1 bytes, line 1514
1514
1515<script> 1516 $(document).ready(function(){ 1517 $("a[rel^='prettyPhoto']").prettyPhoto(); 1518 $("a[rel^='prettyFrame']").prettyPhoto(); 1519 }); 1520</script>
vendor: 1 bytes, line 1520
1520
1521<script> 1522 var TWITTER = true; 1523 var FACEBOOK = true; 1524 $(window).on("load", function() { 1525 start(); 1526 }); 1527 $(document).ready(function() { 1528 if (typeof articlesId !== 'undefined') { 1529 var today = new Date(); 1530 var date = today 1531 articlesId.push('internal_calendar'); 1532 1533 var oneYearAfter = new Date(); 1534 oneYearAfter.setDate(oneYearAfter.getDate() + 365); 1535 for (id in articlesId) { 1536 Calendar.setup({ 1537 id: articlesId[id], 1538 cont: "dv_calendar_" + articlesId[id], 1539 fdow: 1, 1540 date: date, 1541 noScroll: true, 1542 bottomBar: false, 1543 max: oneYearAfter, 1544 animation: false, 1545 titleFormat: "%B %Y", 1546 dateInfo: getDateInfo 1547 }); 1548 setEqualContentColumns(); 1549 } 1550 } 1551 }); 1552 1553 1554 // Initialize Select2 with icon support for category filter 1555 $(document).ready(function() { 1556 if ($('#categoryFilter').length) { 1557 $('#categoryFilter').select2({ 1558 templateResult: function(option) { 1559 if (!option.id) return option.text; 1560 var icon = $(option.element).data('icon'); 1561 if (!icon) return option.text; 1562 return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>'); 1563 }, 1564 templateSelection: function(option) { 1565 if (!option.id) return option.text; 1566 var icon = $(option.element).data('icon'); 1567 if (!icon) return option.text; 1568 return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>'); 1569 }, 1570 allowHtml: true 1571 }); 1572 } 1573 }); 1574</script>
1574 1575 <!-- CSS final--> 1576 1577
1577<script> 1578 const css = ""; 1579 const style = document.createElement('style'); 1580 style.textContent = css; 1581 document.head.appendChild(style); 1582 </script>
1582 1583 1584 <!-- Start Modal views--> 1585 1586 <div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-hidden="true"> 1587 <div class="modal-dialog modal-dialog-centered" role="document"> 1588 <div class="modal-content"> 1589 <div class="modal-header"> 1590 <div class="title-head"></div> 1591 </div> 1592 <div class="modal-body"> 1593 <div class="tiktok-div-embed"></div> 1594 <iframe id="iframeVideo" title="VÃdeo" class="iframeVideo" allowfullscreen></iframe> 1595 1596 </div> 1597 <div class="modal-footer"> 1598 <span id="titleVideo" class="titleVideo"></span> 1599 <a id="closeModalVideo" class="close" href="javascript:void(0)" data-bs-dismiss="modal"><span style="display: none">X</span></a> 1600 1601 </div> 1602 </div> 1603 </div> 1604</div> <div class="modal fade" id="pdfModal" tabindex="-1" role="dialog" aria-hidden="true"> 1605 <div id="documentDialog" class="modal-dialog modal-dialog-centered" role="document"> 1606 <div class="modal-content"> 1607 <div class="modal-header"> 1608 <div class="title-head"></div> 1609 </div> 1610 <div class="modal-body"> 1611 <iframe id="iframePdf" title='Document' class="pdfview" style="width: 100%; height: 100%"></iframe> 1612 </div> 1613 <div class="modal-footer"> 1614 <span id="titlePdf" class="titlePdf"></span> 1615 <a id="closeModalPDF" class="close" href="javascript:void(0)"><span style="display: none">X</span></a> 1616 </div> 1617 </div> 1618 </div> 1619</div> <!-- End Modal views --> 1620
1620<script src="/front/view/js/endScript.js?ver=1790940362"></script>
1620 1621 <!-- Només activar per desenvolupament 1622
1622<script src="../../../node_modules/axe-core/axe.js"></script>
1622 1623
1623<script src="../../../dist/my-first-webpack.bundle.js"></script>
1623 1624 --> 1625
1625<script> 1626 $(document).ready(function () { 1627 startClock(1790940363); 1628 if (typeof (callMenuAfterJQueryLoaded) == "function") { 1629 callMenuAfterJQueryLoaded(); 1630 } 1631 1632 datepickerInit(); 1633 carouselControlSmall(); 1634 1635 if (typeof (callMenuBeforeJQueryLoaded) == "function") { 1636 callMenuBeforeJQueryLoaded(); 1637 } 1638 1639 if (typeof (callMenuBeforeTopJQueryLoaded) == "function") { 1640 callMenuBeforeTopJQueryLoaded(); 1641 } 1642 addAttributesDivVcards(); 1643 modalsImage(); 1644 modalsPdf(); 1645 translateWeb(); 1646 var carousel = $('#carouselControls'); 1647 carousel.on('slide.bs.carousel', function (event) { 1648 toSlideImage(event); 1649 }); 1650 /** Només activar per desenvolupament 1651 axe.configure({ 1652 locale: { 1653 lang: 'es', 1654 } 1655 }); 1656 1657 axe.run().then(results => { 1658 if (results.violations.length) { 1659 console.log(results.violations); 1660 throw new Error('Accessibility issues found'); 1661 } 1662 }) 1663 .catch(err => { 1664 console.log('Something bad happened:', err.message); 1665 }); 1666 */ 1667 }); 1668 1669 $(window).resize(function() { 1670 equalHeightIconTime(); 1671 }) 1672 </script>
1672 1673 </body> 1674</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.