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 Présentation de Villainville - Commune de Villainville </title> 6 7
7<script src="/lib/tarteaucitron/tarteaucitron.js"></script>
7 8
8<script> 9 var tarteaucitronExpireInDay = true, tarteaucitronForceExpire = 183; 10 11 tarteaucitron.init({ 12 "privacyUrl": "", /* Privacy policy url */ 13 14 "hashtag": "#tarteaucitron", /* Open the panel with this hashtag */ 15 "cookieName": "tarteaucitron", /* Cookie name */ 16 17 "orientation": "bottom", /* Banner position (top - bottom) */ 18 19 "showAlertSmall": false, /* Show the small banner on bottom right */ 20 "cookieslist": true, /* Show the cookie list */ 21 22 "showIcon": false, /* Show cookie icon to manage cookies */ 23 // "iconSrc": "", /* Optionnal: URL or base64 encoded image */ 24 "iconPosition": "BottomRight", /* Position of the icon between BottomRight, BottomLeft, TopRight and TopLeft */ 25 26 "adblocker": false, /* Show a Warning if an adblocker is detected */ 27 28 "DenyAllCta": true, /* Show the deny all button */ 29 "AcceptAllCta": true, /* Show the accept all button when highPrivacy on */ 30 "highPrivacy": true, /* HIGHLY RECOMMANDED Disable auto consent */ 31 32 "handleBrowserDNTRequest": false, /* If Do Not Track == 1, disallow all */ 33 34 "removeCredit": false, /* Remove credit link */ 35 "moreInfoLink": true, /* Show more info link */ 36 "useExternalCss": false, /* If false, the tarteaucitron.css file will be loaded */ 37 38 //"cookieDomain": ".my-multisite-domaine.fr", /* Shared cookie for subdomain website */ 39 40 "readmoreLink": "", /* Change the default readmore link pointing to tarteaucitron.io */ 41 42 "mandatory": true, /* Show a message about mandatory cookies */ 43 44 "listCookieByService": false, /* Show a message about list cookie by service */ 45 46 }); 47 </script>
47 48 49 50 51 <meta name="Description" content=""> 52 <meta name="Keywords" content=""> 53 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 54 <meta charset="UTF-8"> 55 56 <!-- Matomo -->
57<script> 58 var _paq = window._paq = window._paq || []; 59 /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ 60 _paq.push(['trackPageView']); 61 _paq.push(['enableLinkTracking']); 62 (function() { 63 var u="//matomo-client.neopse.com/"; 64 _paq.push(['setTrackerUrl', u+'matomo.php']); 65 _paq.push(['setSiteId', '459']); 66 var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; 67 g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); 68 })(); 69</script>
69 70<!-- End Matomo Code --> 71 72 73 74 75 76 77 <link href="/css/slick.css" rel='stylesheet' type='text/css'> 78 <link href="/css/slick-theme.css" rel='stylesheet' type='text/css'> 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 455 456 457 458 459 460 461 462 463 <!-- Header --> 464 <header class="breadcrumb container d-flex align-items-center bg"> 465 <div class="ov"></div> 466 <div class="container"> 467 <h1 class="title dark c_title">Présentation de Villainville</h1> 468 <nav class="ariane c_text"> 469 <span><a href="/">Accueil</a></span> 470 / <a href="/">Accueil</a> 471 / <a href="/fr/rb/1292449/presentation-de-villainville">Présentation de Villainville</a> 472 </nav> 473 </div> 474</header> 475 476 477 478 <!-- Contenu --> 479 <section class="container wrapper bg_wrapper c_wrapper"> 480 <div class="ov bgw"></div> 481 482 <div class="main-content dynamicContent"> 483 <div class="row"> 484 <div class="col col-md contenu"> 485 486 487 <div class="dynamicContent"> 488 <div class="row"> 489 <div class="col-sm-12" 490 style="background-color: "> 491 <p><strong>Villainville</strong> est une commune située dans le département de la Seine-Maritime (rég
491ion de Haute-Normandie). <br>Le village de Villainville appartient au canton de <strong>Criquetot-l'Esneval.</strong> <br>Les habitants de Villainville s'appellent les <strong>Villainvillais</strong> et étaient au nombre de 324 au recensement de 2012 soit une densité de 88,76 habitants/km<sup>2</sup>. <br>La superficie est de 3,65 km². Sa latitude est 49.6609360 et sa longitude 0.2399570.</p><p>Villainville porte le code Insee 76741 et est associée au code postal <strong>76280</strong>. <br>Elle se situe géographiquement à une altitude de 110 mètres environ.<br>La commune française la plus éloignée de Villainville est BONIFACIO, située à 1149,9 km à vol d'oiseau<br>Homonymes : aucune autre ville ne porte le nom ''Villainville'' en France.</p><p> </p> 492 <div class="col-sm-12 blue haveClone" style="height: 300px"></div> 493 </div> 494 </div> 495 496 497 <div class="my-5"></div> 498 <hr> 499 </div> 500 <div class="dynamicContent"> 501 502 <div class="row"> 503 <div class="col-sm-8" 504 style="background-color: "> 505 <p><strong>Géographie et plan de Villainville :</strong><br>- L'altitude de la mairie de Villainville est de <strong>110 mètres environ</strong>. <br>- L'altitude minimum et maximum de Villainville sont respectivements de <strong>27 m et 129 m</strong>.  <br>- La superficie de Villainville est de <strong>3,65 km</strong><sup><strong>2</strong> </sup> soit <strong>365 hectares</strong>. <br>- La latitude de Villainville est de <strong>49.661 degrés Nord</strong> et la longitude de Villainville est de <strong>0.244 degrés Est. </strong><br>- Les coordonnées géographiques de Villainville en Degré Minute Seconde calculées dans le <strong>système géodésique</strong> WGS84 sont <strong>49° 39' 38'' de latitude Nord et 00° 14' 31'' de longitude Est. </strong><br>- Les coordonnées géographiques de Villainville en Lambert 93 du chef-lieu en hectomètres sont:  X = 5 008 hectomètres  Y = 69 547 hectomètres <br>- Les villes et villages proches de Villainville sont :  <strong>Pierrefiques (76) à 1,52 km</strong> de Villainville, <strong>Cuverville (76) à 1,53 km</strong> de Villainville, <strong>Beaurepaire (76) à 1,80 km</strong> de Villainville, <strong>Criquetot-l'Esneval (76) à 2,43 km</strong> de Villainville, <strong>Gonneville-la-Mallet (76) à 2,81 km </strong>de Villainville  <br><br><br><span style="font-size:8px;">Sources : http://www.cartesfrance.fr/carte-france-ville/plan_76741_Villainville.html#ixzz73siOVyNG</span></p> 506 </div> 507 <div class="col-sm-4" 508 style="background-color: "> 509 <div class="photo-panel text-center"> <img src="https://static.neopse.com/medias/p/2755/site/9d/4c/4a/9d4c4a0b25398fd5efffae5a3d2b9c77a04c17b8.png?v=v1" width="100%" height="" class="img-fluid" data-target="" data-url="" data-width="" style="display: inline-block;" alt="plan-villainville-satellite.png"> </div> 510 <div class="photo-panel text-center"> <img src="https://static.neopse.com/medias/p/2755/site/eb/26/e7/eb26e795c0be116dbc836c5ab76ea45064a3b1c4.png?v=v1" width="100%" height="" class="img-fluid" data-target="" data-url="" data-width="" style="display: inline-block;" alt="Plan-villainville-google.png"> </div> 511 </div> 512 </div> 513 514 515 <div class="my-5"></div> 516 517 <div class="row"> 518 <div class="col-sm-6" 519 style="background-color: "> 520 <div class="photo-panel text-center"> <img src="https://static.neopse.com/medias/p/2755/site/88/4f/89/884f8911e6ed30676a84abcd83050484f6fc9ff6.png?v=v1" width="100%" height="" class="img-fluid" data-target="" data-url="" data-width="" style="display: inline-block;" alt="Villainville-france.png"> </div> 521 </div> 522 <div class="col-sm-6" 523 style="background-color: "> 524 <div class="photo-panel text-center"> <img src="https://static.neopse.com/medias/p/2755/site/42/28/0e/42280e0ccb0e1c8a99dc7e160f359f809635d1a7.png?v=v1" width="100%" height="" class="img-fluid" data-target="" data-url="" data-width="101" style="display: inline-block; width: 101%;" alt="Departement-villainville.png"> </div> 525 </div> 526 </div> 527 528 529 <div class="my-5"></div> 530 <hr> 531 </div> 532 </div> 533 534 535 </div> 536 </div> 537 </section> 538 539 </div> 540 541 <div class="modal fade pdfModal" id="pdfModal" tabindex="-1" role="dialog" aria-label="Prévisualisation du PDF" aria-hidden="true"> 542 <div class="modal-dialog" role="document"> 543 <div class="modal-content"> 544 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
545 <span aria-hidden="true">×</span> 546 </button> 547 548 <embed type="application/pdf"> 549 </div> 550 </div> 551</div> 552 </main> 553 554 <div id="previewModalImage" class="modal"> 555 556 <!-- The Close Button --> 557 <span id="closePreviewImage" class="close">×</span> 558 559 <!-- Navigation Buttons --> 560 <a id="prevImage" class="modal-nav prev" href="javascript:void(0)">❮</a> 561 <a id="nextImage" class="modal-nav next" href="javascript:void(0)">❯</a> 562 563 <!-- Image Counter --> 564 <div id="imageCounter" class="image-counter"></div> 565 566 <!-- Modal Content (The Image) --> 567 <div id="containerPreviewImage"><img role="img" class="modal-content" alt=""></div> 568 569 <!-- Modal Caption (Image Text) --> 570 <div id="captionPreviewImage"></div> 571 </div> 572 573
573<script> 574 (function() { 575 // Get the modal elements 576 const modal = document.getElementById('previewModalImage'); 577 const modalImg = modal.querySelector('img'); 578 const captionText = document.getElementById('captionPreviewImage'); 579 const closePreviewImage = document.getElementById('closePreviewImage'); 580 const prevBtn = document.getElementById('prevImage'); 581 const nextBtn = document.getElementById('nextImage'); 582 const imageCounter = document.getElementById('imageCounter'); 583 584 let currentImages = []; 585 let currentIndex = 0; 586 587 // Helper function to check if element is visible 588 function isVisible(element) { 589 return element && element.offsetParent !== null; 590 } 591 592 // Helper function to toggle element visibility 593 function toggleElement(element, show) { 594 if (element) { 595 element.style.display = show ? 'block' : 'none'; 596 } 597 } 598 599 // Function to update the modal with a specific image 600 function updateModal(index) { 601 if (currentImages.length === 0) return; 602 603 currentIndex = index; 604 const img = currentImages[currentIndex]; 605 modalImg.setAttribute('src', img.src); 606 modalImg.setAttribute('alt', img.alt || ''); 607 captionText.innerHTML = img.alt || ''; 608 609 // Update counter 610 imageCounter.textContent = (currentIndex + 1) + ' / ' + currentImages.length; 611 612 // Show/hide navigation buttons 613 const showNav = currentImages.length > 1; 614 toggleElement(prevBtn, showNav); 615 toggleElement(nextBtn, showNav); 616 toggleElement(imageCounter, showNav); 617 } 618 619 // Function to show next image 620 function showNext() { 621 if (currentImages.length === 0) return; 622 currentIndex = (currentIndex + 1) % currentImages.length; 623 updateModal(currentIndex); 624 } 625 626 // Function to show previous image 627 function showPrev() { 628 if (currentImages.length === 0) return; 629 currentIndex = (currentIndex - 1 + currentImages.length) % currentImages.length; 630 updateModal(currentIndex); 631 } 632 633 // Helper function to find closest ancestor with class 634 function closest(element, selector) { 635 if (!element) return null; 636 637 // For class selector (e.g., '.splide__slide') 638 if (selector.startsWith('.')) { 639 const className = selector.slice(1); 640 let current = element; 641 while (current && current !== document) { 642 if (current.classList && current.classList.contains(className)) { 643 return current; 644 } 645 current = current.parentElement; 646 } 647 } 648 return null; 649 } 650 651 // When clicking on an image 652 document.addEventListener('click', function(e) { 653 const target = e.target; 654 // Check if clicked element is an image with class .img or .main-img inside .splide 655 if (target.tagName === 'IMG' && 656 (target.classList.contains('img') || target.classList.contains('main-img')) && 657 closest(target, '.splide')) { 658 659 // Find the clicked image's parent slide 660 const clickedSlide = closest(target, '.splide__slide'); 661 if (!clickedSlide) return; 662 663 // Find the list that contains this slide 664 const splideList = closest(clickedSlide, '.splide__list'); 665 if (!splideList) return; 666 667 // Get all slides from this specific list 668 const allSlides = splideList.querySelectorAll('.splide__slide'); 669 670 // Get all images from these slides only, deduplicating by src 671 // (Splide duplicates slides in loop mode, so we need to filter duplicates) 672 currentImages = []; 673 const seenSrcs = new Set(); 674 const clickedSrc = target.src; 675
676 allSlides.forEach(function(slide) { 677 const slideImg = slide.querySelector('.img, .main-img'); 678 if (slideImg) { 679 const imgSrc = slideImg.src; 680 // Only add if we haven't seen this src before 681 if (!seenSrcs.has(imgSrc)) { 682 seenSrcs.add(imgSrc); 683 currentImages.push(slideImg); 684 } 685 } 686 }); 687 688 // Find the index of the clicked image by src (to handle duplicates) 689 currentIndex = currentImages.findIndex(function(img) { 690 return img.src === clickedSrc; 691 }); 692 693 if (currentIndex === -1) { 694 currentIndex = 0; // Fallback to first image 695 } 696 697 // Update and show modal 698 updateModal(currentIndex); 699 modal.style.display = 'block'; 700 } 701 }); 702 703 // Navigation button handlers 704 if (nextBtn) { 705 nextBtn.addEventListener('click', function (e) { 706 e.preventDefault(); 707 e.stopPropagation(); 708 showNext(); 709 }); 710 } 711 712 if (prevBtn) { 713 prevBtn.addEventListener('click', function (e) { 714 e.preventDefault(); 715 e.stopPropagation(); 716 showPrev(); 717 }); 718 } 719 720 // Keyboard navigation 721 document.addEventListener('keydown', function (e) { 722 // Check if modal is visible by checking display style 723 const isModalVisible = modal.style.display !== 'none' && 724 (modal.style.display === 'block' || 725 window.getComputedStyle(modal).display !== 'none'); 726 727 if (isModalVisible) { 728 if (e.key === 'ArrowRight' || e.keyCode === 39) { 729 e.preventDefault(); 730 showNext(); 731 } else if (e.key === 'ArrowLeft' || e.keyCode === 37) { 732 e.preventDefault(); 733 showPrev(); 734 } else if (e.key === 'Escape' || e.keyCode === 27) { 735 e.preventDefault(); 736 e.stopPropagation(); 737 modal.style.display = 'none'; 738 } 739 } 740 }); 741 742 // When the user clicks on <span> (x), close the modal 743 if (closePreviewImage) { 744 closePreviewImage.addEventListener('click', function () { 745 modal.style.display = 'none'; 746 }); 747 } 748 749 // Close modal when clicking outside the image 750 modal.addEventListener('click', function (e) { 751 if (e.target === modal) { 752 modal.style.display = 'none'; 753 } 754 }); 755 })(); 756 </script>
756 757 758 759 760 761 <!-- Footer --> 762<footer role="contentinfo" class="footer bg footer1"> 763 <div class="ov"></div> 764 <div class="container d-flex flex-wrap justify-content-between"> 765 <div class="footer-container"> 766 <h2 class="title light c_title d_title btn-line"><a 767 href="/fr/ct/1722346/contacts-1074">Contacts</a></h2> 768<div class="footer-box"> 769 <div class="contact c_text"> 770 <p class="font-weight-bold mb-0" aria-label="Nom du structure">Commune de Villainville</p> 771 <p class="mb-0" aria-label="adresse">704, route d'Ãtretat</p> 772 <p class="mb-0" aria-label="adresse 2">76280 Villainville - FRANCE</p> 773 <p class="mb-0"><a href="tel:+33235298559" title="Numéro de téléphone">+33 2 35 29 85 59</a></p> 774 <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> 775 </p> 776 777 <div class="mt-4"> 778 <p style="margin:0;"><strong>HORAIRES</strong></p> 779 <p><strong><span style="color:#f39c12">Accueil public par la secrétaire de mairie:</span></strong><br /> 780Lundi:9h00-12h/13h30-16h00<br /> 781Mardi:9h00-12h/13h30-16h00<br /> 782Jeudi:9h00-12h<br /> 783<br /> 784<strong><span style="color:#f39c12">Accueil public avec Monsieur le Maire ou adjoint:</span></strong><br /> 785les samedis de 9h30 à 11h00.<br /> 786<br /> 787Pour les dépôts de dossiers d’urbanisme, location de salle, état civil, recensement citoyen, RDV avec Monsieur le Maire ou adjoints...<br /> 788<br /> 789Pour prendre rendez-vous, vous devez contacter la mairie de Villainville par courriel à : [email protected]</p> 790 </div> 791 </div> 792 793 794</div> 795 796 797 798 <div class="social-media"> 799 <ul class="c_text"> 800 </ul> 801</div> 802 803 804 </div> 805 806 807 </div> 808 <div class="container d-flex flex-wrap position-relative c_text"> 809 <p class="mr-2 c_text"><a href="/fr/li/1722385/mentions-legales-1238">Mentions légales</a> 810</p> - 811 <p class="mr-2 ml-2 c_text"><a href="/fr/1722385/politique-confidentialite">Politique de confidentialité</a> 812</p> - 813 <p class="mr-2 ml-2 c_text"><a href="/fr/accessibilite">Accessibilité</a> 814</p> - 815 816 <p class="mr-2 ml-2 c_text"> 817 <a href="/fr/sm/71622/plan-du-site-1"> 818 Plan du site</a></p>- 819 <p class="ml-2 c_text"><a href="#tarteaucitron">Gestion des cookies</a></p> 820 </div> 821</footer> 822 823<div class="modal fade" id="contactFormContactFooter" tabindex="-1" role="dialog" aria-labelledby="modalFooter-label" aria-hidden="true" 824 style="color:initial;-webkit-transform: translateZ(0);transform: translateZ(0);"> 825 <div class="modal-dialog" role="document"> 826 <div class="modal-content"> 827 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 828 <span aria-hidden="true">×</span> 829 </button> 830 831 <div class="modal-header bg_bloc"> 832 <h4 id="modalFooter-label" class="modal-title font-weight-bold dark text_bloc">Contact Mairie</h4> 833 </div> 834 <form id="contactFormFooter" action="/formMdContact" method="post" 835 novalidate enctype="multipart/form-data"> 836 <div class="modal-body pb-0"> 837 838 <div class="field-wrapper"><p class="title">Contact Mairie</p></div> <div class="field-wrapper"> 839 <div><label class="control-label generalLabel font-weight-bold mr-1">Destinataire de votre message <span 840 class="cursor-pointer" data-toggle="popover" data-content="Sélectionnez"><i 841 class="material-icons align-top">info_outline</i></span> </label><span>*</span></div> 842 843 <div class="form-check d-block"> 844 <label class="form-check-label"><input class="form-check-input" type="checkbox" name="2_check_list[]" value="Karine Ramain- Maire">Karine Ramain- Maire<span 845 class="form-check-sign"><span class="check"></span></span></label> 846 </div> 847 <div class="form-check d-block"> 848 <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 849 class="form-check-sign"><span class="check"></span></span></label> 850 </div> 851 <div class="form-check d-block"> 852 <label class="form-check-label"><input class="form-check-input" type="checkbox" name="2_check_list[]" value="Secretariat de mairie ">Secretariat de mairie <span 853 class="form-check-sign"><span class="check"></span></span></label> 854 </div>
855 <span class="form-error requirements" id="2_check_list-error" role="alert">Ce champ est obligatoire</span> 856</div> <div class="form-group"> 857 <div><label for="3_email">Votre adresse e-mail</label><span>*</span></div> 858 <input type="email" name="3_email" class="form-control" id="3_email" 859 aria-label="Votre adresse e-mail"> 860 <span class="help-message cursor-pointer" data-toggle="popover" data-content="Veuillez"><i 861 class="material-icons">info_outline</i></span> <span class="form-error requirements" id="3_email-error" role="alert">Ce champ est obligatoire</span> 862</div> 863 <div class="form-group"> 864 <div><label for="4_date" id="4_dateLabel">Date</label><span>*</span></div> 865 <div class="d-flex align-items-end"> 866 <div class="col-10 col-md-5 mr-3 px-0"> 867 <input type="date" name="4_date" class="form-control" id="4_date" aria-describedby="4_dateLabel" placeholder="Date"> 868 <span class="help-message"><i class="material-icons notranslate">date_range</i></span> 869 </div> 870 <div data-toggle="popover" data-content=""> 871 </div> 872 </div> 873 <span class="form-error requirements" id="4_date-error" role="alert">Ce champ est obligatoire</span> 874</div> 875 <div class="form-group"> 876 <div><label for="5_textarea">Nom</label><span></span> 877 </div> 878 <textarea name="5_textarea" class="form-control pl-0" id="5_textarea" rows="3"></textarea> 879 <span class="form-error requirements" id="5_textarea-error" role="alert">Ce champ est obligatoire</span> 880</div> 881 <div class="form-group"> 882 <div class="h-recaptcha m-auto d-inline-block"></div> 883 <div class="form-error requirements" id="h-captcha-response-error" role="alert">Ce champ est obligatoire 884 </div> 885</div> </div> 886 <div class="modal-footer"> 887 <button id="formContactForm" type="submit" class="btn bg_btn c_btn formContactForm" aria-label="Envoyer">ENVOYER</button> 888 </div> 889 <div class="m-3"> 890 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 /> 891Vos 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 /> 892<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 /> 893<span style="background-color:null">- Par voie électronique à l’adresse : […….] ; </span><br /> 894<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 /> 895<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. 896 </div> 897 </form> 898 899 <div id="messageSendedFormContactFooter" class="form-message-sent" style="display: none"> 900 <p role="status">Le message a bien été envoyé à son destinataire. Merci.</p> 901 </div> 902 </div> 903 </div> 904</div> 905 906 <div class="footer-bottom" style="position: relative;"> 907 <div class="container"> 908 <p> 909 <a href="https://reseaudescommunes.fr/?utm_source=rdcclients&utm_medium=footerlink" target="_blank"> 910 <img role="img" src="/images/rdc-logo-footer-2.png" alt="logo Réseau des Communes" class="img-fluid">
911 Site créé en partenariat avec Réseau des Communes 912 </a> 913 </p> 914 </div> 915</div> 916 <div class="modal fade pdfModal" id="pdfModal" tabindex="-1" role="dialog" aria-label="Prévisualisation du PDF" aria-hidden="true"> 917 <div class="modal-dialog" role="document"> 918 <div class="modal-content"> 919 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 920 <span aria-hidden="true">×</span> 921 </button> 922 923 <embed type="application/pdf"> 924 </div> 925 </div> 926</div> 927 928 929
929<script src="/js/vendor/popper.min.js"></script>
929 930
930<script src="/js/vendor/bootstrap.min.js"></script>
930 931 932 <!-- Carousel --> 933
933<script src='/dist/owlcarousel/js/owl.carousel.min.js'></script>
933 934
934<script src='/dist/owlcarousel/js/owl.linked.js'></script>
934 935 936
936<script src="/lib/splide-4.0.1/js/splide.min.js"></script>
936 937
937<script src="/lib/splide-4.0.1/extensions/autoscroll/js/splide-extension-auto-scroll.min.js"></script>
937 938 939
939<script src='/dist/slick/slick.js'></script>
939 940
940<script src='/dist/scrollbar/jquery.scrollbar.min.js'></script>
940 941 942
942<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.2/js/bootstrap-select.min.js"></script>
942 943 944
944<script src='/dist/pagination.min.js'></script>
944 945 946
946<script src="/js/shared.js?v1"></script>
946 947
947<script src="/tpl/1/js/main.js"></script>
947 948
948<script src="/lib/chartjs/Chart.js"></script>
948 949
949<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/js/bootstrap-multiselect.js"></script>
949 950 951
951<script type="text/javascript"> 952 953 tarteaucitron.user.matomoId = 6; 954 (tarteaucitron.job = tarteaucitron.job || []).push('matomohightrack'); 955 956 957 (tarteaucitron.job = tarteaucitron.job || []).push('youtube'); 958 (tarteaucitron.job = tarteaucitron.job || []).push('dailymotion'); 959 (tarteaucitron.job = tarteaucitron.job || []).push('vimeo'); 960 (tarteaucitron.job = tarteaucitron.job || []).push('othervideo'); 961 962 tarteaucitron.user.googleTranslateCallback = function () { 963 new google.translate.TranslateElement({pageLanguage: 'fr'}, 'google_translate'); 964 }; 965 (tarteaucitron.job = tarteaucitron.job || []).push('googletranslate'); 966 </script>
966 967 968 969
969<script src="/js/slick/slick.js"></script>
969 970 971
971<script type="text/javascript"> 972 $(function () { 973 $('.titleButtonForm').on('click', function () { 974 console.log($(this).attr("data-target")); 975 $('#' + $(this).attr("data-target") + '').modal('show'); 976 }); 977 978 979 $('.form-error').hide(); 980 981 $('.contactContentForm').submit(function (e) { 982 let form = $(this); 983 let modal = form.closest('.modal'); 984 985 $.ajax({ 986 type: "POST", 987 url: form.attr('action'), 988 data: new FormData(form[0]), 989 contentType: false, 990 processData: false, 991 beforeSend: function () { 992 form.find('.form-error').hide(); 993 form.find('.buttonContactFormContent').attr('disabled', true); 994 }, 995 success: function (response) { 996 hcaptcha.reset(); 997 998 if (response.status === 'KO') { 999 let errors = response.errors; 1000 for (let index in errors) { 1001 if (errors.hasOwnProperty(index)) { 1002 let attr = errors[index]; 1003 let error = attr[Object.keys(attr)[0]]; 1004 form.find('#' + index + '-error').text(error).show(); 1005 } 1006 } 1007 } 1008 else { 1009 1010 form.css('display', 'none'); 1011 modal.find('.messageSendedForm').css('display', ''); 1012 form[0].reset(); 1013 } 1014 }, 1015 complete: function () { 1016 form.find('.buttonContactFormContent').prop('disabled', false); 1017 } 1018 }); 1019 1020 return false; 1021 }); 1022 1023 $('.contactFormModal').on('hidden.bs.modal', function () { 1024 $(this).find('form')[0].reset(); 1025 $('#contactFormFooter')[0].reset(); 1026 1027 $(this).find('form').css('display', ''); 1028 $('#contactFormFooter').css('display', ''); 1029 1030 $(this).find('.messageSendedForm').css('display', 'none'); 1031 1032 $('.form-error').hide(); 1033 1034 $('.listFiles').empty(); 1035 1036 hcaptcha.reset(); 1037 }); 1038 1039 }); 1040 </script>
1040 1041 1042 1043
1043<script type="text/javascript"> 1044 $(function () { 1045 var carousels = $('div[class*="testCarousel"]'); 1046// gestion chargement slide slick 1047 carousels.each(function () { 1048 1049 $(this).find($('div[class="overlayNumber"]')).removeClass('overlayNumber'); 1050 1051 if ($(this).attr("data-type-slide") === 'simpleCarousel') { 1052 1053 $(this).slick(); 1054 } 1055 else if ($(this).attr("data-type-slide") === 'multipleCarousel') { 1056 $(this).slick({ 1057 infinite: true, 1058 slidesToShow: 3, 1059 slidesToScroll: 3, 1060 responsive: [ 1061 { 1062 breakpoint: 1024, 1063 settings: { 1064 slidesToShow: 3, 1065 slidesToScroll: 3, 1066 infinite: true, 1067 dots: true 1068 } 1069 }, 1070 { 1071 breakpoint: 600, 1072 settings: { 1073 slidesToShow: 2, 1074 slidesToScroll: 2 1075 } 1076 }, 1077 { 1078 breakpoint: 480, 1079 settings: { 1080 slidesToShow: 1, 1081 slidesToScroll: 1 1082 } 1083 } 1084 ] 1085 }); 1086 1087 } 1088 else if ($(this).attr("data-type-slide") === 'responsiveCarousel') { 1089 $(this).slick({ 1090 dots: true, 1091 infinite: false, 1092 speed: 300, 1093 slidesToShow: 4, 1094 slidesToScroll: 4, 1095 responsive: [ 1096 { 1097 breakpoint: 1024, 1098 settings: { 1099 slidesToShow: 3, 1100 slidesToScroll: 3, 1101 infinite: true, 1102 dots: true 1103 } 1104 }, 1105 { 1106 breakpoint: 600, 1107 settings: { 1108 slidesToShow: 2, 1109 slidesToScroll: 2 1110 } 1111 }, 1112 { 1113 breakpoint: 480, 1114 settings: { 1115 slidesToShow: 1, 1116 slidesToScroll: 1 1117 } 1118 } 1119 ] 1120 }); 1121 1122 } 1123 else if ($(this).attr("data-type-slide") === 'adaptiveCarousel') { 1124 $(this).slick({ 1125 dots: true, 1126 infinite: true, 1127 speed: 300, 1128 slidesToShow: 1, 1129 adaptiveHeight: true 1130 }); 1131 1132 } 1133 else if ($(this).attr("data-type-slide") === 'centerCarousel') { 1134 $(this).slick({ 1135 centerMode: true, 1136 centerPadding: '60px', 1137 slidesToShow: 3, 1138 responsive: [ 1139 { 1140 breakpoint: 768, 1141 settings: { 1142 arrows: false, 1143 centerMode: true, 1144 centerPadding: '40px', 1145 slidesToShow: 3 1146 } 1147 }, 1148 { 1149 breakpoint: 480, 1150 settings: {
1151 arrows: false, 1152 centerMode: true, 1153 centerPadding: '40px', 1154 slidesToShow: 1 1155 } 1156 } 1157 ] 1158 }); 1159 1160 } 1161 else if ($(this).attr("data-type-slide") === 'fadeCarousel') { 1162 $(this).slick({ 1163 dots: true, 1164 infinite: true, 1165 speed: 500, 1166 fade: true, 1167 cssEase: 'linear' 1168 }); 1169 } 1170 1171 // if ($(this).hasClass('autoPlay')) { 1172 // $('#' + $(this).attr('id') + '').slick('slickSetOption', { 1173 // autoplay: true, 1174 // autoplaySpeed: 2000 1175 // }, true); 1176 // } 1177 1178 $(this).removeAttr('style'); 1179 }); 1180 1181 var allHtmlCode = $('.contentHtml'); 1182 1183 allHtmlCode.each(function (element) { 1184 var htmlCode = $(this).attr('data-code'); 1185 1186 if(htmlCode != '' && htmlCode != undefined){ 1187 $(this).removeClass('col-md-8'); 1188 $(this).empty(); 1189 1190 addWidgetHtml(htmlCode,$(this)); 1191 } 1192 1193 1194 }); 1195 1196 async function addWidgetHtml(htmlCode,element){ 1197 element.replaceWith(htmlCode); 1198 } 1199 1200 // setTimeout(function(){ 1201 // $('.contentHtml').each(function(element){ 1202 // var htmlCode = $(this).attr('data-code'); 1203 // 1204 // if(htmlCode.includes('apidae')){ 1205 // let idWidget = $(this).find($('#widgit')); 1206 // 1207 // $(this).find('.w_large').remove(); 1208 // 1209 // $(this).find('div').addClass('w_large'); 1210 // } 1211 // }); 1212 // }, 3000); 1213 1214 let allIframe = $('iframe'); 1215 1216 allIframe.each(function(element){ 1217 var urlVideo = $(this).attr('src'); 1218 let $this = $(this); 1219 1220 if(urlVideo != "" || urlVideo != undefined){ 1221 let newUrl = urlVideo.split('/'); 1222 let currentIdVideo = newUrl[newUrl.length-1]; 1223 1224 1225 if(urlVideo.includes('youtube')||urlVideo.includes('youtu.be')){ 1226 1227 $.ajax({ 1228 url: '/getVideoTitle', 1229 type: 'POST', 1230 data: { 1231 video_id: currentIdVideo, 1232 platform: 'Y' 1233 }, 1234 success: function(data){ 1235 let title = data['title']; 1236 $this.attr('title',title); 1237 } 1238 }); 1239 } 1240 else if(urlVideo.includes('dailymotion')||urlVideo.includes('dai.ly')){ 1241 1242 $.get("https://api.dailymotion.com/video/"+currentIdVideo+"?fields=title", function(data) { 1243 let title = data['title']; 1244 $this.attr('title',title); 1245 }); 1246 } 1247 else if(urlVideo.includes('vimeo')){ 1248 1249 $.ajax({ 1250 url: '/getVideoTitle', 1251 type: 'POST', 1252 data: { 1253 video_id: currentIdVideo, 1254 platform: 'V' 1255 }, 1256 success: function(data){ 1257 let title = data['title']; 1258 $this.attr('title',title); 1259 } 1260 }); 1261 } 1262 } 1263 }); 1264 }); 1265 </script>
1265 1266 1267
1267<script type="text/javascript"> 1268 $(document).ready(function () { 1269 }); 1270 1271 </script>
1271 1272 1273 1274
1274<script> 1275 (function (i, s, o, g, r, a, m) { 1276 i['InstanaEumObject'] = r; 1277 i[r] = i[r] || function () { 1278 (i[r].q = i[r].q || []).push(arguments) 1279 }, i[r].l = 1 * new Date(); 1280 a = s.createElement(o), 1281 m = s.getElementsByTagName(o)[0]; 1282 a.async = 1; 1283 a.src = g; 1284 m.parentNode.insertBefore(a, m) 1285 })(window, document, 'script', '//eum.instana.io/eum.min.js', 'ineum'); 1286 ineum('reportingUrl', 'https://eum-eu-west-1.instana.io'); 1287 ineum('apiKey', '9yG9cnlKTcS4le-zMVtBJA'); 1288 1289 // set the name of a page on which this load/errors/calls happened 1290 ineum('page', 'front-site'); 1291 </script>
1291 1292 1293 1294
1294<script src="https://js.hcaptcha.com/1/api.js?hl=fr&onload=CaptchaCallback&render=explicit" async defer></script>
1294 1295 1296
1296<script type="text/javascript"> 1297 var CaptchaCallback = function () { 1298 $('.h-recaptcha').each(function (index, el) { 1299 hcaptcha.render(el, {'sitekey': 'f5095cfb-139b-47da-88e2-f0d2e7485392'}); 1300 }); 1301 }; 1302 1303 var originalStyle = false; 1304 1305 $(window).on('shown.bs.modal', function () { 1306 originalStyle = $('body').attr('style'); 1307 1308 $('body').attr('style', ''); 1309 }); 1310 1311 $(window).on('hidden.bs.modal', function () { 1312 $('body').attr('style', originalStyle); 1313 1314 }); 1315 1316 </script>
1316 1317 1318
1318<script> 1319 $(document).ready(function () { 1320 1321 $('.selectpicker').selectpicker(); 1322 1323 var input = $('input[type=file]'); 1324 1325 input.on('change', function () { 1326 var list = $(this).parent().parent().parent().parent().find($('.listFiles')); 1327 list.empty(); 1328 1329 for (var x = 0; x < this.files.length; x++) { 1330 var newFile = '<li>Fichier joint : ' + this.files[x].name + ' (' + humanFileSize(this.files[x].size) + ')</li>'; 1331// li.innerHTML = 'File ' + (x + 1) + ': ' + input.files[x].name; 1332 list.append(newFile); 1333 } 1334 }); 1335 1336 $('.form-error').hide(); 1337 $('#contactFormFooter').submit(function (e) { 1338 let form = $(this); 1339 1340 $.ajax({ 1341 type: "POST", 1342 url: form.attr('action'), 1343 data: new FormData(form[0]), 1344 contentType: false, 1345 processData: false, 1346 beforeSend: function () { 1347 form.find('.form-error').hide(); 1348 $('.formContactForm').attr('disabled', true); 1349 }, 1350 success: function (response) { 1351 hcaptcha.reset(); 1352 1353 if (response.status === 'KO') { 1354 let errors = response.errors; 1355 for (let index in errors) { 1356 if (errors.hasOwnProperty(index)) { 1357 let attr = errors[index]; 1358 let error = attr[Object.keys(attr)[0]]; 1359 form.find('#' + index + '-error').text(error).show(); 1360 } 1361 } 1362 } else { 1363 1364 $('#contactFormFooter').css('display', 'none'); 1365 $('#messageSendedFormContactFooter').css('display', ''); 1366 form[0].reset(); 1367 } 1368 }, 1369 complete: function () { 1370 1371 $('.formContactForm').removeAttr('disabled'); 1372 } 1373 }); 1374 1375 return false; 1376 }); 1377 1378 $('#contactFormContactFooter').on('hidden.bs.modal', function () { 1379 $('#contactFormFooter')[0].reset(); 1380 1381 $('#contactFormFooter').css('display', ''); 1382 1383 $('#messageSendedFormContactFooter').css('display', 'none'); 1384 1385 $('.form-error').hide(); 1386 1387 $('.listFiles').empty(); 1388 1389 hcaptcha.reset(); 1390 }); 1391 1392 1393 }); 1394 1395 function humanFileSize(size) { 1396 var i = Math.floor(Math.log(size) / Math.log(1024)); 1397 return (size / Math.pow(1024, i)).toFixed(1) * 1 + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i]; 1398 } 1399 </script>
1399 1400 1401
1401<script> 1402 $(function () { 1403 1404 1405 var numberAlerts = false; 1406 1407 var allAlerts = $('#alertsModal').find($('.alertsInfo')); 1408 1409 numberAlerts = allAlerts.length; 1410 1411 allAlerts.each(function (e) { 1412 1413 if (!sessionStorage.getItem("_nps_cookie_accept_alerts" + $(this).attr('data-id') + "")) { 1414 $('#alertsModal').modal('show'); 1415 } else { 1416 $(this).remove(); 1417 numberAlerts = numberAlerts - 1; 1418 setActiveAndDecrementNumber(); 1419 } 1420 1421 }); 1422 1423 $('.acceptCookiesAlerts').on('click', function (e) { 1424 e.preventDefault(); 1425 1426 var currentDataId = $(this).attr('data-id'); 1427 1428 sessionStorage.setItem('_nps_cookie_accept_alerts' + currentDataId + '', '1'); 1429 1430 numberAlerts = numberAlerts - 1; 1431 1432 var currentParentNode = $(this).parent().parent().parent(); 1433 1434 currentParentNode.removeClass('active'); 1435 currentParentNode.remove(); 1436
1437 setActiveAndDecrementNumber(); 1438 1439 }); 1440 1441 function setActiveAndDecrementNumber() { 1442 var newListOfAlerts = $('#alertsModal').find($('.alertsInfo')); 1443 1444 newListOfAlerts.each(function (index, e) { 1445 if (index == 0) { 1446 $(this).addClass('active'); 1447 } 1448 }); 1449 1450 if (numberAlerts == 0) { 1451 $('#alertsModal').modal('hide'); 1452 } 1453 } 1454 1455 var currentColorControl = '#212529'; 1456 1457 $('#controlPrev').css('color', 'initial !important'); 1458 $('#controlNext').css('color', 'initial !important'); 1459 1460 $('#controlPrev').on('mouseover', function () { 1461 1462 $(this).css('color', 'initial !important'); 1463 }); 1464 1465 $('#controlNext').on('mouseover', function () { 1466 1467 $(this).css('color', 'initial !important'); 1468 }); 1469 1470 }); 1471 </script>
1471 1472 </body> 1473</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.