1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 7 8 9 <link rel="alternate" hreflang="en" href="https://www.cretevillas4u.com/en/contact"/> 10 11 12 13 <link rel="alternate" hreflang="de" href="https://www.cretevillas4u.com/de/contact"/> 14 15 16 17 18 19 <link rel="alternate" hreflang="fr" href="https://www.cretevillas4u.com/fr/contact"/> 20 21 22 23 <link rel="alternate" hreflang="x-default" href="https://www.cretevillas4u.com/en/contact"/> 24 25 26 <title>Cretevillas4u.com - Contact</title> 27 <meta name="description" content="In this page you can contact us about questions you might have about our villa properties, our services or about your reservations in Crete."> 28 <meta name="keywords" content="cretevillas4u contact form, cretevillas4u communication form, cretevillas4u contact form"> 29 <link rel="canonical" href="https://www.cretevillas4u.com/en/contact"/> 30 <meta property="og:site_name" content="CreteVillas4u"/> 31 <meta property="og:title" content="Cretevillas4u.com - Contact"/> 32 <meta property="og:description" content="In this page you can contact us about questions you might have about our villa properties, our services or about your reservations in Crete."/> 33 <meta property="og:image" content="https://cretevillas4u.com/assets/img/fb_share_1200x630_v2.jpg"/> 34 <meta property="og:url" content="https://www.cretevillas4u.com/en/contact"/> 35 <meta property="og:locale" content="en_US"/> 36 <meta property="fb:app_id" content="819265298199864"/> 37 <meta property="og:type" content="website"/> 38 <meta name="twitter:card" content="summary_large_image"/> 39 <meta name="twitter:title" content="Cretevillas4u.com - Contact"/> 40 <meta name="twitter:description" content="In this page you can contact us about questions you might have about our villa properties, our services or about your reservations in Crete."/> 41 <meta name="twitter:image" content="https://cretevillas4u.com/assets/img/fb_share_1200x630_v2.jpg"/> 42 <meta name="viewport" content="width=device-width, initial-scale=1"> 43 <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png"> 44 <link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png"> 45 <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-72x72.png"> 46 <link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76x76.png"> 47 <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114x114.png"> 48 <link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png"> 49 <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"> 50 <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96"> 51 <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"> 52 <link rel="manifest" href="/manifest.json"> 53 <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"> 54 <meta name="msapplication-TileColor" content="#da532c"> 55 <meta name="msvalidate.01" content="CBCE88E9F449A83A474BD559CD36C8F6"/> 56 <meta name="msvalidate.01" content="DCD6053135F0D724D4BB090DD7FE7E6F"/> 57 <meta name="google-site-verification" content="8EG3aEVLhB_o-WkgATrgMKoYNYe2DkyVVqdMoCe17Ic"/> 58 <meta name="facebook-domain-verification" content="dcq41mqxt9kg0w6jquukz1eczyt5hm"/> 59 <meta name="theme-color" content="#ffffff"> 60 <link rel="preload" href="/assets/fonts/signika-v19-latin-700.woff2" as="font" type="font/woff2" crossorigin> 61 <style> 62 @font-face { 63 font-family: 'Signika'; 64 font-style: normal; 65 font-weight: 700; 66 font-display: swap; 67 src: url('/assets/fonts/signika-v19-latin-700.woff2') format('woff2'); 68 } 69 </style> 70
70<script data-type="application/javascript" type="text/plain" data-name="google-tag-manager">
vendor: 359 bytes, lines 70-74
70(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 71 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 72 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 73 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 74 })(window,document,'script','dataLayer','
74GTM-56FRB5K
vendor: 3 bytes, line 74
74');
74</script>
74 75
75<script type="application/javascript" src="/assets/js/klaro.config.js"></script>
75 76
76<script defer 77 data-config="klaroConfig" 78 type="application/javascript" 79 src="/assets/js/klaro-no-css.js"></script>
79 80 <!--
80<script data-type="application/javascript" type="text/plain" data-name="fullstory"> 81 window['_fs_debug'] = false; 82 window['_fs_host'] = 'fullstory.com'; 83 window['_fs_script'] = 'edge.fullstory.com/s/fs.js'; 84 window['_fs_org'] = 'JZA4V'; 85 window['_fs_namespace'] = 'FS'; 86 (function(m,n,e,t,l,o,g,y){ 87 if (e in m) {if(m.console && m.console.log) { m.console.log('FullStory namespace conflict. Please set window["_fs_namespace"].');} return;} 88 g=m[e]=function(a,b,s){g.q?g.q.push([a,b,s]):g._api(a,b,s);};g.q=[]; 89 o=n.createElement(t);o.async=1;o.crossOrigin='anonymous';o.src='https://'+_fs_script; 90 y=n.getElementsByTagName(t)[0];y.parentNode.insertBefore(o,y); 91 g.identify=function(i,v,s){g(l,{uid:i},s);if(v)g(l,v,s)};g.setUserVars=function(v,s){g(l,v,s)};g.event=function(i,v,s){g('event',{n:i,p:v},s)}; 92 g.anonymize=function(){g.identify(!!0)}; 93 g.shutdown=function(){g("rec",!1)};g.restart=function(){g("rec",!0)}; 94 g.log = function(a,b){g("log",[a,b])}; 95 g.consent=function(a){g("consent",!arguments.length||a)}; 96 g.identifyAccount=function(i,v){o='account';v=v||{};v.acctId=i;g(o,v)}; 97 g.clearUserCookie=function(){}; 98 g.setVars=function(n, p){g('setVars',[n,p]);}; 99 g._w={};y='XMLHttpRequest';g._w[y]=m[y];y='fetch';g._w[y]=m[y]; 100 if(m[y])m[y]=function(){return g._w[y].apply(this,arguments)}; 101 g._v="1.3.0"; 102 })(window,document,window['_fs_namespace'],'script','user'); 103 </script>
103 --> 104 <link rel="preconnect" href="https://unpkg.com"> 105 <style> 106 .sidr{display:block;position:fixed;top:0;height:100%;z-index:999999;width:260px;overflow-x:hidden;overflow-y:auto}.sidr.right{left:auto;right:-260px}.sidr.left{left:-260px;right:auto} 107 .klaro .cookie-notice, 108.klaro .cookie-modal .cm-modal.cm-klaro { 109 background-color: white !important; 110} 111 112.klaro .cookie-modal p, 113.klaro .cookie-modal strong, 114.klaro .cookie-modal h1, 115.klaro .cookie-modal h2, 116.klaro .cookie-modal ul, 117.klaro .cookie-modal li, 118.klaro .context-notice p, 119.klaro .context-notice strong, 120.klaro .context-notice h1, 121.klaro .context-notice h2, 122.klaro .context-notice ul, 123.klaro .context-notice li, 124.klaro .cookie-notice p, 125.klaro .cookie-notice strong, 126.klaro .cookie-notice h1, 127.klaro .cookie-notice h2, 128.klaro .cookie-notice ul, 129.klaro .cookie-notice li { 130 color: #343232 !important 131} 132 133.klaro .cookie-modal .cm-btn.cm-btn-success, 134.klaro .context-notice .cm-btn.cm-btn-success, 135.klaro .cookie-notice .cm-btn.cm-btn-success { 136 background-color: #1d5f92 !important; 137} 138 139.klaro .cookie-modal a, 140.klaro .context-notice a, 141.klaro .cookie-notice a { 142 color: #1d5f92 !important; 143} 144 145.klaro .cookie-modal .cm-list-input:checked+.cm-list-label .slider, 146.klaro .context-notice .cm-list-input:checked+.cm-list-label .slider, 147.klaro .cookie-notice .cm-list-input:checked+.cm-list-label .slider { 148 background-color: #1d5f92 !important; 149} 150 151.klaro .cookie-modal .cm-list-input.only-required+.cm-list-label .slider, 152.klaro .context-notice .cm-list-input.only-required+.cm-list-label .slider, 153.klaro .cookie-notice .cm-list-input.only-required+.cm-list-label .slider { 154 background-color: #1d5f92 !important; 155 opacity: 0.8; 156} 157 158.klaro a:focus { 159 outline: none; 160} 161 162.klaro a:focus-visible { 163 outline: thin dotted; 164 outline: 5px auto -webkit-focus-ring-color; 165} 166 167.klaro .context-notice { 168 aspect-ratio: 16/9; 169} 170 </style> 171 <link rel="stylesheet" type="text/css" href="/assets/css/styles.0bed9d62135f4a801f3f12ba1407a73768063f69.css"/> 172 <link rel="stylesheet" href="/assets/css/vendor/klaro.css" /> 173 <style> 174 #available-langs a[href="/ru"] { 175 display: none; 176 } 177 </style> 178 179 <link rel="stylesheet" href="/assets/intl-tel-input/css/intlTelInput.min.css"> 180 <link rel="stylesheet" href="/assets/css/leaflet/leaflet.css"> 181 <link rel="stylesheet" href="/assets/css/leaflet/leaflet-gesture-handling.min.css"> 182 <style> 183 .iti-flag { 184 background-image: url('/assets/intl-tel-input/img/flags.png'); 185 } 186 187 @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { 188 .iti-flag { 189 background-image: url('/assets/intl-tel-input/img/[email protected]'); 190 } 191 } 192 193 .intl-tel-input { 194 width: 100%; 195 } 196 197 .intl-tel-input input[type='text'] { 198 padding-left: 80px !important; 199 } 200 201 .intl-tel-input .country-list .country .dial-code { 202 color: hsl(0, 1%, 20%) !important; 203 } 204 205 .contact-page #map-overlay { 206 z-index: 1000; 207 } 208 209 .iti { 210 width: 100%; 211 } 212 213 .iti__selected-dial-code { 214 line-height: 29px; 215 color: var(--color-blue-dark); 216 font-family: Lato, sans-serif; 217 font-size: 18px; 218 } 219 220 #valid-msg { 221 color: green; 222 } 223 224 #error-msg { 225 color: #c92547; 226 } 227 228 #new-reservation-fields .row, 229 #wedding-fields .row, 230 #add-listing-fields .row, 231 #tours-services-fields .row { 232 margin-bottom: 20px; 233 } 234 235 #new-reservation-fields .row:last-child, 236 #wedding-fields .row:last-child, 237 #add-listing-fields .row:last-child, 238 #tours-services-fields .row:last-child { 239 margin-bottom: 0; 240 } 241 242 #new-reservation-fields .request-option { 243 margin: 0 0 10px 0; 244 position: relative; 245 padding-left: 3.5rem; 246 min-height: 2.5rem; 247 } 248 249 #new-reservation-fields .request-option label { 250 display: block; 251 cursor: pointer; 252 line-height: 2rem; 253 margin: 0; 254 padding-top: 0.5rem; 255 color: #676565; 256 font-size: 14px; 257 } 258 259 #new-reservation-fields .request-option::before { 260 position: absolute; 261 z-index: 0; 262 top: 0.5rem; 263 left: 0.5rem; 264 display: inline-block; 265 content: ''; 266 width: 2rem; 267 height: 2rem; 268 border: 2px solid #1d5f92; 269 } 270 271 #new-reservation-fields .request-option label::after { 272 display: inline-block; 273 font: normal normal normal 14px/1 FontAwesome; 274 content: '\f00c'; 275 color: #f58700; 276 position: absolute; 277 top: -0.3rem; 278 left: 0.25rem; 279 font-size: 3rem; 280 text-shadow: 0 0.05em 0 #fff; 281 opacity: 0; 282 transform: scale(0); 283 transition: all 0.1s ease-out; 284 } 285 286 #new-reservation-fields .request-option input:checked ~ label::after { 287 opacity: 1; 288 transform: scale(1); 289 } 290 291 #new-reservation-fields .request-option input { 292 position: absolute; 293 opacity: 0; 294 top: 0; 295 left: 0; 296 width: 100%; 297 height: 100%; 298 z-index: 2; 299 cursor: pointer; 300 margin: 0; 301 } 302 </style> 303</head> 304<body class=""> 305 <noscript> 306 <iframe data-name="google-tag-manager" data-src="https://www.googletagmanager.com/ns.html?id=GTM-56FRB5K" height="0" width="0" style="display:none;visibility:hidden"></iframe> 307 </noscript> 308 <nav id="top-nav" class="hidden-xs"> 309 <div class="container"> 310 <ul class="currencies presentation-hide"> 311 <li> 312 <a href="javascript:void(0)" 313 id="currencies__active" 314 data-rate="1" 315 data-label="EUR"
316 data-symbol="20AC"> 317 <span class="currencies__active-value"> 318 € EUR 319 </span> 320 <i class="fa fa-angle-down"></i> 321 </a> 322 <ul id="currencies__available"> 323 <li> 324 <a class="currencies__currency" 325 href="javascript:void(0)" 326 data-rate="1" 327 data-label="EUR" 328 data-symbol="20AC"> 329 € EUR 330 </a> 331 </li> 332 <li> 333 <a class="currencies__currency" 334 href="javascript:void(0)" 335 data-rate="1.1177" 336 data-label="USD" 337 data-symbol="0024"> 338 $ USD 339 </a> 340 </li> 341 <li> 342 <a class="currencies__currency" 343 href="javascript:void(0)" 344 data-rate="0.84645" 345 data-label="GBP" 346 data-symbol="00a3"> 347 £ GBP 348 </a> 349 </li> 350 <li> 351 <a class="currencies__currency" 352 href="javascript:void(0)" 353 data-rate="117.201" 354 data-label="RUB" 355 data-symbol="20BD"> 356 ₽ RUB 357 </a> 358 </li> 359 <li> 360 <a class="currencies__currency" 361 href="javascript:void(0)" 362 data-rate="1.6079" 363 data-label="AUD" 364 data-symbol=""> 365 AUD 366 </a> 367 </li> 368 <li> 369 <a class="currencies__currency" 370 href="javascript:void(0)" 371 data-rate="10.712" 372 data-label="NOK" 373 data-symbol=""> 374 NOK 375 </a> 376 </li> 377 <li> 378 <a class="currencies__currency" 379 href="javascript:void(0)" 380 data-rate="11.224" 381 data-label="SEK" 382 data-symbol=""> 383 SEK 384 </a> 385 </li> 386 <li> 387 <a class="currencies__currency" 388 href="javascript:void(0)" 389 data-rate="7.4745" 390 data-label="DKK" 391 data-symbol=""> 392 DKK 393 </a> 394 </li> 395 </ul> 396 </li> 397 </ul> 398 <ul class="i18n"> 399 <li> 400 <i class="fa fa-globe" style="color:white;font-size:16px;"></i> 401 <a href="/en" id="active-lang">English <i class="fa fa-angle-down"></i></a> 402 <ul id="available-langs"> 403 404 <li><a href="/en/contact">English</a></li> 405 406 407 <li><a href="/de/contact">Deutsch</a></li> 408 409 410 411 <li><a href="/fr/contact">Français</a></li> 412 413 </ul> 414 </li> 415 </ul> 416 <ul class="main-nav presentation-hide"> 417 <li><a href="tel:00302831040556">+30 2831040556</a></li> 418 <li><a href="/en/blog">blog</a></li> 419 <li><a href="/en/contact">contact us</a></li> 420 <li class="main-nav__login"> 421 <div class="dropdown"> 422 <button class="btn btn-default dropdown-toggle main-nav__login-toggle" type="button" id="loginMenu" data-toggle="dropdown" 423 aria-haspopup="true" aria-expanded="true"> 424 login 425 <span class="caret"></span> 426 </button> 427 <ul class="dropdown-menu dropdown-menu-right main-nav__login-dropdown-menu" aria-labelledby="loginMenu"> 428 <li><a class="main-nav__login-link" href="/en/my-reservations">login as a guest</a></li> 429 <li><a href="/login">login as an owner</a></li> 430 <li><a href="/login-agent">Login as an agent</a></li> 431 </ul> 432 </div> 433 </li> 434 </ul> 435 </div> 436 </nav> 437 <header> 438 <div class="container"> 439 <div class="row"> 440 <div class="col-md-4 col-sm-4 col-xs-10"> 441 <a href="/en" class="logo-link"><img src="/assets/img/cv4u_logo_color.png" alt="CreteVillas4u logo"/></a> 442 </div> 443 <div class="col-md-8 col-sm-8 hidden-xs"> 444 <div class="pull-right breadcrumbs"> 445 <ol itemscope itemtype="http://schema.org/BreadcrumbList"> 446 <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> 447 <a href="/en" itemprop="item"> 448 <span itemprop="name">Home</span> 449 </a> 450 <meta itemprop="position" content="1"/> 451 </li> 452 <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> 453 <a href="/en/contact" itemprop="item"> 454 <span itemprop="name">Contact</span> 455 </a> 456 <meta itemprop="position" content="2"/> 457 </li> 458 </ol> 459 </div> 460 </div> 461 <div class="col-xs-2 hidden-sm hidden-md hidden-lg hamburger"> 462 <a href="#top-nav"><i class="fa fa-bars"></i><span class="sr-only">
462toggle menu</span></a> 463 </div> 464 </div> 465 </div> 466 </header> 467 <div class="contact-page"> 468 <div class="grey-backdrop"> 469 <div class="container"> 470 <div class="row"> 471 <div class="col-md-10 col-md-offset-1"> 472 <div class="icon-row"> 473 <img src="/assets/img/envelope.png" role="decoration" aria-hidden="true" alt=""> 474 </div> 475 </div> 476 <div class="col-md-10 col-md-offset-1"> 477 <h1> 478 <span>Contact Us</span> 479 </h1> 480 </div> 481 <div class="col-md-7 col-md-offset-1"> 482 <form id="contact-form" method="post" > 483 <div class="form-group"> 484 <label for="subjectCategory">How can we help you?</label> 485 <select 486 class="contact-form__field" 487 name="subjectCategory" 488 id="subjectCategory" 489 required 490 > 491 <option value="" disabled selected>-- Please select --</option> 492 <option value="existing_reservation">Existing reservation</option> 493 <option value="new_reservation">New reservation</option> 494 <option value="wedding">Wedding inquiries</option> 495 <option value="add_listing">Add your listing</option> 496 <option value="tours_services">Tours and services</option> 497 <option value="general">General questions</option> 498 </select> 499 </div> 500 <div class="form-group" id="existing-reservation-fields" style="display:none;"> 501 <label for="referenceNumber">Reference number</label> 502 <input 503 class="contact-form__field" 504 type="text" 505 name="referenceNumber" 506 id="referenceNumber" 507 > 508 </div> 509 <div class="form-group" id="new-reservation-fields" style="display:none;"> 510 <div class="row" id="price-range-row"> 511 <div class="col-md-12"> 512 <label for="priceRange">Price range</label> 513 <select class="contact-form__field" name="priceRange" id="priceRange"> 514 <option value="" disabled selected>-- Please select --</option> 515 <option value="any">Any / no preference</option> 516 <option value="1k_3k">1K-3K</option> 517 <option value="3k_5k">3K-5K</option> 518 <option value="5k_8k">5K-8K</option> 519 <option value="8k_10k">8K-10K</option> 520 <option value="over_10k">Over 10K</option> 521 </select> 522 </div> 523 </div> 524 <div class="row"> 525 <div class="col-md-6"> 526 <label for="checkIn">Check-In</label> 527 <input class="contact-form__field" type="date" name="checkIn" id="checkIn"> 528 </div> 529 <div class="col-md-6"> 530 <label for="checkOut">Check-out</label> 531 <input class="contact-form__field" type="date" name="checkOut" id="checkOut"> 532 </div> 533 </div> 534 <div class="row"> 535 <div class="col-md-4"> 536 <label for="adults">Adults</label> 537 <select class="contact-form__field" name="adults" id="adults"> 538 <option value="1" >1</option> 539 <option value="2" selected>2</option> 540 <option value="3" >3</option> 541 <option value="4" >4</option> 542 <option value="5" >5</option> 543 <option value="6" >6</option> 544 <option value="7" >7</option> 545 <option value="8" >8</option> 546 <option value="9" >9</option> 547 <option value="10" >10</option> 548 <option value="11" >11</option> 549 <option value="12" >12</option> 550 <option value="13" >13</option> 551 <option value="14" >14</option> 552 <option value="15" >15</option> 553 <option value="16" >16</option> 554 </select> 555 </div> 556 <div class="col-md-4"> 557 <label for="children">Children</label> 558 <select class="contact-form__field" name="children" id="children"> 559 <option value="0">0</option> 560 <option value="1">1</option> 561 <option value="2">2</option> 562 <option value="3">3</option> 563 <option value="4">4</option> 564 <option value="5">5</option> 565 <option value="6">6</option> 566 <option value="7">7</option> 567 <option value="8">8</option> 568 <option value="9">9</option> 569 <option value="10">10</option> 570 </select> 571 </div> 572 <div class="col-md-4"> 573 <label for="infants">infants</label> 574 <select class="contact-form__field" name="infants" id="infants"> 575 <option value="0">0</option> 576 <option value="1">1</option> 577 <option value="2">2</option> 578 <option value="3">3</option> 579 <option value="4">4</option> 580 <option value="5">5</option> 581 <option value="6">6</option> 582 <option value="7">7</option> 583 <option value="8">8</option> 584 <option value="9">9</option> 585 <option value="10">10</option> 586 </select> 587 </div> 588 </div> 589 <div class="row"> 590 <div class="col-md-6"> 591 <div class="request-option"> 592 <input type="checkbox" name="flexible" id="flexible"> 593 <label for="flexible">My dates are flexible</label> 594 </div> 595 </div> 596 <div class="col-md-6"> 597 <div class="request-option"> 598 <input type="checkbox" name="babyCot" id="babyCot"> 599 <label for="babyCot">We need a baby cot</label> 600 </div> 601 </div> 602 </div> 603 </div> 604 <div class="form-group" id="wedding-fields" style="display:none;"> 605 <div class="row"> 606 <div class="col-md-6"> 607 <label for="weddingGuests">Number of guests to attend the wedding event</label> 608 <input 609 class="contact-form__field" 610 type="number" 611 min="1" 612 name="weddingGuests" 613 id="weddingGuests" 614 > 615 </div> 616 </div> 617 </div> 618 <div class="form-group" id="add-listing-fields" style="display:none;"> 619 <div class="row"> 620 <div class="col-md-12"> 621 <label for="villaLocation">Villa location</label> 622 <input 623 class="contact-form__field" 624 type="text" 625 name="villaLocation" 626 id="villaLocation" 627 > 628 </div> 629 </div> 630 <div class="row"> 631 <div class="col-md-12"> 632 <label for="villaWebsite">Website of the villa</label> 633 <input 634 class="contact-form__field" 635 type="text" 636 name="villaWebsite" 637 id="villaWebsite" 638 > 639 <p class="field-hint"> 640 If you don't have a website, add a link from a platform like Airbnb, Booking.com, etc. Leave empty if none of the above apply. 641 </p> 642 </div> 643 </div> 644 </div> 645 <div class="form-group" id="tours-services-fields" style="display:none;"> 646 <div class="row"> 647 <div class="col-md-4"> 648 <label for="tourAdults">Adults</label> 649 <select class="contact-form__field" name="tourAdults" id="tourAdults"> 650 <option value="1" >1</option> 651 <option value="2" selected>2</option> 652 <option value="3" >3</option> 653 <option value="4" >4</option> 654 <option value="5" >5</option> 655 <option value="6" >6</option> 656 <option value="7" >7</option> 657 <option value="8" >8</option> 658 <option value="9" >9</option> 659 <option value="10" >10</option> 660 <option value="11" >11</option> 661 <option value="12" >12</option> 662 <option value="13" >13</option> 663 <option value="14" >14</option> 664 <option value="15" >15</option> 665 <option value="16" >16</option> 666 </select> 667 </div> 668 <div class="col-md-4"> 669 <label for="tourChildren">Children</label> 670 <select class="contact-form__field" name="tourChildren" id="tourChildren"> 671 <option value="0">0</option> 672 <option value="1">1</option> 673 <option value="2">2</option> 674 <option value="3">3</option> 675 <option value="4">4</option> 676 <option value="5">5</option> 677 <option value="6">6</option> 678 <option value="7">7</option> 679 <option value="8">8</option> 680 <option value="9">9</option> 681 <option value="10">10</option> 682 </select> 683 </div> 684 <div class="col-md-4"> 685 <label for="tourInfants">infants</label> 686 <select class="contact-form__field" name="tourInfants" id="tourInfants"> 687 <option value="0">0</option> 688 <option value="1">1</option> 689 <option value="2">2</option> 690 <option value="3">3</option> 691 <option value="4">4</option> 692 <option value="5">5</option> 693 <option value="6">6</option> 694 <option value="7">7</option> 695 <option value="8">8</option> 696 <option value="9">9</option> 697 <option value="10">10</option> 698 </select> 699 </div> 700 </div> 701 <div class="row"> 702 <div class="col-md-6"> 703 <label for="tourPreferredDate">Preferred date</label> 704 <input 705 class="contact-form__field" 706 type="date" 707 name="tourPreferredDate" 708 id="tourPreferredDate" 709 > 710 </div> 711 <div class="col-md-6"> 712 <label for="tourAlternativeDate">Alternative date (optional)</label> 713 <input 714 class="contact-form__field" 715 type="date" 716 name="tourAlternativeDate" 717 id="tourAlternativeDate" 718 > 719 </div> 720 </div> 721 <div class="row"> 722 <div class="col-md-12"> 723 <label for="tourType">Type of tour / service</label> 724 <input 725 class="contact-form__field" 726 type="text" 727 name="tourType" 728 id="tourType" 729 placeholder="e.g. boat trip, private tour, group tour" 730 > 731 </div> 732 </div> 733 <div class="row"> 734 <div class="col-md-12"> 735 <label for="tourLocation">Location or name of the villa</label> 736 <input 737 class="contact-form__field" 738 type="text" 739 name="tourLocation" 740 id="tourLocation" 741 > 742 </div> 743 </div> 744 </div> 745 <div class="form-group"> 746 <label for="name">Name</label> 747 <input class="contact-form__field" type="text" name="name" id="name" required> 748 </div> 749 <div class="form-group"> 750 <div class="row"> 751 <div class="col-md-6"> 752 <label for="email">Email</label> 753 <input 754 class="contact-form__field" 755 type="email" 756 name="email" 757 id="email" 758 required 759 > 760 </div> 761 <div class="col-md-6"> 762 <label for="telephoneNumber">Phone number</label> 763 <input 764 class="contact-form__field" 765 type="text" 766 name="telephoneNumber" 767 id="telephoneNumber" 768 placeholder=" " 769 autocomplete="tel" 770 >
771 <span id="valid-msg" class="hide" 772 ><i class="fa fa-check-circle"></i> Valid</span 773 > 774 <span id="error-msg" class="hide"></span> 775 </div> 776 </div> 777 </div> 778 <div class="form-group"> 779 <label for="message">Message</label> 780 <textarea class="contact-form__field" name="message" id="message" required></textarea> 781 </div> 782 <div class="row"> 783 <div class="col-md-7"> 784 <button 785 id="contact-form__submit-btn" 786 class="submit g-recaptcha" 787 data-sitekey="6LeaSk8mAAAAAEUxNuRuQc5ihB1mgTUDPIOmz69X" 788 data-callback="onSubmit" 789 data-action="submit" 790 > 791 Send 792 </button> 793 </div> 794 <div class="col-md-5"> 795 <button type="reset" class="reset">Reset</button> 796 </div> 797 </div> 798 <p class="fine-print"> 799 This information may be used by CreteVillas4U to inform you of other products and services which may interest you 800 </p> 801 </form> 802 </div> 803 <div class="col-md-3"> 804 <div class="info"> 805 <h3>telephone</h3> 806 <p>+30 2831040556</p> 807 <h3>email</h3> 808 <p><a href="mailto:[email protected]">[email protected]</a></p> 809 <h3>social links</h3> 810 <div class="social-icons"> 811 <a href="https://www.facebook.com/cretevillas4u" target="_blank" 812 ><i class="icon villa-facebook"></i><span class="sr-only">facebook</span></a 813 ><a href="https://www.youtube.com/channel/UC5fUelyfBP54BTxVfbxvwPA" target="_blank" 814 ><i class="icon villa-youtube"></i><span class="sr-only">youtube</span></a 815 ><a href="https://www.pinterest.com/cretevillas4u/" target="_blank" 816 ><i class="icon villa-pinterest"></i><span class="sr-only">pinterest</span></a 817 ><a href="https://twitter.com/CreteVillas4u" target="_blank" 818 ><i class="icon villa-twitter"></i><span class="sr-only">twitter</span></a 819 > </div> 820 </div> 821 </div> 822 </div> 823 </div> 824 </div> 825 <div class="container"> 826 <div class="row"> 827 <div class="col-md-2 col-md-offset-9" style="height:0"> 828 <div id="map-overlay"> 829 <h2>CreteVillas4U</h2> 830 <p> 831 Lasithiou 1, Platanias<br> 832 Rethimno<br> 833 Crete<br> 834 74100<br> 835 Greece<br> 836 </p> 837 </div> 838 </div> 839 </div> 840 </div> 841 <div id="map"></div> 842 <div class="white-backdrop"> 843 <p id="eot-license">Greek Tourism Organization Company Registration Number 181466050000</p> 844 </div> 845 </div> 846 <div class="container-fluid certificates__container"> 847 <div class="row certificates"> 848 <figure class="hmvi certificate"><a class="hmvi__link" href="/en/blog/time-for-some-uplifting-news" title="Read about our partnership with Marriott International"><img loading="lazy" class="hmvi__img img-responsive" src="https://cretevillas4u.imgix.net/HVMI_logo.png?w=300&fit=clip&fm=webp&q=30&nr=20" width="300" height="137" alt="HVMI by Marriott International"/><figcaption class="hmvi__caption">official partner</figcaption></a></figure><div class="certificate vrma"><img loading="lazy" src="https://cretevillas4u.imgix.net/vrma-badge.jpg?w=250&fit=clip&fm=webp&q=30&nr=20" width="250" height="88" alt="VRMA Member"/></div><div class="certificate airbnb"><img loading="lazy" src="https://cretevillas4u.imgix.net/airBnb-badge.png?w=150&fit=clip&fm=webp&q=30&nr=20" width="150" height="62" alt="airbnb superhost"/><p class="airbnb-text"> 849 Airbnb superhost since 2014</p></div><div class="certificate hatta"><img loading="lazy" src="https://cretevillas4u.imgix.net/hatta-badge.jpg?w=100&fit=clip&fm=webp&q=30&nr=20" width="100" height="134" alt="Hellenic Association of Travel & Tousist Agencies" /><p> 850 Hellenic Association<br/> of Travel & Tourist Agencies</p></div><figure class="certificate community"><a class="hmvi__link" href="/en/blog/cretevillas4u-is-officially-an-airbnb-community-leader"><img loading="lazy" class="img-responsive" src="https://cretevillas4u.imgix.net/cretevilllas4u-Airbnb-Community-Leader.jpg" width="250" height="250" style="max-height: 9rem;" alt="Tripadvisor - 2018 Certificate of Excellence"/><figcaption style="font-family: Signika; font-weight: bold; line-height: 1.2; padding-top: 1rem; color:#c2484c; font-size: 1.6rem; max-width: 24ch; margin-inline: auto;">Airbnb Community Leader in Crete and ALL Aegean Islands</figcaption></a></figure> </div> 851 </div> 852 <footer> 853 <img class="logo" loading="lazy" src="/assets/img/logo-footer.png" alt="CreteVillas4u logo"/> 854 <div class="container"> 855 <div class="row"> 856 <div class="col-md-3 col-md-offset-1 col-sm-3 hidden-xs"> 857 <div class="site-name"> 858 Crete<br/> Villas<br/> 4u 859 </div> 860 </div> 861 <div class="col-md-3 col-sm-4 social-icons"> 862 <h4>Join us on social</h4> 863 <a href="https://www.facebook.com/cretevillas4u" target="_blank"><i class="icon villa-facebook" aria-hidden="true"></i><span class="sr-only">Facebook</span></a><a href="https://www.youtube.com/channel/UC5fUelyfBP54BTxVfbxvwPA" target="_blank"><i class="icon villa-youtube" aria-hidden="true"></i><span class="sr-only">Youtube</span></i></a><a href="https://www.pinterest.com/cretevillas4u/" target="_blank"><i class="icon villa-pinterest" aria-hidden="true"></i><span class="sr-only">Pinterest</span></i></a><a href="https://twitter.com/CreteVillas4u" target="_blank"><i class="icon villa-twitter" aria-hidden="true"></i><span class="sr-only">Twitter</span></i></a><a href="https://www.instagram.com/cretevillas4u/" target="_blank"><i class="icon villa-instagram" aria-hidden="true"></i><span class="sr-only">Instagram</span></i></a><a href="https://www.tiktok.com/@cretevillas4u" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M544.5 273.9C500.5 274 457.5 260.3 421.7 234.7L421.7 413.4C421.7 446.5 411.6 478.8 392.7 506C373.8 533.2 347.1 554 316.1 565.6C285.1 577.2 251.3 579.1 219.2 570.9C187.1 562.7 158.3 545 136.5 520.1C114.7 495.2 101.2 464.1 97.5 431.2C93.8 398.3 100.4 365.1 116.1 336C131.8 306.9 156.1 283.3 185.7 268.3C215.3 253.3 248.6 247.8 281.4 252.3L281.4 342.2C266.4 337.5 250.3 337.6 235.4 342.6C220.5 347.6 207.5 357.2 198.4 369.9C189.3 382.6 184.4 398 184.5 413.8C184.6 429.6 189.7 444.8 199 457.5C208.3 470.2 221.4 479.6 236.4 484.4C251.4 489.2 267.5 489.2 282.4 484.3C297.3 479.4 310.4 469.9 319.6 457.2C328.8 444.5 333.8 429.1 333.8 413.4L333.8 64L421.8 64C421.7 71.4 422.4 78.9 423.7 86.2C426.8 102.5 433.1 118.1 442.4 131.9C451.7 145.7 463.7 157.5 477.6 166.5C497.5 179.6 520.8 186.6 544.6 186.6L544.6 274z"/></svg><span class="sr-only">TikTok</span></a> </div> 864 <div class="col-md-5 col-sm-5 col-xs-12"> 865 <h4>Join our newsletter</h4> 866 <a class="btn btn-cta" href="/en/newsletter">Subscribe</a> 867 </div>
868 </div> 869 <div class="row"> 870 <div class="col-md-3 col-md-offset-1 col-sm-4 col-sm-offset-2 awards-col"> 871 <div class="moto hidden-xs"> 872 Holiday Rentals<br/> & Villas in<br/> Crete 873 </div> 874 <div class="awards"> 875 <figure class="award"><img class="img-responsive" loading="lazy" src="https://cretevillas4u.imgix.net/temp/wta_awards_2025-26_shield.png?w=200&ar=1.2%3A1&fit=clip&auto=format&q=30&nr=20" 876 alt="World Travel Awards Nominee 2025 Shield, Greece's Leading Luxury Private Villa" /></figure> 877 <figure class="award"> 878 <a target="_blank" rel="noopener" href="https://www.trustpilot.com/review/cretevillas4u.com"> 879 <img class="img-responsive" loading="lazy" src="https://cretevillas4u.imgix.net/trustpilot_sq.png?w=200&auto=format&q=30&nr=20" alt="Trustpilot Rating Excellent"> 880 </a> 881 </figure> 882 </div> 883 </div> 884 <div class="col-md-2 col-sm-3 col-xs-12"> 885 <nav> 886 <h4>Company</h4> 887 <ul> 888 <li><a href="/en/about">About us</a></li> 889 <li><a href="/en/blog">Blog</a></li> 890 <li><a href="/en/services">Services</a></li> 891 <li><a href="/en/terms-and-conditions">Terms & Conditions</a></li> 892 <li><a href="/en/terms-of-use">Terms of use</a></li> 893 <li><a href="/en/faq">FAQ</a></li> 894 <li><a href="/en/sitemap">Sitemap</a></li> 895 <li><a href="/en/careers">Careers</a></li> 896 <li><a href="/en/list-your-villa">List your villa</a></li> 897 <li> 898 <a target="_blank" rel="noopener" href="https://www.iubenda.com/privacy-policy/90344763/cookie-policy"> 899 Cookie policy 900 </a> 901 </li> 902 <li> 903 <a target="_blank" rel="noopener" href="https://www.iubenda.com/privacy-policy/90344763">Privacy policy</a> 904 </li> 905 </ul> 906 </nav> 907 </div> 908 <div class="col-md-3 col-sm-5 col-xs-12"> 909 <nav> 910 <h4>Explore</h4> 911 <ul> 912 <li><a href="/en/special-offers">Special offer villas</a></li> 913 <li><a href="/en/traditional-villas">Traditional villas</a></li> 914 <li> 915 <a href="/en/collections/pet-friendly-villas-in-crete">Pet friendly Villas</a> 916 </li> 917 <li> 918 <a href="/en/collections/wedding-&-events-villas-in-crete">Wedding & Events Villas</a> 919 </li> 920 <li> 921 <a href="/en/collections/heated-pool-villas-in-crete">Heated Pool Villas</a> 922 </li> 923 <li> 924 <a href="/en/collections/family-friendly-villas-in-crete">Family Friendly Villas</a> 925 </li> 926 <li> 927 <a href="/en/collections/beachfront-villas-with-private-pools-in-crete">Beachfront Villas with Private Pool</a> 928 </li> 929 <li> 930 <a href="/en/collections/luxury-and-premium-villas-in-crete">Luxury and Premium Villas</a> 931 </li> 932 </ul> 933 </nav> 934 </div> 935 <div class="col-md-2 col-sm-4 col-xs-12 contact-col"> 936 <h4>Get in touch</h4> 937 <a class="contact__item" href="/en/contact"><i class="fa fa-envelope"></i> Contact us</a> 938 <a class="contact__item" href="/en/support"><i class="fa fa-headphones"></i> Support</a> 939 <a class="contact__item" href="tel:00302831040556"><i class="fa fa-phone"></i> +302831040556</a> 940 <div class="contact__item"> 941 <i class="fa fa-map-marker"></i> 942 <a href="https://maps.app.goo.gl/ok7FCccbpKZJzAXN8" target="_blank"> 943 Lasithiou 1, Platanias <br> 944 Rethimno<br> 945 Crete 946 74100<br> 947 Greece 948 </a> 949 </div> 950 </div> 951 </div> 952 <div class="row bottom-section"> 953 <div class="col-md-4 eot-badge"> 954 <img loading="lazy" src="/assets/img/eot_logo_footer.png" width="60" height="60" alt="EOT"/> 955 <p>Greek National Tourism Organization<br/>Greek Registration number<br/>MHTE: 1041Î60000112000<br/>ÎÎÎÎ: 181466050000</p> 956 </div> 957 <div class="col-md-5"> 958 <img loading="lazy" class="payment-badges img-responsive hidden-xs" src="/assets/img/Horizontal_Banner_Logos-no-AMEX_new_transparent.png" width="600" height="100" alt="VISA"/> 959 <img loading="lazy" class="payment-badges img-responsive visible-xs" src="/assets/img/Vertical_Banner_Logos-no-AMEX_new_transparent.png" width="362" height="160" alt="VISA"/> 960 </div> 961 <div class="col-md-3"> 962 <p class="copyright">©
962 CreteVillas4u 2015 - 2026</p> 963 </div> 964 </div> 965 </div> 966 <div class="brand-family"> 967 <div class="container"> 968 <div class="row"> 969 <div class="brand-family__content col-xs-12"> 970 <a class="brand-family__text" href="https://www.villas4u.com/" target="_blank" rel="noopener"> 971 <span>Enjoyed your vacation in Crete and looking for amazing villas in other parts of Greece?</span> 972 <span>Checkout our brand new sister site <figure class="brand-family__fig"><img class="brand-family__img" loading="lazy" src="/assets/img/logo_v4u_hor_darkBG.svg" alt="www.villas4u.com"><figcaption class="sr-only">Villas4u</figcaption></figure></span> 973 </a> 974 </div> 975 </div> 976 </div> 977 </div> 978 <div class="white-backdrop"> 979 <a id="dypa-banner" href="https://greece20.gov.gr/" target="_blank"> 980 <img loading="lazy" width="1100" height="243" class="img-responsive" src="https://cretevillas4u.imgix.net/DYPA_banner.png?auto=format,compress&w=1100" alt="DYPA Banner"> 981 </a> 982 </div> 983 </footer> 984
984<script src="/assets/admin/global/plugins/jquery.min.js"></script>
984 985 986
986<script type="text/plain" data-type="application/javascript" data-name="facebook-pixel">
vendor: 425 bytes, lines 986-995
986 987 !function(f,b,e,v,n,t,s) 988 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 989 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 990 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 991 n.queue=[];t=b.createElement(e);t.async=!0; 992 t.src=v;s=b.getElementsByTagName(e)[0]; 993 s.parentNode.insertBefore(t,s)}(window,document,'script', 994 'https://connect.facebook.net/en_US/fbevents.js'); 995 fbq('init', '
995734114283424559
vendor: 35 bytes, lines 995-997
995'); 996 fbq('track', 'PageView'); 997
997</script>
997 998 <noscript> 999 <img height="1" width="1" data-src="https://www.facebook.com/tr?id=734114283424559&ev=PageView&noscript=1" data-name="facebook"/> 1000 </noscript> 1001
1001<script>(function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:"50000470"};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");</script>
1001 1002
1002<script src="/assets/js/moment.min.js"></script>
1002 1003
1003<script src="/assets/js/axios.min.js"></script>
1003 1004
1004<script src="/assets/admin/global/plugins/bootstrap/js/bootstrap.min.js"></script>
1004 1005
1005<script defer src="/assets/admin/global/plugins/bootbox/bootbox.min.js"></script>
1005 1006
1006<script src="/assets/sidr/jquery.sidr.js"></script>
1006 1007
1007<script src="/assets/js/js.cookie.js"></script>
1007 1008
1008<script src="/assets/js/app.js"></script>
1008 1009
1009<script src="/en/translations"></script>
1009 1010
1010<script type="text/plain" data-type="application/javascript" data-name="campaignMonitor" src="https://js.createsend1.com/javascript/copypastesubscribeformlogic.js"></script>
1010 1011
1011<script type="text/plain" data-type="application/javascript" data-name="facebook-SDK"> 1012 window.fbAsyncInit = function() { 1013 FB.init({ 1014 appId: '819265298199864', 1015 xfbml: true, 1016 version: 'v2.5' 1017 }); 1018 }; 1019 1020 (function(d, s, id) { 1021 var js, fjs = d.getElementsByTagName(s)[0]; 1022 if (d.getElementById(id)) {return;} 1023 js = d.createElement(s); js.id = id; 1024 js.src = "//connect.facebook.net/en_US/sdk.js"; 1025 fjs.parentNode.insertBefore(js, fjs); 1026 }(document, 'script', 'facebook-jssdk')); 1027 </script>
1027 1028
1028<script> 1029 $(function () { 1030 $('.hamburger').sidr({side: 'right', source: '#top-nav'}); 1031 1032 $('#active-lang').click(function(evt) { 1033 evt.preventDefault(); 1034 evt.stopPropagation(); 1035 $('#available-langs').toggle(); 1036 $('#currencies__available').hide(); 1037 }); 1038 1039 $('#currencies__active').click(function(evt) { 1040 evt.stopPropagation(); 1041 $('#currencies__available').toggle(); 1042 $('#available-langs').hide(); 1043 }); 1044 1045 $('.currencies__currency, .sidr-class-currencies__currency').click(function(evt) { 1046 let rate = $(this).data('rate'); 1047 let symbol = $(this).data('symbol'); 1048 let label = $(this).data('label'); 1049 1050 $('.price').each(function(){ 1051 let euroPrice = $(this).data('euro-price'); 1052 $(this).find('.price__value').html(Math.floor(euroPrice * rate)); 1053 $(this).find('.price__currency').html(symbol.length > 0 ? '&#x' + symbol + ';' : label); 1054 }); 1055 Cookies('currency', $(this).data('label'), {expires: 60}); 1056 $('.currencies__active-value').html((symbol.length > 0 ? '&#x' + symbol + '; ' : '') + label); 1057 $('#currencies__available').hide(); 1058 1059 $('#currencies__active').data('rate', rate); 1060 $('#currencies__active').data('symbol', symbol); 1061 $('#currencies__active').data('label', label); 1062 1063 $.sidr('close'); 1064 }); 1065 1066 $('body').click(function(evt) { 1067 if(!($(evt.target).parents('#available-langs').length > 0)) { 1068 $('#available-langs').hide(); 1069 } 1070 if(!($(evt.target).parents('#currencies__available').length > 0)) { 1071 $('#currencies__available').hide(); 1072 } 1073 }); 1074 1075 }); 1076 </script>
1076 1077 1078
1078<script src="/assets/js/leaflet/leaflet.js"></script>
1078 1079
1079<script src="/assets/js/leaflet/leaflet-providers.js"></script>
1079 1080
1080<script src="/assets/js/leaflet/leaflet-gesture-handling.min.js"></script>
1080 1081
1081<script> 1082 var center = { lat: 35.3683921, lng: 24.53055 }; 1083 var mapbox = new L.tileLayer.provider('MapBox', { 1084 id: 'villas4u/cjr63x02b0hbi2ss8x5x612wi', 1085 accessToken: 'pk.eyJ1IjoidmlsbGFzNHUiLCJhIjoiY2pwZ3p2c3QyMG95ejNwbWRxYmQ1MzRxZyJ9.oOgbqHQikDfAdnuc9LJe-w', 1086 }); 1087 1088 var esriSat = new L.tileLayer( 1089 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', 1090 { 1091 attribution: 1092 'Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community', 1093 }, 1094 ); 1095 1096 var basemaps = { 1097 Streetview: mapbox, 1098 Satellite: esriSat, 1099 }; 1100 var mapOptions = { 1101 center: [center.lat, center.lng], 1102 minZoom: 0, 1103 zoom: 9, 1104 gestureHandling: true, 1105 /* 1106 zoomControl: true, 1107 scrollWheelZoom: false, 1108 debounceMoveend:false, 1109*/ 1110 layers: [mapbox], 1111 }; 1112 // Creating a map object 1113 var leafmap = new L.map('map', mapOptions); 1114 var maplayers = L.control.layers(basemaps); 1115 // Adding layer to the map 1116 maplayers.addTo(leafmap); 1117 1118 marker = new L.marker([center.lat, center.lng]).bindPopup( 1119 '<div id="popup-overlay">' + 1120 '<h2>CreteVillas4U</h2>' + 1121 '<p>' + 1122 'Lasithiou 1, Platanias<br/>' + 1123 'Rethimno<br/>' + 1124 'Crete<br/>' + 1125 '74100<br/>' + 1126 'Greece<br/>' + 1127 '</p></div>', 1128 ); 1129 marker.addTo(leafmap); 1130 </script>
1130 1131
1131<script> 1132 const subjectCategory = document.querySelector('#subjectCategory'); 1133 1134 const existingReservationFields = document.querySelector('#existing-reservation-fields'); 1135 const existingReservationInputs = existingReservationFields.querySelectorAll('#referenceNumber'); 1136 1137 const newReservationFields = document.querySelector('#new-reservation-fields'); 1138 const newReservationInputs = newReservationFields.querySelectorAll( 1139 '#checkIn, #checkOut, #adults, #children, #infants', 1140 ); 1141 const priceRangeRow = document.querySelector('#price-range-row'); 1142 const priceRangeInput = document.querySelector('#priceRange'); 1143 1144 const weddingFields = document.querySelector('#wedding-fields'); 1145 const weddingInputs = weddingFields.querySelectorAll('#weddingGuests'); 1146 1147 const addListingFields = document.querySelector('#add-listing-fields'); 1148 const addListingInputs = addListingFields.querySelectorAll('#villaLocation'); 1149 1150 const toursServicesFields = document.querySelector('#tours-services-fields'); 1151 const toursServicesInputs = toursServicesFields.querySelectorAll( 1152 '#tourAdults, #tourChildren, #tourInfants, #tourPreferredDate, #tourType, #tourLocation', 1153 ); 1154 1155 function toggleConditionalFields() { 1156 const category = subjectCategory.value; 1157 const isNewReservation = category === 'new_reservation'; 1158 const isWedding = category === 'wedding'; 1159 const showSharedReservationFields = isNewReservation || isWedding; 1160 1161 existingReservationFields.style.display = category === 'existing_reservation' ? '' : 'none'; 1162 existingReservationInputs.forEach(function (field) { 1163 field.required = category === 'existing_reservation'; 1164 }); 1165 1166 newReservationFields.style.display = showSharedReservationFields ? '' : 'none'; 1167 newReservationInputs.forEach(function (field) { 1168 field.required = showSharedReservationFields; 1169 }); 1170 priceRangeRow.style.display = showSharedReservationFields ? '' : 'none'; 1171 priceRangeInput.required = showSharedReservationFields; 1172 1173 weddingFields.style.display = isWedding ? '' : 'none'; 1174 weddingInputs.forEach(function (field) { 1175 field.required = isWedding; 1176 }); 1177 1178 addListingFields.style.display = category === 'add_listing' ? '' : 'none'; 1179 addListingInputs.forEach(function (field) { 1180 field.required = category === 'add_listing'; 1181 }); 1182 1183 toursServicesFields.style.display = category === 'tours_services' ? '' : 'none'; 1184 toursServicesInputs.forEach(function (field) { 1185 field.required = category === 'tours_services'; 1186 }); 1187 } 1188 subjectCategory.addEventListener('change', toggleConditionalFields); 1189 toggleConditionalFields(); 1190 </script>
1190 1191
1191<script src="/assets/intl-tel-input/js/intlTelInput.min.js"></script>
1191 1192
1192<script> 1193 const input = document.querySelector('#telephoneNumber'); 1194 const errorMsg = document.querySelector('#error-msg'); 1195 const validMsg = document.querySelector('#valid-msg'); 1196 1197 const errorMap = ['Invalid number', 'Invalid country code', 'Too short', 'Too long', 'Invalid number']; 1198 1199 const iti = window.intlTelInput(document.querySelector('#telephoneNumber'), { 1200 utilsScript: '/assets/intl-tel-input/js/utils.js', 1201 initialCountry: 'auto', 1202 separateDialCode: true, 1203 geoIpLookup: function (success, failure) { 1204 fetch('https://ipapi.co/json') 1205 .then(function (res) { 1206 return res.json(); 1207 }) 1208 .then(function (data) { 1209 success(data.country_code); 1210 }) 1211 .catch(function () { 1212 failure(); 1213 }); 1214 }, 1215 hiddenInput: function (telInputName) { 1216 return { 1217 phone: 'telephoneNumber', 1218 }; 1219 }, 1220 }); 1221 1222 const reset = () => { 1223 input.classList.remove('error'); 1224 errorMsg.innerHTML = ''; 1225 errorMsg.classList.add('hide'); 1226 validMsg.classList.add('hide'); 1227 }; 1228 const showError = (msg) => { 1229 input.classList.add('error'); 1230 errorMsg.innerHTML = '<i class="fa fa-times-circle"></i> ' + msg; 1231 errorMsg.classList.remove('hide'); 1232 }; 1233 1234 // Refactored validation function 1235 function validatePhoneNumber(shouldSubmit = false) { 1236 reset(); 1237 if (!input.value.trim()) { 1238 showError('Required'); 1239 } else if (iti.isValidNumber()) { 1240 validMsg.classList.remove('hide'); 1241 if (shouldSubmit) { 1242 form.submit(); // Submit if valid and shouldSubmit is true 1243 } 1244 } else { 1245 const errorCode = iti.getValidationError(); 1246 const msg = errorMap[errorCode] || 'Invalid number'; 1247 showError(msg); 1248 if (shouldSubmit) { 1249 alert('Please check your phone number'); 1250 } 1251 } 1252 } 1253 1254 // on keyup / change flag: reset 1255 input.addEventListener('change', reset); 1256 input.addEventListener('keyup', reset); 1257 input.addEventListener('blur', () => validatePhoneNumber(false)); // Use the validation function on blur 1258 </script>
1258 1259
1259<script> 1260 const formFields = document.querySelectorAll('.contact-form__field'); 1261 const formSubmit = document.querySelector('#contact-form__submit-btn'); 1262 function disableSubmit() { 1263 formSubmit.style.opacity = 0.3; 1264 formSubmit.style.pointerEvents = 'none'; 1265 } 1266 function enableSubmit() { 1267 formSubmit.style.opacity = 1; 1268 formSubmit.style.pointerEvents = 'auto'; 1269 } 1270 for (const formField of formFields) { 1271 formField.addEventListener('click', enableSubmit); 1272 formField.addEventListener('focus', enableSubmit); 1273 } 1274 formSubmit.addEventListener('click', disableSubmit); 1275 </script>
vendor: 79 bytes, lines 1275-1277
1275 1276 <script src="https://www.google.com/recaptcha/api.js" async defer></script> 1277
1277<script> 1278 function onSubmit(token) { 1279 // requestSubmit() (not submit()) so the native "submit" event actually fires - 1280 // intl-tel-input listens for it to populate its hidden telephoneNumber input 1281 // with the formatted number. submit() bypasses that event entirely, so the 1282 // hidden (empty) input was silently winning over the visible one on the 1283 // server, since both share the name "telephoneNumber". 1284 document.getElementById('contact-form').requestSubmit(); 1285 } 1286 </script>
1286 1287
1287<script src="/assets/js/vue.min.js"></script>
1287 1288 1289</body> 1290</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.