1<!DOCTYPE html> 2<html dir="ltr" lang="fr" xmlns:ff4j="http://www.w3.org/1999/xhtml" xmlns:esi="http://www.edge-delivery.org/esi/1.0"> 3 <head> 4 <title> 5 Contacts - Commune de Villainville 6 </title> 7 8
8<script src="/lib/tarteaucitron/tarteaucitron.js"></script>
8 9
9<script> 10 var tarteaucitronExpireInDay = true, tarteaucitronForceExpire = 183; 11 12 tarteaucitron.init({ 13 "privacyUrl": "", /* Privacy policy url */ 14 15 "hashtag": "#tarteaucitron", /* Open the panel with this hashtag */ 16 "cookieName": "tarteaucitron", /* Cookie name */ 17 18 "orientation": "bottom", /* Banner position (top - bottom) */ 19 20 "showAlertSmall": false, /* Show the small banner on bottom right */ 21 "cookieslist": true, /* Show the cookie list */ 22 23 "showIcon": false, /* Show cookie icon to manage cookies */ 24 // "iconSrc": "", /* Optionnal: URL or base64 encoded image */ 25 "iconPosition": "BottomRight", /* Position of the icon between BottomRight, BottomLeft, TopRight and TopLeft */ 26 27 "adblocker": false, /* Show a Warning if an adblocker is detected */ 28 29 "DenyAllCta": true, /* Show the deny all button */ 30 "AcceptAllCta": true, /* Show the accept all button when highPrivacy on */ 31 "highPrivacy": true, /* HIGHLY RECOMMANDED Disable auto consent */ 32 33 "handleBrowserDNTRequest": false, /* If Do Not Track == 1, disallow all */ 34 35 "removeCredit": false, /* Remove credit link */ 36 "moreInfoLink": true, /* Show more info link */ 37 "useExternalCss": false, /* If false, the tarteaucitron.css file will be loaded */ 38 39 //"cookieDomain": ".my-multisite-domaine.fr", /* Shared cookie for subdomain website */ 40 41 "readmoreLink": "", /* Change the default readmore link pointing to tarteaucitron.io */ 42 43 "mandatory": true, /* Show a message about mandatory cookies */ 44 45 "listCookieByService": false, /* Show a message about list cookie by service */ 46 47 }); 48 </script>
48 49 50 51 52 <meta name="Description" content=""> 53 <meta name="Keywords" content=""> 54 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 55 <meta charset="UTF-8"> 56 57 <!-- Matomo -->
58<script> 59 var _paq = window._paq = window._paq || []; 60 /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ 61 _paq.push(['trackPageView']); 62 _paq.push(['enableLinkTracking']); 63 (function() { 64 var u="//matomo-client.neopse.com/"; 65 _paq.push(['setTrackerUrl', u+'matomo.php']); 66 _paq.push(['setSiteId', '459']); 67 var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; 68 g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); 69 })(); 70</script>
70 71<!-- End Matomo Code --> 72 73 74 75 76 77 78 79 <link rel="apple-touch-icon" href="https://static.neopse.com/thumbs/p/2755/site/c9/59/be/c959be76e2df582a172b31c468cded04436ad684.png?v=v1"> 80 <link rel="icon" href="https://static.neopse.com/thumbs/p/2755/site/c9/59/be/c959be76e2df582a172b31c468cded04436ad684.png?v=v1"> 81 82 <link rel="preconnect" href="https://fonts.googleapis.com"> 83 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 84 <link href="https://fonts.googleapis.com/css?family=Montserrat:400,500,600,700|Material+Icons" rel="stylesheet"> 85 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&family=Jost:wght@400;700&family=Lato:wght@400;700&family=Lora:wght@400;700&family=Merriweather:wght@400;700&family=Montserrat:wght@400;700&family=Nunito:wght@400;700&family=Open+Sans:wght@400;700&family=Outfit:wght@400;700&family=Roboto:wght@400;700&family=Roboto+Condensed:wght@400;700&family=Roboto+Slab:wght@400;700&display=swap" rel="stylesheet"> 86 87 <link href='/dist/owlcarousel/css/owl.carousel.min.css' rel='stylesheet' type='text/css'> 88 <link href='/dist/owlcarousel/css/owl.theme.default.min.css' rel='stylesheet' type='text/css'> 89 <link href='/dist/slick/slick.css' rel='stylesheet' type='text/css'> 90 <link href='/dist/slick/slick-theme.css' rel='stylesheet' type='text/css'> 91 <link href='/dist/scrollbar/jquery.scrollbar.css' rel='stylesheet' type='text/css'> 92 <link href='/dist/fullcalendar/fullcalendar.min.css' rel='stylesheet' type='text/css'> 93 <link rel="stylesheet" 94 href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.2/css/bootstrap-select.min.css"> 95 <link href="/tpl/1/css/style.css" rel="stylesheet" type='text/css'> 96 <link rel="stylesheet" 97 href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/css/bootstrap-multiselect.css"/> 98 99 <link href="/lib/splide-4.0.1/css/splide.min.css" rel="stylesheet" type="text/css"/> 100 <link href="/lib/splide-4.0.1/css/splide-custom.css" rel="stylesheet" type="text/css"/> 101 <style class="notranslate" title="customCss" type="text/css" 102 rel="stylesheet">.bg_bloc { background-color: #90E193 !important; } .table td, .table, .table thead th { border-color: #90E193 !important; } .bg_bloc .dropdown-toggle, .bg_bloc .dropdown-menu {background-color: #90E193 !important;border-color: #90E193 !important;} .fc-unthemed th, .fc-unthemed td, .fc-unthemed thead, .fc-unthemed tbody, .fc-unthemed .fc-divider, .fc-unthemed .fc-row, .fc-unthemed .fc-content, .fc-unthemed .fc-popover, .fc-unthemed .fc-list-view, .fc-unthemed .fc-list-heading td{border-color: #90E193 !important;} .fc-unthemed thead.fc-head, .fc-unthemed .fc-popover .fc-header{ background-color: #90E193 !important; } .fc-unthemed td.fc-today{background: #90E193 !important;} .cookies .btn{ color: #90E193 !important; }body { background-color: #FFFFFF; }.bg_wrapper { background-color: #52AF43 !important; }.c_btn, .c_btn:hover, .c_btn:focus, .c_btn:active { color: #A70F24; } .c_btn:before { background-color: #A70F24 !important; } .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span, .carousel-indicators .active {background: #A70F24;opacity: 1;} .carousel-indicators li, .owl-theme .owl-dots .owl-dot span{background-color: #A70F24;opacity: 0.5;} .fc-event{ color: #A70F24 !important;}.text_bloc {color:#FFFFFF !important;} .text_bloc .title:before {background-color:#FFFFFF!important;} .bg_bloc .c_text {color:#FFFFFF !important;} .bg_bloc .dropdown-toggle, .bg_bloc .dropdown-menu, .bg_bloc.bootstrap-select .dropdown-toggle::after {color:#FFFFFF !important;} .fc-unthemed thead.fc-head{ color: #FFFFFF !important; } .fc-unthemed td.fc-today{color: #FFFFFF !important;} .cookies .btn{ background-color: #FFFFFF !important; }.footer.bg { background-color: #52AF43; }nav.navbar.bg { background-color: #52AF43; }nav.navbar.bg { background-image: url(https://static.neopse.com/assets/img/textures/black-thread-light.png?v=v1); background-position: center; background-repeat: repeat; }body, .c_text, .container, .carousel-caption .title, .dropdown-item.c_text, .newsletter .requirements { color: #000000; } .slick-prev:before, .slick-next:before { color: #000000; } .c_text.navbar-toggler{ border-color: #000000 !important; } .title:before{ background-color: #000000 !important; } .intern-page .en-tete{ border-left-color: #000000;} .bootstrap-select .dropdown-menu li a{color: #000000;} .bootstrap-select .dropdown-toggle::after{color: #000000;} .fc-button{color: #000000 !important;}.footer .c_btn, .footer .c_btn:hover, .footer .c_btn:focus, .footer .c_btn:active { color: #E9BB0A; } .footer .c_btn:before { background-color: #E9BB0A !important; }nav.navbar .c_btn, nav.navbar .c_btn:hover, nav.navbar .c_btn:focus, nav.navbar .c_btn:active { color: #FFFFFF; }nav.navbar .dropdown-menu { background-color: #52AF43; }.footer .c_text { color: #FFFFFF; }nav.navbar .c_text { color: #FFFFFF; }nav.navbar .h_text:hover { color: #FFFFFF; }.footer .c_title { color: #FFFFFF; } .footer .c_title:before { background-color: #FFFFFF !important; }.breadcrumb.bg { background-color: #A70F24; }nav.navbar .dropdown-menu .c_text { color: #FFFFFF; }nav.navbar .dropdown-menu .h_text:hover { color: #FFFFFF; }nav.navbar .h_text:hover { background-color: #90E193; }body .bg_btn { background-color: #FFFFFF; } body .bg_btn:hover, body .bg_btn:active, body .bg_btn:focus { background-color: #FFFFFF; } .fc-event{ background-color: #FFFFFF !important; border-color: #FFFFFF !important; }#w_headline { background-color: #A70F24; }#w_0zt4n7hl8 .bg { background-color: #90E193; }#w_0zt4n7hl8 .bg { background-image: url(https://static.neopse.com/assets/img/textures/diagonales-decalees.png?v=v1); background-position:center; background-repeat: repeat;}#w_429770mmd .bg { background-color: #A70F24; }#w_429770mmd .bg { background-image: url(https://static.neopse.com/assets/img/textures/black-thread-light.png?v=v1); background-position: center; background-repeat: repeat; }#w_5yupcqsm2 .bg { background-color: #E9BB0A; }#w_5yupcqsm2 .bg { background-image: url(https://static.neopse.com/assets/img/textures/cubes.png?v=v1); background-position: center; background-repeat: repeat; }#w_aosbsketb .bg { background-color: #A70F24; }#w_fs59045t0 .bg { background-color: #A70F24; }#w_fs59045t0 .bg { background-image: url(https://static.neopse.com/assets/img/textures/black-thread-light.png?v=v1); background-position: center; background-repeat: repeat; }#w_headline .c_btn, #w_headline .c_btn:hover, #w_headline .c_btn:focus, #w_headline .c_btn:active { color: #A70F24; } #w_headline .c_btn:before { background-color: #A70F24 !important; } #w_headline .owl-theme .owl-dots .owl-dot.active span,#w_headline .owl-theme .owl-dots .owl-dot:hover span, #w_headline .carousel-indicators .active {background: #A70F24;opacity: 1;} #w_headline .carousel-indicators li, #w_headline .owl-theme .owl-dots .owl-dot span{background-color: #A70F24;opacity: 0.5;}.breadcrumb.bg .c_text { color: #FFFFFF; }nav.navbar .bg_btn, nav.navbar .bg_btn:hover, nav.navbar .bg_btn:active, nav.navbar .bg_btn:focus{ background-color: #90E193; }nav.navbar .dropdown-menu .h_text:hover { background-color: #A70F24; }#w_429770mmd .c_btn, #w_429770mmd .c_btn:hover, #w_429770mmd .c_btn:focus, #w_429770mmd .c_btn:active, #w_429770mmd .card-icon-date .day { color: #E9BB0A; border-color: #E9BB0A; } #w_429770mmd .c_btn:before, #w_429770mmd .owl-theme .owl-dots .owl-dot.active span, #w_429770mmd .owl-theme .owl-dots .owl-dot:hover span, #w_429770mmd .slick-dots .slick-active button:before, #w_429770mmd .card-icon-date .month {background-color: #E9BB0A !important;opacity: 1;} #w_429770mmd .carousel-indicators li, #w_429770mmd .owl-theme .owl-dots .owl-dot span, #w_429770mmd .slick-dots li button:before {background-color: #E9BB0A; opacity: 0.5;}#w_5yupcqsm2 .c_btn, #w_5yupcqsm2 .c_btn:hover, #w_5yupcqsm2 .c_btn:focus, #w_5yupcqsm2 .c_btn:active { color: #000000; } #w_5yupcqsm2 .c_btn.dark:before { background-color: #000000 !important; } #w_5yupcqsm2 .owl-theme .owl-dots .owl-dot.active span, #w_5yupcqsm2 .owl-theme .owl-dots .owl-dot:hover span {background: #000000;opacity: 1;} #w_5yupcqsm2 .carousel-indicators li, #w_5yupcqsm2 .owl-theme .owl-dots .owl-dot span{background-color: #000000;opacity: 0.5;}#w_headline .c_text { color: rgb(167,15,36); } #w_headline .title.c_text:before { background-color: rgb(167,15,36) !important; }.breadcrumb.bg .c_title { color: #FFFFFF; } .breadcrumb.bg .c_title:before { background-color: #FFFFFF !important; }#w_0zt4n7hl8 .c_text { color: #FFFFFF; }#w_429770mmd .c_text { color: #FFFFFF; }#w_5yupcqsm2 .c_text { color: #000000; }#w_0zt4n7hl8 .c_title { color: #A70F24; } #w_0zt4n7hl8 .c_title:before { background-color: #A70F24 !important; }#w_429770mmd .c_title { color: #FFFFFF; } #w_429770mmd .c_title:before { background-color: #FFFFFF !important; }#w_5yupcqsm2 .c_title { color: #FFFFFF !important; } #w_5yupcqsm2 .c_title.dark:before { background-color: #FFFFFF !important; }#w_aosbsketb .c_title { color: #FFFFFF; } #w_aosbsketb .c_title:before { background-color: #FFFFFF !important; }#w_fs59045t0 .c_title { color: #FFFFFF; } #w_fs59045t0 .c_title:before { background-color: #FFFFFF !important; }#w_0zt4n7hl8 .c_title { display: inline-block; }#w_aosbsketb .c_title { display: inline-block; }#w_429770mmd .bg_text { background-color: #FFFFFF; }#w_headline .c_text_responsive { color: #A70F24; } #w_headline .title.c_text_responsive:before { background-color: #A70F24 !important; }/*np-dropdowns*/.bootstrap-select{background-color:#90E193!important;}.bootstrap-select .dropdown-menu{background-color:#90E193!important;border-color:#90E193!important;}.bootstrap-select .dropdown-menu .dropdown-item,.bootstrap-select .dropdown-menu li a,.bootstrap-select .dropdown-menu .dropdown-item:hover,.bootstrap-select .dropdown-menu .dropdown-item:focus,.bootstrap-select .dropdown-menu .dropdown-item.active,.bootstrap-select .dropdown-menu .dropdown-item.selected{background-color:#90E193!important;}.bootstrap-select,.bootstrap-select .dropdown-toggle,.bootstrap-select .dropdown-toggle::after,.bootstrap-select .dropdown-menu,.bootstrap-select .dropdown-menu .c_text,.bootstrap-select .dropdown-menu .dropdown-item,.bootstrap-select .dropdown-menu .dropdown-item:hover,.bootstrap-select .dropdown-menu .dropdown-item:focus,.bootstrap-select .dropdown-menu .dropdown-item.active,.bootstrap-select .dropdown-menu .dropdown-item.selected,.bootstrap-select .dropdown-menu li a,.bootstrap-select .dropdown-menu .text{color:#FFFFFF!important;}</style> 103 104 105
105<script src="/js/vendor/jquery-3.2.1.min.js"></script>
105 106
106<script>tarteaucitron.user.matomoHost = '//matomo.neopse.com/';</script>
106 107 </head> 108 <body> 109 110 <header role="banner"><!-- Top navbar --> 111<nav role="navigation" class="navbar fixed-top navbar-expand-lg bg"> 112 <div class="ov"></div> 113 <div class="container"> 114 <a class="navbar-brand c_text" aria-label="Accueil" href="/fr/"> 115 <h1 class="img"> 116 <picture> 117 <source media="(max-width: 991.98px)" srcset="https://static.neopse.com/medias/p/2755/site/4c/9d/96/4c9d9637b5fb19a3313641044b5569ea550e9329.png"> 118 <img role="img" src="https://static.neopse.com/medias/p/2755/site/4c/9d/96/4c9d9637b5fb19a3313641044b5569ea550e9329.png" alt="Logo Commune de Villainville" loading="eager"> 119 </picture> 120 <span>Commune de Villainville</span> 121 </h1> 122 </a> 123 <button class="navbar-toggler c_text h_text" type="button" data-toggle="collapse" 124 data-target="#navbarNavDropdown" 125 aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation" style="z-index: 100;"> 126 <span class="navbar-toggler-icon"> 127 <i class="material-icons notranslate">menu</i> 128 </span> 129 </button> 130 <div class="collapse navbar-collapse" id="navbarNavDropdown"> 131 <ul class="navbar-nav ml-auto"> 132 <li class="nav-item dropdown"> 133 <a class="nav-link c_text h_text px-3" href="/" role="button"> 134 <i class="material-icons">home</i> 135 </a> 136 </li> 137 <li class="nav-item dropdown"> 138 <a class="nav-link c_text h_text dropdown-toggle" href="#" id="menuDropdown0" role="button" 139 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 140 Accueil 141 </a> 142 <div class="dropdown-menu container bg_text" aria-labelledby="menuDropdown0"> 143 <div class="dropdown-menu-image" aria-hidden="true" 144 style="background-image: url(https://static.neopse.com/thumbs/p/2755/site/10/91/9e/10919e0e43fdd55f9e6909d14a62e544e85636e3.png?v=v1);"></div> 145 146 <div class="container mega-dropdown-menu"> 147 <div class="divider"> 148 149 150 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 151 href="/fr/ct/1722346/contacts-1074"> 152 Contacts 153 </a> 154 155 156 157 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 158 href="/fr/rb/1292449/presentation-de-villainville"> 159 Présentation de Villainville 160 </a> 161 162 163 164 165 166 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 167 href="/fr/tb/1723087/le-conseil-municipal-55"> 168 Le conseil municipal 169 </a> 170 171 172 173 174 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 175 href="/fr/nw/1722424/actualites-1186"> 176 Actualités 177 </a> 178 179 180 181 182 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 183 href="/fr/lk/1722541/les-partenaires-de-la-commune"> 184 Les partenaires de la commune 185 </a> 186 187 188 189 190 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 191 href="/fr/rp/1722892/comptes-rendus-706"> 192 Comptes rendus 193 </a> 194 195 196 197 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem"
198 href="/fr/rb/1577474/plan-local-durbanisme-plu-27"> 199 Plan Local d'Urbanisme (PLU) 200 </a> 201 202 203 204 </div> 205 </div> 206 </div> 207 </li> 208 209 210 <li class="nav-item dropdown"> 211 <a class="nav-link c_text h_text dropdown-toggle" href="#" id="menuDropdown1" role="button" 212 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 213 Les partenaires 214 </a> 215 <div class="dropdown-menu container bg_text" aria-labelledby="menuDropdown1"> 216 <div class="dropdown-menu-image" aria-hidden="true" 217 style="background-image: url(https://static.neopse.com/thumbs/p/2755/site/01/0d/85/010d85908e7bb3ce846804514da827ded2d1d483.png?v=v1);"></div> 218 219 <div class="container mega-dropdown-menu"> 220 <div class="divider"> 221 222 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 223 href="/fr/rb/1291916/les-partenaires-publics"> 224 Les partenaires publics 225 </a> 226 227 228 229 230 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 231 href="/fr/rb/1298234/les-artisans-de-villainville"> 232 Les artisans de Villainville 233 </a> 234 235 236 237 </div> 238 </div> 239 </div> 240 </li> 241 242 243 <li class="nav-item dropdown"> 244 <a class="nav-link c_text h_text dropdown-toggle" href="#" id="menuDropdown2" role="button" 245 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 246 Vie pratique 247 </a> 248 <div class="dropdown-menu container bg_text" aria-labelledby="menuDropdown2"> 249 <div class="dropdown-menu-image" aria-hidden="true" 250 style="background-image: url(https://static.neopse.com/thumbs/p/2755/site/5b/e2/40/5be24085a12ce2edea4fc9073268c799a75eb9f3.png?v=v1);"></div> 251 252 <div class="container mega-dropdown-menu"> 253 <div class="divider"> 254 255 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 256 href="/fr/rb/1291994/se-deplacer-26"> 257 Se déplacer 258 </a> 259 260 261 262 263 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 264 href="/fr/rb/1292072/ou-se-loger-2"> 265 Où se loger ? 266 </a> 267 268 269 270 271 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 272 href="/fr/rb/1291968/gestion-des-dechets-75"> 273 Gestion des déchets 274 </a> 275 276 277 278 279 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 280 href="/fr/rb/1292358/les-demarches-administratives-4"> 281 Les démarches administratives 282 </a> 283 284 285 286 287 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 288 href="/fr/rb/1292033/les-marches-autour-de-villainville"> 289 Les marchés autour de Villainville... 290 </a> 291 292 293 294 295 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 296 href="/fr/rb/1292085/assistantes-maternelles-46"> 297 Assistantes maternelles 298 </a> 299 300 301 302 303 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 304 href="/fr/rb/1292098/la-salle-polyvalente"> 305 La salle polyvalente 306 </a> 307 308 309 310 311 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 312 href="/fr/rb/1292124/eglise-cimetiere-1"> 313 Ãglise-Cimetière 314 </a> 315 316 317 318 319 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem"
320 href="/fr/rb/1509536/communications-1"> 321 Communications 322 </a> 323 324 325 326 327 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 328 href="/fr/rb/1510316/sante-93"> 329 Santé 330 </a> 331 332 333 334 335 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 336 href="/fr/rb/1510381/au-jardin"> 337 Au jardin... 338 </a> 339 340 341 342 </div> 343 </div> 344 </div> 345 </li> 346 347 348 <li class="nav-item dropdown"> 349 <a class="nav-link c_text h_text dropdown-toggle" href="#" id="menuDropdown3" role="button" 350 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 351 Autour de l'école 352 </a> 353 <div class="dropdown-menu container bg_text" aria-labelledby="menuDropdown3"> 354 <div class="dropdown-menu-image" aria-hidden="true" 355 style="background-image: url(https://static.neopse.com/thumbs/p/2755/site/92/65/b8/9265b80c4e8c9818d27114a5e3a419773d26daaa.png?v=v1);"></div> 356 357 <div class="container mega-dropdown-menu"> 358 <div class="divider"> 359 360 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 361 href="/fr/rb/1292228/garderie-periscolaire-19"> 362 Garderie périscolaire 363 </a> 364 365 366 367 368 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 369 href="/fr/rb/1292267/restauration-scolaire-70"> 370 Restauration scolaire 371 </a> 372 373 374 375 376 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 377 href="/fr/rb/1292319/vie-de-lecole"> 378 Vie de l'école 379 </a> 380 381 382 383 </div> 384 </div> 385 </div> 386 </li> 387 388 389 <li class="nav-item dropdown"> 390 <a class="nav-link c_text h_text dropdown-toggle" href="#" id="menuDropdown4" role="button" 391 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 392 Services aux habitants 393 </a> 394 <div class="dropdown-menu container bg_text" aria-labelledby="menuDropdown4"> 395 396 <div class="container mega-dropdown-menu"> 397 <div class="divider"> 398 399 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem"
400 href="/fr/rb/1515490/maisons-du-territoire-1"> 401 Maisons du territoire 402 </a> 403 404 405 406 407 <a class="dropdown-item c_text h_text bg_h_text" role="menuitem" 408 href="/fr/rb/1515516/facilitez-vos-paiements"> 409 Facilitez vos paiements 410 </a> 411 412 413 414 </div> 415 </div> 416 </div> 417 </li> 418 419 420 421 <li class="nav-item"> 422 <a href="#search-form-collapse" role="button" class="search-button btn c_text h_text" data-toggle="collapse" 423 data-target="#search-form-collapse" aria-expanded="false"> 424 <i class="material-icons">search</i> 425 </a> 426 </li> 427 <form action="/fr/search" class="form-inline nav-link c_text" method="post"> 428 <div class="toggled row collapse" id="search-form-collapse"> 429 <input id="search-form" class="form-control col-lg-8 col-8" type="search" placeholder="Recherche" 430 aria-label="Search" name="keywords"> 431 <button type="submit" class="form-control col-lg-4 col-4 bg_btn c_btn"><i class="material-icons notranslate">search</i></button> 432 </div> 433 </form> 434 435 <li class="nav-item position-relative"> 436 <div role="button" class="cursor-pointer nav-link c_text" data-toggle="collapse" 437 data-target="#google_translate_element" aria-expanded="false" aria-label="Choisir la langue du site" 438 aria-controls="google_translate_element"><i class="material-icons notranslate">language</i> 439 </div> 440 <div id="google_translate_element" class="collapse"> 441 <div id="google_translate"></div> 442 <div class="google_translate_consent" style="width: 200px; height: 60px;"></div> 443 </div> 444 </li> 445 446 </ul> 447 </div> 448 </div> 449</nav> 450</header> 451 452 <main role="main"> 453 <div class="main intern-page"> 454 <header class="breadcrumb container d-flex align-items-center bg"> 455 <div class="ov"></div> 456 <div class="container"> 457 <h1 class="title dark c_title">Contacts</h1> 458 459 <nav class="ariane c_text"> 460 <span><a href="/fr/" class="font-weight-bold">Accueil</a></span> 461 / <a href="/fr/">Accueil</a> 462 / <a href="/fr/ct/1722346/contacts-1074">Contacts</a> 463 </nav> 464 465 </div> 466</header> 467 <!-- Contenu --> 468 <section class="container wrapper bg_wrapper c_wrapper"> 469 <div class="ov bgw"></div> 470 471 <div class="main-content dynamicContent"> 472 473 <div class="row"> 474 <div class="col col-lg contenu"> 475 476 <div> 477 <div class="mb-3"> 478 <h2 class="title dark">Commune de Villainville</h2> 479 <p>Mairie de Villainville</p> 480 </div> 481 482 <div class="mb-3"> 483 <p class="mb-0">704, route d'Ãtretat</p> 484 <p class="mb-0">76280 Villainville</p> 485 <p class="mb-0 text-uppercase">France</p> 486 </div> 487 488 <div class="mb-3"> 489 <p class="mb-0"><a 490 href="tel:+33235298559">+33 2 35 29 85 59</a> 491 </p> </div> 492 493 <div class="mb-3"><p class="mb-0"><a class="btn btn-primary c_btn bg_btn py-2 px-4" href="#" data-toggle="modal" 494 data-target="#contactFormContact">Contact par formulaire</a></p></div> 495 496 497 498 <div class="my-5 ckeditor_info"> 499 <h2 class="title dark">Horaires et permanences</h2> 500 <p><strong><span style="color:#f39c12">Accueil public par la secrétaire de mairie: </span></strong><br /> 501Lundi:9h00-12h/13h30-16h00<br /> 502Mardi:9h00-12h/13h30-16h00<br /> 503Jeudi:9h00-12h<br /> 504<br /> 505<span style="color:#f39c12"><strong>Accueil public </strong>avec Monsieur le Maire ou adjoint</span>:<br /> 506les samedis de 9h30 à 11h00.<br /> 507Pour les dépôts de dossiers d’urbanisme, location de salle, état civil, recensement citoyen, RDV avec Monsieur le Maire ou adjoints...<br /> 508<br /> 509Pour prendre rendez-vous, vous devez contacter la mairie de Villainville par courriel à : <span style="color:#bdc3c7"><strong>[email protected]</strong></span><br /> 510<br /> 511 </p> 512 </div> 513 514 </div> 515 516 </div> 517 518 519 </div> 520 521 </div> 522 </section> 523 524 <div class="modal fade" id="contactFormContact" tabindex="-1" role="dialog" aria-labelledby="modalContact-label" aria-hidden="true" 525 style="color:initial;-webkit-transform: translateZ(0);transform: translateZ(0);"> 526 <div class="modal-dialog" role="document"> 527 <div class="modal-content"> 528 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
529 <span aria-hidden="true">×</span> 530 </button> 531 532 <div class="modal-header bg_bloc"> 533 <h5 id="modalContact-label" class="modal-title font-weight-bold dark text_bloc">Contact Mairie</h5> 534 </div> 535 <form id="contactForm" action="/formMdContact" method="post" 536 novalidate enctype="multipart/form-data"> 537 <div class="modal-body pb-0"> 538 539 <div class="field-wrapper"><p class="title">Contact Mairie</p></div> 540 <div class="field-wrapper"> 541 <div><label class="control-label generalLabel font-weight-bold mr-1">Destinataire de votre message <span 542 class="cursor-pointer" data-toggle="popover" data-content="Sélectionnez"><i 543 class="material-icons align-top">info_outline</i></span> </label><span>*</span></div> 544 545 <div class="form-check d-block"> 546 <label class="form-check-label"><input class="form-check-input" type="checkbox" name="2_check_list[]" value="Karine Ramain- Maire">Karine Ramain- Maire<span 547 class="form-check-sign"><span class="check"></span></span></label> 548 </div> 549 <div class="form-check d-block"> 550 <label class="form-check-label"><input class="form-check-input" type="checkbox" name="2_check_list[]" value="Agnès Lenormand- 1ère adjointe">Agnès Lenormand- 1ère adjointe<span 551 class="form-check-sign"><span class="check"></span></span></label> 552 </div> 553 <div class="form-check d-block"> 554 <label class="form-check-label"><input class="form-check-input" type="checkbox" name="2_check_list[]" value="Secretariat de mairie ">Secretariat de mairie <span 555 class="form-check-sign"><span class="check"></span></span></label> 556 </div> 557 <span class="form-error requirements" id="2_check_list-error" role="alert">Ce champ est obligatoire</span> 558</div> 559 <div class="form-group"> 560 <div><label for="3_email">Votre adresse e-mail</label><span>*</span></div> 561 <input type="email" name="3_email" class="form-control" id="3_email" 562 aria-label="Votre adresse e-mail"> 563 <span class="help-message cursor-pointer" data-toggle="popover" data-content="Veuillez"><i 564 class="material-icons">info_outline</i></span> <span class="form-error requirements" id="3_email-error" role="alert">Ce champ est obligatoire</span> 565</div> 566 567 <div class="form-group"> 568 <div><label for="4_date" id="4_dateLabel">Date</label><span>*</span></div> 569 <div class="d-flex align-items-end"> 570 <div class="col-10 col-md-5 mr-3 px-0"> 571 <input type="date" name="4_date" class="form-control" id="4_date" aria-describedby="4_dateLabel" placeholder="Date"> 572 <span class="help-message"><i class="material-icons notranslate">date_range</i></span> 573 </div> 574 <div data-toggle="popover" data-content=""> 575 </div> 576 </div> 577 <span class="form-error requirements" id="4_date-error" role="alert">Ce champ est obligatoire</span> 578</div> 579 580 <div class="form-group"> 581 <div><label for="5_textarea">Nom</label><span></span> 582 </div> 583 <textarea name="5_textarea" class="form-control pl-0" id="5_textarea" rows="3"></textarea> 584 <span class="form-error requirements" id="5_textarea-error" role="alert">Ce champ est obligatoire</span> 585</div> 586 587 <div class="form-group"> 588 <div class="h-recaptcha m-auto d-inline-block"></div> 589 <div class="form-error requirements" id="h-captcha-response-error" role="alert">Ce champ est obligatoire 590 </div> 591</div> </div> 592 <div class="modal-footer"> 593 <button id="formContactForm" type="submit" class="btn bg_btn c_btn formContactForm" aria-label="Envoyer">ENVOYER</button> 594 </div> 595 <div class="m-3"> 596 Les informations recueillies à partir de ce formulaire sont nécessaires à la gestion de votre demande par notre Structure qui est responsable du traitement de vos données personnelles collectées.<br /> 597Vos donn<span style="color:null"><span style="background-color:null">ées personnelles reçues sont conservées par notre Structure pendant toute la durée nécessaire au traitement de votre demande ou bien pour une durée de […….] mois maximum à compter du dernier contact. Dans la limite de leurs attributions respectives, sont destinataires de tout ou partie des données les services et représentants de notre Structure en charge des réponses aux demandes émises via ce formulaire. Aucun transfert de vos données hors de l'Union européenne n'est réalisé. </span><br /> 598<span style="background-color:null">Vous pouvez à tout moment demander l’accès, la rectification, l’effacement, la portabilité ou la limitation de vos données, ou bien vous opposer à leur traitement, en contactant le Délégué à la Protection des Données de notre structure : </span><br /> 599<span style="background-color:null">- Par voie électronique à l’adresse : […….] ; </span><br /> 600<span style="background-color:null">- Par voie postale à l’attention du Délégué à la Protection des Données et à l’adresse suivante : […….]. </span><br /> 601<span style="background-color:null">Si vous estimez, après nous avoir contactés, que vos droits sur vos données personnelles ne sont pas respectés, vous pou</span></span>vez adresser une réclamation à la CNIL. 602 </div> 603 </form> 604 605 <div id="messageSendedForm" class="form-message-sent" style="display: none"> 606 <p>Le message a bien été envoyé à son destinataire. Merci.</p> 607 </div> 608 </div> 609 </div> 610</div> 611 612 </div> 613 614 </main> 615 616 <div id="previewModalImage" class="modal"> 617 618 <!-- The Close Button -->
619 <span id="closePreviewImage" class="close">×</span> 620 621 <!-- Navigation Buttons --> 622 <a id="prevImage" class="modal-nav prev" href="javascript:void(0)">❮</a> 623 <a id="nextImage" class="modal-nav next" href="javascript:void(0)">❯</a> 624 625 <!-- Image Counter --> 626 <div id="imageCounter" class="image-counter"></div> 627 628 <!-- Modal Content (The Image) --> 629 <div id="containerPreviewImage"><img role="img" class="modal-content" alt=""></div> 630 631 <!-- Modal Caption (Image Text) --> 632 <div id="captionPreviewImage"></div> 633 </div> 634 635
635<script> 636 (function() { 637 // Get the modal elements 638 const modal = document.getElementById('previewModalImage'); 639 const modalImg = modal.querySelector('img'); 640 const captionText = document.getElementById('captionPreviewImage'); 641 const closePreviewImage = document.getElementById('closePreviewImage'); 642 const prevBtn = document.getElementById('prevImage'); 643 const nextBtn = document.getElementById('nextImage'); 644 const imageCounter = document.getElementById('imageCounter'); 645 646 let currentImages = []; 647 let currentIndex = 0; 648 649 // Helper function to check if element is visible 650 function isVisible(element) { 651 return element && element.offsetParent !== null; 652 } 653 654 // Helper function to toggle element visibility 655 function toggleElement(element, show) { 656 if (element) { 657 element.style.display = show ? 'block' : 'none'; 658 } 659 } 660 661 // Function to update the modal with a specific image 662 function updateModal(index) { 663 if (currentImages.length === 0) return; 664 665 currentIndex = index; 666 const img = currentImages[currentIndex]; 667 modalImg.setAttribute('src', img.src); 668 modalImg.setAttribute('alt', img.alt || ''); 669 captionText.innerHTML = img.alt || ''; 670 671 // Update counter 672 imageCounter.textContent = (currentIndex + 1) + ' / ' + currentImages.length; 673 674 // Show/hide navigation buttons 675 const showNav = currentImages.length > 1; 676 toggleElement(prevBtn, showNav); 677 toggleElement(nextBtn, showNav); 678 toggleElement(imageCounter, showNav); 679 } 680 681 // Function to show next image 682 function showNext() { 683 if (currentImages.length === 0) return; 684 currentIndex = (currentIndex + 1) % currentImages.length; 685 updateModal(currentIndex); 686 } 687 688 // Function to show previous image 689 function showPrev() { 690 if (currentImages.length === 0) return; 691 currentIndex = (currentIndex - 1 + currentImages.length) % currentImages.length; 692 updateModal(currentIndex); 693 } 694 695 // Helper function to find closest ancestor with class 696 function closest(element, selector) { 697 if (!element) return null; 698 699 // For class selector (e.g., '.splide__slide') 700 if (selector.startsWith('.')) { 701 const className = selector.slice(1); 702 let current = element; 703 while (current && current !== document) { 704 if (current.classList && current.classList.contains(className)) { 705 return current; 706 } 707 current = current.parentElement; 708 } 709 } 710 return null; 711 } 712 713 // When clicking on an image 714 document.addEventListener('click', function(e) { 715 const target = e.target; 716 // Check if clicked element is an image with class .img or .main-img inside .splide 717 if (target.tagName === 'IMG' && 718 (target.classList.contains('img') || target.classList.contains('main-img')) && 719 closest(target, '.splide')) { 720 721 // Find the clicked image's parent slide 722 const clickedSlide = closest(target, '.splide__slide'); 723 if (!clickedSlide) return; 724 725 // Find the list that contains this slide 726 const splideList = closest(clickedSlide, '.splide__list'); 727 if (!splideList) return; 728 729 // Get all slides from this specific list 730 const allSlides = splideList.querySelectorAll('.splide__slide'); 731 732 // Get all images from these slides only, deduplicating by src 733 // (Splide duplicates slides in loop mode, so we need to filter duplicates) 734 currentImages = []; 735 const seenSrcs = new Set(); 736 const clickedSrc = target.src; 737
738 allSlides.forEach(function(slide) { 739 const slideImg = slide.querySelector('.img, .main-img'); 740 if (slideImg) { 741 const imgSrc = slideImg.src; 742 // Only add if we haven't seen this src before 743 if (!seenSrcs.has(imgSrc)) { 744 seenSrcs.add(imgSrc); 745 currentImages.push(slideImg); 746 } 747 } 748 }); 749 750 // Find the index of the clicked image by src (to handle duplicates) 751 currentIndex = currentImages.findIndex(function(img) { 752 return img.src === clickedSrc; 753 }); 754 755 if (currentIndex === -1) { 756 currentIndex = 0; // Fallback to first image 757 } 758 759 // Update and show modal 760 updateModal(currentIndex); 761 modal.style.display = 'block'; 762 } 763 }); 764 765 // Navigation button handlers 766 if (nextBtn) { 767 nextBtn.addEventListener('click', function (e) { 768 e.preventDefault(); 769 e.stopPropagation(); 770 showNext(); 771 }); 772 } 773 774 if (prevBtn) { 775 prevBtn.addEventListener('click', function (e) { 776 e.preventDefault(); 777 e.stopPropagation(); 778 showPrev(); 779 }); 780 } 781 782 // Keyboard navigation 783 document.addEventListener('keydown', function (e) { 784 // Check if modal is visible by checking display style 785 const isModalVisible = modal.style.display !== 'none' && 786 (modal.style.display === 'block' || 787 window.getComputedStyle(modal).display !== 'none'); 788 789 if (isModalVisible) { 790 if (e.key === 'ArrowRight' || e.keyCode === 39) { 791 e.preventDefault(); 792 showNext(); 793 } else if (e.key === 'ArrowLeft' || e.keyCode === 37) { 794 e.preventDefault(); 795 showPrev(); 796 } else if (e.key === 'Escape' || e.keyCode === 27) { 797 e.preventDefault(); 798 e.stopPropagation(); 799 modal.style.display = 'none'; 800 } 801 } 802 }); 803 804 // When the user clicks on <span> (x), close the modal 805 if (closePreviewImage) { 806 closePreviewImage.addEventListener('click', function () { 807 modal.style.display = 'none'; 808 }); 809 } 810 811 // Close modal when clicking outside the image 812 modal.addEventListener('click', function (e) { 813 if (e.target === modal) { 814 modal.style.display = 'none'; 815 } 816 }); 817 })(); 818 </script>
818 819 820 821 822 823 <!-- Footer --> 824<footer role="contentinfo" class="footer bg footer1"> 825 <div class="ov"></div> 826 <div class="container d-flex flex-wrap justify-content-between"> 827 <div class="footer-container"> 828 <h2 class="title light c_title d_title btn-line"><a 829 href="/fr/ct/1722346/contacts-1074">Contacts</a></h2> 830<div class="footer-box"> 831 <div class="contact c_text"> 832 <p class="font-weight-bold mb-0" aria-label="Nom du structure">Commune de Villainville</p> 833 <p class="mb-0" aria-label="adresse">704, route d'Ãtretat</p> 834 <p class="mb-0" aria-label="adresse 2">76280 Villainville - FRANCE</p> 835 <p class="mb-0"><a href="tel:+33235298559" title="Numéro de téléphone">+33 2 35 29 85 59</a></p> 836 <p class="mb-0"><a style="display:initial;" class="btn-line footer-btn light c_btn" href="#" data-toggle="modal" data-target="#contactFormContactFooter" aria-label="Afficher le formulaire">Contact par formulaire</a> 837 </p> 838 839 <div class="mt-4"> 840 <p style="margin:0;"><strong>HORAIRES</strong></p> 841 <p><strong><span style="color:#f39c12">Accueil public par la secrétaire de mairie:</span></strong><br /> 842Lundi:9h00-12h/13h30-16h00<br /> 843Mardi:9h00-12h/13h30-16h00<br /> 844Jeudi:9h00-12h<br /> 845<br /> 846<strong><span style="color:#f39c12">Accueil public avec Monsieur le Maire ou adjoint:</span></strong><br /> 847les samedis de 9h30 à 11h00.<br /> 848<br /> 849Pour les dépôts de dossiers d’urbanisme, location de salle, état civil, recensement citoyen, RDV avec Monsieur le Maire ou adjoints...<br /> 850<br /> 851Pour prendre rendez-vous, vous devez contacter la mairie de Villainville par courriel à : [email protected]</p> 852 </div> 853 </div> 854 855 856</div> 857 858 859 860 <div class="social-media"> 861 <ul class="c_text"> 862 </ul> 863</div> 864 865 866 </div> 867 868 869 </div> 870 <div class="container d-flex flex-wrap position-relative c_text"> 871 <p class="mr-2 c_text"><a href="/fr/li/1722385/mentions-legales-1238">Mentions légales</a> 872</p> - 873 <p class="mr-2 ml-2 c_text"><a href="/fr/1722385/politique-confidentialite">Politique de confidentialité</a> 874</p> - 875 <p class="mr-2 ml-2 c_text"><a href="/fr/accessibilite">Accessibilité</a> 876</p> - 877 878 <p class="mr-2 ml-2 c_text"> 879 <a href="/fr/sm/71622/plan-du-site-1"> 880 Plan du site</a></p>- 881 <p class="ml-2 c_text"><a href="#tarteaucitron">Gestion des cookies</a></p> 882 </div> 883</footer> 884 885<div class="modal fade" id="contactFormContactFooter" tabindex="-1" role="dialog" aria-labelledby="modalFooter-label" aria-hidden="true" 886 style="color:initial;-webkit-transform: translateZ(0);transform: translateZ(0);"> 887 <div class="modal-dialog" role="document"> 888 <div class="modal-content"> 889 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 890 <span aria-hidden="true">×</span> 891 </button> 892 893 <div class="modal-header bg_bloc"> 894 <h4 id="modalFooter-label" class="modal-title font-weight-bold dark text_bloc">Contact Mairie</h4> 895 </div> 896 <form id="contactFormFooter" action="/formMdContact" method="post" 897 novalidate enctype="multipart/form-data"> 898 <div class="modal-body pb-0"> 899 900 <div class="field-wrapper"><p class="title">Contact Mairie</p></div> <div class="field-wrapper"> 901 <div><label class="control-label generalLabel font-weight-bold mr-1">Destinataire de votre message <span 902 class="cursor-pointer" data-toggle="popover" data-content="Sélectionnez"><i 903 class="material-icons align-top">info_outline</i></span> </label><span>*</span></div> 904 905 <div class="form-check d-block"> 906 <label class="form-check-label"><input class="form-check-input" type="checkbox" name="2_check_list[]" value="Karine Ramain- Maire">Karine Ramain- Maire<span 907 class="form-check-sign"><span class="check"></span></span></label> 908 </div> 909 <div class="form-check d-block"> 910 <label class="form-check-label"><input class="form-check-input" type="checkbox" name="2_check_list[]" value="Agnès Lenormand- 1ère adjointe">Agnès Lenormand- 1ère adjointe<span 911 class="form-check-sign"><span class="check"></span></span></label> 912 </div> 913 <div class="form-check d-block"> 914 <label class="form-check-label"><input class="form-check-input" type="checkbox" name="2_check_list[]" value="Secretariat de mairie ">Secretariat de mairie <span 915 class="form-check-sign"><span class="check"></span></span></label> 916 </div>
917 <span class="form-error requirements" id="2_check_list-error" role="alert">Ce champ est obligatoire</span> 918</div> <div class="form-group"> 919 <div><label for="3_email">Votre adresse e-mail</label><span>*</span></div> 920 <input type="email" name="3_email" class="form-control" id="3_email" 921 aria-label="Votre adresse e-mail"> 922 <span class="help-message cursor-pointer" data-toggle="popover" data-content="Veuillez"><i 923 class="material-icons">info_outline</i></span> <span class="form-error requirements" id="3_email-error" role="alert">Ce champ est obligatoire</span> 924</div> 925 <div class="form-group"> 926 <div><label for="4_date" id="4_dateLabel">Date</label><span>*</span></div> 927 <div class="d-flex align-items-end"> 928 <div class="col-10 col-md-5 mr-3 px-0"> 929 <input type="date" name="4_date" class="form-control" id="4_date" aria-describedby="4_dateLabel" placeholder="Date"> 930 <span class="help-message"><i class="material-icons notranslate">date_range</i></span> 931 </div> 932 <div data-toggle="popover" data-content=""> 933 </div> 934 </div> 935 <span class="form-error requirements" id="4_date-error" role="alert">Ce champ est obligatoire</span> 936</div> 937 <div class="form-group"> 938 <div><label for="5_textarea">Nom</label><span></span> 939 </div> 940 <textarea name="5_textarea" class="form-control pl-0" id="5_textarea" rows="3"></textarea> 941 <span class="form-error requirements" id="5_textarea-error" role="alert">Ce champ est obligatoire</span> 942</div> 943 <div class="form-group"> 944 <div class="h-recaptcha m-auto d-inline-block"></div> 945 <div class="form-error requirements" id="h-captcha-response-error" role="alert">Ce champ est obligatoire 946 </div> 947</div> </div> 948 <div class="modal-footer"> 949 <button id="formContactForm" type="submit" class="btn bg_btn c_btn formContactForm" aria-label="Envoyer">ENVOYER</button> 950 </div> 951 <div class="m-3"> 952 Les informations recueillies à partir de ce formulaire sont nécessaires à la gestion de votre demande par notre Structure qui est responsable du traitement de vos données personnelles collectées.<br /> 953Vos donn<span style="color:null"><span style="background-color:null">ées personnelles reçues sont conservées par notre Structure pendant toute la durée nécessaire au traitement de votre demande ou bien pour une durée de […….] mois maximum à compter du dernier contact. Dans la limite de leurs attributions respectives, sont destinataires de tout ou partie des données les services et représentants de notre Structure en charge des réponses aux demandes émises via ce formulaire. Aucun transfert de vos données hors de l'Union européenne n'est réalisé. </span><br /> 954<span style="background-color:null">Vous pouvez à tout moment demander l’accès, la rectification, l’effacement, la portabilité ou la limitation de vos données, ou bien vous opposer à leur traitement, en contactant le Délégué à la Protection des Données de notre structure : </span><br /> 955<span style="background-color:null">- Par voie électronique à l’adresse : […….] ; </span><br /> 956<span style="background-color:null">- Par voie postale à l’attention du Délégué à la Protection des Données et à l’adresse suivante : […….]. </span><br /> 957<span style="background-color:null">Si vous estimez, après nous avoir contactés, que vos droits sur vos données personnelles ne sont pas respectés, vous pou</span></span>vez adresser une réclamation à la CNIL. 958 </div> 959 </form> 960 961 <div id="messageSendedFormContactFooter" class="form-message-sent" style="display: none"> 962 <p role="status">Le message a bien été envoyé à son destinataire. Merci.</p> 963 </div> 964 </div> 965 </div> 966</div> 967 968 <div class="footer-bottom" style="position: relative;"> 969 <div class="container"> 970 <p> 971 <a href="https://reseaudescommunes.fr/?utm_source=rdcclients&utm_medium=footerlink" target="_blank"> 972 <img role="img" src="/images/rdc-logo-footer-2.png" alt="logo Réseau des Communes" class="img-fluid">
973 Site créé en partenariat avec Réseau des Communes 974 </a> 975 </p> 976 </div> 977</div> 978 <div class="modal fade pdfModal" id="pdfModal" tabindex="-1" role="dialog" aria-label="Prévisualisation du PDF" aria-hidden="true"> 979 <div class="modal-dialog" role="document"> 980 <div class="modal-content"> 981 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 982 <span aria-hidden="true">×</span> 983 </button> 984 985 <embed type="application/pdf"> 986 </div> 987 </div> 988</div> 989 990 991
991<script src="/js/vendor/popper.min.js"></script>
991 992
992<script src="/js/vendor/bootstrap.min.js"></script>
992 993 994 <!-- Carousel --> 995
995<script src='/dist/owlcarousel/js/owl.carousel.min.js'></script>
995 996
996<script src='/dist/owlcarousel/js/owl.linked.js'></script>
996 997 998
998<script src="/lib/splide-4.0.1/js/splide.min.js"></script>
998 999
999<script src="/lib/splide-4.0.1/extensions/autoscroll/js/splide-extension-auto-scroll.min.js"></script>
999 1000 1001
1001<script src='/dist/slick/slick.js'></script>
1001 1002
1002<script src='/dist/scrollbar/jquery.scrollbar.min.js'></script>
1002 1003 1004
1004<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.2/js/bootstrap-select.min.js"></script>
1004 1005 1006
1006<script src='/dist/pagination.min.js'></script>
1006 1007 1008
1008<script src="/js/shared.js?v1"></script>
1008 1009
1009<script src="/tpl/1/js/main.js"></script>
1009 1010
1010<script src="/lib/chartjs/Chart.js"></script>
1010 1011
1011<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/js/bootstrap-multiselect.js"></script>
1011 1012 1013
1013<script type="text/javascript"> 1014 1015 tarteaucitron.user.matomoId = 6; 1016 (tarteaucitron.job = tarteaucitron.job || []).push('matomohightrack'); 1017 1018 1019 (tarteaucitron.job = tarteaucitron.job || []).push('youtube'); 1020 (tarteaucitron.job = tarteaucitron.job || []).push('dailymotion'); 1021 (tarteaucitron.job = tarteaucitron.job || []).push('vimeo'); 1022 (tarteaucitron.job = tarteaucitron.job || []).push('othervideo'); 1023 1024 tarteaucitron.user.googleTranslateCallback = function () { 1025 new google.translate.TranslateElement({pageLanguage: 'fr'}, 'google_translate'); 1026 }; 1027 (tarteaucitron.job = tarteaucitron.job || []).push('googletranslate'); 1028 </script>
1028 1029 1030 1031 1032
1032<script> 1033 $(document).ready(function () { 1034 1035 var input = $('input[type=file]'); 1036 1037 input.on('change', function () { 1038 var list = $(this).parent().parent().parent().parent().find($('.listFiles')); 1039 list.empty(); 1040 1041 for (var x = 0; x < this.files.length; x++) { 1042 var newFile = '<li>Fichier joint : ' + this.files[x].name + ' (' + humanFileSize(this.files[x].size) + ')</li>'; 1043// li.innerHTML = 'File ' + (x + 1) + ': ' + input.files[x].name; 1044 list.append(newFile); 1045 } 1046 }); 1047 1048 $('.form-error').hide(); 1049 $('#contactForm').submit(function (e) { 1050 let form = $(this); 1051 1052 $.ajax({ 1053 type: "POST", 1054 url: form.attr('action'), 1055 data: new FormData(form[0]), 1056 contentType: false, 1057 processData: false, 1058 beforeSend: function () { 1059 form.find('.form-error').hide(); 1060 $('#formContactForm').attr('disabled', true); 1061 }, 1062 success: function (response) { 1063 hcaptcha.reset(); 1064 1065 if (response.status === 'KO') { 1066 let errors = response.errors; 1067 for (let index in errors) { 1068 if (errors.hasOwnProperty(index)) { 1069 let attr = errors[index]; 1070 let error = attr[Object.keys(attr)[0]]; 1071 form.find('#' + index + '-error').text(error).show(); 1072 } 1073 } 1074 } else { 1075 1076 $('#contactForm').css('display', 'none'); 1077 $('#messageSendedForm').css('display', ''); 1078 form[0].reset(); 1079 } 1080 }, 1081 complete: function () { 1082 1083 $('#formContactForm').removeAttr('disabled'); 1084 } 1085 }); 1086 1087 return false; 1088 }); 1089 1090 $('#contactFormContact').on('hidden.bs.modal', function () { 1091 $('#contactForm')[0].reset(); 1092 $('#contactFormFooter')[0].reset(); 1093 1094 $('#contactForm').css('display', ''); 1095 $('#contactFormFooter').css('display', ''); 1096 1097 $('#messageSendedForm').css('display', 'none'); 1098 1099 $('.form-error').hide(); 1100 1101 $('.listFiles').empty(); 1102 1103 hcaptcha.reset(); 1104 }); 1105 }); 1106 1107 function humanFileSize(size) { 1108 var i = Math.floor(Math.log(size) / Math.log(1024)); 1109 return (size / Math.pow(1024, i)).toFixed(1) * 1 + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i]; 1110 } 1111 </script>
1111 1112 1113
1113<script type="text/javascript"> 1114 $(document).ready(function () { 1115 }); 1116 1117 </script>
1117 1118 1119 1120
1120<script> 1121 (function (i, s, o, g, r, a, m) { 1122 i['InstanaEumObject'] = r; 1123 i[r] = i[r] || function () { 1124 (i[r].q = i[r].q || []).push(arguments) 1125 }, i[r].l = 1 * new Date(); 1126 a = s.createElement(o), 1127 m = s.getElementsByTagName(o)[0]; 1128 a.async = 1; 1129 a.src = g; 1130 m.parentNode.insertBefore(a, m) 1131 })(window, document, 'script', '//eum.instana.io/eum.min.js', 'ineum'); 1132 ineum('reportingUrl', 'https://eum-eu-west-1.instana.io'); 1133 ineum('apiKey', '9yG9cnlKTcS4le-zMVtBJA'); 1134 1135 // set the name of a page on which this load/errors/calls happened 1136 ineum('page', 'front-site'); 1137 </script>
1137 1138 1139 1140
1140<script src="https://js.hcaptcha.com/1/api.js?hl=fr&onload=CaptchaCallback&render=explicit" async defer></script>
1140 1141 1142
1142<script type="text/javascript"> 1143 var CaptchaCallback = function () { 1144 $('.h-recaptcha').each(function (index, el) { 1145 hcaptcha.render(el, {'sitekey': 'f5095cfb-139b-47da-88e2-f0d2e7485392'}); 1146 }); 1147 }; 1148 1149 var originalStyle = false; 1150 1151 $(window).on('shown.bs.modal', function () { 1152 originalStyle = $('body').attr('style'); 1153 1154 $('body').attr('style', ''); 1155 }); 1156 1157 $(window).on('hidden.bs.modal', function () { 1158 $('body').attr('style', originalStyle); 1159 1160 }); 1161 1162 </script>
1162 1163 1164
1164<script> 1165 $(document).ready(function () { 1166 1167 $('.selectpicker').selectpicker(); 1168 1169 var input = $('input[type=file]'); 1170 1171 input.on('change', function () { 1172 var list = $(this).parent().parent().parent().parent().find($('.listFiles')); 1173 list.empty(); 1174 1175 for (var x = 0; x < this.files.length; x++) { 1176 var newFile = '<li>Fichier joint : ' + this.files[x].name + ' (' + humanFileSize(this.files[x].size) + ')</li>'; 1177// li.innerHTML = 'File ' + (x + 1) + ': ' + input.files[x].name; 1178 list.append(newFile); 1179 } 1180 }); 1181 1182 $('.form-error').hide(); 1183 $('#contactFormFooter').submit(function (e) { 1184 let form = $(this); 1185 1186 $.ajax({ 1187 type: "POST", 1188 url: form.attr('action'), 1189 data: new FormData(form[0]), 1190 contentType: false, 1191 processData: false, 1192 beforeSend: function () { 1193 form.find('.form-error').hide(); 1194 $('.formContactForm').attr('disabled', true); 1195 }, 1196 success: function (response) { 1197 hcaptcha.reset(); 1198 1199 if (response.status === 'KO') { 1200 let errors = response.errors; 1201 for (let index in errors) { 1202 if (errors.hasOwnProperty(index)) { 1203 let attr = errors[index]; 1204 let error = attr[Object.keys(attr)[0]]; 1205 form.find('#' + index + '-error').text(error).show(); 1206 } 1207 } 1208 } else { 1209 1210 $('#contactFormFooter').css('display', 'none'); 1211 $('#messageSendedFormContactFooter').css('display', ''); 1212 form[0].reset(); 1213 } 1214 }, 1215 complete: function () { 1216 1217 $('.formContactForm').removeAttr('disabled'); 1218 } 1219 }); 1220 1221 return false; 1222 }); 1223 1224 $('#contactFormContactFooter').on('hidden.bs.modal', function () { 1225 $('#contactFormFooter')[0].reset(); 1226 1227 $('#contactFormFooter').css('display', ''); 1228 1229 $('#messageSendedFormContactFooter').css('display', 'none'); 1230 1231 $('.form-error').hide(); 1232 1233 $('.listFiles').empty(); 1234 1235 hcaptcha.reset(); 1236 }); 1237 1238 1239 }); 1240 1241 function humanFileSize(size) { 1242 var i = Math.floor(Math.log(size) / Math.log(1024)); 1243 return (size / Math.pow(1024, i)).toFixed(1) * 1 + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i]; 1244 } 1245 </script>
1245 1246 1247
1247<script> 1248 $(function () { 1249 1250 1251 var numberAlerts = false; 1252 1253 var allAlerts = $('#alertsModal').find($('.alertsInfo')); 1254 1255 numberAlerts = allAlerts.length; 1256 1257 allAlerts.each(function (e) { 1258 1259 if (!sessionStorage.getItem("_nps_cookie_accept_alerts" + $(this).attr('data-id') + "")) { 1260 $('#alertsModal').modal('show'); 1261 } else { 1262 $(this).remove(); 1263 numberAlerts = numberAlerts - 1; 1264 setActiveAndDecrementNumber(); 1265 } 1266 1267 }); 1268 1269 $('.acceptCookiesAlerts').on('click', function (e) { 1270 e.preventDefault(); 1271 1272 var currentDataId = $(this).attr('data-id'); 1273 1274 sessionStorage.setItem('_nps_cookie_accept_alerts' + currentDataId + '', '1'); 1275 1276 numberAlerts = numberAlerts - 1; 1277 1278 var currentParentNode = $(this).parent().parent().parent(); 1279 1280 currentParentNode.removeClass('active'); 1281 currentParentNode.remove(); 1282
1283 setActiveAndDecrementNumber(); 1284 1285 }); 1286 1287 function setActiveAndDecrementNumber() { 1288 var newListOfAlerts = $('#alertsModal').find($('.alertsInfo')); 1289 1290 newListOfAlerts.each(function (index, e) { 1291 if (index == 0) { 1292 $(this).addClass('active'); 1293 } 1294 }); 1295 1296 if (numberAlerts == 0) { 1297 $('#alertsModal').modal('hide'); 1298 } 1299 } 1300 1301 var currentColorControl = '#212529'; 1302 1303 $('#controlPrev').css('color', 'initial !important'); 1304 $('#controlNext').css('color', 'initial !important'); 1305 1306 $('#controlPrev').on('mouseover', function () { 1307 1308 $(this).css('color', 'initial !important'); 1309 }); 1310 1311 $('#controlNext').on('mouseover', function () { 1312 1313 $(this).css('color', 'initial !important'); 1314 }); 1315 1316 }); 1317 </script>
1317 1318 </body> 1319</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.