1<!DOCTYPE html> 2 3<html lang="en"> 4 5<head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 7 <title>Used Cars For Sale at Roswell Auto Imports</title> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 9 <meta name="description" content="Shop used cars for sale in Austell GA at Roswell Auto Imports and find the perfect vehicle that is right for you"> 10<meta name="google-site-verification" content="amQFH-ZIJF9ufl0SuGKKu5LtCOTOBAmhdH5mJB2Unq4" /> <meta name="og:image" property="og:image" content="https://imagescdn.dealercarsearch.com/DealerImages/4790/20725/logo2.png"> 11 <meta name="og:url" property="og:url" content="https://www.roswellautoimports.com/newandusedcars?clearall=1&specialfilter=true"> 12 <meta name="og:title" property="og:title" content="Used Cars For Sale at Roswell Auto Imports"> 13 <meta name="og:description" property="og:description" content="Shop used cars for sale in Austell GA at Roswell Auto Imports and find the perfect vehicle that is right for you"> 14 <meta property="og:type" content="website" /> 15 <meta name="ahrefs-site-verification" content="53103b0d9242445bf5556befdfb2c6276ecca58675c43bb2eb60ad5be6a227df"> 16 17 18<!-- Google tag (gtag.js) -->
vendor: 64 bytes, line 18
18 <script async src="https://www.googletagmanager.com/gtag/js?id=
18G-CQDCGE0YNQ
vendor: 12 bytes, line 18
18"></script>
18<script>
vendor: 127 bytes, line 18
18window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '
18G-CQDCGE0YNQ
vendor: 4 bytes, line 18
18');
18</script>
18<link rel="preconnect" href="https://userway.org" crossorigin/> 19<link rel="preconnect" href="https://www.google-analytics.com" />
20<script type='text/javascript'> 21var _userway_config = { 22/* uncomment the following line to override default position*/ 23position: '5', 24/* uncomment the following line to override default size (values: small, large)*/ 25size: 'small', 26/* uncomment the following line to override default language (e.g., fr, de, es, he, nl, etc.)*/ 27// language: 'en-US', 28/* uncomment the following line to override color set via widget (e.g., #053f67)*/ 29// color: '#053f67', 30/* uncomment the following line to override type set via widget(1=person, 2=chair, 3=eye)*/ 31// type: '2', 32/* uncomment the following line to override support on mobile devices*/ 33// mobile: true, 34account: 'RKc9SJg9ce' 35}; 36</script>
vendor: 1 bytes, line 36
36
37<script type='text/javascript' async src ='https://cdn.userway.org/widget.js'></script>
37 38 39 <link rel="stylesheet" href="/Dealers/04001_05000/04790_mvc/20725.min.css?v=F7eOfL58W2fJY7InviCLiI1JHyewm08_-VSbV7BFD_Y" /> 40 <link rel="canonical" href="https://www.roswellautoimports.com/newandusedcars?clearall=1&specialfilter=true" /> 41<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 65 bytes, lines 41-42
41 42<script async src="https://www.googletagmanager.com/gtag/js?id=
42G-3RNWQYM023
vendor: 13 bytes, line 42
42"></script>
43<script> 44
vendor: 136 bytes, lines 44-47
44window.dataLayer = window.dataLayer || []; 45 function gtag(){dataLayer.push(arguments);} 46 gtag('js', new Date()); 47 gtag('config', '
47G-3RNWQYM023
vendor: 5 bytes, line 47
47');
48</script>
48 49
50<script type="text/javascript" src="https://cdn.customerconnections.io/Script/1e4f66508ead4a78a7a226726b7d3130" async></script>
50 51 52</head> 53 54 55<body class="listPage newandusedcars-dcs"> 56 57 <header class="s54r_header"> 58 <div class="s54r_topBar"> 59 <div class="container"> 60 61 <div id="HeaderPane" class="row no-gutters s54r_headerPane"> 62</div> 63 64 <div id="AddressPane" class="row no-gutters s54r_addressPane"> 65 66<div class="ContentPane_115798 AddressAndPhone AddressAndPhone_115798"> 67 68<div class="AddressPhone_Main"> 69 <span class="LabelAddress1"> 70 <i class="fa-solid fa-location-dot"></i> 350 Maxham Rd 71 </span> 72 <span class="LabelCityStateZip1">Austell, GA 30168</span> 73 <span class="LabelPhone1"> 74 <i class="fa-solid fa-phone"></i> 75 <a href='tel:770-649-9997'> 76 770-649-9997 77 </a> 78 </span> 79 80 81 82 83</div> 84</div> 85<div class="ContentPane_115797 SocialMedia SocialMedia_115797"> 86 87<div class="socialMedia"> 88 <a href="https://www.facebook.com/profile.php?id=61573356932743" target="_blank" rel="noopener" title="Follow Us on Facebook" aria-label="Follow Us on Facebook"> 89 <i class='fa-brands fa-facebook-f'></i> 90 </a> 91 92 <a href="https://twitter.com/#!/RoswellAutoImpo" target="_blank" rel="noopener" title="Follow Us on Twitter" aria-label="Follow Us on Twitter"> 93 <i class='fa-brands fa-x-twitter'></i> 94 </a> 95 96 97 <a href="https://www.youtube.com/channel/UC6Qgc5X_GVsSpeKHBF-u-wQ" target="_blank" rel="noopener" title="Follow Us on YouTube" aria-label="Follow Us on YouTube"> 98 <i class='fa-brands fa-youtube'></i> 99 </a> 100 101 102 103 104 105 106</div></div></div> 107 </div> 108 </div> 109 <div class="s54r_menuBar"> 110 <div class="container"> 111 <div class="row no-gutters bottomHeader"> 112 <div class="logoWrapper"> 113 114 115
115<script type="text/javascript"> 116 var pageTitle = ""; 117 var pageH1 = ""; 118 var pageTitleLength = "0"; 119 120 // The UDO minus the AI Sales Agent's attribution. Those variables are scoped to view 121 // events (DCS-2549), yet they live on init_utag_data because the view events that refire 122 // from it read it at fire time - product_list_view on an SRP filter change, 123 // blog_article_view on a blog ajax refresh. So every NON-view event builds its payload 124 // through here instead of copying init_utag_data itself, and one rule covers them all. 125 // 126 // Declared in this unconditional block, so it exists no matter which of the gated Tealium 127 // blocks below render; it reads init_utag_data only when called, long after parse. 128 function dcsUdoForNonViewEvent() { 129 var data = {}; 130 if (typeof init_utag_data === 'undefined' || !init_utag_data) { return data; } 131 for (var k in init_utag_data) { 132 if (!init_utag_data.hasOwnProperty(k)) { continue; } 133 if (k.indexOf('aisa_') === 0) { continue; } 134 data[k] = init_utag_data[k]; 135 } 136 return data; 137 } 138 139 try { 140 var pageTitleEl = document.querySelector('meta[name="og:title"]') 141 142 if (pageTitleEl != null) { 143 pageTitle = pageTitleEl.content; 144 pageTitleLength = pageTitle.length; 145 } 146 document.addEventListener("DOMContentLoaded", 147 function () { 148 149 var pageH1El = document.querySelector("h1"); 150 151 if (pageH1El != null) { 152 var h1Text = pageH1El.innerText; 153 154 if (h1Text != null) { 155 pageH1 = h1Text; 156 157 if (init_utag_data && init_utag_data.page_h1 != null) { 158 init_utag_data.page_h1 = h1Text; 159 } 160 161 } 162 } 163 else { 164 if (init_utag_data["page_h1"] === "" || init_utag_data["page_h1"] === null) { 165 delete init_utag_data["page_h1"]; 166 } 167 } 168 169 170 }); 171 } 172 catch (e) { 173 console.error('[dcs-tealium] page title/h1 setup failed', e); 174 } 175 </script>
vendor: 2 bytes, line 175
175
176<script type="text/javascript"> 177var init_utag_data = { 178"tealium_event": "product_list_view", 179"firestorm_dealer_id": "1e4f66508ead4a78a7a226726b7d3130", 180"ga4_id": "G-HVREX5H7Y2", 181"page_title": pageTitle, 182"page_h1": pageH1 , 183"page_title_count": pageTitleLength, 184"digital_retailing_active": "false", 185"ai_product_expert_active": "false", 186"site_company_name": "Roswell Auto Imports", 187"site_id": "20725", 188"site_internal_id": "4790", 189"site_platform": "dcs", 190"site_section": "search", 191"site_company_city": "Austell", 192"site_company_state": "GA", 193"site_company_zip_code": "30168", 194"site_phone_main": "770-649-9997", 195}; 196</script>
196 197
197<script type="text/javascript"> 198 var utag_data = init_utag_data; 199 </script>
199 200 201 202<a id="hlLogo" aria-label="Dealer Logo" href="//roswellautoimports.com"> 203 <img class="dealerLogo logo logo_4790 img-fluid" title="Roswell Auto Imports" alt="Roswell Auto Imports" src="https://imagescdn.dealercarsearch.com/DealerImages/4790/20725/logo2.png" /> 204</a> 205 </div> 206 <div class="menuWrapper"> 207 208 <nav id="s54r_menu" class="navbar navbar-expand-lg"> 209 <button class="siteMenu navbar-toggler" type="button" data-toggle="collapse" data-target="#siteNav" aria-controls="siteNav" aria-expanded="false" aria-label="Toggle navigation"> 210 Site Menu 211 </button> 212 <div class="collapse navbar-collapse" id="siteNav"> 213 <ul class="navbar-nav "> 214 215 <li class="nav-item dropdown"> 216 <a href="/buyherepayhere?clearall=1" class="nav-link dropdown-toggle" data-toggle=dropdown aria-haspopup=true aria-expanded=false > 217 <span>Inventory</span> 218 </a> 219 220 <div class="dropdown-menu"> 221 <a class="dropdown-item" href="/buyherepayhere?clearall=1" ><span>All Inventory</span></a> 222 <a class="dropdown-item" href="/newandusedcars?clearall=1&specialfilter=true" ><span>Inventory Specials</span></a> 223 </div> 224 </li> 225 <li class="nav-item dropdown"> 226 <a href="/financing" class="nav-link dropdown-toggle" data-toggle=dropdown aria-haspopup=true aria-expanded=false > 227 <span>Financing</span> 228 </a> 229 230 <div class="dropdown-menu"> 231 <a class="dropdown-item" href="/creditapp" ><span>Apply Online</span></a> 232 <a class="dropdown-item" href="/loancalculator" ><span>Loan Calculator</span></a> 233 </div> 234 </li> 235 <li class="nav-item "> 236 <a href="https://portal.icheckgateway.com/Gen/Default.aspx?P=764491e8b32246969b52" class="nav-link" target=_blank rel=nofollow> 237 <span>Make a Payment</span> 238 </a> 239 240 </li> 241 <li class="nav-item dropdown"> 242 <a href="/sendcomments?" class="nav-link dropdown-toggle" data-toggle=dropdown aria-haspopup=true aria-expanded=false > 243 <span>Services</span> 244 </a> 245 246 <div class="dropdown-menu"> 247 <a class="dropdown-item" href="/trade" ><span>Value Your Trade-In</span></a> 248 <a class="dropdown-item" href="/locatorservice" ><span>Vehicle Finder</span></a> 249 </div> 250 </li> 251 <li class="nav-item "> 252 <a href="/testimonials" class="nav-link" > 253 <span>Reviews</span> 254 </a> 255 256 </li> 257 <li class="nav-item dropdown"> 258 <a href="/ourstore" class="nav-link dropdown-toggle" data-toggle=dropdown aria-haspopup=true aria-expanded=false > 259 <span>Our Store</span> 260 </a> 261 262 <div class="dropdown-menu"> 263 <a class="dropdown-item" href="/store" ><span>Store Info</span></a> 264 <a class="dropdown-item" href="/blog" ><span>Blog</span></a> 265 <a class="dropdown-item" href="/aboutus" ><span>About Us</span></a> 266 <a class="dropdown-item" href="/meetourstaff" ><span>Meet Our Staff</span></a> 267 <a class="dropdown-item" href="/privacy" ><span>Privacy Policy</span></a> 268 <a class="dropdown-item" href="/terms" ><span>Terms of Service</span></a> 269 </div> 270 </li> 271 </ul> 272 </div> 273 </nav> 274 275 </div> 276 </div> 277 </div> 278 </div> 279 </header> 280 281 <main id="Content_wrap"> 282 <section class="contentWrapper container"> 283 284 <div id="ContentPane" class="s54r_list clearfix"> 285 286<div class="ContentPane_2644008 i14r i14r_2644008"> 287 288<div class="i14r" id="vehicles"> 289 <div class="intro-text"></div> 290 <div class="inv-loading-overlay d-none"> 291 </div> 292 <form id="filterForm" data-ajax="true" data-ajax-method="get" data-ajax-mode="replace-with" data-ajax-update="#vehicles" data-ajax-success="inventoryModuleFormSuccess()" data-ajax-failure="inventoryModuleFormFailure();" action="/InventoryModule/RefreshInventoryModule?pagename=newandusedcars" method="post"> 293 294 <div class="topResults row"> 295 <div class="col-lg-5">
296 <span class="vehicleCount">0 vehicles found</span> 297 </div> 298 <div class="col-lg-7"> 299 <div class="float-lg-right float-left "> 300 <div class="inv-sort-count input-group update-sort-count "> 301 <button class="btn btn-sm btn-filter" type="button" data-toggle="collapse" data-target="#panelRefine" aria-expanded="true" aria-controls="panelRefine"><i class="fa-solid fa-sliders"></i></button> 302 <!--sort by--> 303<span class="sort-lbl"> <select class="form-control sortDropdown" onchange='changePageSortBy()' id="cboSort" aria-label="Sort By" name="sortby"><option value='phl' >Price: High to Low</option><option value='plh' >Price: Low to High</option><option value='yhl' >Year: High to Low</option><option value='ylh' >Year: Low to High</option><option value='mhl' >Mileage: High to Low</option><option value='mlh' >Mileage: Low to High</option><option value='abc' selected>Vehicles: A to Z</option><option value='zyx' >Vehicles: Z to A</option><option value='old' >Stock: Oldest</option><option value='new' >Stock: Newest</option><option value='ran' >Random</option></select></span> 304<!--page size--> 305 306<span style="" class="per-page"> <select class="form-control perPageDropdown " onchange='changePageSize()' id='cboPageSize' aria-label="Page Size" name="pagesize"><option value='25' selected>25</option><option value='50' >50</option><option value='75' >75</option><option value='100' >100</option></select></span> 307<input type='hidden' id='Special' name='specialfilter' value='true'/><input type='hidden' id='DealerId' name='did' value='4790'/><input type='hidden' id='PriceSortType' name='pricesorttype' value='FilterPrice'/><input type='hidden' id='PageNumber' name='page' value='1'/><input type='hidden' id='IsSideFilterShown' name='issidefiltershown' value='false'/> 308 309 </div> 310 </div> 311 </div> 312 </div> 313 314 <div id="filterMenu" class=""> 315 <div class="inv-filter-wrap"> 316 317<div id="panelRefine" class="inv-filterRow collapse " data-id-to-update="filters"> 318 <div class="refineSearchWrap"> 319 <div class="refineSearch panel-group" id="refineAccordion"> 320 321 <div id="filterFields"> 322 323 324 325 <div class="cd-filter-block"> 326 <label aria-label="Condition">Condition</label> 327 328 <div class="cd-filter-content"> 329 <select class='selectpicker form-control' multiple id='FilterCondition' aria-label='FilterCondition' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='newused' ><option value='' selected>Any</option></select> 330 </div> 331 </div> 332 333 <div class="cd-filter-block"> 334 <label aria-label="Year">Year</label> 335 336 <div class="cd-filter-content"> 337 <select class='selectpicker form-control' multiple id='FilterYear' aria-label='FilterYear' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='year' ><option value='' selected>Any</option></select> 338 </div> 339 </div> 340 341 <div class="cd-filter-block"> 342 <label aria-label="Make">Make</label> 343 344 <div class="cd-filter-content"> 345 <select class='selectpicker form-control' multiple id='FilterMakeName' aria-label='FilterMakeName' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='makename' ><option value='' selected>Any</option></select> 346 </div> 347 </div> 348 349 <div class="cd-filter-block"> 350 <label aria-label="Model">Model</label> 351 352 <div class="cd-filter-content"> 353 <select class='selectpicker form-control' multiple id='FilterModelName' aria-label='FilterModelName' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='modelname' disabled><option value='' selected>Any</option></select> 354 </div> 355 </div> 356 357 <div class="cd-filter-block"> 358 <label aria-label="Trim">Trim</label> 359 360 <div class="cd-filter-content"> 361 <select class='selectpicker form-control' multiple id='FilterTrimName' aria-label='FilterTrimName' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='trimname' disabled><option value='' selected>Any</option></select> 362 </div> 363 </div> 364 365 <div class="cd-filter-block"> 366 <label aria-label="Color">Color</label> 367 368 <div class="cd-filter-content"> 369 <select class='selectpicker form-control' multiple id='FilterExteriorColor' aria-label='FilterExteriorColor' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='color' ><option value='' selected>Any</option></select> 370 </div> 371 </div> 372 373 <div class="cd-filter-block"> 374 <label aria-label="Interior Color">Interior Color</label> 375 376 <div class="cd-filter-content"> 377 <select class='selectpicker form-control' multiple id='FilterInteriorColor' aria-label='FilterInteriorColor' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='intcolor' ><option value='' selected>Any</option></select> 378 </div> 379 </div> 380 381 <div class="cd-filter-block"> 382 <label aria-label="Interior">Interior</label> 383 384 <div class="cd-filter-content"> 385 <select class='selectpicker form-control' multiple id='FilterInteriorType' aria-label='FilterInteriorType' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='inttype' ><option value='' selected>Any</option></select> 386 </div> 387 </div> 388 389 <div class="cd-filter-block"> 390 <label aria-label="Body Type">Body Type</label> 391 392 <div class="cd-filter-content"> 393 <select class='selectpicker form-control' multiple id='FilterAllBodyTypes' aria-label='FilterAllBodyTypes' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='alltype' ><option value='' selected>Any</option></select> 394 </div> 395 </div> 396 397 <div class="cd-filter-block"> 398 <label aria-label="Body Type">Body Type</label> 399 400 <div class="cd-filter-content"> 401 <select class='selectpicker form-control' multiple id='FilterPassengerVehicles' aria-label='FilterPassengerVehicles' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='type' ><option value='' selected>Any</option></select> 402 </div> 403 </div> 404 405 406 <div class="cd-filter-block"> 407 <label aria-label="Fuel Type">Fuel Type</label> 408 409 <div class="cd-filter-content"> 410 <select class='selectpicker form-control' multiple id='FilterFuelTypeName' aria-label='FilterFuelTypeName' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='fueltype' ><option value='' selected>Any</option></select> 411 </div> 412 </div> 413 414 <div class="cd-filter-block"> 415 <label aria-label="Cylinders">Cylinders</label> 416 417 <div class="cd-filter-content"> 418 <select class='selectpicker form-control' multiple id='FilterCylinders' aria-label='FilterCylinders' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='cylinders' ><option value='' selected>Any</option></select> 419 </div> 420 </div> 421 422 <div class="cd-filter-block"> 423 <label aria-label="Drive Train">Drive Train</label> 424 425 <div class="cd-filter-content"> 426 <select class='selectpicker form-control' multiple id='FilterDriveTrain' aria-label='FilterDriveTrain' data-selected-text-format='count > 2' data-dropdown-align-right='true' name='vehicledrivetypename' ><option value='' selected>Any</option></select> 427 </div> 428 </div> 429 430 <hr /> 431 <div class="filter-block"> 432 433 <div class="openSearchFilter cd-filter-block"> 434 <label aria-label="Keyword Search">Keyword Search</label> 435 436 <div class="cd-filter-content"> 437 <input id="FilterOpenSearch" class="form-control" aria-label="FilterOpenSearch" inputmode="search" enterkeyhint="done" type="search" value="" name="opensearch"></input> 438 </div> 439 </div> 440 </div> 441 442 <div class="filter-block sliderFilters row"> 443 444 445 446 <div class="cd-filter-block col"> 447 <label aria-label="Price:">Price:</label> 448 449 <div class="cd-filter-content"> 450 <input 451 data-type='double' 452 id='RangeInternetPriceLowToInternetPriceHigh' 453 class='js-range-slider d-none' 454 aria-label='RangeInternetPriceLowToInternetPriceHigh' 455 data-step='500' 456 name='internetpricelowinternetpricehigh' 457 data-min='2999' 458 data-max='17999' 459 data-prefix='$' 460 data-postfix='' 461 data-from='' 462 data-to=''> 463 <input type='hidden' id='FilterInternetPriceLow' name='internetpricelow' aria-label='FilterInternetPriceLow' value=> 464 <input type='hidden' id='FilterInternetPriceHigh' name='internetpricehigh' aria-label='FilterInternetPriceHigh' value=> 465 </div> 466 </div> 467 468 469 </div> 470 471 </div> 472 </div> 473 </div> 474 <input type="hidden" id="CurrentPageName" value="newandusedcars" /> 475</div> 476 477 <div id="outerSearchParameters" class="searchParameters update-removable-filters "> 478 <div id="search-params-wrap2" class="search-params" data-page-context="Inventory search results sorted by A to Z"><button title='Remove Specials' type='button' data-name-to-remove='specialf
478ilter' onclick='removeFiltersByName(this)' class='btn-sm'>Specials <i class='fa-solid fa-xmark'></i></button><button type='button' title='Remove All Filters' onclick='removeAll()' class='btn-sm'>Remove All Filters <i class='fa-solid fa-xmark'></i></button></div> 479 </div> 480 </div> 481 </div> 482 483 <div class="i14r-mainContent update-vehicles"> 484 <div id="NoResultsDiv" class="alert alert-warning" role="alert"> No results found, please try another search.</div> 485 </div> 486 <div id="PagerBottom" class="row update-pager"> 487 <div class="col topResults"> 488 489 490 </div> 491 </div> 492 493 494 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8PpyLBkFqepBsOO-JODtNhgbtwPIu-LHrQet959cDvBjZOEizYmuk8YnHtby_Bk8BaBvBclU2uLQDzSuwKmKp_ducdUeRQNdvzWFRlEz1xWLiIcfGlvMwk69ZY_wiW1PWiudxpfKQj1ffKeGb9QD0Rs" /></form> 495 496<style> 497 498 499 500 501 502 .bottomMiddleBtnCompareCount { 503 position: fixed; 504 bottom: -2px; 505 left: 45%; 506 z-index: 999; 507 overflow: hidden; 508 } 509 510 .bottomLeftBtnCompareCount { 511 position: fixed; 512 bottom: -2px; 513 left: 15%; 514 z-index: 999; 515 overflow: hidden; 516 } 517 518 .bottomRightBtnCompareCount { 519 position: fixed; 520 bottom: -2px; 521 left: 85%; 522 z-index: 999; 523 overflow: hidden; 524 } 525 526 .rightLowerBtnCompareCount { 527 z-index: 999; 528 position: fixed; 529 right: 0; 530 bottom: 30vh; 531 overflow: hidden; 532 -webkit-transform: rotate(-90deg); 533 -ms-transform: rotate(-90deg); 534 transform: rotate(-90deg); 535 transform-origin: right bottom; 536 } 537 538 .rightMiddleBtnCompareCount { 539 z-index: 999; 540 position: fixed; 541 right: 0; 542 bottom: 60vh; 543 overflow: hidden; 544 -webkit-transform: rotate(-90deg); 545 -ms-transform: rotate(-90deg); 546 transform: rotate(-90deg); 547 transform-origin: right bottom; 548 } 549 550 .rightUpperBtnCompareCount { 551 z-index: 999; 552 position: fixed; 553 right: 0; 554 bottom: 79vh; 555 overflow: hidden; 556 -webkit-transform: rotate(-90deg); 557 -ms-transform: rotate(-90deg); 558 transform: rotate(-90deg); 559 transform-origin: right bottom; 560 } 561 562 563 .leftLowerBtnCompareCount { 564 z-index: 999; 565 position: fixed; 566 left: 0; 567 bottom: 40vh; 568 overflow: hidden; 569 -webkit-transform: rotate(-90deg); 570 -ms-transform: rotate(-90deg); 571 transform: rotate(90deg); 572 transform-origin: left bottom; 573 } 574 575 .leftMiddleBtnCompareCount { 576 z-index: 999; 577 position: fixed; 578 left: 0; 579 bottom: 60vh; 580 overflow: hidden; 581 -webkit-transform: rotate(-90deg); 582 -ms-transform: rotate(-90deg); 583 transform: rotate(90deg); 584 transform-origin: left bottom; 585 } 586 587 .leftUpperBtnCompareCount { 588 z-index: 999; 589 position: fixed; 590 left: 0; 591 bottom: 79vh; 592 overflow: hidden; 593 -webkit-transform: rotate(-90deg); 594 -ms-transform: rotate(-90deg); 595 transform: rotate(90deg); 596 transform-origin: left bottom; 597 } 598 599 .compare-count-tray { 600 position: fixed; 601 bottom: 0; 602 left: 0; 603 z-index: 1030; 604 } 605 606 .compare-count-tray { 607 max-width: 70%; 608 background: #343a40; 609 padding: 1rem; 610 color: #fff; 611 text-align: center; 612 } 613 614 .compareCard { 615 max-width: 30%; 616 } 617 618 .row-striped-compare:nth-of-type(odd) { 619 background-color: #efefef; 620 padding: .75rem; 621 } 622 623 .popover { 624 background-color: #fff3cd; 625 } 626 627 628 629 .bs-popover-top .arrow:after { 630 border-top-color: #fff3cd; 631 } 632 633 634 635 .row-striped-compare:nth-of-type(even) { 636 background-color: #ffffff; 637 padding: .75rem; 638 } 639 640 .compareVehicleOptions > .col {
641 overflow-wrap: anywhere; 642 } 643 644 .compareVehicleOptions > .col > span > ul { 645 padding-left: 1px; 646 } 647 648 .compare-fuel-economy.col { 649 padding: 1px; 650 } 651 652 .compareModalThumb { 653 max-height: 230px; 654 } 655 656 .thumbCol { 657 padding-left: 10px; 658 padding-right: 10px; 659 } 660</style> 661 <button id="btnCompareCount" class="bottomMiddleBtnCompareCount btn btn-secondary d-none d-sm-none d-md-block d-lg-block collapsed ir12 _btnCompareCount" 662 data-toggle="collapse" 663 data-target="#compareTray" 664 onclick="viewCompareCart()"> 665 <i class="fa-solid fa-car"></i> Compare Vehicles <span id="compareCountBtnSpan" class="compareCount">0</span>/3 666 </button> 667 668 669<div id="compareTrayWrap" class="ir12 _compareModal d-none d-sm-none d-md-block d-lg-block"> 670 <div id="compareTray" class="compare-count-tray collapse container-fluid fixed-bottom"> 671 <button type="button" class="close text-white" data-toggle="collapse" data-target="#compareTray">×</button> 672 673 <div class="row"> 674 <div class="compareTrayHeader mr-auto ml-auto" id="compareTrayHeader"> 675 <div class="compareIcon" id="compareIcon"> 676 <h5 class="compareVehicles my-2" id="compareVehicles"> <i class="fa-solid fa-car fa-lg"></i> Compare Vehicles <small>(<span id="compareCountModalSpan" class="compareCount"></span> selected)</small></h5> 677 </div> 678 </div> 679 </div> 680 681 <div class="compareInstructions mt-2" id="compareInstructions"> 682 <h4>Let’s get started!</h4> Add cars by clicking ‘Compare’ on the vehicle listings. <br >You can select up to <span id="compareBtnMaxVehicles">3</span> to compare 683 </div> 684 685 <div class="container-fluid mt-1" id="compareVehiclesList"> 686 <div class="compareTrayVehicleWrap"> 687 <div class="row"> 688 <div class="col" id="compareVdpLinkCol1"> 689 <span id="compareRemove1" class=" compareRemove"> 690 <button type="button" id="compareRemoveBtn1" style="display: none" class="close text-white" onclick="" aria-label="delete"> 691 <span aria-hidden="true">×</span> 692 </button> 693 </span> 694 <a id="compareVdpLinkPopup1" href="" rel="nofollow"> 695 <div class="compareHeader my-1"> 696 <div class="row"></div> 697 <div class="row compareYmmRow"> 698 <span id="ymm1" class="ymm1 mx-auto " style="font-weight: bold"></span> 699 700 </div> 701 <div class="row compareTrimRow"> 702 <span id="trimLevel1" class="trimLevel1 mx-auto " style=""></span> 703 </div> 704 </div> 705 </a> 706 </div> 707 <div class="col" id="compareVdpLinkCol2"> 708 <span id="compareRemove2" class=" compareRemove"> 709 <button type="button" id="compareRemoveBtn2" style="display: none" class="close text-white" onclick="" aria-label="delete"> 710 <span aria-hidden="true">×</span> 711 </button> 712 </span> 713 <a id="compareVdpLinkPopup2" href="" rel="nofollow"> 714 <div class="compareHeader my-1"> 715 <div class="row compareYmmRow"> 716 <span id="ymm2" class="ymm2 mx-auto " style="font-weight: bold"></span> 717 </div> 718 <div class="row compareTrimRow"> 719 <span id="trimLevel2" class="trimLevel2 mx-auto " style=""></span> 720 </div> 721 </div> 722 </a> 723 </div> 724 <div class="col" id="compareVdpLinkCol3">
725 <span id="compareRemove3" class=" compareRemove"> 726 <button type="button" id="compareRemoveBtn3" style="display: none" class="close text-white" onclick="" aria-label="delete"> 727 <span aria-hidden="true">×</span> 728 </button> 729 </span> 730 <a id="compareVdpLinkPopup3" href="" rel="nofollow"> 731 <div class="compareHeader my-1"> 732 <div class="row compareYmmRow"> 733 <span id="ymm3" class="ymm3 mx-auto " style="font-weight: bold"></span> 734 </div> 735 <div class="row compareTrimRow"> 736 <span id="trimLevel3" class="trimLevel3 mx-auto " style=""></span> 737 </div> 738 </div> 739 </a> 740 </div> 741 <div class="col" id="compareVdpLinkCol4"> 742 <span id="compareRemove4" class=" compareRemove"> 743 <button type="button" id="compareRemoveBtn4" style="display: none" class="close text-white" onclick="" aria-label="delete"> 744 <span aria-hidden="true">×</span> 745 </button> 746 </span> 747 <a id="compareVdpLinkPopup4" href="" rel="nofollow"> 748 <div class="compareHeader my-1"> 749 <div class="row compareYmmRow"> 750 <span id="ymm4" class="ymm4 mx-auto " style="font-weight: bold"></span> 751 </div> 752 <div class="row compareTrimRow"> 753 <span id="trimLevel4" class="trimLevel4 mx-auto " style=""></span> 754 </div> 755 </div> 756 </a> 757 </div> 758 <div class="col" id="compareVdpLinkCol5"> 759 <span id="compareRemove5" class=" compareRemove"> 760 <button type="button" id="compareRemoveBtn5" style="display: none" class="close text-white" onclick="" aria-label="delete"> 761 <span aria-hidden="true">×</span> 762 </button> 763 </span> 764 <a id="compareVdpLinkPopup5" href="" rel="nofollow"> 765 <div class="compareHeader my-1"> 766 <div class="row compareYmmRow"> 767 <span id="ymm5" class="ymm5 mx-auto " style="font-weight: bold"></span> 768 </div> 769 <div class="row compareTrimRow"> 770 <span id="trimLevel5" class="trimLevel5 mx-auto " style=""></span> 771 </div> 772 </div> 773 </a> 774 </div> 775 <div class="col" id="compareVdpLinkCol6"> 776 <span id="compareRemove6" class=" compareRemove"> 777 <button type="button" id="compareRemoveBtn6" style="display: none" class="close text-white" onclick="" aria-label="delete"> 778 <span aria-hidden="true">×</span> 779 </button> 780 </span> 781 <a id="compareVdpLinkPopup6" href="" rel="nofollow"> 782 <div class="compareHeader my-1"> 783 <div class="row compareYmmRow"> 784 <span id="ymm6" class="ymm6 mx-auto " style="font-weight: bold"></span> 785 </div> 786 <div class="row compareTrimRow"> 787 <span id="trimLevel6" class="trimLevel6 mx-auto " style=""></span> 788 </div> 789 </div> 790 </a> 791 </div> 792 </div> 793 <div class="row"> 794 <div class="col thumbCol" id="thumbCol1"> 795 <div class="compareBody" id="thumb1 "> 796 <div class="thumb1 compareThumbnail">
797 <a id="compareImgLink1" href="" rel="nofollow"> 798 <img src="" id="compareThumb1" class="compareModalThumb img-fluid" /> 799 </a> 800 </div> 801 </div> 802 </div> 803 <div class="col thumbCol" id="thumbCol2"> 804 <div class="compareBody" id="thumb2"> 805 <div class="thumb2 compareThumbnail"> 806 <a id="compareImgLink2" href="" rel="nofollow"> 807 <img src="" id="compareThumb2" class="compareModalThumb img-fluid" /> 808 </a> 809 </div> 810 </div> 811 </div> 812 <div class="col thumbCol" id="thumbCol3"> 813 <div class="compareBody" id="thumb3"> 814 815 <div class="thumb3 compareThumbnail"> 816 <a id="compareImgLink3" href="" rel="nofollow"> 817 <img src="" id="compareThumb3" class="compareModalThumb img-fluid" /> 818 </a> 819 </div> 820 821 </div> 822 </div> 823 <div class="col thumbCol" id="thumbCol4"> 824 <div class="compareBody" id="thumb4"> 825 826 <div class="thumb4 compareThumbnail"> 827 <a id="compareImgLink4" href="" rel="nofollow"> 828 <img src="" id="compareThumb4" class="compareModalThumb img-fluid" /> 829 </a> 830 </div> 831 832 </div> 833 </div> 834 <div class="col thumbCol" id="thumbCol5"> 835 <div class="compareBody" id="thumb5"> 836 837 <div class="thumb5 compareThumbnail"> 838 <a id="compareImgLink5" href="" rel="nofollow"> 839 <img src="" id="compareThumb5" class="compareModalThumb img-fluid" /> 840 </a> 841 </div> 842 843 </div> 844 </div> 845 <div class="col thumbCol" id="thumbCol6"> 846 <div class="compareBody" id="thumb6"> 847 848 <div class="thumb6 compareThumbnail"> 849 <a id="compareImgLink6" href="" rel="nofollow"> 850 <img src="" id="compareThumb6" class="compareModalThumb img-fluid" /> 851 </a> 852 </div> 853 854 </div> 855 </div> 856 </div> 857 858 859 <div class="row"> 860 <div class="col comparePriceCol" id="comparePriceCol1"> 861 <div class="compareBody" id="comparePrice1"> 862 <div class="comparePrice1 comparePriceDiv"> 863 </div> 864 </div> 865 </div> 866 <div class="col comparePriceCol" id="comparePriceCol2"> 867 <div class="compareBody" id="comparePrice2"> 868 <div class="comparePrice2 comparePriceDiv"> 869 </div> 870 </div> 871 </div> 872 <div class="col comparePriceCol" id="comparePriceCol3"> 873 <div class="compareBody" id="comparePrice3"> 874 875 <div class="comparePrice3 comparePriceDiv"> 876 </div> 877 878 </div> 879 </div> 880 <div class="col comparePriceCol" id="comparePriceCol4"> 881 <div class="compareBody" id="comparePrice4"> 882 883 <div class="comparePrice4 comparePriceDiv"> 884 </div> 885 886 </div> 887 </div> 888 <div class="col comparePriceCol" id="comparePriceCol5"> 889 <div class="compareBody" id="comparePrice5"> 890 891 <div class="comparePrice5 comparePriceDiv"> 892 </div> 893 894 </div> 895 </div> 896 <div class="col comparePriceCol" id="comparePriceCol6"> 897 <div class="compareBody" id="comparePrice6"> 898 899 <div class="comparePrice6 comparePriceDiv"> 900 </div> 901 902 </div> 903 </div> 904 </div> 905 </div> 906 <div class="row compareLowerRow mt-4" style="flex-flow: row;"> 907 <div class="ml-3 mr-auto mt-1 compareLeftBtn"> 908 <button type="button" class="removeCompareVehiclesBtn btn" data-dismiss="modal" onclick="removeAllFromCompare()">
908<i class="fa-solid fa-trash"></i> Remove All</button> 909 </div> 910 <div class="ml-auto mr-auto compareMiddleBtn " id="compareTrayHeader"> 911 <div id="compareMsg" class="compareMsg mt-2 mx-2"><i class="fa-solid fa-circle-info"></i> You can compare up to 3 vehicles at a time.</div> 912 </div> 913 <div class="compareBtn ml-auto mr-3 compareRightBtn mt-1 "> 914 <button data-dismiss="modal" 915 data-toggle="collapse" 916 data-target="#compareTray" 917 onclick="compareVehicles()" class="btn compareBtn mr-auto" id="compareModalBtn"> 918 <i class="fa-solid fa-circle-check"></i> Compare Now 919 </button> 920 </div> 921 </div> 922 923 </div> 924 925 926 </div> 927</div> 928 929<div class="compareModalMain modal fade ir12 _compareModalMain " style="overflow-y: auto !important" id="compareModalMain" tabindex="-1" role="dialog" aria-labelledby="compareModalMainLabel" aria-hidden="true"> 930 <div class="modal-dialog modal-dialog-scrollable modal-xl" style="max-width: 90%" role="document"> 931 <div class="modal-content"> 932 <div class="modal-header"> 933 <h4 class="modal-title text-dark" id="compareModalMainLabel"> Compare Vehicles</h4> 934 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 935 <span aria-hidden="true">×</span> 936 </button> 937 </div> 938 <div class="modal-body"> 939 <div class="replaceCompare" id="replaceCompareContent"><div id="replaceInnerContent">-</div></div> 940 </div> 941 </div> 942 </div> 943</div> 944 945 946<input type="hidden" id="compareModalCssClassPrefixId" name="CssClassPrefix" value="ir12" /> 947<input type="hidden" id="showCompareLocation" data-val="true" data-val-required="The ShowCompareLocation field is required." name="CompareInventoryBaseViewModel.ShowCompareLocation" value="False" /> 948<input type="hidden" id="compareMaxNumberOfVehicles" name="CompareInventoryBaseViewModel.CompareMaxNumberOfVehicles" value="3" /> 949
950<script type="text/javascript"> 951 document.addEventListener('DOMContentLoaded', 952 function () { 953 initializeCompareModule(); 954 });</script>
954 955 <div class="outro-text"></div> 956 957 958
958<script type="text/javascript"> 959 var pageTitle = ""; 960 var pageH1 = ""; 961 var pageTitleLength = "0"; 962 963 // The UDO minus the AI Sales Agent's attribution. Those variables are scoped to view 964 // events (DCS-2549), yet they live on init_utag_data because the view events that refire 965 // from it read it at fire time - product_list_view on an SRP filter change, 966 // blog_article_view on a blog ajax refresh. So every NON-view event builds its payload 967 // through here instead of copying init_utag_data itself, and one rule covers them all. 968 // 969 // Declared in this unconditional block, so it exists no matter which of the gated Tealium 970 // blocks below render; it reads init_utag_data only when called, long after parse. 971 function dcsUdoForNonViewEvent() { 972 var data = {}; 973 if (typeof init_utag_data === 'undefined' || !init_utag_data) { return data; } 974 for (var k in init_utag_data) { 975 if (!init_utag_data.hasOwnProperty(k)) { continue; } 976 if (k.indexOf('aisa_') === 0) { continue; } 977 data[k] = init_utag_data[k]; 978 } 979 return data; 980 } 981 982 try { 983 var pageTitleEl = document.querySelector('meta[name="og:title"]') 984 985 if (pageTitleEl != null) { 986 pageTitle = pageTitleEl.content; 987 pageTitleLength = pageTitle.length; 988 } 989 document.addEventListener("DOMContentLoaded", 990 function () { 991 992 var pageH1El = document.querySelector("h1"); 993 994 if (pageH1El != null) { 995 var h1Text = pageH1El.innerText; 996 997 if (h1Text != null) { 998 pageH1 = h1Text; 999 1000 if (init_utag_data && init_utag_data.page_h1 != null) { 1001 init_utag_data.page_h1 = h1Text; 1002 } 1003 1004 } 1005 } 1006 else { 1007 if (init_utag_data["page_h1"] === "" || init_utag_data["page_h1"] === null) { 1008 delete init_utag_data["page_h1"]; 1009 } 1010 } 1011 1012 1013 }); 1014 } 1015 catch (e) { 1016 console.error('[dcs-tealium] page title/h1 setup failed', e); 1017 } 1018 </script>
vendor: 2 bytes, line 1018
1018
1019<script type="text/javascript"> 1020var init_utag_data = { 1021"tealium_event": "product_list_view", 1022"firestorm_dealer_id": "1e4f66508ead4a78a7a226726b7d3130", 1023"ga4_id": "G-HVREX5H7Y2", 1024"page_title": pageTitle, 1025"page_h1": pageH1 , 1026"page_title_count": pageTitleLength, 1027"digital_retailing_active": "false", 1028"ai_product_expert_active": "false", 1029"site_company_name": "Roswell Auto Imports", 1030"site_id": "20725", 1031"site_internal_id": "4790", 1032"site_platform": "dcs", 1033"site_section": "search", 1034"site_company_city": "Austell", 1035"site_company_state": "GA", 1036"site_company_zip_code": "30168", 1037"site_phone_main": "770-649-9997", 1038}; 1039</script>
1039 1040 <div id="TealiumProductListTags" class="tealium-product-list-tags"> 1041
1041<script type="text/javascript"> 1042init_utag_data = { 1043"tealium_event": "product_list_view", 1044"ga4_id": "G-HVREX5H7Y2", 1045"firestorm_dealer_id": "1e4f66508ead4a78a7a226726b7d3130", 1046"page_title": pageTitle, 1047"page_h1": pageH1, 1048"page_title_count": pageTitleLength, 1049"digital_retailing_active": "false", 1050"ai_product_expert_active": "false", 1051"site_company_name": "Roswell Auto Imports", 1052"site_id": "20725", 1053"site_internal_id": "4790", 1054"site_platform": "dcs", 1055"site_section": "search", 1056"site_company_city": "Austell", 1057"site_company_state": "GA", 1058"site_company_zip_code": "30168", 1059"site_phone_main": "770-649-9997", 1060}; 1061</script>
1061 1062 1063 </div>
1064<script type="text/javascript"> 1065utag_data = init_utag_data; 1066(function (a, b, c, d) { 1067a = 'https://tags.tiqcdn.com/utag/dtms/dcs-eas/prod/utag.js'; 1068b = document; c = 'script'; d = b.createElement(c); d.src = a; d.type = 'text/java' + c; d.async = true; 1069a = b.getElementsByTagName(c)[0]; a.parentNode.insertBefore(d, a); 1070})(); 1071window.addEventListener("load", function (event) { 1072(function fireView(n) { 1073if (typeof utag !== 'undefined' && typeof utag.view === 'function') { 1074window.dcsUtagReady = true; 1075var dcsViewPayload = ''; 1076try { dcsViewPayload = JSON.stringify(utag_data); } catch (e) { dcsViewPayload = '(not serializable)'; } 1077var dcsNoisyPrefixes = ['cp.', 'ls.', 'ss.', 'dom.', 'ut.', 'meta.', 'qp.', 'va.', 'tealium_', '_']; 1078var dcsOurs = {}, dcsTotal = 0, dcsOurCount = 0; 1079for (var dcsK in utag_data) { 1080if (!utag_data.hasOwnProperty(dcsK)) { continue; } 1081dcsTotal++; 1082var dcsNoisy = false; 1083for (var dcsI = 0; dcsI < dcsNoisyPrefixes.length; dcsI++) { if (dcsK.indexOf(dcsNoisyPrefixes[dcsI]) === 0) { dcsNoisy = true; break; } } 1084if (!dcsNoisy) { dcsOurs[dcsK] = utag_data[dcsK]; dcsOurCount++; } 1085} 1086var dcsTealiumDebug = false || document.cookie.indexOf('utagdb=true') >= 0; 1087try { 1088utag.view(utag_data); 1089window.dcsUtagViewSent = dcsViewPayload; 1090if (dcsTealiumDebug) { console.log('[cms-tealium] sent ' + (utag_data.tealium_event || '(no tealium_event)') + ' | conversation=' + (utag_data.aisa_conversation_id || '-') + ' | widget=' + (utag_data.aisa_widget_version || '-') + ' | ' + dcsOurCount + '/' + dcsTotal + ' vars from DCS', dcsOurs); } 1091} catch (e) { console.error('[cms-tealium] utag.view threw; page view not sent', e, dcsViewPayload); } 1092return; 1093} 1094if (n >= 100) { console.error('[cms-tealium] utag.js never loaded after 10s; no page view sent'); return; } 1095setTimeout(function () { fireView(n + 1); }, 100); 1096})(0); 1097}); 1098</script>
1098 1099
1099<script type="text/javascript"> 1100 var formName = ''; 1101 var form_submit_utag_data = { 1102"tealium_event": "form_submit", 1103"form_name": formName, 1104"form_type": formName, 1105"form_id": formName, 1106"ga4_id": "G-HVREX5H7Y2", 1107"firestorm_dealer_id": "1e4f66508ead4a78a7a226726b7d3130", 1108"page_title": pageTitle, 1109"page_title": pageH1, 1110"page_title_count": pageTitleLength, 1111"page_h1": pageH1, 1112"digital_retailing_active": "false", 1113"ai_product_expert_active": "false", 1114"site_company_name": "Roswell Auto Imports", 1115"site_id": "20725", 1116"site_internal_id": "4790", 1117"site_platform": "dcs", 1118"site_section": "search", 1119"site_company_city": "Austell", 1120"site_company_state": "GA", 1121"site_company_zip_code": "30168", 1122"site_phone_main": "770-649-9997", 1123"form_submission_first_name": "", 1124"form_submission_last_name": "", 1125"form_submission_middle_name": "", 1126"form_submission_address": "", 1127"form_submission_email": "", 1128"form_submission_location_name": "", 1129"form_submission_mobile_phone": "", 1130"form_submission_home_phone": "", 1131"form_submission_postal_code": "", 1132"form_submission_city": "", 1133"form_submission_trade_in_vin": "", 1134"form_submission_trade_in_make": "", 1135"form_submission_trade_in_miles": "", 1136"form_submission_trade_in_model": "", 1137"form_submission_trade_in_year": "", 1138"form_submission_trade_in_cylinders": "", 1139"form_submission_trade_in_transmission": "", 1140"form_submission_trade_in_color": "", 1141"form_submission_trade_in_payoff_amount": "", 1142"form_submission_trade_in_wrecked": "", 1143"form_submission_trade_in_vehicle_option": "", 1144}; 1145 1146 </script>
1146 1147
1147<script type="text/javascript"> 1148 function getCookie(name) { 1149 var nameEQ = name + "="; 1150 var cookies = document.cookie.split(';'); 1151 if(typeof(cookies) != 'undefined' && cookies != null ) { 1152 for (var i = 0; i < cookies.length; i++) { 1153 var cookie = cookies[i].trim(); 1154 if (cookie.indexOf(nameEQ) === 0) { 1155 return cookie.substring(nameEQ.length); 1156 } 1157 } 1158 } 1159 return null; 1160 } 1161 1162 function tealiumFormSubmit(formNameVal) { 1163 if (!form_submit_utag_data) { 1164 return; 1165 } 1166 formName = formNameVal; 1167 form_submit_utag_data.tealium_event = 'form_submit'; 1168 1169 var webLeadIdCookie = getCookie('webLeadId'); 1170 if (webLeadIdCookie) { 1171 form_submit_utag_data.form_submission_id = webLeadIdCookie; 1172 } 1173 1174 utag.link(form_submit_utag_data); 1175 }; 1176 1177 1178 // Build a per-event copy of init_utag_data. init_utag_data is aliased by utag_data 1179 // (the page-view object), so form events must NOT mutate it in place - doing so 1180 // stamps tealium_event='form_load' etc. onto the page view and corrupts it. 1181 function tealiumFormData(formNameVal, eventName) { 1182 var data = dcsUdoForNonViewEvent(); 1183 data.tealium_event = eventName; 1184 data.form_name = formNameVal; 1185 data.form_id = formNameVal; 1186 data.form_type = formNameVal; 1187 return data; 1188 } 1189 1190 function tealiumFormLoad(formNameVal) { 1191 if (!init_utag_data || typeof utag === 'undefined') { 1192 return; 1193 } 1194 formName = formNameVal; 1195 utag.link(tealiumFormData(formNameVal, 'form_load')); 1196 }; 1197 1198 function tealiumFormInteraction(formNameVal) { 1199 if (!init_utag_data || typeof utag === 'undefined') { 1200 return; 1201 } 1202 formName = formNameVal; 1203 utag.link(tealiumFormData(formNameVal, 'form_interaction')); 1204 } 1205 1206 function tealiumLink(formName) { 1207 if (!init_utag_data) 1208 return 1209 utag.link(init_utag_data); 1210 } 1211 1212 // On list pages (SRP) init_utag_data carries index-aligned product_list_* arrays 1213 // instead of a single product. When a shared modal (SMS / Price Drop) opens for a 1214 // specific row, set the singular product_* fields for that vehicle so the 1215 // form_load / form_interaction events carry per-vehicle context. No-ops on VDP 1216 // (no product_list_* arrays), leaving the existing single-product data intact. 1217 function tealiumSetListVehicleContext(inventoryId) { 1218 if (!init_utag_data || !inventoryId) { return; } 1219 var ids = init_utag_data.product_list_ids; 1220 if (!ids || !ids.length) { return; } 1221 var idx = ids.indexOf(String(inventoryId)); 1222 var map = { 1223 product_id: 'product_list_ids', 1224 product_name: 'product_list_names', 1225 product_make: 'product_list_makes', 1226 product_brand: 'product_list_brands', 1227 product_brand_id: 'product_list_make_ids', 1228 product_year: 'product_list_years' 1229 }; 1230 for (var target in map) { 1231 var arr = init_utag_data[map[target]]; 1232 if (idx > -1 && arr && idx < arr.length) { 1233 init_utag_data[target] = arr[idx]; 1234 } else { 1235 delete init_utag_data[target]; 1236 } 1237 } 1238 } 1239 1240 function aipeModalOpen() { 1241 if (!init_utag_data || typeof utag === 'undefined') { 1242 return; 1243 } 1244 // Per-event copy - see tealiumFormData comment above for why init_utag_data 1245 // must not be mutated in place. 1246 var data = dcsUdoForNonViewEvent(); 1247 data.tealium_event = 'aipe_modal_open'; 1248 utag.link(data); 1249 } 1250 1251 function getTradeOptions() { 1252 var stringOptionsVal = ""; 1253 $('input[id="vehicleOptions"]:checked').each(function () { 1254 let element = $(this); 1255 let value = element.val(); // Get the value of the checked element
1256 stringOptionsVal += (value + ' ,'); 1257 }); 1258 return stringOptionsVal; 1259 1260 } 1261 function addTealiumFormInfo(formNameVal, removeTags) { 1262 1263 var removeFormSubmitTags = false 1264 if (removeTags && removeTags == true) 1265 removeFormSubmitTags = true 1266 1267 1268 if (!form_submit_utag_data) 1269 return 1270 1271 formName = formNameVal; 1272 1273 var tForm = document.getElementById(formName); 1274 1275 if (!tForm) { 1276 var formByClass = document.getElementsByClassName(formName); 1277 tForm = formByClass && formByClass[0] ? formByClass[0] : null; 1278 } 1279 1280 try { 1281 if (tForm && tForm != null && form_submit_utag_data) { 1282 1283 form_submit_utag_data.form_name = formName; 1284 form_submit_utag_data.form_id = formName; 1285 form_submit_utag_data.form_type = formName; 1286 1287 var webLeadIdCookie = getCookie('webLeadId'); 1288 if (webLeadIdCookie) { 1289 form_submit_utag_data.form_submission_id = webLeadIdCookie; 1290 } 1291 1292 //Lead Info 1293 form_submit_utag_data.form_submission_first_name = tForm.querySelector(`${'#FirstName'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#FirstName'}`).value : document.getElementById('txtFirstName') ? document.getElementById('txtFirstName').value : null; 1294 form_submit_utag_data.form_submission_last_name = tForm.querySelector(`${'#LastName'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#LastName'}`).value : document.getElementById('txtLastName') ? document.getElementById('txtLastName').value : null; 1295 form_submit_utag_data.form_submission_mobile_phone = tForm.querySelector(`${'#MobilePhone'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#MobilePhone'}`).value : document.getElementById('txtMobilePhone') ? document.getElementById('txtMobilePhone').value : null; 1296 form_submit_utag_data.form_submission_home_phone = tForm.querySelector(`${'#HomePhone'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#HomePhone'}`).value : document.getElementById('txtHomePhone') ? document.getElementById('txtHomePhone').value : null; 1297 form_submit_utag_data.form_submission_email = tForm.querySelector(`${'#Email'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#Email'}`).value : document.getElementById('txtEmail') ? document.getElementById('txtEmail').value : null; 1298 form_submit_utag_data.form_submission_postal_code = tForm.querySelector(`${'#txtZip'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtZip'}`).value : document.getElementById('txtZip') ? document.getElementById('txtZip').value : null; 1299 form_submit_utag_data.form_submission_city = tForm.querySelector(`${'#txtCity'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtCity'}`).value : document.getElementById('txtCity') ? document.getElementById('txtCity').value : null; 1300 1301 if (formName.toLowerCase().includes("credit") || formName.toLowerCase().includes("default")) { 1302 form_submit_utag_data.form_submission_first_name = document.getElementById('txtApplicantFirstName') && removeFormSubmitTags == false ? document.getElementById('txtApplicantFirstName').value : null; 1303 form_submit_utag_data.form_submission_last_name = document.getElementById('txtApplicantLastName') && removeFormSubmitTags == false ? document.getElementById('txtApplicantLastName').value : null; 1304 form_submit_utag_data.form_submission_mobile_phone = document.getElementById('txtApplicantMobilePhone') && removeFormSubmitTags == false ? document.getElementById('txtApplicantMobilePhone').value : null; 1305 form_submit_utag_data.form_submission_home_phone = document.getElementById('txtApplicantHomePhone') && removeFormSubmitTags == false ? document.getElementById('txtApplicantHomePhone').value : null; 1306 form_submit_utag_data.form_submission_email = document.getElementById('txtApplicantEmail') && removeFormSubmitTags == false ? document.getElementById('txtApplicantEmail').value : null; 1307 form_submit_utag_data.form_submission_postal_code = document.getElementById('txtApplicantZip') && removeFormSubmitTags == false ? document.getElementById('txtApplicantZip').value : null; 1308 form_submit_utag_data.form_submission_city = document.getElementById('txtApplicantCity') && removeFormSubmitTags == false ? document.getElementById('txtApplicantCity').value : null; 1309 form_submit_utag_data.form_submission_address = document.getElementById('txtApplicantAddress1') && removeFormSubmitTags == false ? document.getElementById('txtApplicantAddress1').value : document.getElementById('txtApplicantHomeAddress1') ? document.getElementById('txtApplicantHomeAddress1').value : null; 1310 1311 form_submit_utag_data.product_make = document.getElementById('txtVehicleMake') && removeFormSubmitTags == false ? document.getElementById('txtVehicleMake').value : null; 1312 form_submit_utag_data.product_brand = document.getElementById('txtVehicleMake') && removeFormSubmitTags == false ? document.getElementById('txtVehicleMake').value : null; 1313 form_submit_utag_data.product_model = document.getElementById('txtVehicleModel') && removeFormSubmitTags == false ? document.getElementById('txtVehicleModel').value : null; 1314 form_submit_utag_data.product_year = document.getElementById('txtVehicleYear') && removeFormSubmitTags == false ? document.getElementById('txtVehicleYear').value : null; 1315 } 1316 //Trade Forms 1317 if (formName.toLowerCase().includes("trade") || formName.toLowerCase().includes("lookup")) { 1318 form_submit_utag_data.form_submission_trade_in_make = tForm.querySelector(`${'#txtMake'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtMake'}`).value : $('#tradein-make-select').find(":selected").text(); 1319 form_submit_utag_data.form_submission_trade_in_model = tForm.querySelector(`${'#txtModel'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtModel'}`).value : $('#tradein-model-select').find(":selected").text(); 1320 form_submit_utag_data.form_submission_trade_in_miles = tForm.querySelector(`${'#txtMileage'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtMileage'}`).value : null; 1321 form_submit_utag_data.form_submission_trade_in_year = tForm.querySelector(`${'#VehicleYear'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#VehicleYear'}`).value : $('#tradein-year-select').find(":selected").text() != '' ? $('#tradein-year-select').find(":selected").text() : $('#ddlYear').find(":selected").text(); 1322 form_submit_utag_data.form_submission_trade_in_color = tForm.querySelector(`${'#txtColor'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtColor'}`).value : null; 1323 form_submit_utag_data.form_submission_trade_in_cylinders = tForm.querySelector(`${'#txtEngine'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtEngine'}`).value : null; 1324 form_submit_utag_data.form_submission_trade_in_vin = tForm.querySelector(`${'#txtVin'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtVin'}`).value : null; 1325 form_submit_utag_data.form_submission_trade_in_transmission = tForm.querySelector(`${'#txtTransmission'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtTransmission'}`).value : null; 1326 form_submit_utag_data.form_submission_trade_in_payoff_amount = tForm.querySelector(`${'#txtPayoff'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtPayoff'}`).value : null; 1327 form_submit_utag_data.form_submission_trade_in_wrecked = tForm.querySelector(`${'#txtWrecked'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtWrecked'}`).value : null; 1328 form_submit_utag_data.form_submission_trade_in_vehicle_option = getTradeOptions(); 1329 form_submit_utag_data.form_submission_trade_in_color = tForm.querySelector(`${'#txtColor'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtColor'}`).value : null; 1330 } 1331 1332 //Buy Now form 1333 if (formName.toLowerCase().includes("buynow")) { 1334 form_submit_utag_data.form_submission_first_name = tForm.querySelector(`${'#txtLeadFirstName'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtLeadFirstName'}`).value : null; 1335 form_submit_utag_data.form_submission_last_name = tForm.querySelector(`${'#txtLeadLastName'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtLeadLastName'}`).value : null; 1336 form_submit_utag_data.form_submission_home_phone = tForm.querySelector(`${'#txtLeadHomePhone'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtLeadHomePhone'}`).value : null; 1337 form_submit_utag_data.form_submission_email = tForm.querySelector(`${'#txtLeadEmail'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtLeadEmail'}`).value : null; 1338 } 1339 1340 //Service, parts , detail, rental forms 1341 if (formName.toLowerCase().includes("service") || formName.toLowerCase().includes("rental") || formName.toLowerCase().includes("detailing") || formName.toLowerCase().includes("parts")) { 1342 form_submit_utag_data.product_make = tForm.querySelector(`${'#txtMake'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtMake'}`).value : $('#tradein-make-select').find(":selected").text(); 1343 form_submit_utag_data.product_brand = tForm.querySelector(`${'#txtMake'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtMake'}`).value : $('#tradein-make-select').find(":selected").text(); 1344 form_submit_utag_data.product_model = tForm.querySelector(`${'#txtModel'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtModel'}`).value : $('#tradein-model-select').find(":selected").text(); 1345 form_submit_utag_data.product_year = tForm.querySelector(`${'#VehicleYear'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#VehicleYear'}`).value : $('#ddlYear').find(":selected").text(); 1346 } 1347 1348 //Car Proof forms (CarProofForm, Mod
1348alCarProofForm) 1349 if (formName.toLowerCase().includes("carproof")) { 1350 form_submit_utag_data.form_submission_first_name = tForm.querySelector(`${'#txtCarProofFirstName'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtCarProofFirstName'}`).value : null; 1351 form_submit_utag_data.form_submission_last_name = tForm.querySelector(`${'#txtCarProofLastName'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtCarProofLastName'}`).value : null; 1352 form_submit_utag_data.form_submission_email = tForm.querySelector(`${'#txtCarProofEmail'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtCarProofEmail'}`).value : null; 1353 form_submit_utag_data.form_submission_mobile_phone = tForm.querySelector(`${'#txtCarProofPhoneNumber'}`) && removeFormSubmitTags == false ? tForm.querySelector(`${'#txtCarProofPhoneNumber'}`).value : null; 1354 } 1355 1356 //SMS text forms (ModalSmsTextForm, EmbedSmsTextForm, ResponsiveSmsForm, ResponsiveSmsTextingForm) 1357 if (formName.toLowerCase().includes("sms")) { 1358 var smsFirstName = tForm.querySelector('#txtSMSFirstName, #txtEmbedSMSFirstName, #txtSMSFirstNameForm, #txtSMSFirstNameFS'); 1359 var smsLastName = tForm.querySelector('#txtSMSLastName, #txtEmbedSMSLastName, #txtSMSLastNameForm, #txtSMSLastNameFS'); 1360 var smsMobilePhone = tForm.querySelector('#txtSMSPhoneNumber, #txtEmbedSMSPhoneNumber, #txtSMSPhoneNumberForm, #txtSMSPhoneNumberFS'); 1361 form_submit_utag_data.form_submission_first_name = smsFirstName && removeFormSubmitTags == false ? smsFirstName.value : null; 1362 form_submit_utag_data.form_submission_last_name = smsLastName && removeFormSubmitTags == false ? smsLastName.value : null; 1363 form_submit_utag_data.form_submission_mobile_phone = smsMobilePhone && removeFormSubmitTags == false ? smsMobilePhone.value : null; 1364 } 1365 1366 //Forms whose email input is bound to EmailAddress (ScheduleTestDriveForm, SimpleLeadCaptureForm, etc.) 1367 if ((form_submit_utag_data.form_submission_email == null || form_submit_utag_data.form_submission_email === "") && removeFormSubmitTags == false) { 1368 var emailAddressEl = tForm.querySelector(`${'#EmailAddress'}`); 1369 if (emailAddressEl) { 1370 form_submit_utag_data.form_submission_email = emailAddressEl.value; 1371 } 1372 } 1373 } 1374 1375 if (form_submit_utag_data) { 1376 1377 for (var propName in form_submit_utag_data) { 1378 if (form_submit_utag_data[propName] === "" || form_submit_utag_data[propName] === null) { 1379 delete form_submit_utag_data[propName]; 1380 } 1381 } 1382 } 1383 } 1384 catch 1385 { 1386 console.log('Tealium form error ') 1387 return null; 1388 } 1389 1390 finally { 1391 } 1392 } 1393 1394 function formInteractionListener(formClass, formId, interactionType) { 1395 try { 1396 var formName = formClass ?? formId; 1397 var form = document.querySelector((formClass != null ? '.' : '#') + formName); 1398 1399 var interacted = false; 1400 1401 form.addEventListener(interactionType ?? 'change', function () { 1402 if (interacted == true) 1403 return 1404 interacted = true; 1405 addTealiumFormInfo(formName, true) 1406 1407 tealiumFormInteraction(formName) 1408 }, { once: true });
1409 } 1410 1411 catch { 1412 console.log('error loading form interaction events: ' + formName) 1413 } 1414 } 1415 1416 // Form events must wait until utag is fully initialized - not merely defined. 1417 // window.dcsUtagReady is set right after the initial utag.view (see GetUTagScript), 1418 // which is the point the data layer/tags are established. Firing before that runs 1419 // load rules on an uninitialized utag and crashes it ("called before tags loaded"). 1420 function whenUtagReady(callback, attempts) { 1421 attempts = attempts || 0; 1422 if (typeof utag !== 'undefined' && window.dcsUtagReady === true) { 1423 callback(); 1424 return; 1425 } 1426 if (attempts >= 150) { 1427 return; 1428 } 1429 setTimeout(function () { whenUtagReady(callback, attempts + 1); }, 100); 1430 } 1431 1432 function formLoadListener(formClass, formId) { 1433 try { 1434 var formName = formClass ?? formId; 1435 var viewed = false; 1436 var observer = new IntersectionObserver(function (entries) { 1437 1438 1439 if (entries[0].isIntersecting === true && viewed == false) { 1440 viewed = true; 1441 addTealiumFormInfo(formName, true) 1442 // utag.js loads async; if the form is above the fold the observer 1443 // can fire before utag exists, so defer until it is ready. The 1444 // extra delay pushes the fire past document_idle so Tealium's event 1445 // viewer (whose capture hook attaches after window.load) sees it. 1446 whenUtagReady(function () { setTimeout(function () { tealiumFormLoad(formName) }, 750) }) 1447 } 1448 }, { threshold: [0] }); 1449 1450 observer.observe(document.querySelector((formClass != null ? '.' : '#') + formName)); 1451 } 1452 catch { 1453 console.log('error loading form interaction events: ' + formName) 1454 1455 } 1456 } 1457 </script>
1457 1458 1459</div> 1460 1461<div class="smsModal modal fade" id="smsModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 1462 1463 <div class="modal-dialog"> 1464 <div class="modal-content"> 1465 1466 <div class="modal-header"> 1467 <h4 class="modal-title" id="H2">Text us</h4> 1468 <button type="button" class="close" data-dismiss="modal"> 1469 <span aria-hidden="true">×</span> 1470 <span class="sr-only">Close</span> 1471 </button> 1472 </div> 1473 1474 <div class="modal-body"> 1475 <form id="ModalSmsTextForm" class="ModalSmsTextForm" data-ajax="true" data-ajax-method="post" data-ajax-success="$('#smsModal').modal('toggle');formTrack('success','ResponsiveInventoryModule14')" data-ajax-failure="ajaxFailure" data-ajax-loading="#ModalSmsTextFormSpinner" data-ajax-begin="$('#btnSendSMS').prop('disabled',true);addTealiumFormInfo('ModalSmsTextForm');" data-ajax-complete="$('#btnSendSMS').prop('disabled',false);formLeadTrackingByElementId('#responsiveSmsTextingFormVehicleId', '', 'Modal Sms Text Form')" data-recaptcha-id="ModalSmsTextRecaptchaToken" data-recaptcha-site-key="" data-recaptcha-type="Undefined" action="/LeadModule/ModalSmsTextSubmitForm?pagename=newandusedcars&modulename=ResponsiveInventoryModule14" method="post"> 1476 1477 <h4 id="ymmLabel"></h4> 1478 <label id="stockLabel"></label> 1479 1480 <div class="form-group"> 1481 <label id="lblSMSFirstName" for="FirstName">First Name</label> 1482 <input aria-labelledby="lblSMSFirstName" type="text" id="txtSMSFirstName" class="form-control" data-val="true" data-val-required="The First Name field is required." name="FirstName" value="" /> 1483 <span class="text-danger field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span> 1484 </div> 1485 <div class="form-group"> 1486 <label id="lblSMSLastName" for="LastName">Last Name</label> 1487 <input aria-labelledby="lblSMSLastName" type="text" id="txtSMSLastName" class="form-control" data-val="true" data-val-required="The Last Name field is required." name="LastName" value="" /> 1488 <span class="text-danger field-validation-valid" data-valmsg-for="LastName" data-valmsg-replace="true"></span> 1489 </div> 1490 <div class="form-group"> 1491 <label id="lblSMSPhoneNumber" for="MobilePhone">Mobile Phone</label> 1492 <input type="tel" aria-labelledby="lblSMSPhoneNumbere" id="txtSMSPhoneNumber" class="form-control" data-val="true" data-val-regex="ex. ###-###-####" data-val-regex-pattern="^\([0-9]{3}\)\s?[0-9]{3}(-|\s)?[0-9]{4}$|^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$" data-val-required="The Mobile Phone field is required." name="MobilePhone" value="" /> 1493 <span class="text-danger field-validation-valid" data-valmsg-for="MobilePhone" data-valmsg-replace="true"></span> 1494 </div> 1495 <div class="form-group"> 1496 <label id="lblSMSMessage" for="Comments">Comments</label> 1497 <textarea aria-labelledby="lblSMSMessage" id="txtSMSMessage" class="form-control form-textarea" data-val="true" data-val-required="The Comments field is required." name="Comments"> 1498</textarea> 1499 <span class="text-danger field-validation-valid" data-valmsg-for="Comments" data-valmsg-replace="true"></span> 1500 </div> 1501 1502 <input type="hidden" id="smsModalVehicleId" data-val="true" data-val-required="The VehicleId field is required." name="VehicleId" value="0" /> 1503 <input type="hidden" id="smsModalDealerId" data-val="true" data-val-required="The DealerId field is required." name="DealerId" value="0" /> 1504 <input type="hidden" id="smsModalCssClassPrefixId" name="CssClassPrefix" value="ir12" /> 1505 <input type="hidden" id="smsModalYearMakeModel" name="YearMakeModel" value="" /> 1506 <input type="hidden" id="smsModalStockNumber" name="StockNumber" value="" /> 1507 1508 <div class="contact-disclaimer"> 1509 <div class="form-group"> 1510 <div class="form-check "> 1511 <input type="checkbox" aria-label="Contact Consent" class="form-check-input" id="chkContactDisclaimerConsent4513" data-val="true" data-val-range="Please check the box to verify acknowledgement and consent." data-val-range-min="True" data-val-range-max="True" data-val-required="The ContactDisclaimerConsent field is required." name="ContactDisclaimerConsent" value="true" /> 1512 <label for="chkContactDisclaimerConsent4513" aria-labelledby="chkContactDisclaimerConsent4513"> 1513 <strong>ACKNOWLEDGMENT AND CONSENT:</strong> 1514 </label>
1515 <span class="text-danger field-validation-valid" data-valmsg-for="ContactDisclaimerConsent" data-valmsg-replace="true"></span> 1516 </div> 1517 By checking this box, you expressly consent to receive customer care text messages and/or phone calls to the number provided from or on behalf of Roswell Auto Imports or their employees in response to your inquiry. By opting in, you understand no mobile information will be shared with third parties or affiliates for marketing or promotional purposes. Message frequency varies per user. Message and data rates may apply. You may withdraw your consent at any time by texting "STOP" or "HELP" for help. See our <a href="https://roswellautoimports.com/privacy" target="_blank" rel="noopener">Privacy Policy</a> for more information. 1518 </div> 1519</div> 1520 1521 <div></div> 1522 1523 <div class="modal-footer"> 1524 <button ID="btnSendSMS" class="ir12_submitButton btn"> 1525 I agree, Send Text 1526 <i id="ModalSmsTextFormSpinner" class="fa-solid fa-rotate fa-spin fa-fw" style="display: none"></i> 1527 </button> 1528 <a href="/privacy" target="_blank" rel="noopener">Privacy Policy</a> 1529 </div> 1530 1531 <div class="RowIce"><input type='text' autocomplete='off' aria-label='Name' name='Name' class='form-control' /></div> 1532 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8PpyLBkFqepBsOO-JODtNhgbtwPIu-LHrQet959cDvBjZOEizYmuk8YnHtby_Bk8BaBvBclU2uLQDzSuwKmKp_ducdUeRQNdvzWFRlEz1xWLiIcfGlvMwk69ZY_wiW1PWiudxpfKQj1ffKeGb9QD0Rs" /><input name="ContactDisclaimerConsent" type="hidden" value="false" /></form> 1533 </div> 1534 1535 </div> 1536 </div> 1537
1537<script> 1538 (function () { 1539 function bind(attempts) { 1540 attempts = attempts || 0; 1541 1542 // Bootstrap 4 modal events (shown.bs.modal) are jQuery-triggered, so we must 1543 // listen with jQuery. jQuery may not be parsed yet at this inline point, so wait. 1544 if (typeof window.jQuery === "undefined") { 1545 if (attempts < 100) { setTimeout(function () { bind(attempts + 1); }, 100); } 1546 return; 1547 } 1548 1549 // These are defined by the TealiumUtag component's script block, which only 1550 // renders when LoadScript is true for the page. 1551 if (typeof tealiumFormLoad === "undefined" || typeof tealiumFormInteraction === "undefined") { 1552 return; 1553 } 1554 1555 var $ = window.jQuery; 1556 var $modal = $('#smsModal'); 1557 if (!$modal.length) { return; } 1558 1559 // #smsModal is a SINGLE shared modal reused by every "Text us" button in an 1560 // inventory list (SRP). The one-shot formLoadListener/formInteractionListener 1561 // (IntersectionObserver + { once:true }) would only ever track the first row a 1562 // visitor engages, so drive tracking off the modal open/close events instead, 1563 // re-arming on every open. 1564 $modal 1565 .off('shown.bs.modal.tealiumSms') 1566 .on('shown.bs.modal.tealiumSms', function () { 1567 if (typeof tealiumSetListVehicleContext !== "undefined") { 1568 tealiumSetListVehicleContext($('#smsModalVehicleId').val()); 1569 } 1570 addTealiumFormInfo('ModalSmsTextForm', true); 1571 if (typeof whenUtagReady !== "undefined") { 1572 whenUtagReady(function () { tealiumFormLoad('ModalSmsTextForm'); }); 1573 } else { 1574 tealiumFormLoad('ModalSmsTextForm'); 1575 } 1576 1577 $('#ModalSmsTextForm') 1578 .off('change.tealiumSms') 1579 .one('change.tealiumSms', function () { 1580 addTealiumFormInfo('ModalSmsTextForm', true); 1581 tealiumFormInteraction('ModalSmsTextForm'); 1582 }); 1583 }); 1584 1585 $modal 1586 .off('hidden.bs.modal.tealiumSms') 1587 .on('hidden.bs.modal.tealiumSms', function () { 1588 $('#ModalSmsTextForm').off('change.tealiumSms'); 1589 }); 1590 } 1591 1592 if (document.readyState === "loading") { 1593 document.addEventListener("DOMContentLoaded", function () { bind(0); }); 1594 } else { 1595 bind(0); 1596 } 1597 })(); 1598 </script>
1598 1599</div> 1600 1601 1602
1602<script type="text/javascript" src="https://widget.carstory.com/v1.0/button.js"></script>
1602 1603 1604
1604<script> 1605 document.addEventListener('DOMContentLoaded', 1606 function() { 1607 1608 var referrer = 'dcs-two'; 1609 var cswButt0n = setInterval(function() { 1610 window.CarStory && 1611 (clearInterval(cswButt0n), CarStory.buildButtons({ referrer: referrer || null, useNoConflict: !0, noClickButtons: true })); 1612 }, 1613 100), 1614 cb = function() { 1615 var e = document.createElement('link'); 1616 e.rel = 'stylesheet', e.href = '//widget.carstory.com/v1.0/no-click-button.css'; 1617 var t = document.getElementsByTagName('head')[0]; 1618 t.parentNode.insertBefore(e, t); 1619 }, 1620 raf = requestAnimationFrame || mozRequestAnimationFrame || webkitRequestAnimationFrame || msRequestAnimationFrame; 1621 raf ? raf(cb) : window.addEventListener('load', cb); 1622 }); 1623 </script>
1623 1624 1625 1626 1627<div class="modal fade" id="pricedropModal" tabindex="-1" role="dialog" aria-labelledby="pricedropModalLabel" aria-hidden="true"> 1628 <div class="modal-dialog" role="document"> 1629 <div class="modal-content"> 1630 <div class="modal-header"> 1631 <h5 class="modal-title" id="pricedropModalLabel"><i class="far fa-eye"></i> Price Drop Notifications</h5> 1632 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 1633 <span aria-hidden="true">×</span> 1634 </button> 1635 </div> 1636 <div class="modal-body"> 1637 1638<div class="formWrap price-drop-form-wrapper"> 1639 <div class=" alert alert-success price-drop-modal-success" role="alert" style=" display: none"> 1640 Vehicle Price Watch submitted 1641 </div> 1642 <form id="PriceDropSubmitForm" data-ajax="true" data-ajax-method="post" data-ajax-success="priceDropSuccess();formLeadTracking('0', '', 'Price Drop Form');formTrack('success','ResponsiveInventoryModule14');redirect('');" data-ajax-failure="ajaxFailure" data-ajax-loading=".price-drop-form-spinner" data-ajax-begin="$('.price-drop-form-button').prop('disabled',true);addTealiumFormInfo('PriceDropSubmitForm');" data-ajax-complete="$('.price-drop-form-button').prop('disabled',false);" data-recaptcha-id="PriceDropRecaptchaToken" data-recaptcha-site-key="" data-recaptcha-type="Undefined" action="/LeadModule/PriceDropSubmitForm?pagename=newandusedcars&modulename=ResponsiveInventoryModule14" method="post"> 1643 1644 <div class="form-group"> 1645 <label class="col-form-label" id="lblPriceDropFirstName" for="FirstName">First Name:</label> 1646 <input type="text" aria-labelledby="lblPriceDropFirstName" class="txtDropFirstName form-control" data-val="true" data-val-required="Please enter your first name" id="FirstName" name="FirstName" value="" /> 1647 <span class="text-danger field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span> 1648 </div> 1649 1650 <div class="form-group"> 1651 <label class="col-form-label" id="lblPriceDropLastName" for="LastName">Last Name:</label> 1652 <input type="text" aria-labelledby="lblPriceDropLastName" class="txtDropLastName form-control" data-val="true" data-val-required="Please enter your last name" id="LastName" name="LastName" value="" /> 1653 <span class="text-danger field-validation-valid" data-valmsg-for="LastName" data-valmsg-replace="true"></span> 1654 </div> 1655 1656 <div class="form-group"> 1657 <label class="col-form-label" id="lblPriceDropEmail" for="Email">Email:</label> 1658 <input type="email" aria-labelledby="lblPriceDropEmail" class="txtDropEmail form-control" onchange="$('.txtDropMobilePhone').valid();" data-other="MobilePhone" data-val="true" data-val-requiredifother="Please enter phone or email" id="Email" name="Email" placeholder="[email protected]" value="" /> 1659 <span class="text-danger field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span> 1660 </div> 1661 1662 <div class="form-group"> 1663 <label class="col-form-label" id="lblPriceDropMobilePhone" for="MobilePhone">Mobile Phone:</label> 1664 <input type="tel" aria-labelledby="lblPriceDropMobilePhone" class="txtDropMobilePhone form-control" onchange="$('.txtDropEmail').valid();" data-other="Email" data-val="true" data-val-regex="ex. ###-###-####" data-val-regex-pattern="^\([0-9]{3}\)\s?[0-9]{3}(-|\s)?[0-9]{4}$|^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$" data-val-requiredifother="Please enter phone or email" id="MobilePhone" name="MobilePhone" placeholder="###-###-####" value="" /> 1665 <span class="text-danger field-validation-valid" data-valmsg-for="MobilePhone" data-valmsg-replace="true"></span> 1666 </div> 1667 1668 1669 <div class="contact-disclaimer"> 1670 <div class="form-group"> 1671 <div class="form-check "> 1672 <input type="checkbox" aria-label="Contact Consent" class="form-check-input" id="chkContactDisclaimerConsent817" data-val="true" data-val-required="The ContactDisclaimerConsent field is required." name="ContactDisclaimerConsent" value="true" /> 1673 <label for="chkContactDisclaimerConsent817" aria-labelledby="chkContactDisclaimerConsent817"> 1674 <strong>ACKNOWLEDGMENT AND CONSENT:</strong> 1675 </label>
1676 <span class="text-danger field-validation-valid" data-valmsg-for="ContactDisclaimerConsent" data-valmsg-replace="true"></span> 1677 </div> 1678 By checking this box, you expressly consent to receive customer care text messages and/or phone calls to the number provided from or on behalf of Roswell Auto Imports or their employees in response to your inquiry. By opting in, you understand no mobile information will be shared with third parties or affiliates for marketing or promotional purposes. Message frequency varies per user. Message and data rates may apply. You may withdraw your consent at any time by texting "STOP" or "HELP" for help. See our <a href="https://roswellautoimports.com/privacy" target="_blank" rel="noopener">Privacy Policy</a> for more information. 1679 </div> 1680</div> 1681 1682 <div></div> 1683 1684 <button class="btn price-drop-form-button"> 1685 Submit 1686 <i class="fa-solid fa-rotate fa-spin fa-fw price-drop-form-spinner" style="display: none"></i> 1687 </button> 1688 <input type="hidden" name="CssClassPrefix" value="i01r" /> 1689 <input type="hidden" id="priceDropInventoryId" data-val="true" data-val-required="The InventoryId field is required." name="InventoryId" value="0" /> 1690 <input type="hidden" id="priceDropDealerId" data-val="true" data-val-required="The DealerId field is required." name="DealerId" value="0" /> 1691 <input type="hidden" id="priceDropPriceType" data-val="true" data-val-required="The PriceType field is required." name="PriceType" value="Undefined" /> 1692 <input type="hidden" id="priceDropStockNumber" name="StockNumber" value="" /> 1693 1694 <div class="RowIce"><input type='text' autocomplete='off' aria-label='Name' name='Name' class='form-control' /></div> 1695 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8PpyLBkFqepBsOO-JODtNhgbtwPIu-LHrQet959cDvBjZOEizYmuk8YnHtby_Bk8BaBvBclU2uLQDzSuwKmKp_ducdUeRQNdvzWFRlEz1xWLiIcfGlvMwk69ZY_wiW1PWiudxpfKQj1ffKeGb9QD0Rs" /><input name="ContactDisclaimerConsent" type="hidden" value="false" /></form> 1696
1696<script type="text/javascript"> 1697 (function () { 1698 function bind(attempts) { 1699 attempts = attempts || 0; 1700 1701 // Bootstrap 4 modal events are jQuery-triggered, so we need jQuery; it may not 1702 // be parsed yet at this inline point, so wait for it. 1703 if (typeof window.jQuery === "undefined") { 1704 if (attempts < 100) { setTimeout(function () { bind(attempts + 1); }, 100); } 1705 return; 1706 } 1707 if (typeof tealiumFormLoad === "undefined" || typeof tealiumFormInteraction === "undefined") { return; } 1708 1709 var $ = window.jQuery; 1710 var $form = $('#PriceDropSubmitForm').first(); 1711 if (!$form.length) { return; } 1712 var $modal = $form.closest('.modal'); 1713 if (!$modal.length) { return; } 1714 1715 // #pricedropModal is a SINGLE shared modal reused by every "Price Drop" button 1716 // in an inventory list (SRP). PriceDropForm_UpdateVehicleId swaps the vehicle 1717 // before each open, so fire on each open (re-arming) rather than the one-shot 1718 // IntersectionObserver / { once:true } listeners, which would only ever track 1719 // the first vehicle a visitor engages. Namespaced off/on also collapses 1720 // duplicate registrations (list module + VisitedVehiclesModal) to one handler. 1721 $modal 1722 .off('shown.bs.modal.tealiumPriceDrop') 1723 .on('shown.bs.modal.tealiumPriceDrop', function () { 1724 if (typeof tealiumSetListVehicleContext !== "undefined") { 1725 tealiumSetListVehicleContext($('#priceDropInventoryId').val()); 1726 } 1727 addTealiumFormInfo('PriceDropSubmitForm', true); 1728 if (typeof whenUtagReady !== "undefined") { 1729 whenUtagReady(function () { tealiumFormLoad('PriceDropSubmitForm'); }); 1730 } else { 1731 tealiumFormLoad('PriceDropSubmitForm'); 1732 } 1733 1734 $('#PriceDropSubmitForm').first() 1735 .off('change.tealiumPriceDrop') 1736 .one('change.tealiumPriceDrop', function () { 1737 addTealiumFormInfo('PriceDropSubmitForm', true); 1738 tealiumFormInteraction('PriceDropSubmitForm'); 1739 }); 1740 }); 1741 1742 $modal 1743 .off('hidden.bs.modal.tealiumPriceDrop') 1744 .on('hidden.bs.modal.tealiumPriceDrop', function () { 1745 $('#PriceDropSubmitForm').first().off('change.tealiumPriceDrop'); 1746 }); 1747 } 1748 1749 if (document.readyState === "loading") { 1750 document.addEventListener("DOMContentLoaded", function () { bind(0); }); 1751 } else { 1752 bind(0); 1753 } 1754 })(); 1755 </script>
1755 1756</div> 1757 </div> 1758 <div class="modal-footer"> 1759 </div> 1760 </div> 1761 </div> 1762</div> 1763 1764
1765<script type="text/javascript" src="https://snapshot.carfax.com/latest/snapshot.js"></script>
1765 1766 1767</div></div> 1768 </section> 1769 </main> 1770 1771 <footer id="Footer_wrap"> 1772 1773 <div id="FooterPane" class="s54r_Footer container"> 1774 1775<div class="ContentPane_115796 SocialMedia SocialMedia_115796"> 1776 1777<div class="socialMedia"> 1778 <a href="https://www.facebook.com/profile.php?id=61573356932743" target="_blank" rel="noopener" title="Follow Us on Facebook" aria-label="Follow Us on Facebook"> 1779 <i class='fa-brands fa-facebook-f'></i> 1780 </a> 1781 1782 <a href="https://twitter.com/#!/RoswellAutoImpo" target="_blank" rel="noopener" title="Follow Us on Twitter" aria-label="Follow Us on Twitter"> 1783 <i class='fa-brands fa-x-twitter'></i> 1784 </a> 1785 1786 1787 <a href="https://www.youtube.com/channel/UC6Qgc5X_GVsSpeKHBF-u-wQ" target="_blank" rel="noopener" title="Follow Us on YouTube" aria-label="Follow Us on YouTube"> 1788 <i class='fa-brands fa-youtube'></i> 1789 </a> 1790 1791 1792 1793 1794 1795 1796</div></div> 1797<div class="ContentPane_115799 FooterNav FooterNav_115799"> 1798<div class="footerNav"> 1799 <a href="/default" Target="_top" Title="Home" aria-label="Home">Home</a> 1800 1801<span class="footer-sep">|</span> 1802 1803 <a href="/aboutus" Target="_top" Title="About Us" aria-label="About Us">About Us</a> 1804 1805<span class="footer-sep">|</span> 1806 1807 <a href="/sendcomments" Target="_top" Title="Contact Us" aria-label="Contact Us">Contact Us</a> 1808 1809<span class="footer-sep">|</span> 1810 1811 <a href="/privacy" Target="_top" Title="Privacy" aria-label="Privacy">Privacy Policy</a> 1812 1813 <span class="footer-sep">|</span> 1814 1815 <a href="/terms" Target="_top" Title="Terms of Service" aria-label="Terms of Service">Terms of Service</a> 1816 1817 1818</div></div> 1819<div class="ContentPane_115800 Copyright Copyright_115800"> 1820<div class="copyright_main"> 1821 <div class="dcsLogin"> 1822 <a href="https://www.dealercarsearch.com" Target="_blank" rel="noopener nofollow">Dealer Car Search Login</a> 1823 </div> 1824 1825 <div class="copyright"> 1826Copyright 2026 | <a href="/sitemap" Target="_blank" rel="noopener">Sitemap</a> 1827 1828 <span>| </span> 1829 <a href="#" id="lv_cm_btn" onclick='document.getElementById("__tealiumGDPRcpPrefs").style.display="block";'> 1830 Your Privacy Choices 1831 <img alt="Privacy Choices" src="https://consent.trustarc.com/get?name=privacy_choices_icon.png" style="cursor: pointer; display: inline-block; margin-left: 5px; position: relative; top: -1px; width: 28.06px; height: 13.92px; background-size: 28.06px 13.92px; background-repeat: no-repeat;"> 1832 </a> 1833
1833<script type="text/javascript"> 1834 1835 1836 document.addEventListener("consentUpdate", (e) => location.href=window.location.href); 1837 </script>
1837 1838 1839 </div> 1840 1841</div> 1842</div> 1843<div class="ContentPane_115795 SEO SEO_115795"> 1844 1845<div class="SeoText" itemscope itemtype="http://schema.org/AutoDealer"> 1846 <span itemprop="name">Roswell Auto Imports</span> 1847 <i itemtype="http://schema.org/PostalAddress" itemscope itemprop="address"> 1848 <span itemprop="streetAddress">350 Maxham Rd,</span> 1849 <span itemprop="addressLocality">Austell,</span> 1850 <span itemprop="addressRegion">GA</span> 1851 <span itemprop="postalCode">30168</span> 1852 </i> 1853 <a itemprop="telephone" href="tel://770-649-9997">770-649-9997</a> 1854 <a itemprop="url" href="https://roswellautoimports.com">https://roswellautoimports.com</a> 1855 <img itemprop="logo" src="https://imagescdn.dealercarsearch.com/DealerImages/4790/20725/logo2.png" alt="Logo" /> 1856</div></div></div> 1857 </footer> 1858 1859 1860 <div id="ChatPane" class=""> 1861</div> 1862 1863 1864 1865<a href="#" rel="nofollow" class="top" title="Go to top of page" aria-label="Go to top of page"><i class="fa-solid fa-chevron-up"></i></a> 1866
1867<script type="text/javascript" src="/Dealers/04001_05000/04790_mvc/20725.min.js?v=FoalcHcAZTFnz4b9QdbB1oe2DY-8bpj8qOj-rHfBaLA"></script>
1867 1868 1869 1870<!-- 1871DEBUG INFORMATION 1872================= 1873Running on DCSPCMS21 1874Release Name: Production-Odd-2026.9.22.3 1875Environment: Production (Odd) 1876Build Definition Name: CMS/master 1877Build Number: 2026.9.22.3 1878Build Id: 193 1879Source Branch Name: master 1880--> 1881 1882</body> 1883</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.