1 2 3 4 5 6<!DOCTYPE html> 7<html lang="it"> 8<head> 9 10 <!-- Google Tag Manager --> 11
11<script>
vendor: 343 bytes, lines 11-15
11(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 12 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 13 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 14 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 15 })(window,document,'script','dataLayer','
15GTM-K5XQZ6B
vendor: 3 bytes, line 15
15');
15</script>
15 16 <!-- End Google Tag Manager --> 17 18
18<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="ade33fea-8073-4d6a-b737-711ae215cb27" data-blockingmode="auto" type="text/javascript"></script>
18 19 20 <meta charset="UTF-8"> 21 <title>I miei preferiti</title> 22 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 23 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"> 24 <meta name="format-detection" content="telephone=no"/> 25 <meta property="og:title" content="Preferiti"/> 26 <meta property="og:url" content="https://www.cascioligroup.it/preferiti"/> 27 <link rel="canonical" href="https://www.cascioligroup.it/preferiti"/> 28 <meta name="robots" content="noindex"/> 29 30 <link rel="shortcut icon" href="/favicon.ico"/> 31 <link rel="apple-touch-icon" sizes="57x57" href="/favicon/apple-icon-57x57.png"> 32 <link rel="apple-touch-icon" sizes="60x60" href="/favicon/apple-icon-60x60.png"> 33 <link rel="apple-touch-icon" sizes="72x72" href="/favicon/apple-icon-72x72.png"> 34 <link rel="apple-touch-icon" sizes="76x76" href="/favicon/apple-icon-76x76.png"> 35 <link rel="apple-touch-icon" sizes="114x114" href="/favicon/apple-icon-114x114.png"> 36 <link rel="apple-touch-icon" sizes="120x120" href="/favicon/apple-icon-120x120.png"> 37 <link rel="apple-touch-icon" sizes="144x144" href="/favicon/apple-icon-144x144.png"> 38 <link rel="apple-touch-icon" sizes="152x152" href="/favicon/apple-icon-152x152.png"> 39 <link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-icon-180x180.png"> 40 <link rel="icon" type="image/png" sizes="192x192" href="/favicon/android-icon-192x192.png"> 41 <link rel="icon" type="image/png" sizes="144x144" href="/favicon/android-icon-144x144.png"> 42 <link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png"> 43 <link rel="icon" type="image/png" sizes="96x96" href="/favicon/favicon-96x96.png"> 44 <link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png"> 45 <link rel="manifest" href="/favicon/manifest.json"> 46 <meta name="msapplication-TileColor" content="#ffffff"> 47 <meta name="msapplication-TileImage" content="/favicon/ms-icon-144x144.png"> 48 <meta name="theme-color" content="#ffffff"> 49 50 51 52 53 54 55 56 57 <link rel="stylesheet" href="/minified-styles-base.css?827061c1"> 58 59 <link rel="stylesheet" href="/build/397.fbe6f58e.css"><link rel="stylesheet" href="/build/app.1140991d.css"> 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
76<script data-cookieconsent="ignore" type="text/javascript" src="/minified-scripts-base.js?827061c1"></script>
76 77 78
78<script src="https://script.ekonsilio.com/5ef0c1620a516a00107eb737-5ef313338bacb300103e8c28.js" data-cookieconsent="ignore"></script>
78 79 80
80<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
80 81</head> 82 83<body itemscope itemtype="http://schema.org/WebPage"> 84 <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 84-85
84 85 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
85GTM-K5XQZ6B
vendor: 91 bytes, lines 85-87
85" 86 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 87
87<!-- End Google Tag Manager (noscript) --> 88 89 <header class="header-wrap "> 90 <div class="container header container-lg bottom-border"> 91 <div class="header-logo-wrap"> 92 <div class="d-flex align-items-center"> 93 <div class="header-nav-toggle" id="header-nav-toggle"> 94 <div></div> 95 <div></div> 96 <div></div> 97 </div> 98 </div> 99 <div class="header-logo"> 100 <a href="/"> 101 <img src="/images/logo/cascioli_white.svg" alt="Cascioli Group" width="140" height="57" /> 102 </a> 103 </div> 104 <div class="d-flex align-items-center justify-content-end"> 105 <div class="header-favorites"> 106 <a href="/preferiti" class="btn-header-favorites"> 107 <img class="ico-heart ico-heart-empty" width="20" height="22" src="/images/vehicle/ico_preferiti.svg" onload="SVGInject(this)" alt="Preferiti"/> 108 <img class="ico-heart ico-heart-full" width="20" height="22" src="/images/vehicle/ico_preferiti_full.svg" onload="SVGInject(this)" alt="Preferiti"/> 109 <div class="favorites-count"></div> 110 </a> 111 </div> 112 </div> 113 </div> 114 </div> 115 <div class="container header-nav"> 116 <ul> 117 <li class="title"> 118 <a href="/usato" >Auto usate</a> 119 </li> 120 <li class="title"> 121 <a href="/moto" >Moto</a> 122 </li> 123 <li class="title"> 124 <a href="/ricerca-veicoli?archives=nuovo,km0,usato&groupType=vic&typePrice=price" >Veicoli commerciali</a> 125 </li> 126 <li class="title has-submenu"> 127 <span >NOLEGGIO</span> 128 <ul class="sub"> 129 <li class="title"> 130 <a href="/noleggio/noleggio-breve-termine">Breve termine</a> 131 </li> 132 <li class="title"> 133 <a href="/noleggio/noleggio-lungo-termine">Lungo termine</a> 134 </li> 135 </ul> 136 </li> 137 <li class="title"> 138 <a href="/promozioni?type=vendita" >PROMO</a> 139 </li> 140 <li class="title has-submenu"> 141 <span >SERVICE</span> 142 <ul class="sub"> 143 <li class="title no-padding"> 144 <a href="/service/carrozzeria"> 145 Carrozzeria Multibrand 146 </a> 147 </li> 148 <li class="title no-padding"> 149 <a href="/service/assistenza-bmw"> 150 Centro Assistenza BMW 151 </a> 152 </li> 153 <li class="title no-padding"> 154 <a href="/service/assistenza-mini"> 155 Centro Assistenza MINI 156 </a> 157 </li> 158 <li class="title no-padding"> 159 <a href="/service/assistenza-bmw-motorrad"> 160 Centro Assistenza BMW Motorrad 161 </a> 162 </li> 163 <li class="title no-padding"> 164 <a href="/service/assistenza-mercedes-benz-vans"> 165 Centro Assistenza Mercedes Vans 166 </a> 167 </li> 168 <li class="title no-padding"> 169 <a href="/service/assistenza-mercedes-benz"> 170 Centro Assistenza Mercedes-Benz 171 </a> 172 </li> 173 <li class="title no-padding"> 174 <a href="/service/assistenza-smart"> 175 Centro Assistenza Smart 176 </a> 177 </li> 178 <li class="title no-padding"> 179 <a href="/service/assistenza-toyota"> 180 Centro Assistenza Toyota 181 </a> 182 </li> 183 </ul> 184 </li> 185 <li class="title"> 186 <a href="/contatti" >SEDI E CONTATTI</a> 187 </li> 188 <li class="title"> 189 <a href="/pagina/lavora-con-noi" >LAVORA CON NOI</a> 190 </li> 191 </ul> 192 </div> 193 </header> 194 195 <nav class="header-nav-wrap" id="header-nav-wrap"> 196 <div class="container header-nav"> 197 <div class="row megamenu-cnt"> 198 199 <div class="col-md-4"> 200 <ul class="section-megamenu"> 201 <li class="title">
202 <span>Cascioli Group</span> 203 </li> 204 <li> 205 <a href="/pagina/chi-siamo">Cascioli Group, una grande storia</a> 206 </li> 207 <li> 208 <a href="/pagina/lavora-con-noi">Lavora con noi</a> 209 </li> 210 <li> 211 <a href="/pagina/parita-di-genere">Parità di genere</a> 212 </li> 213 <li> 214 <a href="/pagina/whistleblowing">Whistleblowing</a> 215 </li> 216 217 <li> 218 <a href="https://portal.teamsystemhr.com/000/025B9/replace/" rel="nofollow" target="_blank">Area dipendenti</a> 219 </li> 220 </ul> 221 222 <ul class="section-megamenu" style="margin-top: 30px;"> 223 <li class="title"> 224 <span>Cascioli Rent</span> 225 </li> 226 <li> 227 <a href="/pagina/casciolirent">Noleggio Cascioli Rent</a> 228 </li> 229 <li> 230 <a href="/pagina/informativa-cascioli-rent">Informativa Cascioli Rent</a> 231 </li> 232 <li> 233 <a href="/pagina/condizioni-generali-cascioli-rent">Condizioni Generali Cascioli Rent</a> 234 </li> 235 <li> 236 <a href="/pagina/tabella-danni-cascioli-rent">Tabella danni Cascioli Rent</a> 237 </li> 238 </ul> 239 </div> 240 241 242 <div class="col-md-4"> 243 <ul class="section-megamenu"> 244 <li class="title"> 245 <span>I nostri Brand</span> 246 </li> 247 <li> 248 <div class="subtitle"> 249 <span>BMW</span> 250 <i class="fa fa-angle-right"></i> </div> 251 <ul class="submenu"> 252 <li> 253 <a href="/bmw" >I modelli BMW</a> 254 </li> 255 <li> 256 <a href="/bmw-premium-selection" >BMW Premium Selection</a> 257 </li> 258 </ul> 259 </li> 260 <li> 261 <div class="subtitle">
262 <span>BMW M</span> 263 <i class="fa fa-angle-right"></i> </div> 264 <ul class="submenu"> 265 <li> 266 <a href="/bmw-m" >I modelli BMW M</a> 267 </li> 268 </ul> 269 </li> 270 <li> 271 <div class="subtitle"> 272 <span>BMW Motorrad</span> 273 <i class="fa fa-angle-right"></i> </div> 274 <ul class="submenu"> 275 <li> 276 <a href="/" >Moto</a> 277 </li> 278 <li> 279 <a href="/bmw-motorrad" >I modelli BMW Motorrad</a> 280 </li> 281 </ul> 282 </li> 283 <li> 284 <div class="subtitle"> 285 <span>Maserati</span> 286 <i class="fa fa-angle-right"></i> </div> 287 <ul class="submenu"> 288 <li> 289 <a href="/maserati" target="_blank">I modelli Maserati</a> 290 </li> 291 </ul> 292 </li> 293 <li> 294 <div class="subtitle"> 295 <span>Mercedes AMG</span> 296 <i class="fa fa-angle-right"></i> </div> 297 <ul class="submenu"> 298 <li> 299 <a href="/amg" >Gamma Auto AMG</a> 300 </li> 301 <li> 302 <a href="/" >Usato garantito</a> 303 </li> 304 </ul> 305 </li> 306 <li> 307 <div class="subtitle"> 308 <span>Mercedes-Benz Vans</span> 309 <i class="fa fa-angle-right"></i> </div> 310 <ul class="submenu"> 311 <li> 312 <a href="/mercedes-vans" >I modelli Mercedes-Benz Vans</a> 313 </li> 314 <li> 315 <a href="/pagina/mercedes-benz-veicoli-commerciali" target="_blank">Gamma Elettrica</a> 316 </li> 317 <li> 318 <a href="/pagina/van-pro" target="_blank">Van ProCenter</a> 319 </li> 320 </ul> 321 </li> 322 <li> 323 <div class="subtitle">
324 <span>Mercedes-Benz</span> 325 <i class="fa fa-angle-right"></i> </div> 326 <ul class="submenu"> 327 <li> 328 <a href="/mercedes-benz-certified" >Mercedes Benz Certified</a> 329 </li> 330 <li> 331 <a href="/mercedes" >I modelli Mercedes-Benz</a> 332 </li> 333 </ul> 334 </li> 335 <li> 336 <div class="subtitle"> 337 <span>MINI</span> 338 <i class="fa fa-angle-right"></i> </div> 339 <ul class="submenu"> 340 <li> 341 <a href="/mini" >I modelli MINI</a> 342 </li> 343 <li> 344 <a href="/mini-next" >MINI Next</a> 345 </li> 346 </ul> 347 </li> 348 <li> 349 <div class="subtitle"> 350 <span>smart</span> 351 <i class="fa fa-angle-right"></i> </div> 352 <ul class="submenu"> 353 <li> 354 <a href="/smart" >I modelli smart</a> 355 </li> 356 <li> 357 <a href="/smart-certified" >smart Certified</a> 358 </li> 359 </ul> 360 </li> 361 <li> 362 <div class="subtitle"> 363 <span>Toyota</span> 364 <i class="fa fa-angle-right"></i> </div> 365 <ul class="submenu"> 366 <li> 367 <a href="/toyota" >I modelli Toyota</a> 368 </li> 369 <li> 370 <a href="/toyota-approved" >Toyota Approved</a> 371 </li> 372 </ul> 373 </li> 374 <li> 375 <div class="subtitle"> 376 <span>Toyota GR Sport</span> 377 <i class="fa fa-angle-right"></i> </div> 378 <ul class="submenu"> 379 <li> 380 <a href="/toyota-gr-sport" >
380I modelli GR Sport</a> 381 </li> 382 </ul> 383 </li> 384 <li> 385 <div class="subtitle"> 386 <span>Toyota Professional</span> 387 <i class="fa fa-angle-right"></i> </div> 388 <ul class="submenu"> 389 <li> 390 <a href="/toyota-professional" >I modelli Toyota Professional</a> 391 </li> 392 </ul> 393 </li> 394 </ul> 395 </div> 396 397 398 <div class="col-md-4"> 399 <ul class="section-megamenu"> 400 <li class="title"> 401 <span>Contatti</span> 402 </li> 403 <li> 404 <a href="/contatti">Le nostre sedi</a> 405 </li> 406 </ul> 407 </div> 408 409 </div> 410 </div> 411 </nav> 412 413 414<main class="main-wrap"> 415 <div class="favorites-list-page" id="favorites-app"> 416 <section class="breadcrumbs-section"> 417 <div class="container"> 418 <div class="breadcrumbs upper"> 419 <ul itemscope itemprop="breadcrumb" itemtype="http://schema.org/BreadcrumbList"> 420 <li itemscope itemprop="itemListElement" itemtype="http://schema.org/ListItem"> 421 <a href="/" itemprop="item">Home <i class="fa fa-angle-right"></i></a> 422 <meta itemprop="name" content="Homepage"/> 423 <meta itemprop="position" content="1"/> 424 </li> 425 <li itemscope itemprop="itemListElement" itemtype="http://schema.org/ListItem"> 426 <span itemprop="name">Preferiti</span> 427 <meta itemprop="position" content="2"/> 428 </li> 429 </ul> 430 </div> 431 </div> 432 </section> 433 <section class="section-favorites-list"> 434 <div class="container"> 435 <h1 class="favorites-list-title">I miei preferiti</h1> 436 <div class="favorites-list" v-cloak> 437 <div class="favorites-loader" v-if="!!loading"> 438 <div class="loader"></div> 439 </div> 440 <div class="col-md-12 text-center my-4" v-if="!loading && vehicleList.length == 0"><strong>Nessun veicolo tra i preferiti</strong></div> 441 <div class="row"> 442 <div class="col-md-3" v-cloak v-for="vehicle in vehicleList"> 443 <div class="vehicle-favorite-controls"> 444 <div> 445 <div data-ico="svg" class="custom-checkbox checkbox-blue"> 446 <input type="checkbox" :id="'vehicle-' + vehicle.id" :value="vehicle.id" v-model="vehicle.selected"> 447 <label :for="'vehicle-'+ vehicle.id">Richiedi info</label> 448 </div> 449 </div> 450 <div> 451 <div class="btn-remove-favorite" @click="removeFavoritedVehicle(vehicle)"> 452 <i class="fa fa-trash-alt"></i> 453 </div> 454 </div> 455</div> 456<div class="vehicle-card card-vertical"> 457 <div class="card-images-wrap"> 458 <a :href="vehicle.urlName" v-if="vehicle.imagesUrlSmall && vehicle.imagesUrlSmall.length" class="bg-v"> 459 <img 460 :alt="vehicle.erpId + ' ' + vehicle.brand + ' ' + vehicle.model + ' Cascioli Group'" 461 :src="vehicle.imagesUrlSmall[0]" 462 class="img-fluid" 463 loading="lazy" 464 /> 465 </a> 466 467 <a :href="vehicle.urlName" v-else> 468 <img alt="Cascioli Group" class="img-fluid" src="/images/vehicle/placeholder.jpg" loading="lazy"> 469 </a> 470 471 </div> 472 <div class="vehicle-card-body"> 473 <a :href="vehicle.urlName"> 474 <div> 475 <h4 class="vehicle-card-model">{{ vehicle.brand }} {{ vehicle.model }}</h4> 476 <div class="vehicle-card-version">{{ vehicle.version }}</div> 477 </div> 478 <div class="vehicle-card-data"> 479 <div style="width: 100%;"> 480 <div class="vehicle-card-rate" v-if="vehicle.monthlyFee"> 481 <strong>{{ numberFormat(vehicle.monthlyFee,'.','.') }} €</strong> /mese 482 </div> 483 484 <div v-if="vehicle.listPrice > vehicle.finalPrice" class="d-flex align-items-end" style="margin-bottom: 10px;"> 485 <div class="vehicle-card-price-striked"> 486 {{ numberFormat(vehicle.listPrice,'.','.') }} € 487 </div> 488 <div class="discount">-{{vehicle.discount}}%</div> 489 </div> 490 491 <div class="vehicle-card-price"> 492 <strong>{{ numberFormat(vehicle.finalPrice,'.','.') }} €</strong> 493 </div> 494 495 <div class="vehicle-card-saving" v-if="vehicle.listPrice > vehicle.finalPrice"> 496 <strong>{{ numberFormat((vehicle.listPrice - vehicle.finalPrice),'.','.') }} €</strong> di risparmio 497 </div> 498 </div> 499 <div> 500 <div class="d-flex align-items-center"> 501 <div class="vehicle-card-archive"> 502 {{ vehicle.archive }} 503 </div> 504 <div class="vehicle-card-warranty" v-if="vehicle.warrantyName "> 505 {{ vehicle.warrantyName }} {{ vehicle.warrantyMonth ? vehicle.warrantyMonth+" mesi" : "" }} 506 </div> 507 </div> 508 <div class="vehicle-card-people" v-if="vehicle.counterClickedTotal"> 509 <strong>{{ vehicle.counterClickedTotal }}</strong> persone interessate 510 </div> 511 </div> 512 <div style="width: 100%;"> 513 <ul class="vehicle-card-list"> 514 <li v-if="vehicle.archive != 'nuovo' && !!vehicle.km"> 515 <img src="/images/vehicle/ico_chilometri.svg" alt="km" loading="lazy"> 516 {{ numberFormat(vehicle.km) }} km 517 </li> 518 <li v-if="vehicle.archive != 'nuovo' && !!vehicle.registrationDate"> 519 <img src="/images/vehicle/ico_immatricolazione.svg" alt="immatricolazione" loading="lazy"> 520 {{ vehicle.registrationDate }} 521 </li> 522 <li v-if="!!vehicle.fuel"> 523 <img src="/images/vehicle/ico_alimentazione.svg" alt="alimentazione" style="margin-left:2px" loading="lazy"> 524 {{ vehicle.fuel }} 525 </li> 526 <li v-if="!!vehicle.gear"> 527 <img src="/images/vehicle/ico_cambio.svg" alt="cambio" loading="lazy"> 528 {{ vehicle.gear }} 529 </li> 530 </ul> 531 </div> 532 </div> 533 <div v-if="vehicle.groupType == 'vic'" class="vatExposed">IVA esclusa</div> 534 <div class="vehicle-card-optionals" v-if="vehicle.optionals && vehicle.optionals.length > 0"> 535 <h4 class="optionals-title">Optional di valore</h4> 536 <ul class="optionals-list"> 537 <li v-for="(optional,index) in vehicle.optionals" v-show="index < 4 || vehicle.moreOptionals"> 538 <i class="fa fa-check"></i> 539 {{ optional.label }} 540 </li> 541 </ul> 542 <div class="optionals-more" @click.prevent="toggleMoreOptionals(vehicle)" v-if="vehicle.optionals && vehicle.optionals.length > 4">
543 <span v-show="!vehicle.moreOptionals"><i class="fa fa-plus"></i> mostra tutti</span> 544 <span v-show="vehicle.moreOptionals"><i class="fa fa-minus"></i> chiudi</span> 545 </div> 546 </div> 547 </a> 548 </div> 549</div> 550 </div> 551 </div> 552 </div> 553 </div> 554 </section> 555 <section class="form-section bg-lightgray" id="bottom-form"> 556 <div class="container"> 557 <div class="form-title">Richiedi informazioni</div> 558 <div class="row favorites-selected-list" v-show="selectedVehicles.length > 0"> 559 <div class="col-md-4" v-for="vehicle in selectedVehicles"> 560 <div class="selected-vehicle-wrap"> 561 <div v-if="vehicle.imagesUrlSmall && vehicle.imagesUrlSmall.length" class="selected-vehicle-img"> 562 <img :alt="vehicle.erpId + ' ' + vehicle.brand + ' ' + vehicle.model + ' Cascioli Group'" :src="vehicle.imagesUrlSmall[0]" loading="lazy"/> 563 </div> 564 <div class="selected-vehicle-img" v-if="!vehicle.imagesUrlSmall || vehicle.imagesUrlSmall.length == 0"> 565 <img alt="Cascioli Group" class="img-fluid" src="/images/vehicle/placeholder.jpg" loading="lazy"> 566 </div> 567 <div class="selected-vehicle-data"> 568 <div> 569 <h4 class="selected-vehicle-model">{{ vehicle.brand }} {{ vehicle.model }}</h4> 570 <div class="selected-vehicle-version">{{ vehicle.version }}</div> 571 </div> 572 <div class="selected-vehicle-id">cod. {{ vehicle.erpId }}</div> 573 </div> 574 <div class="btn-deselect" @click="vehicle.selected = false"></div> 575 </div> 576 </div> 577 </div> 578 <form method="POST" accept-charset="UTF-8" class="contact-form info-request-form"> 579 <input type="hidden" name="formType" value="WISHLIST"> 580 <input type="hidden" name="" value=""> 581 <input type="hidden" name="queryParams" value=""/> 582 583 <input type="hidden" name="vehicleIds" v-model="selectedVehiclesIds" v-if="selectedVehiclesIds" required> 584 585 <div class="row"> 586 <div class="col-md-3 form-group"> 587 <div class="floating-label floating-label-blue"> 588 <input type="text" class="form-control" name="name" required placeholder=" "> 589 <label>NOME*</label> 590 </div> 591 </div> 592 <div class="col-md-3 form-group"> 593 <div class="floating-label floating-label-blue"> 594 <input type="text" class="form-control" name="surname" required placeholder=" "> 595 <label>COGNOME*</label> 596 </div> 597 </div> 598 <div class="col-md-3 form-group"> 599 <div class="floating-label floating-label-blue"> 600 <input type="text" class="form-control" name="email" required placeholder=" "> 601 <label>EMAIL*</label> 602 </div> 603 </div> 604 <div class="col-md-3 form-group"> 605 <div class="floating-label floating-label-blue"> 606 <input type="text" class="form-control" name="phone" required placeholder=" "> 607 <label>TELEFONO*</label> 608 </div> 609 </div> 610 611 </div> 612 613 614 <div class="form-group"> 615 <label>MESSAGGIO</label> 616 <div class="floating-label floating-label-blue"> 617 <textarea name="message" class="form-control" rows="4" placeholder=""></textarea> 618 </div> 619 </div> 620 <div class="privacyCnt"> 621 <div class="row"> 622 <div class="col-md-12"> 623 <div class="form-group"> 624 <div class="custom-checkbox checkbox-blue" data-ico="svg"> 625 <input type="checkbox" id="privacy-379464108" name="privacy" required/> 626 <label for="privacy-379464108">Acconsento al <a href="/pagina/privacy-policy" target="_blank">trattamento dei dati personali</a>* </label> 627 </div> 628 </div> 629 <div class="form-group"> 630 <div class="custom-checkbox checkbox-blue" data-ico="svg"> 631 <input type="checkbox" id="marketing-379464108" name="marketing"/> 632 <label for="marketing-379464108">Per attività di marketing diretto e indiretto e ricerche di mercato</label> 633 </div> 634 </div> 635 <div class="form-group"> 636 <div class="custom-checkbox checkbox-blue" data-ico="svg"> 637 <input type="checkbox" id="profiling-379464108" name="profiling"/> 638 <label for="profiling-379464108">Per attività di profilazione al fine di migliorare l'offerta di prodotti e servizi</label> 639 </div> 640 </div> 641 </div> 642 </div> 643 </div> 644 <div class="mb-2"> 645 <div class="cf-turnstile" data-sitekey="0x4AAAAAAB_PV7341dzACHcl"></div> 646 </div> 647 <div class="row"> 648 <div class="col-md-3 offset-md-9"> 649 <div class="button-box" style="margin-top:10px"> 650 <button type="submit" class="btn-submit "> 651 Invia richiesta 652 </button> 653 </div> 654 </div> 655 </div> 656 657</form> 658 </div> 659 </section> 660 </div> 661</main> 662 663 <aside class="aside-nav" id="aside-nav"> 664 <ul class="aside-nav-list"> 665 <li> 666 <a href="tel:+390858075906" class="aside-btn"> 667 <img src="/images/icon/ico_telefono.png" loading="lazy" alt="phone"> 668 </a> 669 </li> 670 <li>
671 <a href="https://web.whatsapp.com/send/?phone=+393486342803" target="_blank" class="aside-btn"> 672 <img src="/images/icon/ico_chat.png" loading="lazy" alt="chat"> 673 </a> 674 </li> 675 <li> 676 <div class="aside-btn btn-aside-form 677 goto-bottom-form " id="aside-form-toggle"> 678 <img src="/images/icon/ico_mail.png" loading="lazy" alt="mail"> 679 </div> 680 </li> 681 682 <li> 683 <a href="/contatti" class="aside-btn"> 684 <img src="/images/icon/ico_pinmap.png" loading="lazy" alt="pinmap"> 685 </a> 686 </li> 687 </ul> 688</aside> 689 <aside class="aside-form-wrap" id="aside-form"> 690 <div class="aside-form-btn-close" id="aside-form-btn-close"></div> 691 <div class="inner"> 692 693 <form method="POST" accept-charset="UTF-8" class="info-request-form contact-form"> 694 <input type="hidden" name="formType" value="INFO"> 695 <input type="hidden" name="" value=""> 696 <input type="hidden" name="queryParams" value=""/> 697 698 <h3 class="title">Richiedi informazioni</h3> 699 <div class="form-group"> 700 <div class="floating-label floating-label-blue"> 701 <input type="text" class="form-control" name="name" required placeholder=" "> 702 <label for="name">NOME*</label> 703 </div> 704 </div> 705 <div class="form-group"> 706 <div class="floating-label floating-label-blue"> 707 <input type="text" class="form-control" name="surname" required placeholder=" "> 708 <label for="surname">COGNOME*</label> 709 </div> 710 </div> 711 <div class="form-group"> 712 <div class="floating-label floating-label-blue"> 713 <input type="email" class="form-control" name="email" required placeholder=" "> 714 <label for="email">EMAIL*</label> 715 </div> 716 </div> 717 <div class="form-group"> 718 <div class="floating-label floating-label-blue"> 719 <input type="text" class="form-control" name="phone" required placeholder=" "> 720 <label for="phone">TELEFONO*</label> 721 </div> 722 </div> 723 724 725 <div class="form-group"> 726 <label for="message">MESSAGGIO</label> 727 <div class="floating-label floating-label-blue"> 728 <textarea name="message" class="form-control" rows="4" placeholder=" "></textarea> 729 </div> 730 </div> 731 732 733 734 735 <div class="privacyCnt"> 736 <div class="form-group"> 737 Privacy Policy (<a href="/pagina/privacy-policy" target="_blank">leggi</a>) 738 </div> 739 <div class="form-group"> 740 <div class="custom-checkbox checkbox-blue label-wrap" data-ico="svg"> 741 <input type="checkbox" name="privacy" id="privacy-aside" required> 742 <label for="privacy-aside"> 743 <span>* Acconsento al <a href="/pagina/privacy-policy" target="_blank">trattamento dei dati personali</a></span> 744 </label> 745 </div> 746 </div> 747 <div class="form-group"> 748 <div class="custom-checkbox checkbox-blue label-wrap" data-ico="svg"> 749 <input type="checkbox" name="marketing" id="marketing-aside"> 750 <label for="marketing-aside"> 751 <span>Per attività di marketing diretto e indiretto e ricerche di mercato</span> 752 </label> 753 </div> 754 </div> 755 <div class="form-group"> 756 <div class="custom-checkbox checkbox-blue label-wrap" data-ico="svg"> 757 <input type="checkbox" name="profiling" id="profiling-aside"> 758 <label for="profiling-aside"> 759 <span>Per attività di profilazione al fine di migliorare l'offerta di prodotti e servizi</span> 760 </label> 761 </div> 762 </div> 763 </div> 764 765 <div class="mb-2"> 766 <div class="cf-turnstile" data-sitekey="0x4AAAAAAB_PV7341dzACHcl"></div> 767 </div> 768 769 <div> 770 <button type="submit" class="btn-submit"> 771 Invia richiesta 772 </button> 773 </div> 774</form> 775 776 777 </div> 778</aside> 779 780 781<footer class="footer-wrap"> 782 783 <div id="location_footer_app"> 784 <div class="container" v-if="locationList.length > 0"> 785 <div class="d-flex align-items-center justify-content-start"> 786 <img src="/images/icon/ondina_blu.svg" width="34" height="15" alt="ondina" loading="lazy"> 787 <h3 class="light ml-2 kerning text-uppercase ">Le nostre sedi</h3> 788 </div> 789 <p style="padding:15px 0">Seleziona una marca o un tipo di servizio e trova la sede desiderata nelle Marche e Abruzzo</p> 790 791 <div class="sedi-section"> 792 <div class="row"> 793 <div class="col-md-3"> 794 <select v-model="filterLocation.type" class="form-control select-white" :class="{'active': filterLocation.type}"> 795 <option value="">Tipologia di servizio</option> 796 <option :value="item.type" v-for="item in $_items(locationList).unique('type').orderBy('type').data()" v-html="item.type"></option> 797 </select> 798 </div> 799 <div class="col-md-2"> 800 <select v-model="filterLocation.brand" class="form-control text-capitalize select-white" :class="{'active': filterLocation.brand}"> 801 <option value="">Marca</option> 802 <option :value="item.id" v-for="item in $_items(uniqueBrands).orderBy('name').data()" v-html="item.name"></option> 803 </select> 804 </div> 805 </div> 806 </div> 807 808 <div class="row" v-if="filterLocation.brand || filterLocation.type"> 809 <div class="col-md-3 box-sede" v-for="location in filteredLocation(locationList)"> 810 <div v-if="location.brands"> 811 <img :src="'/images/brand/'+(brand.code).toLowerCase()+'.png'" :alt="brand.name" v-for="brand in location.brands" loading="lazy"> 812 </div> 813 <div class="light">
814 <span class="semibold">{{ location.name }}</span><br/> 815 {{ location.company }}<br/> 816 {{ location.address }}<br/> 817 {{ location.city }} ({{ location.province }})<br/> 818 {{ location.phone }}<br/> 819 820 <a :href="location.url" class="next m-0">Contatta la sede</a> 821 822 </div> 823 </div> 824 </div> 825 </div> 826 </div> 827
828<script defer data-cookieconsent="ignore"> 829 if(document.getElementById('location_footer_app')){ 830 const locationFooterApp = new Vue({ 831 el: '#location_footer_app', 832 data: { 833 filterLocation: { 834 type: '', 835 brand: '', 836 }, 837 uniqueBrands: [], 838 locationList: [] 839 }, 840 methods: { 841 getLocationList: function () { 842 var self = this; 843 var _url = "/api/location-list"; 844 axios.get(_url).then(function (response) { 845 self.locationList = response.data; 846 self.locationList.forEach(function(location){ 847 location.brands.forEach(function(brand){ 848 let ub = self.uniqueBrands.find(b => b.id === brand.id); 849 if(!ub){ 850 self.uniqueBrands.push(brand) 851 } 852 }) 853 }) 854 }).catch(function (e) { 855 console.log('err', e) 856 Swal.fire("Attenzione", 'Caricamento sedi non riuscito', "warning") 857 }) 858 }, 859 filteredLocation:function(list){ 860 if (list === undefined) return []; 861 var filtered = []; 862 var _filter = this.filterLocation; 863 864 for (var i = 0; i < list.length; i++) { 865 var item = list[i]; 866 867 if ( 868 (_filter.type == null || _filter.type == '' || (item.type.toLowerCase() == _filter.type.toLowerCase() || item.secondType.toLowerCase() == _filter.type.toLowerCase())) 869 && (_filter.brand == null || _filter.brand == '' || item.brands.find(b => b.id === _filter.brand)) 870 ) { 871 filtered.push(item); 872 } 873 } 874 875 return filtered; 876 }, 877 resetFilter: function() { 878 this.filterLocation = { 879 type: '', 880 brand: '', 881 }; 882 }, 883 }, 884 mounted() { 885 var self = this; 886 self.getLocationList(); 887 }, 888 }); 889 } 890 891 892 893 894 895</script>
895 896 897 <div class="bg-gradient-blue-2 foot py-4"> 898 <div class="container"> 899 <div class="topDealerLogos"> 900 <a href="https://www.quintegia.it" target="_blank" rel="nofollow"> 901 <img src="/images/logo/topdealernetwork.webp" alt="topdealernetwork" width="80" height="109" class="img-fluid" loading="lazy"> 902 </a> 903 <a href="https://www.infomotori.com/concessionari/cascioli-group/cascioli-group-riceve-il-riconoscimento-di-top-dealers-da-infomotori-com_324557/" target="_blank" rel="nofollow"> 904 <img src="/images/logo/topdealers.webp" alt="topdealer" width="75" height="60" class="img-fluid" loading="lazy"> 905 </a> 906 <span class="social"> 907 <a href="https://it.linkedin.com/company/cascioligroup" target="_blank"> 908 <img src="/images/social/linkedin.svg" width="30" height="30" alt="linkedin" loading="lazy"> 909 </a> 910 <a href="https://www.instagram.com/cascioli.group" target="_blank"> 911 <img src="/images/social/instagram.svg" width="30" height="30" alt="instagram" loading="lazy"> 912 </a> 913 <a href="https://www.facebook.com/cascioligroup" target="_blank"> 914 <img src="/images/social/facebook.svg" width="30" height="30" alt="facebook" loading="lazy"> 915 </a> 916 <a href="https://www.youtube.com/channel/UCPWuiiuCYViwiBEc9WddX6Q" target="_blank"> 917 <img src="/images/social/youtube.svg" width="30" height="30" alt="youtube" loading="lazy"> 918 </a> 919 <a href="https://www.tiktok.com/@cascioligroup" target="_blank"> 920 <img src="/images/social/tiktok.svg" width="30" height="30" alt="tiktok" loading="lazy"> 921 </a> 922 </span> 923 </div> 924 <div> 925 © 2026 Cascioli - All contents copyright 2026 Cascioli spa - Rea TE100609 - capitale sociale 2.000.000,00 - Via Liberazione, 194 San Benedetto del Tronto - P.I. 00855510673 926 <br/>© 2026 Cascioli - All contents copyright 2026 Sirio srl - Rea TE104676 - capitale sociale 2.040.000,00 - Via Italia, c.da Rovano, Mosciano SantâAngelo - P.I. 00915910673 927 </div> 928 <div> 929 <a href="/pagina/privacy-policy">Privacy policy</a> - 930 <a href="/pagina/cookie-policy">Cookie policy</a> - 931 <a href="/pagina/whistleblowing">Whistleblowing</a> 932 </div> 933 </div> 934 </div> 935 <div class="bg-blue-1 foot "> 936 <div class="container"> 937 <a href="https://www.webindustry.it" target="_blank">Made in Web Industry</a> 938 </div> 939 </div> 940</footer> 941 942
943<script data-cookieconsent="ignore"> 944 let vue_filters = { 945 methods: { 946 numberFormat: function (num) { 947 return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1."); 948 }, 949 }, 950 } 951</script>
951 952
953<script data-cookieconsent="ignore"> 954 955 let rental_vehicle_filter_list = { 956 data: { 957 loaderOn: false, 958 dayPriceFromList: [50,100,150,200,250,300,500,700], 959 dayPriceToList: [100,150,200,250,300,500,700,900], 960 companyRentList: [ 961 {code: 'ALD', label: 'Garanzia Ayvens 24 mesi'}, 962 {code: 'ARVAL', label: 'Arval'}, 963 {code: 'KINTO', label: 'Kinto'}, 964 {code: 'UNIPOL', label: 'Unipol rental'}, 965 {code: 'ALPHABET', label: 'Alphabet'}, 966 {code: 'MB', label: 'Mercedes-Benz Lease'}, 967 ], 968 rentalFilter: { 969 rentalType: 'nlt', 970 brand: '', 971 model: '', 972 fuel: '', 973 rateFrom: '', 974 rateTo: '', 975 priceFrom: '', 976 priceTo: '', 977 companyRent: '', 978 orderby: 'PRICE_ASC' 979 }, 980 rentalTypesOptions: [ 981 { 982 value: 'privati', 983 label: 'Privati', 984 }, 985 { 986 value: 'business', 987 label: 'Aziendali', 988 }, 989 ], 990 rentalVehicleList: [] 991 }, 992 methods: { 993 getRentalVehicleList: function(){ 994 var self = this; 995 var _url = "/api/rental-vehicle-list"; 996 self.loaderOn = true; 997 axios.get(_url).then(function (response) { 998 self.rentalVehicleList = response.data; 999 if(getParameterByName('brand')){ 1000 self.rentalFilter.brand = getParameterByName('brand'); 1001 } 1002 if(getParameterByName('model')){ 1003 self.rentalFilter.model = getParameterByName('model'); 1004 } 1005 if(getParameterByName('fuel')){ 1006 self.rentalFilter.fuel = getParameterByName('fuel'); 1007 } 1008 if(getParameterByName('rateFrom')){ 1009 self.rentalFilter.rateFrom = getParameterByName('rateFrom'); 1010 } 1011 if(getParameterByName('rateTo')){ 1012 self.rentalFilter.rateTo = getParameterByName('rateTo'); 1013 } 1014 if(getParameterByName('priceFrom')){ 1015 self.rentalFilter.priceFrom = getParameterByName('priceFrom'); 1016 } 1017 if(getParameterByName('priceTo')){ 1018 self.rentalFilter.priceTo = getParameterByName('priceTo'); 1019 } 1020 if(getParameterByName('companyRent')){ 1021 self.rentalFilter.companyRent = getParameterByName('companyRent'); 1022 } 1023 1024 self.updateRentalFilters(); 1025 self.loaderOn = false; 1026 1027 }).catch(function (e) { 1028 self.loaderOn = false; 1029 console.log('err', e) 1030 }) 1031 }, 1032 filteredRentalVehicles: function (list) { 1033 if (list === undefined) return []; 1034 var filtered = []; 1035 var _vfilter = this.rentalFilter; 1036 1037 for (var i = 0; i < list.length; i++) { 1038 var item = list[i]; 1039 1040 if ( 1041 (_vfilter.rentalType == null || _vfilter.rentalType == '' || item.rentalType.toLowerCase() == _vfilter.rentalType.toLowerCase()) 1042 && (_vfilter.brand == null || _vfilter.brand == '' || item.brand.toLowerCase() == _vfilter.brand.toLowerCase()) 1043 && (_vfilter.model == null || _vfilter.model == '' || item.model.toLowerCase() == _vfilter.model.toLowerCase()) 1044 && (_vfilter.fuel == null || _vfilter.fuel == '' || (item.fuel && item.fuel.toLowerCase() == _vfilter.fuel.toLowerCase())) 1045 && (_vfilter.companyRent == null || _vfilter.companyRent == '' || (item.companyRent && item.companyRent.toLowerCase() == _vfilter.companyRent.toLowerCase())) 1046 && ((_vfilter.rateFrom == null || _vfilter.rateFrom == '' || item.fee >= _vfilter.rateFrom) 1047 && (_vfilter.rateTo == null || _vfilter.rateTo == '' || item.fee <= _vfilter.rateTo)) 1048 && ((_vfilter.priceFrom == null || _vfilter.priceFrom == '' || item.priceFrom >= _vfilter.priceFrom) 1049 && (_vfilter.priceTo == null || _vfilter.priceTo == '' || item.priceFrom <= _vfilter.priceTo)) 1050 ) { 1051 filtered.push(item); 1052 } 1053 } 1054 1055 return filtered; 1056 }, 1057 resetRentalFilter: function(){ 1058 this.rentalFilter.brand = ''; 1059 this.rentalFilter.model = ''; 1060 this.rentalFilter.fuel = ''; 1061 this.rentalFilter.rateFrom = ''; 1062 this.rentalFilter.rateTo = ''; 1063 this.rentalFilter.priceFrom = ''; 1064 this.rentalFilter.priceTo = ''; 1065 this.rentalFilter.companyRent = ''; 1066 }, 1067 submitRentalFilter: function(){ 1068 if(this.rentalFilter.rentalType == 'nlt'){ 1069 var _url = "/noleggio/noleggio-lungo-termine"; 1070 }else{ 1071 var _url = "/noleggio/noleggio-breve-termine"; 1072 } 1073 var _f = this.rentalFilter; 1074 var _filters = "?s=1"; 1075 1076 if (_f.brand) _filters += "&brand=" + _f.brand; 1077 if (_f.model) _filters += "&model=" + _f.model; 1078 if (_f.fuel) _filters += "&fuel=" + _f.fuel; 1079 if (_f.rateFrom) _filters += "&rateFrom=" + _f.rateFrom; 1080 if (_f.rateTo) _filters += "&rateTo=" + _f.rateTo; 1081 if (_f.priceFrom) _filters += "&priceFrom=" + _f.priceFrom; 1082 if (_f.priceTo) _filters += "&priceTo=" + _f.priceTo; 1083 if (_f.companyRent) _filters += "&companyRent=" + _f.companyRent; 1084 1085 /*var _serializeValues = { 1086 'brand': _f.brand, 1087 'model': _f.model, 1088 'fuel': _f.fuel, 1089 'rateFrom': _f.rateFrom ? _f.rateFrom : null, 1090 'rateTo': _f.rateTo ? _f.rateTo : null, 1091 'priceFrom': _f.priceFrom ? _f.priceFrom : null, 1092 'priceTo': _f.priceTo ? _f.priceTo : null, 1093 } 1094 1095 document.cookie = 'cookie_filtro_noleggio=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 1096 var _day = new Date(); 1097 _day.setTime(_day.getTime() + (1 * 24 * 60 * 60 * 1000)); 1098 var expires = "expires=" + _day.toUTCString(); 1099 document.cookie = "cookie_filtro_noleggio=" + JSON.stringify(_serializeValues) + ";path=/;" + expires;*/ 1100 1101 var _red = _url + _filters; 1102 location.href = _red; 1103 } 1104 }, 1105 mounted() { 1106 var self = this; 1107 self.getRentalVehicleList(); 1108 }, 1109 } 1110 1111 1112 let filtro_ricerca_noleggi = { 1113 data: { 1114 rentalOfficialBrandSelect: [], 1115 rentalUnofficialBrandSelect: [], 1116 rentalModelSelect: [], 1117 rentalFuelSelect: [], 1118 }, 1119 methods: { 1120 changeRentalFilter: function(type){ 1121 if(type == 'rentalType'){ 1122 this.rentalFilter.brand = ''; 1123 this.rentalFilter.model = ''; 1124 this.rentalFilter.fuel = ''; 1125 this.rentalFilter.rateFrom = ''; 1126 this.rentalFilter.rateTo = ''; 1127 } 1128 this.updateRentalFilters(); 1129 }, 1130 updateRentalFilters: function(){ 1131 var self = this; 1132 var rentalOfficialBrandSelect = []; 1133 var rentalUnofficialBrandSelect = []; 1134 var rentalModelSelect = []; 1135 var rentalFuelSelect = []; 1136 1137 self.rentalOfficialBrandSelect = []; 1138 self.rentalUnofficialBrandSelect = []; 1139 self.rentalModelSelect = []; 1140 self.rentalFuelSelect = []; 1141 1142 self.rentalVehicleList.forEach(function(item){ 1143 if(self.isActiveRentalBrand(item, self.rentalFilter)){ 1144 if(self.isRentalOfficialBrand(item.brand)){ 1145 rentalOfficialBrandSelect.push(item.brand); 1146 }else{ 1147 rentalUnofficialBrandSelect.push(item.brand); 1148 } 1149 } 1150 if(self.isActiveRentalModel(item, self.rentalFilter)){ 1151 rentalModelSelect.push(item.model); 1152 } 1153 if(self.isActiveRentalFuel(item, self.rentalFilter) && item.fuel){ 1154 rentalFuelSelect.push(item.fuel.toLowerCase()); 1155 } 1156 }) 1157 1158 self.rentalOfficialBrandSelect = self.rentalRemoveDuplicates(rentalOfficialBrandSelect); 1159 self.rentalUnofficialBrandSelect = self.rentalRemoveDuplicates(rentalUnofficialBrandSelect); 1160 self.rentalModelSelect = self.rentalRemoveDuplicates(rentalModelSelect); 1161 self.rentalFuelSelect = self.rentalRemoveDuplicates(rentalFuelSelect); 1162 }, 1163 isActiveRentalBrand: function(rentalVehicle, filters){ 1164 var brand = rentalVehicle.brand; 1165 if(brand == filters.brand){ 1166 return true; 1167 } 1168 var filterNames = ['model', 'fuel', 'rentalType']; 1169 if(!this.filterMatchByArray(filterNames, filters, rentalVehicle)){ 1170 return false;
1171 } 1172 return true; 1173 }, 1174 isActiveRentalModel: function(rentalVehicle, filters){ 1175 var model = rentalVehicle.model; 1176 if(model == filters.model){ 1177 return true; 1178 } 1179 var filterNames = ['brand', 'fuel', 'rentalType']; 1180 if(!this.filterMatchByArray(filterNames, filters, rentalVehicle)){ 1181 return false; 1182 } 1183 return true; 1184 }, 1185 isActiveRentalFuel: function(rentalVehicle, filters){ 1186 var fuel = rentalVehicle.fuel; 1187 if(fuel == filters.fuel){ 1188 return true; 1189 } 1190 var filterNames = ['brand', 'model', 'rentalType']; 1191 if(!this.filterMatchByArray(filterNames, filters, rentalVehicle)){ 1192 return false; 1193 } 1194 return true; 1195 }, 1196 filterMatchByArray: function(filterNames, filters, rentalVehicle){ 1197 var self = this; 1198 var hasMatch = true; 1199 filterNames.forEach(function(filterName){ 1200 if(!self.filterMatch(filterName, filters, rentalVehicle)){ 1201 hasMatch = false; 1202 } 1203 }) 1204 return hasMatch; 1205 }, 1206 filterMatch: function(filterName, filters, rentalVehicle){ 1207 if(filters[filterName] && rentalVehicle[filterName]){ 1208 if(typeof rentalVehicle[filterName] == 'number'){ 1209 rentalVehicle[filterName] != filters[filterName]; 1210 } 1211 else if(rentalVehicle[filterName].toLowerCase() != filters[filterName].toLowerCase()){ 1212 return false; 1213 } 1214 } 1215 return true; 1216 }, 1217 isRentalOfficialBrand: function(brand){ 1218 var officialBrand = ['mercedes-benz', 'mercedes amg', 'bmw', 'bmw m', 'smart', 'mercedes van', 'mini', 'bmw motorrad', 'toyota', 'toyota professional', 'toyota gr', 'maserati']; 1219 return officialBrand.indexOf(brand.toLowerCase()) >= 0; 1220 }, 1221 rentalRemoveDuplicates: function(itemsArray){ 1222 var result = []; 1223 itemsArray.forEach(function(e){ 1224 if(result.indexOf(e) < 0){ 1225 result.push(e) 1226 } 1227 }) 1228 result.sort(); 1229 return result; 1230 }, 1231 } 1232 } 1233 1234 1235 1236 let filtro_ricerca_veicoli = { 1237 data: { 1238 groupTypeSelect: [], 1239 archivesSelect: [], 1240 warrantiesSelect: [], 1241 officialBrandSelect: [], 1242 unofficialBrandSelect: [], 1243 modelSelect: [], 1244 fuelSelect: [], 1245 gearTypeSelect: [], 1246 registrationYearSelect: [], 1247 frameTypeSelect: [], 1248 uniqueWarrantyList: [], 1249 }, 1250 methods: { 1251 updateFilters: function(){ 1252 var self = this; 1253 var warrantyList = []; 1254 1255 var groupTypeSelect = []; 1256 var archivesSelect = []; 1257 var officialBrandSelect = []; 1258 var unofficialBrandSelect = []; 1259 var modelSelect = []; 1260 var registrationYearSelect = []; 1261 var gearTypeSelect = []; 1262 var fuelSelect = []; 1263 var warrantiesSelect = []; 1264 var frameTypeSelect = []; 1265 1266 self.groupTypeSelect = []; 1267 self.archivesSelect = []; 1268 self.officialBrandSelect = []; 1269 self.unofficialBrandSelect = []; 1270 self.modelSelect = []; 1271 self.registrationYearSelect = []; 1272 self.gearTypeSelect = []; 1273 self.fuelSelect = []; 1274 self.warrantiesSelect = []; 1275 self.frameTypeSelect = []; 1276 1277 self.vehicleList.forEach(function(item){ 1278 if(item.warrantyType) warrantyList.push(item.warrantyType); 1279 if(warrantyList.length){ 1280 self.uniqueWarrantyList = warrantyList.filter((v, i, a) => a.indexOf(v) === i); 1281 } 1282 1283 if(self.isActiveGroupType(item, self.vfilter)){ 1284 groupTypeSelect.push(item.groupType.toLowerCase()); 1285 } 1286 if(self.isActiveArchive(item, self.vfilter)){ 1287 archivesSelect.push(item.archive.toLowerCase()); 1288 } 1289 if(self.isActiveBrand(item, self.vfilter)){ 1290 if(self.isOfficialBrand(item.brand)){ 1291 officialBrandSelect.push(item.brand); 1292 }else{ 1293 unofficialBrandSelect.push(item.brand); 1294 } 1295 } 1296 if(self.isActiveModel(item, self.vfilter)){ 1297 modelSelect.push(item.model); 1298 } 1299 if(self.isActiveRegistrationYear(item, self.vfilter) && item.registrationYear){ 1300 registrationYearSelect.push(item.registrationYear); 1301 } 1302 if(self.isActiveGearType(item, self.vfilter) && item.gearType){ 1303 gearTypeSelect.push(item.gearType.toLowerCase()); 1304 } 1305 if(self.isActiveFuel(item, self.vfilter) && item.fuel){ 1306 fuelSelect.push(item.fuel.toLowerCase()); 1307 } 1308 if(self.isActiveFrameType(item, self.vfilter) && item.frameType){ 1309 frameTypeSelect.push(item.frameType.toLowerCase()); 1310 } 1311 if(self.isActiveWarranty(item, self.vfilter) && item.warrantyType){ 1312 warrantiesSelect.push(item.warrantyType.toLowerCase()); 1313 } 1314 }) 1315 1316 archivesSelect = self.removeDuplicates(archivesSelect); 1317 self.archiveOptions.forEach(function(archive, index){ 1318 if(archivesSelect.indexOf(archive.value) >= 0){ 1319 self.archiveOptions[index].disabled = false;
1320 }else{ 1321 self.archiveOptions[index].disabled = true; 1322 } 1323 }) 1324 self.groupTypeSelect = self.removeDuplicates(groupTypeSelect); 1325 self.officialBrandSelect = self.removeDuplicates(officialBrandSelect); 1326 self.unofficialBrandSelect = self.removeDuplicates(unofficialBrandSelect); 1327 self.modelSelect = self.removeDuplicates(modelSelect); 1328 self.registrationYearSelect = self.removeDuplicates(registrationYearSelect); 1329 self.gearTypeSelect = self.removeDuplicates(gearTypeSelect); 1330 self.fuelSelect = self.removeDuplicates(fuelSelect); 1331 self.frameTypeSelect = self.removeDuplicates(frameTypeSelect); 1332 warrantiesSelect = self.removeDuplicates(warrantiesSelect); 1333 if(self.warrantyOptions){ 1334 self.warrantyOptions.forEach(function(warranty, index){ 1335 if(warrantiesSelect.indexOf(warranty.value) >= 0){ 1336 self.warrantyOptions[index].disabled = false; 1337 }else{ 1338 self.warrantyOptions[index].disabled = true; 1339 } 1340 }) 1341 } 1342 1343 }, 1344 isActiveGroupType: function(vehicle, filters){ 1345 var groupType = vehicle.groupType; 1346 if(groupType == filters.groupType){ 1347 return true; 1348 } 1349 if(!this.archiveMatch(vehicle, filters.archives)){ 1350 return false; 1351 } 1352 if(!this.registrationYearMatch(vehicle, filters.registrationYear)){ 1353 return false; 1354 } 1355 var filterNames = ['groupType', 'model', 'gearType', 'fuel', 'frameType']; 1356 if(!this.filterMatchByArray(filterNames, filters, vehicle)){ 1357 return false; 1358 } 1359 return true; 1360 }, 1361 isActiveBrand: function(vehicle, filters){ 1362 var brand = vehicle.brand; 1363 if(brand == filters.brand){ 1364 return true; 1365 } 1366 if(!this.archiveMatch(vehicle, filters.archives)){ 1367 return false; 1368 } 1369 if(!this.registrationYearMatch(vehicle, filters.registrationYear)){ 1370 return false; 1371 } 1372 var filterNames = ['groupType', 'model', 'gearType', 'fuel', 'frameType']; 1373 if(!this.filterMatchByArray(filterNames, filters, vehicle)){ 1374 return false; 1375 } 1376 return true; 1377 }, 1378 isActiveModel: function(vehicle, filters){ 1379 var model = vehicle.model; 1380 if(model == filters.model){ 1381 return true; 1382 } 1383 if(!this.archiveMatch(vehicle, filters.archives)){ 1384 return false; 1385 } 1386 if(!this.registrationYearMatch(vehicle, filters.registrationYear)){ 1387 return false; 1388 } 1389 var filterNames = ['groupType', 'brand', 'fuel', 'gearType', 'frameType']; 1390 if(!this.filterMatchByArray(filterNames, filters, vehicle)){ 1391 return false; 1392 } 1393 return true; 1394 }, 1395 isActiveRegistrationYear: function(vehicle, filters){ 1396 var registrationYear = vehicle.registrationYear; 1397 if(registrationYear == filters.registrationYear){ 1398 return true; 1399 } 1400 if(!this.archiveMatch(vehicle, filters.archives)){ 1401 return false; 1402 } 1403 var filterNames = ['groupType', 'brand', 'fuel', 'gearType', 'model', 'frameType']; 1404 if(!this.filterMatchByArray(filterNames, filters, vehicle)){ 1405 return false; 1406 } 1407 return true; 1408 }, 1409 isActiveGearType: function(vehicle, filters){ 1410 var gearType = vehicle.gearType; 1411 if(gearType == filters.gearType){ 1412 return true; 1413 } 1414 if(!this.archiveMatch(vehicle, filters.archives)){ 1415 return false;
1416 } 1417 if(!this.registrationYearMatch(vehicle, filters.registrationYear)){ 1418 return false; 1419 } 1420 var filterNames = ['groupType', 'model', 'brand', 'fuel', 'frameType']; 1421 if(!this.filterMatchByArray(filterNames, filters, vehicle)){ 1422 return false; 1423 } 1424 return true; 1425 }, 1426 isActiveFuel: function(vehicle, filters){ 1427 var fuel = vehicle.fuel; 1428 if(fuel == filters.fuel){ 1429 return true; 1430 } 1431 if(!this.archiveMatch(vehicle, filters.archives)){ 1432 return false; 1433 } 1434 if(!this.registrationYearMatch(vehicle, filters.registrationYear)){ 1435 return false; 1436 } 1437 var filterNames = ['groupType', 'brand', 'gearType', 'model', 'frameType']; 1438 if(!this.filterMatchByArray(filterNames, filters, vehicle)){ 1439 return false; 1440 } 1441 return true; 1442 }, 1443 isActiveFrameType: function(vehicle, filters){ 1444 var frameType = vehicle.frameType; 1445 if(frameType == filters.frameType){ 1446 return true; 1447 } 1448 if(!this.archiveMatch(vehicle, filters.archives)){ 1449 return false; 1450 } 1451 if(!this.registrationYearMatch(vehicle, filters.registrationYear)){ 1452 return false; 1453 } 1454 var filterNames = ['groupType', 'brand', 'gearType', 'model', 'fuel']; 1455 if(!this.filterMatchByArray(filterNames, filters, vehicle)){ 1456 return false; 1457 } 1458 return true; 1459 }, 1460 isActiveArchive: function(vehicle, filters){ 1461 var archive = vehicle.archive; 1462 if(filters.archives.indexOf(archive) >= 0){ 1463 return true; 1464 } 1465 if(!this.registrationYearMatch(vehicle, filters.registrationYear)){ 1466 return false; 1467 } 1468 var filterNames = ['groupType', 'model', 'brand', 'fuel', 'gearType', 'frameType']; 1469 if(!this.filterMatchByArray(filterNames, filters, vehicle)){ 1470 return false; 1471 } 1472 return true; 1473 }, 1474 isActiveWarranty: function(vehicle, filters){ 1475 var warranty = vehicle.warrantyType; 1476 if(filters.warranties.indexOf(warranty) >= 0){ 1477 return true; 1478 } 1479 if(!this.registrationYearMatch(vehicle, filters.registrationYear)){ 1480 return false; 1481 } 1482 var filterNames = ['groupType', 'model', 'brand', 'fuel', 'gearType', 'frameType']; 1483 if(!this.filterMatchByArray(filterNames, filters, vehicle)){ 1484 return false; 1485 } 1486 return true; 1487 }, 1488 registrationYearMatch: function(vehicle, registrationYear){ 1489 if(registrationYear){ 1490 if(vehicle.registrationYear < registrationYear){ 1491 return false; 1492 } 1493 } 1494 return true; 1495 }, 1496 archiveMatch: function(vehicle, archives){ 1497 if(archives.length){ 1498 if(archives.indexOf(vehicle.archive) < 0){ 1499 return false; 1500 } 1501 } 1502 return true; 1503 }, 1504 filterMatchByArray: function(filterNames, filters, vehicle){ 1505 var self = this; 1506 var hasMatch = true; 1507 filterNames.forEach(function(filterName){ 1508 if(!self.filterMatch(filterName, filters, vehicle)){ 1509 hasMatch = false; 1510 } 1511 }) 1512 return hasMatch; 1513 }, 1514 filterMatch: function(filterName, filters, vehicle){ 1515 if(filters[filterName] && vehicle[filterName]){ 1516 if(typeof vehicle[filterName] == 'number'){ 1517 vehicle[filterName] != filters[filterName]; 1518 } 1519 else if(vehicle[filterName].toLowerCase() != filters[filterName].toLowerCase()){ 1520 return false;
1521 } 1522 } 1523 return true; 1524 }, 1525 isOfficialBrand: function(brand){ 1526 var officialBrand = ['mercedes-benz', 'mercedes amg', 'bmw', 'bmw m', 'smart', 'mercedes vans', 'mini', 'bmw motorrad', 'toyota', 'toyota professional', 'toyota gr', 'maserati']; 1527 return officialBrand.indexOf(brand.toLowerCase()) >= 0; 1528 }, 1529 removeDuplicates: function(itemsArray){ 1530 let uniqueValues = []; 1531 let seen = new Set(); 1532 itemsArray.forEach(function(e){ 1533 let lowerCaseItem = String(e).toLowerCase(); 1534 if (!seen.has(lowerCaseItem)) { 1535 seen.add(lowerCaseItem); 1536 uniqueValues.push(String(e)); 1537 } 1538 }) 1539 uniqueValues.sort(); 1540 return uniqueValues; 1541 }, 1542 } 1543 } 1544 1545 1546</script>
1546 1547
1548<script defer data-cookieconsent="ignore"> 1549 if(document.getElementById('search-app')){ 1550 const searchApp = new Vue({ 1551 el: '#search-app', 1552 mixins: [filtro_ricerca_veicoli, vue_filters, rental_vehicle_filter_list, filtro_ricerca_noleggi], 1553 data: { 1554 filterBox: 'auto', 1555 rentalType: null, 1556 isOneBrand: false, 1557 warrantyOptions:[ 1558 {value: 'ayvens', label: 'Garanzia Ayvens 24 mesi', sortIndex: 10}, 1559 {value: 'maserati_approved', label: 'Maserati Approved', sortIndex: 15}, 1560 {value: 'bmw_premium', label: 'BMW Premium Selection', sortIndex: 20}, 1561 {value: 'mercedes_certified', label: 'Mercedes-Benz Certified', sortIndex: 30}, 1562 {value: 'toyota_plus', label: 'Toyota Approved', sortIndex: 50}, 1563 {value: 'mini_next', label: 'MINI Next', sortIndex: 60} 1564 ], 1565 archiveOptions: [ 1566 { 1567 value: 'nuovo', 1568 label: 'NUOVO', 1569 }, 1570 { 1571 value: 'km0', 1572 label: 'KM ZERO', 1573 }, 1574 { 1575 value: 'usato', 1576 label: 'USATO', 1577 }, 1578 ], 1579 priceFromList: [1000, 5000, 10000, 15000, 20000, 30000, 40000, 50000, 70000], 1580 priceToList: [5000, 10000, 15000, 20000, 30000, 40000, 50000, 70000, 100000], 1581 rateFromList: [100, 200, 300, 400, 500, 700, 900, 1200], 1582 rateToList: [200, 300, 400, 500, 700, 900, 1200, 1500], 1583 kmList: [10000, 20000, 30000, 50000, 70000, 100000, 120000, 150000], 1584 vehicleList: [], 1585 filteredVehiclesList: [], 1586 vfilter: { 1587 archives: [], 1588 warranties: [], 1589 brand: '', 1590 model: '', 1591 fuel: '', 1592 gearType: '', 1593 groupType: 'auto', 1594 typePrice: 'price', 1595 priceFrom: '', 1596 priceTo: '', 1597 rateFrom: '', 1598 rateTo: '', 1599 frameType: '', 1600 registrationYearFrom: '', 1601 registrationYearTo: '', 1602 kmFrom: '', 1603 kmTo: '', 1604 youngDriver: '', 1605 }, 1606 loaderOn: false 1607 }, 1608 methods: { 1609 toggleRangeType: function () { 1610 this.vfilter.typePrice = this.vfilter.typePrice === 'price' ? 'rate' : 'price'; 1611 }, 1612 numberFormat: function (num) { 1613 return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1."); 1614 }, 1615 getVehicleList: function () { 1616 var self = this; 1617 var _url = "/api/vehicle-list"; 1618 1619 self.loaderOn = true; 1620 axios.get(_url).then(function (response) { 1621 self.vehicleList = response.data; 1622 if(!self.vehicleList.length){ 1623 $('#search-app').hide(); 1624 } 1625 1626 1627 self.updateFilters(); 1628 self.loaderOn = false; 1629 1630 }).catch(function (e) { 1631 console.log('err', e) 1632 self.loaderOn = false; 1633 Swal.fire("Attenzione", 'Caricamento veicoli non riuscito', "warning") 1634 }) 1635 }, 1636 getFilteredModel: function (list) { 1637 var self = this; 1638 var _newlist = []; 1639 1640 var obj = null; 1641 list.forEach(function (item) { 1642 if (self.vfilter.brand == item.brand && (self.vfilter.archives.length == 0 || self.vfilter.archives.indexOf(item.archive) > -1)) { 1643 obj = {model: item.model} 1644 _newlist.push(obj) 1645 } 1646 }) 1647 return _newlist; 1648 }, 1649 filteredVehicles: function (list) { 1650 if (list === undefined) return []; 1651 var filtered = []; 1652 var _vfilter = this.vfilter; 1653 var _kmTo = (_vfilter.kmTo == undefined || _vfilter.kmTo == '') ? 1000000 : parseInt(_vfilter.kmTo); 1654 var _kmFrom = (_vfilter.kmFrom == undefined || _vfilter.kmFrom == '') ? 1000000 : parseInt(_vfilter.kmFrom); 1655 1656 for (var i = 0; i < list.length; i++) { 1657 var item = list[i]; 1658 1659 if ( 1660 (_vfilter.groupType == null || _vfilter.groupType == '' || item.groupType.toLowerCase() == _vfilter.groupType.toLowerCase()) 1661 && (_vfilter.brand == null || _vfilter.brand == '' || item.brand.toLowerCase() == _vfilter.brand.toLowerCase()) 1662 && (_vfilter.model == null || _vfilter.model == '' || item.model.toLowerCase() == _vfilter.model.toLowerCase()) 1663 && (_vfilter.fuel == null || _vfilter.fuel == '' || (item.fuel && item.fuel.toLowerCase() == _vfilter.fuel.toLowerCase())) 1664 && (_vfilter.warranties.length == 0 || _vfilter.warranties.indexOf(item.warrantyType) > -1) 1665 && (_vfilter.archives.length == 0 || _vfilter.archives.indexOf(item.archive) > -1) 1666 && (_vfilter.kmFrom == null || _vfilter.kmFrom == '' || parseInt(item.km) >= _kmFrom) 1667 && (_vfilter.kmTo == null || _vfilter.kmTo == '' || parseInt(item.km) <= _kmTo) 1668 && (_vfilter.gearType == null || _vfilter.gearType == '' || item.gearType.toLowerCase() == _vfilter.gearType.toLowerCase()) 1669 && (_vfilter.frameType == null || _vfilter.frameType == '' || (item.frameType && item.frameType.toLowerCase() == _vfilter.frameType.toLowerCase())) 1670 && (_vfilter.youngDriver == null || _vfilter.youngDriver == '' || (item.youngDriver && _vfilter.youngDriver)) 1671 && (_vfilter.registrationYearFrom == null || _vfilter.registrationYearFrom == '' || (item.registrationYear >= _vfilter.registrationYearFrom)) 1672 && (_vfilter.registrationYearTo == null || _vfilter.registrationYearTo == '' || (item.registrationYear <= _vfilter.registrationYearTo)) 1673 && ( 1674 (_vfilter.typePrice == 'price' 1675 && (_vfilter.priceFrom == null || _vfilter.priceFrom == '' || item.finalPrice >= _vfilter.priceFrom) 1676 && (_vfilter.priceTo == null || _vfilter.priceTo == '' || item.finalPrice <= _vfilter.priceTo)) 1677 || 1678 (_vfilter.typePrice == 'rate' && item.monthlyFee 1679 && (_vfilter.rateFrom == null || _vfilter.rateFrom == '' || item.monthlyFee >= _vfilter.rateFrom) 1680 && (_vfilter.rateTo == null || _vfilter.rateTo == '' || item.monthlyFee <= _vfilter.rateTo)) 1681 ) 1682 1683 ) { 1684 filtered.push(item); 1685 } 1686 } 1687 1688 return filtered; 1689 }, 1690 resetFilter: function() { 1691 this.vfilter = { 1692 archives: [], 1693 brand: '', 1694 frameType: '', 1695 fuel: '', 1696 gearType: '', 1697 groupType: this.vfilter.groupType, 1698 model: '', 1699 priceFrom: '', 1700 priceTo: '', 1701 rateFrom: '', 1702 rateTo: '', 1703 registrationYearFrom: '', 1704 registrationYearTo: '', 1705 kmFrom: '', 1706 kmTo: '',
1707 typePrice: 'price', 1708 warranties: [], 1709 youngDriver: false, 1710 }; 1711 this.updateFilters() 1712 }, 1713 changeFilter: function (field) { 1714 1715 if (field == 'brand') { 1716 this.vfilter.model = ''; 1717 } 1718 if (field == 'groupType') { 1719 this.vfilter.brand = ''; 1720 this.vfilter.model = ''; 1721 } 1722 if (field == 'archives' && this.vfilter.archives.indexOf('usato') < 0) { 1723 this.vfilter.warranties = []; 1724 } 1725 this.updateFilters(); 1726 }, 1727 changeRentalType: function(rentalType){ 1728 this.rentalType = rentalType; 1729 }, 1730 submitFilter: function () { 1731 var _url = "/ricerca-veicoli"; 1732 var _filters = ""; 1733 var _f = this.vfilter; 1734 if (_f.archives && _f.archives.length) _filters += "?archives=" + _f.archives; 1735 else _filters += "?archives=nuovo,km0,usato"; 1736 1737 if (_f.groupType) _filters += "&groupType=" + _f.groupType; 1738 if (_f.brand) _filters += "&brand=" + _f.brand; 1739 if (_f.model) _filters += "&model=" + encodeURIComponent(_f.model); 1740 if (_f.fuel) _filters += "&fuel=" + _f.fuel; 1741 if (_f.gearType) _filters += "&gearType=" + _f.gearType; 1742 if (_f.frameType) _filters += "&frameType=" + _f.frameType; 1743 if (_f.registrationYearFrom) _filters += "®istrationYearFrom=" + _f.registrationYearFrom; 1744 if (_f.registrationYearTo) _filters += "®istrationYearTo=" + _f.registrationYearTo; 1745 if (_f.kmFrom) _filters += "&kmFrom=" + _f.kmFrom; 1746 if (_f.kmTo) _filters += "&kmTo=" + _f.kmTo; 1747 if (_f.priceFrom && _f.typePrice == 'price') _filters += "&priceFrom=" + _f.priceFrom; 1748 if (_f.priceTo && _f.typePrice == 'price') _filters += "&priceTo=" + _f.priceTo; 1749 if (_f.rateFrom && _f.typePrice == 'rate') _filters += "&rateFrom=" + _f.rateFrom; 1750 if (_f.rateTo && _f.typePrice == 'rate') _filters += "&rateTo=" + _f.rateTo; 1751 if (_f.typePrice) _filters += "&typePrice=" + _f.typePrice; 1752 if (_f.warranties && _f.warranties.length) _filters += "&warranties=" + _f.warranties; 1753 if (_f.youngDriver) _filters += "&youngDriver=" + _f.youngDriver; 1754 1755 /*var _serializeValues = { 1756 'groupType': _f.groupType, 1757 'archives': _f.archives, 1758 'brand': _f.brand, 1759 'model': _f.model, 1760 'fuel': _f.fuel, 1761 'gearType': _f.gearType, 1762 'frameType': _f.frameType, 1763 'registrationYearFrom': _f.registrationYearFrom, 1764 'registrationYearTo': _f.registrationYearTo, 1765 'kmFrom': _f.kmFrom, 1766 'kmTo': _f.kmTo, 1767 'warranties': _f.warranties, 1768 'km': _f.km && _f.archives.indexOf('usato') >= 0 ? _f.km : null, 1769 'typePrice': _f.typePrice, 1770 'youngDriver': _f.youngDriver, 1771 'priceFrom': _f.priceFrom && _f.typePrice == 'price' ? _f.priceFrom : null, 1772 'priceTo': _f.priceTo && _f.typePrice == 'price' ? _f.priceTo : null, 1773 'rateFrom': _f.rateFrom && _f.typePrice == 'rate' ? _f.rateFrom : null, 1774 'rateTo': _f.rateTo && _f.typePrice == 'rate' ? _f.rateTo : null, 1775 } 1776 1777 document.cookie = 'cookie_filtro=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 1778 var _day = new Date(); 1779 _day.setTime(_day.getTime() + (1 * 24 * 60 * 60 * 1000)); 1780 var expires = "expires=" + _day.toUTCString(); 1781 document.cookie = "cookie_filtro=" + JSON.stringify(_serializeValues) + ";path=/;" + expires;*/ 1782 1783 var _red = _url + _filters; 1784 location.href = _red; 1785 }, 1786 }, 1787 mounted() { 1788 var self = this; 1789 self.getVehicleList(); 1790 }, 1791 }); 1792 } 1793 1794 1795 1796 1797 1798</script>
1798 1799 1800
1800<script data-cookieconsent="ignore" defer> 1801 1802 const favoritesApp = new Vue({ 1803 el: '#favorites-app', 1804 data: { 1805 wishlist: [], 1806 vehicleListNum: 0, 1807 loading: true, 1808 vehicleList: [], 1809 }, 1810 methods: { 1811 initList: function () { 1812 const t = this; 1813 1814 t.wishlist = getCookie('cookie_wishlist') ? JSON.parse(getCookie('cookie_wishlist')) : []; 1815 if (t.wishlist.length > 0) { 1816 t.getWishlistVehicles(); 1817 }else{ 1818 t.loading = false; 1819 } 1820 }, 1821 getWishlistVehicles() { 1822 const t = this; 1823 1824 axios.post("/api/wishlist", t.wishlist) 1825 .then(function (response) { 1826 t.vehicleList = response.data.vehicleList; 1827 t.vehicleListNum = response.data.totalItems; 1828 1829 //aggiunge flag per mostrare più optionals e selezione 1830 t.vehicleList.forEach(function (vehicle) { 1831 t.$set(vehicle, 'moreOptionals', false); 1832 t.$set(vehicle, 'selected', false); 1833 }); 1834 1835 t.loading = false; 1836 }) 1837 .catch(function (e) { 1838 console.log(e); 1839 t.loading = false; 1840 }); 1841 1842 }, 1843 toggleMoreOptionals(vehicle) { 1844 vehicle.moreOptionals = !vehicle.moreOptionals; 1845 }, 1846 numberFormat: function (num) { 1847 return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1."); 1848 }, 1849 removeFavoritedVehicle(vehicle) { 1850 const t = this; 1851 1852 Swal.fire({ 1853 title: 'Conferma eliminazione', 1854 text: 'Stai per eliminare il veicolo dalla lista dei preferiti, continuare?', 1855 type: 'warning', 1856 showCancelButton: true, 1857 reverseButtons: true, 1858 confirmButtonText: 'Elimina', 1859 cancelButtonText: 'Annulla', 1860 }).then(function (result) { 1861 if (result.value) { 1862 1863 //elimina da lista 1864 let idx = t.vehicleList.findIndex(function (item) { 1865 return item.id == vehicle.id; 1866 }) 1867 t.vehicleList.splice(idx, 1); 1868 1869 //aggiorna cookie preferiti 1870 idx = t.wishlist.indexOf(vehicle.id); 1871 if (idx >= 0) { 1872 t.wishlist.splice(idx, 1); 1873 setCookie('cookie_wishlist', JSON.stringify(t.wishlist), 30); 1874 } 1875 1876 //aggiorna contatore header 1877 t.updateFavouriteCounter(); 1878 } 1879 }); 1880 }, 1881 updateFavouriteCounter() { 1882 if (this.wishlist.length > 0) { 1883 $('.btn-header-favorites .ico-heart-empty').hide(); 1884 $('.btn-header-favorites .ico-heart-full').show(); 1885 $('.btn-header-favorites .favorites-count').html(this.wishlist.length).show(); 1886 } else { 1887 $('.btn-header-favorites .ico-heart-empty').show(); 1888 $('.btn-header-favorites .ico-heart-full').hide(); 1889 $('.btn-header-favorites .favorites-count').hide(); 1890 } 1891 }, 1892 }, 1893 computed: { 1894 selectedVehicles() { 1895 return this.vehicleList.filter(function (item) { 1896 return item.selected == true; 1897 }) 1898 }, 1899 selectedVehiclesIds() { 1900 let s = this.vehicleList.filter(function (item) { 1901 return item.selected == true; 1902 }) 1903 return s.map(item => item.id); 1904 }, 1905 }, 1906 mounted() { 1907 this.initList(); 1908 }, 1909 }); 1910</script>
1910 1911 1912 1913
1914<script data-cookieconsent="ignore"> 1915 1916 function submitInfoForm($frm){ 1917 let _form = $frm.closest('form'); 1918 if (_form.smkValidate()) { 1919 $frm.prop('disabled', true) 1920 let _data = new FormData(_form[0]); 1921 axios.post("/api/send-request-info", _data) 1922 .then(function (response) { 1923 if (typeof dataLayer !== 'undefined') { 1924 let _nomeClasse = _form.find('input[name="formType"]').val(); 1925 let _obj = { 1926 nomeClasse: _nomeClasse, 1927 pagePath: 'https://www.cascioligroup.it/preferiti', 1928 event: 'invioForm', 1929 } 1930 1931 if (response.data.formId) { 1932 _obj.eventID = 'conversion.' + response.data.formId; 1933 } 1934 1935 dataLayer.push(_obj); 1936 } 1937 1938 Swal.fire({ 1939 title: "Richiesta inviata", 1940 text: "La tua richiesta è stata spedita correttamente", 1941 type: "success",
1942 showCancelButton: false, 1943 }).then(function (result) { 1944 if (result.value) { 1945 location.reload() 1946 } 1947 }); 1948 }) 1949 .catch(function (e) { 1950 $frm.prop('disabled', false) 1951 Swal.fire("Errore", "Invio richiesta non riuscito", "error") 1952 }) 1953 } 1954 } 1955 1956 $(document).ready(function(){ 1957 initImageCarousels(); 1958 1959 if ($(window).width() < 992) { 1960 $(window).scroll(function (event) { 1961 if (event.currentTarget.pageYOffset) { 1962 $('.header-logo').css({ 1963 'width': event.currentTarget.pageYOffset <= 40 ? 110 - event.currentTarget.pageYOffset / 2 : 90, 1964 }); 1965 } 1966 }) 1967 } 1968 1969 if ($('#header-nav-wrap')) { 1970 $('.subtitle').click(function (e) { 1971 $(this).toggleClass('open').next('.submenu').toggle(100); 1972 }); 1973 } 1974 1975 $('.info-request-form button[type="submit"]').on('click', function (e) { 1976 e.preventDefault(); 1977 submitInfoForm($(this)); 1978 }) 1979 1980 }) 1981 1982 var carouselCounter = function (e) { 1983 if (!e.namespace) { 1984 return; 1985 } 1986 var slides = e.relatedTarget; 1987 var current = slides.relative(slides.current()) + 1; 1988 var total = slides.items().length; 1989 1990 $('#owl-numbers-' + e.target.id + ' .slider-current').text(current); 1991 $('#owl-numbers-' + e.target.id + ' .slider-total').text(total); 1992 } 1993 1994 var initImageCarousels = function () { 1995 var cardImagesCarousel = $('.card-images-carousel'); 1996 if (cardImagesCarousel.length > 0) { 1997 cardImagesCarousel.owlCarousel({ 1998 center: true, 1999 items: 1, 2000 nav: true, 2001 dots: false, 2002 lazyLoad: true, 2003 navText: ['<img src="/images/icon/freccia_sx.png" width="24" height="24">', '<img src="/images/icon/freccia_dx.png" width="24" height="24">'], 2004 onInitialized: carouselCounter, 2005 onChanged: carouselCounter, 2006 }); 2007 cardImagesCarousel.on('mousedown.owl.core', function (e) { 2008 e.preventDefault(); 2009 e.stopPropagation(); 2010 }); 2011 } 2012 } 2013 2014</script>
2014 2015
2016<script type="application/ld+json"> 2017 { 2018 "@context": "https://schema.org", 2019 "@type": "Organization", 2020 "name": "Cascioli Group", 2021 "url": "https://www.cascioligroup.it", 2022 "logo":"https://www.cascioligroup.it/images/logo/cascioli_black_2.jpg", 2023 "description": "Cascioli Group è uno dei maggiori Dealer del settore automotive nel centro-sud Italia, attraverso la commercializzazione dei marchi Bmw, Mini, BMWi, BMW Motorrad, Mercedes-Benz, Mercedes-Benz Veicoli Commerciali, Smart, Toyota e Toyota Veicoli Commerciali. Rappresenta lâeccellenza nelle regioni Marche e Abruzzo con i suoi 12 punti vendita distribuiti nelle province di Macerata, Fermo, Ascoli-Piceno, Teramo e LâAquila. à un punto di riferimento anche per il settore usato disponendo di una vastissima scelta di vetture, anche aziendali e km zero, sulle quali effettua numerosi controlli che ne garantiscono la qualità e lâaffidabilità . Crediamo, infatti, che il valore di unâazienda allâavanguardia sia quello di porre il cliente al centro, attraverso una consulenza personalizzata che va dalla scelta del prodotto alla successiva gestione della vettura con il miglior servizio post-vendita. Uno standard elevato volto ad assicurare ai nostri clienti un trattamento esclusivo ed unâampia assistenza garantita da un personale tecnico e commerciale altamente qualificato e certificato.", 2024 "address": { 2025 "@type": "PostalAddress", 2026 "addressCountry": "Italia", 2027 "addressLocality": "San Benedetto del Tronto", 2028 "streetAddress": "Via Liberazione, 194", 2029 "addressRegion": "AP", 2030 "postalCode": "63074" 2031 }, 2032 "sameAs":[ 2033 "https://www.linkedin.com/company/cascioligroup/", 2034 "https://www.instagram.com/cascioli.group/", 2035 "https://www.facebook.com/cascioligroup", 2036 "https://www.youtube.com/@CascioliGroup/videos", 2037 "https://www.tiktok.com/@cascioligroup", 2038 "https://www.autoscout24.it/concessionari/cascioli-spa", 2039 "https://it.trustpilot.com/review/cascioligroup.it" 2040 ], 2041 "areaServed":[ 2042 { 2043 "@type": "Place", 2044 "name": "Italia" 2045 }, 2046 { 2047 "@type": "AdministrativeArea", 2048 "name": "Marche" 2049 }, 2050 { 2051 "@type": "AdministrativeArea", 2052 "name": "Abruzzo" 2053 } 2054 ] 2055 } 2056</script>
2056 2057 2058</body> 2059</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.