1 2<!DOCTYPE HTML> 3<html lang="en" prefix="og: http://ogp.me/ns#"> 4<head id="head"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> 6 <meta charset="utf-8"> 7 <meta name="description" content="Search for your next new or used trailer here at C&R Trailer Sales" /> 8 9 <link rel="canonical" href="https://www.crtrl.com/rv-search?s=true&types=55" /> 10 <meta name="irv:template" content="irvListing" /> 11 <meta name="robots" content="noindex" /> 12 <title>RV Search in Tremonton, UT | Search for your next RV at C&R Auto & Trailer Sales</title> 13 14
14<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/tealium-consent.js"></script>
vendor: 1 bytes, line 14
14
15<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/helpers.js"></script>
15 16 17 18 19 20 <!-- Google Tag Manager --> 21
21<script>
vendor: 343 bytes, lines 21-25
21(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 22 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 23 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 24 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 25 })(window,document,'script','dataLayer','
25GTM-5WT2TK2
vendor: 3 bytes, line 25
25');
25</script>
25 26 <!-- end Google Tag Manager --> 27 28 <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"/> 29 <link rel="stylesheet" href="https://assets-cdn.interactcp.com/interactrv/fontawesome-kit/css/all.min.css"> 30 <link rel="stylesheet" href="https://assets-cdn.interactcp.com/interactrv/fontawesome-kit/compat.css"> 31 32 <link href="https://assets-cdn.interactcp.com/interactrv/css/common/ds-global.css?version=1.147.1008.1" type="text/css" rel="stylesheet" /> 33 <link rel="stylesheet" type="text/css" href="/styles/ai-search-cta.css?v=1.147.1008.1"/> 34<link rel="stylesheet" type="text/css" href="/styles/srp.css?v=1.147.1008.1"/> 35<link rel="stylesheet" type="text/css" href="/styles/global.css?v=1.147.1008.1"/> 36 37 38<!-- Google Tag Manager -->
39<script>
vendor: 327 bytes, lines 39-43
39(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 40new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 41j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 42'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 43})(window,document,'script','dataLayer','
43GTM-KTVHNL4B
vendor: 3 bytes, line 43
43');
43</script>
43 44<!-- End Google Tag Manager --> 45 46<link rel="stylesheet" href="https://use.typekit.net/gcr3ugl.css"> 47 48 49<link rel="stylesheet" type="text/css" href="//assets.interactcp.com/crutah/css/206451_default.css" /> 50<link rel="stylesheet" type="text/css" href="//assets.interactcp.com/crutah/css/206451_client.css" /> 51
52<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
52 53 54<link rel="apple-touch-icon-precomposed" sizes="57x57" href="//www.crtrl.com/crutah/images/favicon/apple-touch-icon-57x57.png" /> 55<link rel="apple-touch-icon-precomposed" sizes="114x114" href="//www.crtrl.com/crutah/images/favicon/apple-touch-icon-114x114.png" /> 56<link rel="apple-touch-icon-precomposed" sizes="72x72" href="//www.crtrl.com/crutah/images/favicon/apple-touch-icon-72x72.png" /> 57<link rel="apple-touch-icon-precomposed" sizes="144x144" href="//www.crtrl.com/crutah/images/favicon/apple-touch-icon-144x144.png" /> 58<link rel="apple-touch-icon-precomposed" sizes="120x120" href="//www.crtrl.com/crutah/images/favicon/apple-touch-icon-120x120.png" /> 59<link rel="apple-touch-icon-precomposed" sizes="152x152" href="//www.crtrl.com/crutah/images/favicon/apple-touch-icon-152x152.png" /> 60<link rel="icon" type="image/png" href="//www.crtrl.com/crutah/images/favicon/favicon-32x32.png" sizes="32x32" /> 61<link rel="icon" type="image/png" href="//www.crtrl.com/crutah/images/favicon/favicon-16x16.png" sizes="16x16" /> 62<link rel="icon" href="//www.crtrl.com/crutah/images/favicon/favicon.ico" /> 63<meta name="application-name" content="www.crtrl.com - Tremonton UT Dealer"/> 64<meta name="msapplication-TileColor" content="#FFFFFF" /> 65<meta name="msapplication-TileImage" content="//www.crtrl.com/crutah/images/favicon/mstile-144x144.png" /> 66<meta property="og:image" content="https://assets.interactcp.com/crutah/images/facebook-banner.jpg" /> 67<meta name="google-site-verification" content="3b_oUBa6MvL16s_Al4NxfQAFAZUJ0XkZ2D4R-gVZx7Q" /> 68<meta name="google-site-verification" content="SqCZP_4g5hsd_JvLrQRRF5kTzogTUrEVO7HfbWwVH3c" /> 69<meta name="google-site-verification" content="_9AwWNTjtMUzGM_lBrTpyT2lokwW0XEh9K2ArPA-NGo" /> 70 71<!--DDM Megapixel | SF 01061199 -->
72<script> 73 (function () { 74 var a = String(Math.floor(Math.random() * 10000000000000000)); 75 new Image().src = 'https://pubads.g.doubleclick.net/activity;dc_iu=/6686/DFPAudiencePixel;ord=' + a + ';dc_seg=7096391754?'; 76 })(); 77</script>
77 78<noscript> 79 <img src='https://pubads.g.doubleclick.net/activity;dc_iu=/6686/DFPAudiencePixel;ord=1;dc_seg=7096391754?' width='1' height='1' border='0' alt='' /> 80</noscript>
81<script>!function (s, a, e, v, n, t, z) { if (s.saq) return; n = s.saq = function () { n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments) }; if (!s._saq) s._saq = n; n.push = n; n.loaded = !0; n.version = '1.0'; n.queue = []; t = a.createElement(e); t.async = !0; t.src = v; z = a.getElementsByTagName(e)[0]; z.parentNode.insertBefore(t, z) }(window, document, 'script', 'https://tags.srv.stackadapt.com/events.js'); saq('ts', 'pTI-0oKJkHPME2lozyEL0Q');</script>
81 82<!-- Activity name for this tag: C&R Trailers - View-Through -->
83<script> 84 (function () { 85 var a = String(Math.floor(Math.random() * 10000000000000000)); 86 new Image().src = 'https://pubads.g.doubleclick.net/activity;xsp=5189392;ord=' + a + '?'; 87 })(); 88</script>
88 89<noscript> 90 <img src='https://pubads.g.doubleclick.net/activity;xsp=5189392;ord=1?' width='1' height='1' border='0'> 91</noscript> 92 93<!-- Google tag (gtag.js) SF Case 01245759 Cole Wilkstrom-->
vendor: 64 bytes, lines 93-94
93 94<script async src="https://www.googletagmanager.com/gtag/js?id=
94AW-16660373588
vendor: 13 bytes, lines 94-95
94"> 95</script>
96<script> 97
vendor: 130 bytes, lines 97-100
97window.dataLayer = window.dataLayer || []; 98 function gtag(){dataLayer.push(arguments);} 99 gtag('js', new Date()); 100 gtag('config', '
100AW-16660373588
vendor: 4 bytes, line 100
100');
101</script>
101 102 103<!-- Meta Pixel Code -->
104<script>
vendor: 399 bytes, line 104
104 !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '
104816691296547676
vendor: 30 bytes, line 104
104'); fbq('track', 'PageView');
104</script>
104 <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=816691296547676&ev=PageView&noscript=1" /></noscript> 105<!-- End Meta Pixel Code --> 106 107<!--Add Google Tag 01621150 --> 108<!-- Google tag (gtag.js) -->
vendor: 64 bytes, line 108
108 <script async src="https://www.googletagmanager.com/gtag/js?id=
108G-85NW98TX1S
vendor: 12 bytes, line 108
108"></script>
108<script>
vendor: 127 bytes, line 108
108window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '
108G-85NW98TX1S
vendor: 4 bytes, line 108
108');
108</script>
108 109 110<!-- C&R schema start (added by TJ/Claude 2026-10-07) -->
111<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.crtrl.com","name":"C&R Auto & Trailer Sales","alternateName":["C&R Trailer Sales","C & R Auto & Trailer Sales"],"url":"https://www.crtrl.com/","logo":"https://assets-cdn.interactcp.com/crutah/images/logo.png","sameAs":["https://www.facebook.com/CandRRV","https://www.youtube.com/@crutah","https://www.instagram.com/crutah/","https://www.tiktok.com/@crutaht"],"department":[{"@id":"https://www.crtrl.com/locations/tremonton#dealer"},{"@id":"https://www.crtrl.com/locations/kalispell#dealer"}]},{"@type":"WebSite","@id":"https://www.crtrl.com/#website","name":"C&R Auto & Trailer Sales","url":"https://www.crtrl.com/","publisher":{"@id":"https://www.crtrl.com"}},{"@type":"AutoDealer","@id":"https://www.crtrl.com/locations/tremonton#dealer","name":"C&R Auto & Trailer Sales - Tremonton","url":"https://www.crtrl.com/locations/tremonton","telephone":"+1-435-246-3048","parentOrganization":{"@id":"https://www.crtrl.com"},"address":{"@type":"PostalAddress","streetAddress":"5035 W Power Line Rd","addressLocality":"Tremonton","addressRegion":"UT","postalCode":"84337","addressCountry":"US"},"geo":{"@type":"GeoCoordinates","latitude":41.6752523,"longitude":-112.1377207},"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday"],"opens":"09:00","closes":"17:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Saturday","opens":"09:00","closes":"16:00"}],"areaServed":["Tremonton, UT","Brigham City, UT","Logan, UT","Ogden, UT","Cache Valley, UT","Southern Idaho"]},{"@type":"AutoDealer","@id":"https://www.crtrl.com/locations/kalispell#dealer","name":"C&R Trailer Sales - Kalispell","url":"https://www.crtrl.com/locations/kalispell","telephone":"+1-406-885-3333","parentOrganization":{"@id":"https://www.crtrl.com"},"address":{"@type":"PostalAddress","streetAddress":"3155 Hwy 93 South","addressLocality":"Kalispell","addressRegion":"MT","postalCode":"59901","addressCountry":"US"},"geo":{"@type":"GeoCoordinates","latitude":48.1548774,"longitude":-114.2862829},"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday"],"opens":"09:00","closes":"17:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Saturday","opens":"09:00","closes":"16:00"}],"areaServed":["Kalispell, MT","Flathead Valley, MT","Whitefish, MT","Columbia Falls, MT","Northwest Montana"]}]}</script>
111 112<!-- C&R schema end --> 113 114<!-- C&R HubSpot start (added by TJ/Claude 2026-10-07) --> 115<!-- Start of HubSpot Embed Code -->
116<script type="text/javascript" id="hs-script-loader" async defer src="//js-na2.hs-scripts.com/246104811.js"></script>
116 117<!-- End of HubSpot Embed Code --> 118<!-- C&R HubSpot end --> 119 120 121 122
122<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/jquery.supplemental.js"></script>
vendor: 1 bytes, line 122
122
123<script type="text/javascript" src="https://assets.interactcp.com/crutah/js/site.js"></script>
123 124 125 126 <!-- For ContactAtOnce chat referrer tracking --> 127
127<script type="text/javascript"> 128 $(function () { 129 if (window.lpTag !== undefined && window.lpTag.vars !== undefined) { 130 lpTag.vars.push([{ 'name': 'referrer', 'value': 'crtrl.com' }]); 131 } 132 }); 133 </script>
133 134
135<script type="text/javascript"> 136 (function() { 137 // var regEx = /(((\d{1,2})(?:[-\.\s]?))?(?:(?:\((\d{3})\))|(\d{3}))?(?:[-\.\s]?)(\d{3})(?:[-\.\s]?)(\d{4}))/g; 138 var regEx = /(?:(?:(?:(?:\d{1,2})(?:[-\.\s]))?)?(?:(?:\((?:\d{3})\))|(?:\d{3}))(?:[-\.\s])(?:\d{3})(?:[-\.\s])(?:\d{4}))|(tel:\d{10})/g; 139 var regExParts = [ 140 "(?:(?:(?:(?:\\d{1,2})(?:[-\\.\\s]))?)?(?:(?:\\((?:", 141 ")\\))|(?:", 142 "))(?:[-\\.\\s])(?:", 143 ")(?:[-\\.\\s])(?:", 144 "))|(tel:", 145 ")" 146 ]; 147 148 var escapeRegExp = function (str){ 149 return str.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1"); 150 }; 151 152 $.fn.getPhoneNumbers = function() { 153 var numbers = []; 154 $(this).find(":not(iframe):not(input):not(select):not(textarea):not(.no-phone-tracking)").contents().filter(function(){ 155 return this.nodeType != 1; 156 }).each(function(){ 157 var matches = $(this).text().match(regEx); 158 if (matches !== null) { 159 for (var i = 0; i < matches.length; i++) { 160 var match = matches[i]; 161 162 if (match.indexOf('tel:') === 0) { 163 match = match.substring(4); 164 } 165 166 if (numbers.indexOf(match) === -1) { 167 numbers.push(match); 168 } 169 } 170 } 171 }); 172 173 return numbers; 174 }; 175 176 var specificTrackingNumbers = []; 177 var phoneTrackingApplied = false; 178 var setByLeadTracking = false; 179 180 // filter can be a phone number (the original phone number to replace) or an object with multiple filters 181 // leadTracking set to true indicates that this tracking number comes from lead tracking rules 182 $.fn.setPhoneTrackingNumber = function (number, filter, leadTracking) { 183 if (setByLeadTracking && !leadTracking) { 184 // if the tracking number was set by lead tracking, only allow lead tracking to add more rules. this is because tracking numbers set from our lead tracking settings 185 // have the highest priority, and that will be set immediately below 186 return; 187 } 188 189 if (number !== undefined && number !== '') { 190 console.log("Phone Tracking: Tracking number set. New Number: " + number + "; Filter: " + filter + "; Lead Tracking: " + leadTracking); 191 specificTrackingNumbers.push({ newNum: number, filter: filter }); 192 if (phoneTrackingApplied === true) { 193 applyPhoneTracking($(document), number, filter); 194 } 195 } 196 }; 197 198 var applyPhoneTracking = function ($el, number, filter) { 199 var find; 200 if (filter === undefined || filter === null || filter === '') { 201 console.log('Phone Tracking: Applying phone tracking: ' + number); 202 find = regEx; 203 } 204 else { 205 var phoneFilter = filter; 206 if (filter.indexOf('{') === 0) { 207 var filterObj = JSON.parse(filter); 208 phoneFilter = filterObj.phone; 209 } 210 211 var phoneDigits = phoneFilter.replace(/\D+/g, ''); 212 if (phoneDigits.length === 10) { 213 console.log('Phone Tracking: Replacing "' + filter + '" with "' + number + '"'); 214 var customRegex = regExParts[0] + phoneDigits.substring(0, 3) 215 + regExParts[1] + phoneDigits.substring(0, 3) 216 + regExParts[2] + phoneDigits.substring(3, 6) 217 + regExParts[3] + phoneDigits.substring(6, 10) 218 + regExParts[4] + phoneDigits 219 + regExParts[5]; 220 find = new RegExp(customRegex, "g"); 221 } 222 else { 223 console.log('Phone Tracking: Replacing "' + filter + '" with "' + number + '"'); 224 find = new RegExp(escapeRegExp(filter), "g"); 225 } 226 } 227 228 var regExNumberReplacer = function (val) { 229 return val.indexOf('tel:') === 0 ? 'tel:' + number.replace(/-/g, '')
229: number; 230 }; 231 232 $el.find(":not(iframe):not(input):not(select):not(textarea):not(.no-phone-tracking)").contents().filter(function(){ 233 return this.nodeType != 1; 234 }).each(function(){ 235 var $this = $(this); 236 var output = $this.text().replace(find, regExNumberReplacer); 237 if (output != $this.text()) { 238 var parent = $this.parent('a'); 239 $this.wrap("<p></p>").parent('p').html(output).contents().unwrap(); 240 if (parent.length) { 241 if (parent.attr("href") !== undefined) { 242 parent.attr("href", parent.attr("href").replace(find, regExNumberReplacer)); 243 } 244 if (parent.attr("title") !== undefined) { 245 parent.attr("title", parent.attr("title").replace(find, regExNumberReplacer)); 246 } 247 }; 248 } 249 }); 250 }; 251 252 $.fn.applyPhoneTracking = function() { 253 var $this = $(this); 254 255 for (var i = 0; i < specificTrackingNumbers.length; i++) { 256 applyPhoneTracking($this, specificTrackingNumbers[i].newNum, specificTrackingNumbers[i].filter); 257 } 258 259 return this; 260 }; 261 262 $(function() { 263 $(document).applyPhoneTracking(); 264 phoneTrackingApplied = true; 265 console.log("Phone Tracking: $(document).applyPhoneTracking() was called"); 266 }); 267 })(); 268</script>
268 269 270</head> 271<body id="page-206468" data-content-id="206468" data-tealium_ga4id="G-PTVVJP6DCG" data-tealium_profile="ignite-marketing" data-dealer-name="C&R Auto & Trailer Sales" data-dealer-siteid="830" data-dealer-accountid="474" data-dealer-city="Tremonton" data-dealer-state="UT" data-dealer-zip="84337-9361" data-dealer-phone="435-246-3048" data-dealer-account-type="Client" class=" 272 273 274"> 275 <div id="fb-root"></div> 276 <!-- Google Tag Manager (noscript) -->
vendor: 81 bytes, lines 276-278
276 277 <noscript> 278 <iframe src="https://www.googletagmanager.com/ns.html?id=
278GTM-5WT2TK2
vendor: 92 bytes, lines 278-280
278" height="0" width="0" style="display:none;visibility:hidden"></iframe> 279 </noscript> 280
280<!-- end Google Tag Manager (noscript) --> 281 282 283 284 285 286 287<a href="#main" class="sr-only">Skip to main content</a><header id="site-header"> 288<div class="container"> 289<div class="logo"><a href="/" title="C&R Auto & Trailer Sales"><img src="https://assets-cdn.interactcp.com/crutah/images/logo.png?modified=0408202214313430" alt="C&R Auto & Trailer Sales" width="315" height="74" data-assetid="27413230"></a></div> 290<div class="cr-pets-logo"><a href="/blog/cr-pets/" title="C&R Pets" target="blank"><img src="https://assets-cdn.interactcp.com/crutah/images/cr-pets-icon-black.png?modified=0529202413454503" alt="C&R Pets" width="75" height="75" data-assetid="45123029"></a></div> 291<div class="state-ut"><img src="https://assets-cdn.interactcp.com/crutah/images/header-ut-state-gold.png?modified=0329202419180880" alt="C&R Auto & Trailer Sales" data-assetid="43634930"> <a href="/locations/tremonton" alt="C&R Auto & Trailer Sales in Utah">Shop Utah</a></div> 292<div class="state-mt"><img src="https://assets-cdn.interactcp.com/crutah/images/header-mt-state-gold.png?modified=0329202419181735" alt="C&R Auto & Trailer Sales" data-assetid="43634931"><a href="/locations/kalispell" alt="C&R Auto & Trailer Sales in Montana">Shop Montana</a></div> 293<div class="blog-btn"><i class="fa-solid fa-newspaper"></i><a href="/blog">Blog</a></div> 294<div class="btn-group btn-locations dropdown keep-open btn-header-location-nearest-you"><a href="#inline_content" onclick="jQuery.colorbox({href:'#inline_content',inline:true,width:'800px', height:'auto', maxWidth:'98%', maxHeight:'auto'});" class="loc-button btn btn-lg inline" type="button" data-target="#" aria-haspopup="true">Our Locations <svg xmlns="http://www.w3.org/2000/svg" width="16" height="20" viewbox="0 0 16 20" fill="none"> <path d="M7.70312 10.0469C8.125 10.4688 8.82812 10.4688 9.29688 10.0469L15.6719 3.67188C16.0938 3.20312 16.0938 2.5 15.6719 2.07812L14.5938 1C14.125 0.578125 13.4219 0.578125 13 1L8.45312 5.54688L3.95312 1C3.53125 0.578125 2.82812 0.578125 2.35938 1L1.32812 2.07812C0.859375 2.5 0.859375 3.20312 1.32812 3.67188L7.70312 10.0469ZM9.29688 19.0469L15.6719 12.6719C16.0938 12.2031 16.0938 11.5 15.6719 11.0781L14.5938 10C14.1719 9.57812 13.4219 9.57812 13 10L8.5 14.5469L3.95312 10C3.53125 9.57812 2.82812 9.57812 2.35938 10L1.32812 11.0781C0.859375 11.5 0.859375 12.2031 1.32812 12.6719L7.70312 19.0469C8.125 19.4688 8.82812 19.4688 9.29688 19.0469Z" fill="#FCA804"></path> </svg> </a></div> 295 296 297<div id="loc-colorbox" class="hide"> 298<div id="inline_content" class="location-modal" style="padding: 10px 30px 20px; background: #fff;"><a href="#" id="cboxClose" rel="colorbox-close"><i class="fa fa-times close"></i></a><br /> 299<h2 class="text-center">Choose a Location</h2> 300<div class="row"> 301<div class="loc-center col-sm-12"> 302<div class="col-sm-4 loc-pin"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="34" viewbox="0 0 29 39" fill="none"> <path d="M12.7656 38.0078C13.4336 39.0469 14.9922 39.0469 15.6602 38.0078C26.4961 22.4219 28.5 20.7891 28.5 15C28.5 7.13281 22.1172 0.75 14.25 0.75C6.30859 0.75 0 7.13281 0 15C0 20.7891 1.92969 22.4219 12.7656 38.0078ZM14.25 20.9375C10.9102 20.9375 8.3125 18.3398 8.3125 15C8.3125 11.7344 10.9102 9.0625 14.25 9.0625C17.5156 9.0625 20.1875 11.7344 20.1875 15C20.1875 18.3398 17.5156 20.9375 14.25 20.9375Z" fill="#EB0000"></path> </svg><span>Tremonton, UT <br /></span></div> 303<div class="col-sm-3 loc-address">5035 W Powerline Rd. Tremonton, UT 84337-9361</div> 304<div class="col-sm-3 loc-phone"><a class="phone-link" href="tel:435-246-3048">435-246-3048</a><br /><a href="https://www.google.com/maps/place//data=!4m2!3m1!1s0x875498546ee9361f:0x31db10c1468b4f27?source=g.page.share">Get Directions</a></div> 305<div class="col-sm-2 loc-shop"><a href="/locations/tremonton" class="btn btn-primary">Shop Now</a></div> 306</div> 307</div> 308<div class="row off-color"> 309<div class="loc-center col-sm-12"> 310<div class="col-sm-4 loc-pin"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="34" viewbox="0 0 29 39" fill="none"> <path d="M12.7656 38.0078C13.4336 39.0469 14.9922 39.0469 15.6602 38.0078C26.4961 22.4219 28.5 20.7891 28.5 15C28.5 7.13281 22.1172 0.75 14.25 0.75C6.30859 0.75 0 7.13281 0 15C0 20.7891 1.92969 22.4219 12.7656 38.0078ZM14.25 20.9375C10.9
310102 20.9375 8.3125 18.3398 8.3125 15C8.3125 11.7344 10.9102 9.0625 14.25 9.0625C17.5156 9.0625 20.1875 11.7344 20.1875 15C20.1875 18.3398 17.5156 20.9375 14.25 20.9375Z" fill="#EB0000"></path> </svg><span>Kalispell, MT<br /></span></div> 311<div class="col-sm-3 loc-address">3155 Hwy 93 South Kalispell, MT 59901</div> 312<div class="col-sm-3 loc-phone"><a class="phone-link" href="tel:406-885-3333">406-885-3333</a><br /><a href="https://maps.app.goo.gl/2TRUGT1S8k1mcc9t8">Get Directions</a></div> 313<div class="col-sm-2 loc-shop"><a href="/locations/kalispell" class="btn btn-primary">Shop Now</a></div> 314</div> 315</div> 316</div> 317</div> 318<div class="phone hidden"><a href="tel:435-246-3048" title="435-246-3048"><svg width="19" height="19" viewbox="0 0 19 19" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M18.332 1.12891L14.6758 0.285156C14.2891 0.179688 13.8672 0.390625 13.6914 0.777344L12.0039 4.71484C11.8633 5.06641 11.9688 5.45312 12.25 5.69922L14.3945 7.45703C13.1289 10.1289 10.9141 12.3789 8.17188 13.6797L6.41406 11.5352C6.16797 11.2539 5.78125 11.1484 5.42969 11.2891L1.49219 12.9766C1.10547 13.1523 0.929688 13.5742 1 13.9609L1.84375 17.6172C1.94922 18.0039 2.26562 18.25 2.6875 18.25C11.6875 18.25 19 10.9727 19 1.9375C19 1.55078 18.7188 1.23438 18.332 1.12891Z" fill="#FCA804"></path> </svg> 435-246-3048</a></div> 319<div class="visible-print pull-right print-contact-info">435-246-3048<br>www.crtrl.com</div> 320</div> 321</header><!-- /#site-header --><nav id="main-nav" class="navbar navbar-justified navbar-default" role="navigation"> 322<div class="container"> 323<div class="navbar-header btn-group visible-xs visible-sm"><button type="button" class="btn btn-primary pull-left" data-toggle="collapse" data-target=".navbar-collapse"><span class="sr-only">Toggle navigation</span> <i class="fa fa-bars"></i> Menu</button> <a class="btn btn-primary pull-right" href="/contact-us" title="Contact Us"><span class="sr-only">Contact Us</span><i class="fa fa-phone"></i> Contact</a> <button type="button" class="btn btn-primary pull-right" data-toggle="collapse" data-target=".top-search"> <span class="sr-only">RV Search</span><i class="fa fa-search"></i> Search</button></div> 324<div class="collapse navbar-collapse"> 325 326 327<ul class="nav navbar-nav"> 328<li class="dropdown"><a data-toggle="dropdown" href="#">Shop RVs <i class="fa fa-caret-down" aria-hidden="true"></i></a><b data-toggle="dropdown"><i class="fa fa-plus" aria-hidden="true"></i></b> 329<ul class="dropdown-menu"> 330<li><a href="/product/travel-trailer" title="Travel Trailers">Travel Trailers</a></li> 331<li><a href="/product/fifth-wheel" title="Fifth Wheels">Fifth Wheels</a></li> 332<li><a href="/product/toy-hauler" title="Toy Haulers">Toy Haulers</a></li> 333<li><a href="/product/destination-trailer" title="Destination Trailers">Destination Trailers</a></li> 334<li><a href="/product/other" title="Other Inventory">Other Inventory</a></li> 335<li><a href="/rv-specials" title="RV Specials">RV Specials</a></li> 336<li><a href="/rvs-on-order" title="On Order">On Order</a></li> 337<li><a href="/tow-guides" title="Tow Guides">Tow Guides</a></li> 338</ul> 339</li> 340<li class="dropdown"><a data-toggle="dropdown" href="#">Shop Trailers <i class="fa fa-caret-down" aria-hidden="true"></i></a><b data-toggle="dropdown"><i class="fa fa-plus" aria-hidden="true"></i></b> 341<ul class="dropdown-menu"> 342<li><a href="/product/snowmobile-trailer" title="Snowmobile Trailers">Snowmobile Trailers</a></li> 343<li><a href="https://www.crtrl.com/rv-search?s=true&types=55" title="Cargo Trailers">Cargo Trailers</a></li> 344<li><a href="/product/livestock-trailer" title="Livestock Trailers">Livestock Trailers</a></li> 345<li><a href="/product/horse-trailer" title="Horse Trailers">Horse Trailers</a></li> 346<li><a href="/product/horse-trailer-with-living-quarters" title="LQ Horse Trailers">LQ Horse Trailers</a></li> 347</ul> 348</li> 349<li class="dropdown"><a data-toggle="dropdown" href="#">Financing <i class="fa fa-caret-down" aria-hidden="true"></i></a><b data-toggle="dropdown"><i class="fa fa-plus" aria-hidden="true"></i></b> 350<ul class="dropdown-menu"> 351<li><a href="/rv-financing" title="RV Financing">RV Financing</a></li> 352<li><a href="/creditapp?s=www.crtrl.com" title="Get a Quote">Get a Quote</a></li> 353<li><a href="/contact-us-trade-ins" title="Value Your Trade">Value Your Trade</a></li> 354</ul> 355</li> 356<li><a href="/werm-flooring" title="Werm Flooring">Werm Flooring</a></li> 357<li class="dropdown"><a data-toggle="dropdown" href="#">Parts & Service <i class="fa fa-caret-down" aria-hidden="true"></i></a><b data-toggle="dropdown"><i class="fa fa-plus" aria-hidden="true"></i></b> 358<ul class="dropdown-menu"> 359<li><a href="/rv-parts" title="RV Parts">RV Parts</a></li> 360<li><a href="/rv-service" title="RV Service">RV Service</a></li> 361</ul> 362</li> 363<li class="dropdown"><a data-toggle="dropdown" href="#">Our Community <i class="fa fa-caret-down" aria-hidden="true"></i></a><b data-toggle="dropdown"><i class="fa fa-plus" aria-hidden="true"></i></b> 364<ul class="dropdown-menu"> 365<li><a href="/reviews" title="Our Reviews">Our Reviews</a></li> 366<li><a href="/leave-review" title="Leave a Review">Leave a Review</a></li> 367<li><a href="/newsletter-signup" title="Newsletter Signup">Newsletter Signup</a></li> 368<li><a href="/videos-and-posts" title="Videos and Posts">Videos and Posts</a></li> 369<li><a href="/blog/cr-pets/" title="C&R Pets" target="blank">C&R Pets</a></li> 370</ul> 371</li> 372<li class="dropdown"><a data-toggle="dropdown" href="#">Dealer Info <i class="fa fa-caret-down" aria-hidden="true"></i></a><b data-toggle="dropdown"><i class="fa fa-plus" aria-hidden="true"></i></b> 373<ul class="dropdown-menu"> 374<li><a href="/contact-us" title="Contact Us">Contact Us</a></li> 375<li><a href="/about-us" title="About Us">About Us</a></li> 376<li><a href="/employment" title="Employment">Employment</a></li> 377<li><a href="/blog" title="Blog">Blog</a></li> 378</ul> 379</li> 380</ul> 381</div> 382</div> 383</nav><!-- /.navbar-header --> 384<div id="top-search-container"> 385<div class="container"> 386<div class="collapse top-search"><span class="h2 heading">RV Search</span> 387 <div role="form" id="topSearchForm" class="SearchPanel form-inline"> 388 389 390 391 392 393<div class="form-group SearchRow ConditionWrapper"><label for="condition">New or Used</label><select id="condition" class="form-control condition" name="condition"> 394<option value="">New and Used</option> 395<option value="1">New Only</option> 396<option value="0">Used Only</option> 397</select></div> 398 399 400<div class="form-group SearchRow TypesWrapper"><label for="types">RV Type</label> 401 402 403 <select name="types" id="types" class="form-control DropDownList types" autocomplete="off"> 404 405<option value="" selected="selected" data-sort="1">All Types</option> 406<option value="55" data-sort="2">Cargo Trailer</option> 407<option value="3" data-sort="2">Destination Trailer</option>
408<option value="57" data-sort="2">Dump Trailer</option> 409<option value="4" data-sort="2">Expandable</option> 410<option value="5" data-sort="2">Fifth Wheel</option> 411<option value="128" data-sort="2">Flat Bed Trailer</option> 412<option value="7" data-sort="2">Folding Pop-Up Camper</option> 413<option value="186" data-sort="2">Fully Enclosed Trailer</option> 414<option value="59" data-sort="2">Horse Trailer</option> 415<option value="60" data-sort="2">Horse Trailers with living quarters</option> 416<option value="61" data-sort="2">Livestock Trailer</option> 417<option value="22" data-sort="2">Park Models</option> 418<option value="23" data-sort="2">Park Trailer</option> 419<option value="65" data-sort="2">Snowmobile Trailer</option> 420<option value="26" data-sort="2">Toy Hauler Fifth Wheel</option> 421<option value="28" data-sort="2">Toy Hauler Travel Trailer</option> 422<option value="29" data-sort="2">Travel Trailer</option> 423<option value="79" data-sort="2">Truck</option> 424<option value="68" data-sort="2">Utility Trailer</option> 425 </select> 426 427</div> 428 429 430<div class="form-group SearchRow FloorplansWrapper"><label for="Features-prop-4">Floorplans</label> 431 432 433 <select name="Features-prop-4" id="Features-prop-4" class="form-control DropDownList Features-prop-4" autocomplete="off"> 434 435<option value="" selected="selected">All Features</option> 436<option value="61">Bath and a Half</option> 437<option value="17">Bunkhouse</option> 438<option value="27">Front Bath</option> 439<option value="11">Front Bedroom</option> 440<option value="69">Front Cargo Deck</option> 441<option value="62">Front Entertainment</option> 442<option value="4">Front Kitchen</option> 443<option value="1">Front Living</option> 444<option value="60">Kitchen Island</option> 445<option value="63">Loft</option> 446<option value="68">Murphy Bed</option> 447<option value="65">Outdoor Entertainment</option> 448<option value="58">Outdoor Kitchen</option> 449<option value="20">Rear Bath</option> 450<option value="8">Rear Bedroom</option> 451<option value="57">Rear Entertainment</option> 452<option value="6">Rear Kitchen</option> 453<option value="3">Rear Living Area</option> 454<option value="26">Rear Twin</option> 455<option value="55">Side Ramp</option> 456<option value="25">Two Entry/Exit Doors</option> 457<option value="64">Two Full Baths</option> 458<option value="59">U Shaped Dinette</option> 459<option value="28">V-Nose</option> 460<option value="66">Walk-Thru Bath</option> 461<option value="70">Wheelchair Accessible</option> 462 </select> 463 464</div> 465 466 467<div class="form-group SearchRow StockNumberWrapper"><label for="SearchStockNumber">Stock # or Model</label><input name="stockNumber" type="text" id="SearchStockNumber" class="form-control SearchStockNumber" placeholder="Stock # or Model" /></div> 468 <button type="submit" name="SearchButton" class="btn btn-primary SearchButton ">Search</button> 469 470 471 <div class="clearBoth"></div> 472 473 </div>
474<script type="text/javascript"> 475 476$(function() { 477 478 $('#topSearchForm').find('.SearchButton').click(function (e) { 479 e.preventDefault(); 480 var tmpSearchValues = $('#topSearchForm').find(':input').serializeArray(); 481 482 // keyword search (Google) 483 if (($('#topSearchForm [name="keyword"]').val() || '') !== '') { 484 var searchWrapper = $('#topSearchForm'); 485 var query = $.map(searchWrapper.find('input').filter(function() { return $(this).val() !== ''; }), function(x) { return $(x).val(); } ).join(" "); 486 query += $.map(searchWrapper.find('option[value!=]:selected'), function(x) { return ' ' + $(x).text(); }); 487 window.location = '/keyword-search?q=' + encodeURIComponent(query); 488 return; 489 } 490 491 // comma delimit search values with the same name 492 var searchValMap = {}; 493 for (var i = 0; i < tmpSearchValues.length; i++) { 494 var tmpSearchName = tmpSearchValues[i].name.toLowerCase(); 495 if (searchValMap[tmpSearchName] !== undefined && searchValMap[tmpSearchName] !== '') { 496 searchValMap[tmpSearchName] += "," + tmpSearchValues[i].value; 497 } 498 else { 499 searchValMap[tmpSearchName] = tmpSearchValues[i].value; 500 } 501 } 502 var searchValues = []; 503 for (var param in searchValMap) { 504 searchValues.push({name: param, value: searchValMap[param]}); 505 } 506 507 var targetPage = '/rv-search'; 508 var qMark = window.location.href.indexOf('?'); 509 var currentPage = qMark > -1 ? window.location.href.substring(0, qMark) : window.location.href; 510 currentPage = '/' + currentPage.replace(/^(?:\/\/|[^\/]+)*\//, ""); 511 var qsValues; 512 if ($('.ajax-unit-list').length) { 513 qsValues = $('.ajax-unit-list').ajaxUnitList('getCurrentOpts'); 514 } else { 515 qsValues = getUrlVars(); 516 if (qsValues !== undefined && qsValues !== null) { 517 qsValues.length = 0; // remove the array elements - this is because getUrlVars adds each parameter name using .push(), and it also adds them as properties of the object. we only want the properties 518 } 519 } 520 if (currentPage === targetPage && qsValues !== undefined && qsValues !== null) { 521 var newQsValues = {}; 522 for (var prop in qsValues) { 523 newQsValues[prop.toLowerCase()] = qsValues[prop]; 524 } 525 qsValues = newQsValues; 526 527 delete qsValues['page']; 528 delete qsValues['s']; 529 530 // remove qs params that are part of the search form - this is particularly important for checkboxes, which would not be included 531 // in the searchValues collection if unchecked 532 for (var param in qsValues) { 533 if ($('#topSearchForm').find(':input').filter(function () { return $(this).attr("name").toLowerCase() === param; }).length) { 534 delete qsValues[param]; 535 } 536 } 537 538 // add/update qs params from search values 539 for (var i = 0; i < searchValues.length; i++) { 540 if (searchValues[i].value !== '') { 541 qsValues[searchValues[i].name] = searchValues[i].value; 542 } 543 } 544 545 var qsArray = []; 546 for (var param in qsValues) { 547 qsArray.push({name: param, value: qsValues[param]}); 548 } 549 var qs = $.param(qsArray); 550 window.location = "/rv-search?s=true" + (qs !== "" ? "&" + qs : ""); 551 } 552 else { 553 var qs = $.param($.grep(searchValues, function(x) { return x.value !== ''; })); 554 window.location = "/rv-search?s=true" + (qs !== "" ? "&" + qs : ""); 555 } 556 return false; 557 }); 558 559 $("#topSearchForm input[type=checkbox]").change(function() { 560 $('#topSearchForm').find('.SearchButton').click(); 561 }); 562 $('.Brand option, .Manufacturer option, [name="Brand"], [name="Manufacturer"]').each(function (i, el) { 563 var $this = $(this); 564 if($this && $this.val()){ 565 $this.val($this.val().toLowerCase().trim()); 566 } 567 }); 568 $("#topSearchForm input, #topSearchForm select").change(function() { 569 if ($(this).val() !== '') { 570 $(this).addClass("value-modified"); 571 } 572 else { 573 $(this).removeClass("value-modified"); 574 } 575 }); 576 var data = getUrlVars(); 577 if (data != null) { 578 var newQsValues = {}; 579 for (var prop in data) { 580 newQsValues[prop.toLowerCase()] = !isNaN(parseInt(prop, 10)) ? data[prop].toLowerCase() : data[prop]; 581 } 582 data = newQsValues; 583 584 if (data["brand"] !== undefined) { 585 data["brand"] = data["brand"].toLowerCase().trim(); 586 } 587 if (data["manufacturer"] !== undefined) { 588 data["manufacturer"] = data["manufacturer"].toLowerCase().trim(); 589 } 590 $.each(data, function(key, val){ 591 if (data[val] === undefined) { 592 return; 593 } 594 595 var mVals = data[val].indexOf(',') !== -1 ? mVals = data[val].split(',') : null; 596 $('#topSearchForm :input').filter(function() { return $(this).attr("name").toLowerCase() === val; }).each(function(index, el){ 597 if ($(el).is(":checkbox") || $(el).is(":radio")) { 598 if (mVals != null) { 599 if ($.inArray($(el).val(), mVals) !== -1) { 600 $(el).attr("checked", "checked"); 601 $(el).addClass("value-modified"); 602 } 603 } 604 else if ($(el).val() === data[val]) { 605 $(el).attr("checked", "checked"); 606 $(el).addClass("value-modified"); 607 } 608 } 609 else { 610 $(el).val(data[val]); 611 if (data[val] != '' && $(el).val() === data[val]) { 612 $(el).addClass("value-modified"); 613 } 614 } 615 }); 616 }); 617 } 618}); 619</script>
619 620 621</div> 622</div> 623</div> 624<!-- /#top-search-container --> 625<div class=" 626container 627 628"> 629 <div id="mainContainer" class="row"> 630 <section id="main" class=" 631col-md-9 col-md-push-3 632 633"> 634 <div class="pageContent"> 635 636 <h1>Trailers for every lifestyle </h1> 637</div> 638 639 640 641 642 <!--tow rating goodness--> 643 <!--end tow rating goodness--> 644 <div class="unit-list ajax-unit-list ds-override"> 645
645<script type="text/javascript"> 646 $(function(){ 647 var sort = ''; 648 var urlVars = getUrlVars(); 649 if (urlVars != null) { 650 $('.page-sizes').val(urlVars['pagesize']); 651 if (urlVars['sort'] !== undefined && typeof urlVars['sort'] == 'string') { 652 sort = urlVars['sort']; 653 } 654 } 655 if (sort !== '') { 656 $('#sortOptions').val(sort); 657 } 658 }); 659 </script>
659 660 <div class="listingPagination listingToolbar"> 661 <div class="listing-toolbar-inner"> 662 663 <div class="page-size-wrapper-parent"> 664 <div class="page-size-wrapper"> 665 <div class="visible-item-count">Showing <span class="first-visible-index">1</span> - <span class="last-visible-index">2</span> of <span class="total-units">2</span></div> 666 <div class="page-size-inner-wrapper"> 667 <label for="pageSizeTop" class="pull-left">Show:</label> 668 <select id="pageSizeTop" class="pull-left page-sizes"> 669 <option value="24" selected>24</option> 670 <option value="48" >48</option> 671 <option value="72" >72</option> 672 </select> 673 </div> 674 </div> 675 </div> 676 <div class="hidden-xs sort-options-wrapper"> 677 <label for="sortOptions" class="sr-only">Sort Options</label> 678 <select id="sortOptions"> 679 <option value="">Sort Options</option> 680 <option value="distance-asc" class="distance-sort-option"> 681 682 Distance (Closest) 683 </option> 684 <option value="year-asc">Year (Oldest First)</option> 685 <option value="year-desc">Year (Newest First)</option> 686 <option value="price-asc">Price (Lowest First)</option> 687 <option value="price-desc">Price (Highest First)</option> 688 <option value="length-asc">Length (Shortest First)</option> 689 <option value="length-desc">Length (Longest First)</option> 690 <option value="weight-desc">Weight (Heaviest First)</option> 691 <option value="weight-asc">Weight (Lightest First)</option> 692 <option value="location-asc">Location (A to Z)</option> 693 <option value="location-desc">Location (Z to A)</option> 694 </select> 695 <a 696 href="#" 697 id="changeZipLink" 698 class="change-zip-link hide" 699 > 700 Change Location 701 </a> 702 </div> 703 <div class="visible-xs visible-sm"> 704 <a href="#" class="mobile-filter-link pull-right" onclick="if(event !== null && event.clientX !== undefined) { gtmAnalyticsEventTrack(this, 'Interactions', 'Clicked', 'Open Mobile Filtered Search', '2', 'false'); }">Filter <i class="fa-solid fa-bars-filter"></i></a> 705 </div> 706 <div class="mode-options-wrapper" aria-hidden="true"> 707 <a class="btn btnListMode listModeActive" onclick="if(event !== null && event.clientX !== undefined) { gtmAnalyticsEventTrack(this, 'Interactions', 'Clicked', 'Layout Toggle', '1', 'true'); }"><i class="fa fa-list"></i></a> 708 <a class="btn btnGridMode " onclick="if(event !== null && event.clientX !== undefined) { gtmAnalyticsEventTrack(this, 'Interactions', 'Clicked', 'Layout Toggle', '1', 'true'); }"><i class="fa fa-th"></i></a> 709 </div> 710 711 <a href="/favorites" class="btn btn-toolbar-favorites favorites-count-wrapper" onClick="gtmAnalyticsEventTrack(this, 'Interactions', 'Clicked', 'View Favorites (Listing Toolbar)', '2');"> 712 <i class="fa fa-heart"></i> <span class="favorites-btn-label">Favorites</span> <span class="favorites-count">(<span data-favorites-count></span>)</span> 713 </a> 714 <div class="clearfix visible-xs"></div> 715 716 </div> 717 </div> 718 719 <div class='unitContainer listMode'> 720 721 722 <div class="unitListHeader"> 723 <h2 id='product_55'>Cargo Trailer</h2> 724 </div> 725 726 <ol class="unitList"> 727 728 729 730<li class=" unit standard-template-v25 standard-template-v2 newUnit Cargo-Trailer Kalispell active-status glp-enabled has-sale-price year-2027" > 731 <div class="unit-title-wrapper list-mode"> 732 <div class="h3 unit-title"> 733 <a href="/product/new-2027-atc-rom-450-3646588-55">New 2027 ATC ROM 450</a> 734 </div> 735 <div class="unit-stock-info-wrapper"> 736 <div class="unit-stock-number-wrapper">
737 <span class="stock-number-label">Stock #</span> 738 <span class="stock-number-text">237012</span> 739 </div> 740 <div class="unit-location-wrapper"> 741 <span class="unit-location-text"> 742 <svg class="fa-solid fa-location-dot" aria-hidden="true" data-prefix="fas" data-icon="map-marker-alt" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg=""><path fill="currentColor" d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"></path></svg> 743 Kalispell, MT 744 </span> 745 </div> 746 </div> 747 </div> 748 <div class="unit-content-wrapper detailsContainer" data-title="New 2027 ATC ROM 450" data-unitid="3646588" data-lotid="1723" data-lotdescription="Kalispell, MT" data-vinnumber="5JX1A2025VF237012" data-stocknumber="237012" data-msrp="$42,467.00" data-saleprice="$39,995.00" data-totalprice="$39,995.00" data-fees="$0.00" data-transparent-pricing="false" data-img="https://assets-cdn.interactcp.com/crutah/unit_photo/imgh_190x140-m0805202616571215/unit_photo_202608050457121547516853.jpeg" data-na="https://assets.interactcp.com/interactrv/images/common/imgh_190x140/na.jpg" data-brand="ROM" data-mfg="ATC" data-brand-id="142519" data-type-id="55" data-mfg-id="16441" data-vin="5JX1A2025VF237012" data-discount="$0.00" data-short-discount="$0" data-year="2027" data-unitname="450" data-phone="406-885-3333" data-phonelink="tel:406-885-3333" data-glp-confirmationid="glpConfirmation" data-customeremailtemplate="contact_confirmation.hbs" data-unitlink="/product/new-2027-atc-rom-450-3646588-55" data-discountpricelabel="Our Best Price" data-pricelabel="MSRP" data-salepricelabel="Sale Price" data-finance-percent-down="0.2" data-finance-interest-rate="0.099" data-finance-months="180" data-finance-fees="" data-saleOrRegularPrice="$39,995.00" data-type="Cargo Trailer" data-product="2027 ROM 450"> 749 <div class="unit-media"> 750 <div class="unit-media-wrapper"> 751 <div 752 class="cycle-slideshow" 753 data-cycle-timeout="0" 754 data-cycle-slides="> .unit-media-slide" 755 data-cycle-prev="> .unit-media-cycle-prev" 756 data-cycle-next="> .unit-media-cycle-next" 757 data-cycle-swipe="true" 758 > 759 <a href="#" class="unit-media-cycle-prev"> 760 <span class="hide">Previous</span><i class="fa fa-angle-left"></i> 761 </a> 762 <a href="#" class="unit-media-cycle-next"> 763 <span class="hide">Next</span><i class="fa fa-angle-right"></i> 764 </a> 765 <div class="unit-media-slide"> 766 <img 767 src="https://assets-cdn.interactcp.com/crutah/unit_photo/imgh_400x300-m0805202616571215/unit_photo_202608050457121547516853.jpeg" 768 class="dev-unit-media-img" 769 alt="Preview Image #1 - New 2027 ATC ROM 450 Cargo Trailer - Stock #237012" 770 /> 771 </div> 772 <div class="unit-media-slide"> 773 <img 774 src="https://assets-cdn.interactcp.com/crutah/unit_photo/imgh_400x300-m0805202616571215/unit_photo_202608050457121540585133.jpeg" 775 class="dev-unit-media-img" 776 alt="Preview Image #2 - New 2027 ATC ROM 450 Cargo Trailer - Stock #237012" 777 /> 778 </div> 779 <div class="unit-media-slide"> 780 <img 781 src="https://assets-cdn.interactcp.com/crutah/unit_photo/imgh_400x300-m0805202616571215/unit_photo_202608050457121556591128.jpeg" 782 class="dev-unit-media-img" 783 alt="Preview Image #3 - New 2027 ATC ROM 450 Cargo Trailer - Stock #237012" 784 /> 785 </div> 786 <div class="unit-media-slide"> 787 <span class="dev-unit-media-img-more-details"> 788 <span class="dev-unit-media-img-more-details"> 789 <img 790 src="https://assets-cdn.interactcp.c
790om/crutah/unit_photo/imgh_400x300-m0805202616571215/unit_photo_202608050457121547516853.jpeg" 791 class="dev-unit-media-img" 792 /> 793 </span> 794 </span> 795 <ul class="dev-unit-media-img-more-details-list"> 796 <li><i class="fa fa-camera"></i> <span>+18</span></li> 797 <li><a href="/product/new-2027-atc-rom-450-3646588-55" class="btn btn-sm">View More »</a></li> 798 </ul> 799 </div> 800 <div class="favorite-container checkbox hidden-print"> 801 <label> 802 <input 803 type="checkbox" 804 class="favorite" 805 value="3646588" 806 data-toggle-favorite="3646588" 807 /> 808 <i></i> 809 <span class="sr-only">Favorite</span> 810 </label> 811 </div> 812 <div class="cycle-pager"></div> 813 </div> 814 815 816 </div> 817 </div> 818 <div class="unit-title-wrapper grid-mode"> 819 <div class="h3 unit-title"> 820 <a href="/product/new-2027-atc-rom-450-3646588-55">New 2027 ATC ROM 450</a> 821 </div> 822 <div class="unit-stock-info-wrapper"> 823 <div class="unit-stock-number-wrapper"> 824 <span class="stock-number-label">Stock #</span> 825 <span class="stock-number-text">237012</span> 826 </div> 827 <div class="unit-location-wrapper"> 828 <span class="unit-location-text"> 829 <svg class="fa-solid fa-location-dot" aria-hidden="true" data-prefix="fas" data-icon="map-marker-alt" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg=""><path fill="currentColor" d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817 80 80 80 80z"></path></svg> 830 Kalispell, MT 831 </span> 832 </div> 833 </div> 834 </div> 835 <div class="unit-overview"> 836 <div class="unit-overview-tile-wrapper"> 837 838 839 840 <div class="compare-container"> 841 <div class="compare-checkbox-wrapper"> 842 <input 843 id="compare-3646588" 844 class="compare" 845 type="checkbox" 846 value="3646588" 847 /> 848 </div> 849 <div class="compare-label-wrapper"> 850 <label for="compare-3646588" class="compareText">Compare</label> 851 <button 852 class="btn compareButton hidden" 853 type="button" onclick="gtmAnalyticsEventTrack(this, 'Interactions', 'Clicked', 'Compare', '2');" 854 > 855 Compare 856 </button> 857 </div> 858 </div> 859 </div> 860 </div> 861 <div class="unit-pricing"> 862 863 <div class="unit-price-wrapper"> 864 <ul> 865 <li class="sale-price-order"> 866 <div class="sale-price-wrapper"> 867 <span class="sale-price-label">Sale Price: </span> 868 <span class="sale-price-text">$39,995</span> 869 </div> 870 </li> 871 <li class="reg-price-order"> 872 <div class="reg-price-wrapper"> 873 <span class="reg-price-label">MSRP: </span> 874 <span class="reg-price-text">$42,467</span> 875 </div> 876 </li> 877 <li class="you-save-order"> 878 <div class="you-save-wrapper"> 879 <span class="you-save-label">Save: </span> 880 <span class="you-save-text">$2,472</span> 881 </div> 882 </li> 883 </ul> 884 </div> 885 <div class="payments-around-container"> 886 <span class="payment-label">
886Payments From: </span> 887 <span class="payment-text">$342 /mo.</span> 888 </div> 889 890 <a 891 href="#getLowestPriceForce" 892 class="btn btn-primary btn-glp" 893 rel="getLowestPrice" 894 data-colorbox-width="90%" 895 data-colorbox-maxwidth="800px" 896 onclick="gtmAnalyticsEventTrack(this, 'Interactions', 'Clicked', 'Get Lowest Price on List', '3');" 897 > 898 Book An Appointment To See This Trailer 899 </a> 900 901 902 <div 903 class="btn psm-pricedrop-srp-widget psm-notification" 904 data-irvform-token="VN+Yh+wMVzNNilhR" 905 data-irvform-validation-token="dwXNKx/Rynuyv6m/E49hrg==" 906 data-psm-unitid="3646588" 907 data-psm-uniturl="/product/new-2027-atc-rom-450-3646588-55" 908 data-psm-unitimageurl="https://assets.interactcp.com/crutah/unit_photo/unit_photo_202608050457121547516853.jpeg?modified=0805202616571215" 909 data-psm-unitname="450" 910 data-psm-unitprice="39995.0000" 911 data-irvform-requires-recaptcha="true" 912 data-submit-selector="button.PD-FormSubmit" 913 ></div> 914 <a href="/product/new-2027-atc-rom-450-3646588-55" class="btn btn-view-details"> 915 View Details » 916 </a> 917 <div class="mtpl-listing-info-wrapper hide"></div> 918 </div> 919 <div class="unit-list-cta-btns"> 920 <div class="mtpl-listing-info-wrapper hide"></div> 921 <a href="/product/new-2027-atc-rom-450-3646588-55" class="btn btn-view-details">View Details »</a> 922 <ul> 923 <li class="unit-list-cta-btn-value-my-trade"> 924 <a 925 href="/contact-us-trade-ins?UnitId=3646588" 926 target="_blank" 927 class="ignore-unit-click">Value My Trade 928 </a> 929 </li> 930 <li class="unit-list-cta-btn-get-pre-approved"> 931 <a 932 href="/creditapp?s=www.crtrl.com&UnitId=3646588" 933 target="_blank" 934 class="ignore-unit-click" 935 > 936 Get Pre-Approved 937 </a> 938 </li> 939 <li class="unit-list-cta-btn-send-to-friend"> 940 <a href="/product/new-2027-atc-rom-450-3646588-55#sendToFriend">Send to Friend</a> 941 </li> 942 </ul> 943 944 </div> 945 <div class="mtpl-listing-inventory-wrapper hide"></div> 946 </div> 947</li> 948 949 950<li class=" unit standard-template-v25 standard-template-v2 altUnit usedUnit Cargo-Trailer Tremonton active-status glp-enabled has-sale-price year-2026" > 951 <div class="unit-title-wrapper list-mode"> 952 <div class="h3 unit-title"> 953 <a href="/product/used-2026-forest-river-rv-7x18-cargo-3708396-55">Used 2026 Forest River RV 7x18 Cargo</a> 954 </div> 955 <div class="unit-stock-info-wrapper"> 956 <div class="unit-stock-number-wrapper"> 957 <span class="stock-number-label">Stock #</span> 958 <span class="stock-number-text">141891</span> 959 </div> 960 <div class="unit-location-wrapper"> 961 <span class="unit-location-text"> 962 <svg class="fa-solid fa-location-dot" aria-hidden="true" data-prefix="fas" data-icon="map-marker-alt" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg=""><path fill="currentColor" d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"></path></svg> 963 Tremonton, UT 964 </span> 965 </div> 966 </div> 967 </div> 968 <div class="unit-content-wrapper detailsContainer" data-title="Used 2026 Forest River RV 7x18 Cargo" data-unitid="3708396" data-lotid="1227" data-lotdescription="Tremonton, UT" data-vinnumber="5NHULTT25TM141891" data-stocknumber="141891" data-msrp="$16,987.00" data-saleprice="$13,975.00" data-totalprice="$13,975.00" data-fees="$0.00" data-transparent-pricing="false" data-img="https://assets-cdn.interactcp.c
968om/crutah/unit_photo/imgh_190x140-m0713202622575230/unit_photo_20260713105752300031530.jpg" data-na="https://assets.interactcp.com/interactrv/images/common/imgh_190x140/na.jpg" data-brand="7x18" data-mfg="Forest River RV" data-brand-id="149152" data-type-id="55" data-mfg-id="1" data-vin="5NHULTT25TM141891" data-discount="$0.00" data-short-discount="$0" data-year="2026" data-unitname="Cargo" data-phone="435-246-3048" data-phonelink="tel:435-246-3048" data-glp-confirmationid="glpConfirmation" data-customeremailtemplate="contact_confirmation.hbs" data-unitlink="/product/used-2026-forest-river-rv-7x18-cargo-3708396-55" data-discountpricelabel="Our Best Price" data-pricelabel="List Price" data-salepricelabel="Our Price" data-finance-percent-down="0.2" data-finance-interest-rate="0.099" data-finance-months="180" data-finance-fees="" data-saleOrRegularPrice="$13,975.00" data-type="Cargo Trailer" data-product="2026 7x18 Cargo"> 969 <div class="unit-media"> 970 <div class="unit-media-wrapper"> 971 <div 972 class="cycle-slideshow" 973 data-cycle-timeout="0" 974 data-cycle-slides="> .unit-media-slide" 975 data-cycle-prev="> .unit-media-cycle-prev" 976 data-cycle-next="> .unit-media-cycle-next" 977 data-cycle-swipe="true" 978 > 979 <a href="#" class="unit-media-cycle-prev"> 980 <span class="hide">Previous</span><i class="fa fa-angle-left"></i> 981 </a> 982 <a href="#" class="unit-media-cycle-next"> 983 <span class="hide">Next</span><i class="fa fa-angle-right"></i> 984 </a> 985 <div class="unit-media-slide"> 986 <img 987 src="https://assets-cdn.interactcp.com/crutah/unit_photo/imgh_400x300-m0713202622575230/unit_photo_20260713105752300031530.jpg" 988 class="dev-unit-media-img" 989 alt="Preview Image #1 - Used 2026 Forest River RV 7x18 Cargo Cargo Trailer - Stock #141891" 990 /> 991 </div> 992 <div class="unit-media-slide"> 993 <img 994 src="https://assets-cdn.interactcp.com/crutah/unit_photo/imgh_400x300-m0713202622575216/unit_photo_202607131057521662505307.jpg" 995 class="dev-unit-media-img" 996 alt="Preview Image #2 - Used 2026 Forest River RV 7x18 Cargo Cargo Trailer - Stock #141891" 997 /> 998 </div> 999 <div class="unit-media-slide"> 1000 <img 1001 src="https://assets-cdn.interactcp.com/crutah/unit_photo/imgh_400x300-m0713202622575218/unit_photo_20260713105752184386176.jpg" 1002 class="dev-unit-media-img" 1003 alt="Preview Image #3 - Used 2026 Forest River RV 7x18 Cargo Cargo Trailer - Stock #141891" 1004 /> 1005 </div> 1006 <div class="unit-media-slide"> 1007 <span class="dev-unit-media-img-more-details"> 1008 <span class="dev-unit-media-img-more-details"> 1009 <img 1010 src="https://assets-cdn.interactcp.com/crutah/unit_photo/imgh_400x300-m0713202622575230/unit_photo_20260713105752300031530.jpg" 1011 class="dev-unit-media-img" 1012 /> 1013 </span> 1014 </span> 1015 <ul class="dev-unit-media-img-more-details-list"> 1016 <li><i class="fa fa-camera"></i> <span>+12</span></li> 1017 <li><a href="/product/used-2026-forest-river-rv-7x18-cargo-3708396-55" class="btn btn-sm">View More »</a></li> 1018 </ul> 1019 </div> 1020 <div class="favorite-container checkbox hidden-print"> 1021 <label> 1022 <input 1023 type="checkbox" 1024 class="favorite" 1025 value="3708396" 1026 data-toggle-favorite="3708396" 1027 /> 1028 <i></i> 1029 <span class="sr-only">Favorite</span> 1030 </label> 1031 </div> 1032 <div class="cycle-pager"></div> 1033 </div> 1034 1035 1036 </div> 1037 </div> 1038 <div class="unit-title-wrapper grid-mode"> 1039 <div class="h3 unit-title"> 1040 <a href="/product/used-2026-forest-river-rv-7x18-cargo-3708396-55">Used 2026 Forest River RV 7x18 Cargo</a> 1041 </div> 1042 <div class="unit-stock-info-wrapper"> 1043 <div class="unit-stock-number-wrapper">
1044 <span class="stock-number-label">Stock #</span> 1045 <span class="stock-number-text">141891</span> 1046 </div> 1047 <div class="unit-location-wrapper"> 1048 <span class="unit-location-text"> 1049 <svg class="fa-solid fa-location-dot" aria-hidden="true" data-prefix="fas" data-icon="map-marker-alt" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg=""><path fill="currentColor" d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817 80 80 80 80z"></path></svg> 1050 Tremonton, UT 1051 </span> 1052 </div> 1053 </div> 1054 </div> 1055 <div class="unit-overview"> 1056 <div class="unit-overview-tile-wrapper"> 1057 1058 1059 1060 <div class="compare-container"> 1061 <div class="compare-checkbox-wrapper"> 1062 <input 1063 id="compare-3708396" 1064 class="compare" 1065 type="checkbox" 1066 value="3708396" 1067 /> 1068 </div> 1069 <div class="compare-label-wrapper"> 1070 <label for="compare-3708396" class="compareText">Compare</label> 1071 <button 1072 class="btn compareButton hidden" 1073 type="button" onclick="gtmAnalyticsEventTrack(this, 'Interactions', 'Clicked', 'Compare', '2');" 1074 > 1075 Compare 1076 </button> 1077 </div> 1078 </div> 1079 </div> 1080 </div> 1081 <div class="unit-pricing"> 1082 1083 <div class="unit-price-wrapper"> 1084 <ul> 1085 <li class="sale-price-order"> 1086 <div class="sale-price-wrapper"> 1087 <span class="sale-price-label">Our Price: </span> 1088 <span class="sale-price-text">$13,975</span> 1089 </div> 1090 </li> 1091 <li class="reg-price-order"> 1092 <div class="reg-price-wrapper"> 1093 <span class="reg-price-label">List Price: </span> 1094 <span class="reg-price-text">$16,987</span> 1095 </div> 1096 </li> 1097 <li class="you-save-order"> 1098 <div class="you-save-wrapper"> 1099 <span class="you-save-label">Discount: </span> 1100 <span class="you-save-text">$3,012</span> 1101 </div> 1102 </li> 1103 </ul> 1104 </div> 1105 <div class="payments-around-container"> 1106 <span class="payment-label">
1106Payments From: </span> 1107 <span class="payment-text">$119 /mo.</span> 1108 </div> 1109 1110 <a 1111 href="#getLowestPriceForce" 1112 class="btn btn-primary btn-glp" 1113 rel="getLowestPrice" 1114 data-colorbox-width="90%" 1115 data-colorbox-maxwidth="800px" 1116 onclick="gtmAnalyticsEventTrack(this, 'Interactions', 'Clicked', 'Get Lowest Price on List', '3');" 1117 > 1118 Book An Appointment To See This Trailer 1119 </a> 1120 1121 1122 <div 1123 class="btn psm-pricedrop-srp-widget psm-notification" 1124 data-irvform-token="5+4gwyFafSf3Swgi" 1125 data-irvform-validation-token="n2+HZR13L+pASJEwJMciNQ==" 1126 data-psm-unitid="3708396" 1127 data-psm-uniturl="/product/used-2026-forest-river-rv-7x18-cargo-3708396-55" 1128 data-psm-unitimageurl="https://assets.interactcp.com/crutah/unit_photo/unit_photo_20260713105752300031530.jpg?modified=0713202622575230" 1129 data-psm-unitname="Cargo" 1130 data-psm-unitprice="13975.0000" 1131 data-irvform-requires-recaptcha="true" 1132 data-submit-selector="button.PD-FormSubmit" 1133 ></div> 1134 <a href="/product/used-2026-forest-river-rv-7x18-cargo-3708396-55" class="btn btn-view-details"> 1135 View Details » 1136 </a> 1137 <div class="mtpl-listing-info-wrapper hide"></div> 1138 </div> 1139 <div class="unit-list-cta-btns"> 1140 <div class="mtpl-listing-info-wrapper hide"></div> 1141 <a href="/product/used-2026-forest-river-rv-7x18-cargo-3708396-55" class="btn btn-view-details">View Details »</a> 1142 <ul> 1143 <li class="unit-list-cta-btn-value-my-trade"> 1144 <a 1145 href="/contact-us-trade-ins?UnitId=3708396" 1146 target="_blank" 1147 class="ignore-unit-click">Value My Trade 1148 </a> 1149 </li> 1150 <li class="unit-list-cta-btn-get-pre-approved"> 1151 <a 1152 href="/creditapp?s=www.crtrl.com&UnitId=3708396" 1153 target="_blank" 1154 class="ignore-unit-click" 1155 > 1156 Get Pre-Approved 1157 </a> 1158 </li> 1159 <li class="unit-list-cta-btn-send-to-friend"> 1160 <a href="/product/used-2026-forest-river-rv-7x18-cargo-3708396-55#sendToFriend">Send to Friend</a> 1161 </li> 1162 </ul> 1163 1164 </div> 1165 <div class="mtpl-listing-inventory-wrapper hide"></div> 1166 </div> 1167</li> 1168 </ol> 1169 1170 </div> 1171 1172 <div 1173 class="listingPagination bottomPaging hide" 1174 data-hide="true" 1175 > 1176 <div class="row"> 1177 <div class="col-sm-6 list-pagination-wrapper"> 1178 1179 1180<div class="pagination-wrapper"> 1181 <ul class="pagination"> 1182 <li class='disabled'><a href="" class="previous" title="Previous Page" data-page="">«</a></li> 1183 <li class='active'><a href="" title="Page 1" data-page="1">1</a></li> 1184 <li class='active'><a href="https://www.crtrl.com/rv-search?s=true&types=55" title="Page 1" data-page="1">1</a></li> 1185 <li class='disabled'><a href="" class="next" title="Next Page" data-page="">»</a></li> 1186 </ul> 1187</div> 1188 </div> 1189 <div class="col-sm-6 page-size-wrapper-parent"> 1190 <div class="row page-size-wrapper"> 1191 <div class="col-xs-6 col-sm-offset-1 visible-item-count">Showing <span class="first-visible-index">1</span> - <span class="last-visible-index">2</span> of <span class="total-units">2</span></div> 1192 <div class="col-xs-5 page-size-inner-wrapper"> 1193 <label for="pageSizeBottom" class="pull-left">Show:</label> 1194 <select id="pageSizeBottom" class="pull-left page-sizes"> 1195 <option value="24" selected>24</option> 1196 <option value="48" >48</option> 1197 <option value="72" >72</option> 1198 </select> 1199 </div> 1200 </div> 1201 </div> 1202 </div> 1203 </div> 1204 1205 1206 <div class="hidden"> 1207 <div id="getLowestPrice" class="form-for-colorbox listing-glp-form"> 1208 1209<form method="post" class="form irvForm" data-irvform-token="ZdOjt+OxlP2mLiwR" data-irvform-validation-token="FlCbSPySLf/pvdlnd8NNWw==" data-irvform-activity-type="" data-irvform-confirmation-id="" data-irvform-unit-id="" data-irvform-source-domain="true" data-irvform-requires-recaptcha="true" data-irvform-ga4id="G-PTVVJP6DCG" data-irvform-formsnippetid="272544"> 1210 <div class="form-contents"> 1211 1212 1213<div class="row"> 1214<div class="col-xs-10 col-xs-offset-1"><br /> 1215<h2>Set up an appointment</h2> 1216<p>Interested in a live virtual tour of this unit? Fill out the form below and one of our trained RV specialists will reach out to book a time for you to see every inch of this RV via a virtual tour.</p> 1217<hr /> 1218<div class="col-md-6"> 1219<div class="form-group"><span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span><i class="fa fa-exclamation-triangle"></i> <label for="FirstName">Name <em>*</em></label> <input name="FirstName" id="FirstName" class="form-control" data-val="true" data-val-required="Name is required." data-val-regex="First and Last Name are required." data-val-regex-pattern="^.+ .+$" type="text" /></div> 1220<div class="form-group"><span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span><i class="fa fa-exclamation-triangle"></i><label for="Email">Email <em>*</em></label> <input name="Email" id="Email" class="form-control" data-val="true" data-val-required="Email is required." data-val-regex="Please enter a valid email address." data-val-regex-pattern="^\S+@\S+\.\S+$" type="text" /></div> 1221<div class="form-group"><span class="field-validation-valid" data-valmsg-for="Phone" data-valmsg-replace="true"></span><i class="fa fa-exclamation-triangle"></i><label for="Phone">Phone <em>*</em></label> <input name="Phone" id="Phone" class="form-control" data-val="true" data-val-required="Phone is required." data-val-regex="Please enter a valid phone number" data-val-regex-pattern="^(1\s?)?(\(\d{3}\)|\d{3}-?)?\s?\d{3}-?\d{4}$" type="text" /></div> 1222<div class="form-group">
1222<span class="field-validation-valid" data-valmsg-for="Zip" data-valmsg-replace="true"></span><i class="fa fa-exclamation-triangle"></i><label for="Zip">Zip/Postal <em>*</em></label> <input name="Zip" id="Zip" class="form-control" data-val="true" data-val-required="Zip/Postal is required." data-val-regex-pattern="^(\d{5}(-\d{4})?)|([A-Za-z]\d[A-Za-z]\s?\d[A-Za-z]\d)$" data-val-regex="Please enter a valid zip code." type="text" /></div> 1223</div> 1224<div class="col-md-6"> 1225<div class="form-group"><label for="Comments">How can we help you?</label> <textarea name="Comments" rows="12" id="Comments" class="form-control"></textarea></div> 1226</div> 1227</div> 1228<div class="col-xs-12 col-md-10 col-md-offset-1"><br /> 1229<div class="text-center"><input name="SubmitButton" id="SubmitButton" value="Submit" class="btn btn-primary" type="submit" /></div> 1230</div> 1231</div> 1232<p><input name="FormType" value="Book Video Tour" type="hidden" /> <input name="RedirectUrl" id="RedirectUrl" value="/contact-confirmation" type="hidden" /> <input name="AjaxTarget" value="/Forms/Ajax" type="hidden" /> <input name="SuccessMessage" id="SuccessMessage" value="Request Sent Successfully" type="hidden" /> <input name="JournalTemplate" value="journal.hbs" type="hidden" /> <input name="AccountEmailTemplate" id="AccountEmailTemplate" value="lead_generic.hbs" type="hidden" /> <input name="CustomerEmailTemplate" id="CustomerEmailTemplate" value="contact_confirmation.hbs" type="hidden" /></p> 1233 <div class="superImportantInformation-247"> 1234 <label for="ConfirmEmail-247">Confirm Email</label> 1235 <input type="text" aria-label="if you are human, do not enter this field" autocomplete="off" placeholder="if you are human, do not enter this field" name="ConfirmEmail-247" id="ConfirmEmail-247" /> 1236 </div> 1237 </div> 1238<input name="__RequestVerificationToken" type="hidden" value="CfDJ8Mg3XaYAmgxNvn8WEUmRKT8x-QsmLIRecCR-abQTz5k66tOe7Eh_jqJoc4x0cfmGseMtbBiPFC1u2IEQUXm6ihMhbRsAPZv5HlMd96CsGqU2ThySyVm6uc7Nmt-Ztav2kBaaS87tOwzY3dmKn7NtQxs" /></form> 1239 1240 </div> 1241 </div> 1242 <div class="hidden"> 1243 <div id="getLowestPriceForce" class="form-for-colorbox listing-glp-force-form"> 1244 1245<form method="post" class="form irvForm" data-irvform-token="FZ8ylcQI9TkeN/te" data-irvform-validation-token="MHGDSfcrZ5EZFYPAPo8R9w==" data-irvform-activity-type="" data-irvform-confirmation-id="" data-irvform-unit-id="" data-irvform-source-domain="true" data-irvform-requires-recaptcha="true" data-irvform-ga4id="G-PTVVJP6DCG" data-irvform-formsnippetid="272544"> 1246 <div class="form-contents"> 1247 1248 1249<div class="row"> 1250<div class="col-xs-10 col-xs-offset-1"><br /> 1251<h2>Set up an appointment</h2> 1252<p>Interested in a live virtual tour of this unit? Fill out the form below and one of our trained RV specialists will reach out to book a time for you to see every inch of this RV via a virtual tour.</p> 1253<hr /> 1254<div class="col-md-6"> 1255<div class="form-group"><span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span><i class="fa fa-exclamation-triangle"></i> <label for="FirstName">Name <em>*</em></label> <input name="FirstName" id="FirstName" class="form-control" data-val="true" data-val-required="Name is required." data-val-regex="First and Last Name are required." data-val-regex-pattern="^.+ .+$" type="text" /></div> 1256<div class="form-group"><span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span><i class="fa fa-exclamation-triangle"></i><label for="Email">Email <em>*</em></label> <input name="Email" id="Email" class="form-control" data-val="true" data-val-required="Email is required." data-val-regex="Please enter a valid email address." data-val-regex-pattern="^\S+@\S+\.\S+$" type="text" /></div> 1257<div class="form-group"><span class="field-validation-valid" data-valmsg-for="Phone" data-valmsg-replace="true"></span><i class="fa fa-exclamation-triangle"></i><label for="Phone">Phone <em>*</em></label> <input name="Phone" id="Phone" class="form-control" data-val="true" data-val-required="Phone is required." data-val-regex="Please enter a valid phone number" data-val-regex-pattern="^(1\s?)?(\(\d{3}\)|\d{3}-?)?\s?\d{3}-?\d{4}$" type="text" /></div> 1258<div class="form-group">
1258<span class="field-validation-valid" data-valmsg-for="Zip" data-valmsg-replace="true"></span><i class="fa fa-exclamation-triangle"></i><label for="Zip">Zip/Postal <em>*</em></label> <input name="Zip" id="Zip" class="form-control" data-val="true" data-val-required="Zip/Postal is required." data-val-regex-pattern="^(\d{5}(-\d{4})?)|([A-Za-z]\d[A-Za-z]\s?\d[A-Za-z]\d)$" data-val-regex="Please enter a valid zip code." type="text" /></div> 1259</div> 1260<div class="col-md-6"> 1261<div class="form-group"><label for="Comments">How can we help you?</label> <textarea name="Comments" rows="12" id="Comments" class="form-control"></textarea></div> 1262</div> 1263</div> 1264<div class="col-xs-12 col-md-10 col-md-offset-1"><br /> 1265<div class="text-center"><input name="SubmitButton" id="SubmitButton" value="Submit" class="btn btn-primary" type="submit" /></div> 1266</div> 1267</div> 1268<p><input name="FormType" value="Book Video Tour" type="hidden" /> <input name="RedirectUrl" id="RedirectUrl" value="/contact-confirmation" type="hidden" /> <input name="AjaxTarget" value="/Forms/Ajax" type="hidden" /> <input name="SuccessMessage" id="SuccessMessage" value="Request Sent Successfully" type="hidden" /> <input name="JournalTemplate" value="journal.hbs" type="hidden" /> <input name="AccountEmailTemplate" id="AccountEmailTemplate" value="lead_generic.hbs" type="hidden" /> <input name="CustomerEmailTemplate" id="CustomerEmailTemplate" value="contact_confirmation.hbs" type="hidden" /></p> 1269 <div class="superImportantInformation-247"> 1270 <label for="ConfirmEmail-247">Confirm Email</label> 1271 <input type="text" aria-label="if you are human, do not enter this field" autocomplete="off" placeholder="if you are human, do not enter this field" name="ConfirmEmail-247" id="ConfirmEmail-247" /> 1272 </div> 1273 </div> 1274<input name="__RequestVerificationToken" type="hidden" value="CfDJ8Mg3XaYAmgxNvn8WEUmRKT8x-QsmLIRecCR-abQTz5k66tOe7Eh_jqJoc4x0cfmGseMtbBiPFC1u2IEQUXm6ihMhbRsAPZv5HlMd96CsGqU2ThySyVm6uc7Nmt-Ztav2kBaaS87tOwzY3dmKn7NtQxs" /></form> 1275 1276 </div> 1277 </div> 1278 <div class="hidden"> 1279 <div id="glpPriceConfirmation"> 1280 1281 1282<fieldset class="colorbox-form form-confirm glp-price-confirm"> 1283 <legend class="heading"> 1284 Get Our Lowest Price 1285 <a href="javascript:void(0)" rel="colorbox-close"><span class="hide">Close</span><i class="fa fa-times close"></i></a> 1286 </legend> 1287 <br /> 1288 <div class="h5"> 1289 Thank You, <span class="name-holder"></span>! 1290 </div> 1291 <p class="price-message"> 1292 Our lowest price on this <span class="title-holder">item</span> is <span class="short-price-holder"></span> 1293 </p> 1294 <p class="expires-message"> 1295 This price is only valid for 24 hours from <span class="date-holder"></span> 1296 </p> 1297 <div class="unit-info"> 1298 <div class="photo liftedCorners"> 1299 <img src="" alt="" class="image-holder" /> 1300 </div> 1301 <div class="unit-info-details"> 1302 <p> 1303 <strong><span class="title-holder"></span></strong> 1304 </p> 1305 <p> 1306 Stock Number <span class="stock-holder"></span><br /> 1307 <span class="priceLabel-holder">{priceLabel}</span>: <span class="msrp-holder"></span> 1308 <span class="salePriceLabel-holder"></span>: <span class="salePrice-holder"></span> 1309 </p> 1310 <p> 1311 <strong><span class="discountPriceLabel-holder">{discountPriceLabel}</span>: <span class="price-holder"></span></strong> 1312 </p> 1313 </div> 1314 </div> 1315 <p class="call-us"> 1316 Sound good? Call us at <a href="#" class="phone-holder">8</a> 1317 </p> 1318 <p> 1319 <a href="javascript:void(0)" rel="colorbox-close" class="btn btn-default close-btn">Close and Continue Shopping</a> 1320 </p> 1321</fieldset> 1322 </div> 1323 </div> 1324 <div class="hidden"> 1325 <div id="glpConfirmation"> 1326 1327 1328<fieldset class="colorbox-form form-confirm"> 1329 <legend class="heading"> 1330 <span class="heading-holder">Confirmation</span> 1331 <a href="#" rel="colorbox-close"><span class="hide">Close</span><i class="fa fa-times close"></i></a> 1332 </legend> 1333 <div class="clearfix"></div> 1334 <center> 1335 <div class="h4" style="margin-top: 30px"> 1336 Thank You, <span class="name-holder"></span>! 1337 </div> 1338 <p class="h4 text-success"> 1339 <span class="msg-holder">Your message was sent successfully</span> 1340 </p> 1341 <p> 1342 <span class="sub-msg-holder">A representative has been notified and will be with you shortly.</span> 1343 </p> 1344 <p> 1345 <a class="btn" href="javascript:void(0)" rel="colorbox-close"><span class="hide">Close</span><span class="btn-text-holder">Close</span></a> 1346 </p>
1347 </center> 1348</fieldset> 1349 </div> 1350
1350<script type="text/javascript"> 1351 $("#glpConfirmation .heading-holder").text("Get Our Lowest Price"); 1352 </script>
1352 1353
1353<script type="text/javascript"> 1354 $(function () { 1355 $('#getLowestPrice.listing-glp-form input[type="submit"]').click(function () { 1356 gtmAnalyticsEventTrack(this, 'Forms', 'Submit', 'Get Lowest Price', '5'); 1357 }); 1358 $('#getLowestPrice .form').on('submit-complete', function () { 1359 gtmAnalyticsEventTrack(this, 'Forms', 'SubmitComplete', 'Get Lowest Price', '5'); 1360 }); 1361 }); 1362 </script>
1362 1363 </div> 1364 1365
1365<script type="text/javascript"> 1366 $(function() { 1367 var listCriteria = {"HideLibrary":true,"OnlyLibrary":false,"UnitAgeFilter":0,"InvertTagFilter":false,"InvertTypeFilter":false,"InvertLotsFilter":false,"StatusId":"2","InvertManufacturerFilter":false,"InvertBrandFilter":false,"PriceFilters":[],"MonthlyPaymentsFilters":[],"PropVals":{},"InvertedPropIds":[],"ExcludedPropVals":{},"ResultsSortString":"condition-desc","PageSize":24,"PageNum":0,"NoResultsPredetermined":false,"IsCompact":false}; 1368 var listConfig = {"PageId":206468,"GlpForm":"{\n \"formSnippetId\": 272544,\n \"settings\": []\n}","GlpForceForm":"{\n \"formSnippetId\": 272544,\n \"settings\": []\n}","GlpNoPriceConfirm":1435,"GlpPriceConfirm":1436,"Slider":false,"SliderPaused":false,"VertSlider":false,"VisibleSlides":3,"IsCompact":false,"Limit":0,"SearchMode":false,"DefaultSortMode":"condition-desc","UseFqdnUnitLinks":false,"NumberOfSoldIfNoActive":0,"NoResultsSnippetId":0,"ShowSimilarUnitsIfNoResults":false,"SuggestUnitsIfNoResults":false,"DefaultPageSize":24,"ImageWidth":400,"ImageHeight":0,"NoPriceText":"Call for price!","ShowPaymentsAround":true,"ShowPaymentsAroundInCompactMode":false,"DefaultToGridMode":false,"DisableAjax":false,"PriceTooltip":"","FavoritesMode":false,"ConsolidatedMode":false}; 1369 1370 // for prev/next buttons on detail pages 1371 if ('True' === 'True') { 1372 var unitIds = [3646588,3708396]; 1373 1374 var url = window.location.href; 1375 1376 window.sessionStorage.setItem("list_url", url); 1377 window.sessionStorage.setItem(url + "_units", JSON.stringify(unitIds)); 1378 window.sessionStorage.setItem(url + "_total_units", 2); 1379 window.sessionStorage.setItem(url.split('?')[0] + "_criteria", JSON.stringify(listCriteria)); 1380 window.sessionStorage.setItem(url.split('?')[0] + "_config", JSON.stringify(listConfig)); 1381 } 1382 else { 1383 // indicates that prev/next buttons should not be activiated 1384 window.sessionStorage.setItem("list_url", ''); 1385 } 1386 1387 $('.ajax-unit-list').ajaxUnitList({ 1388 listCriteria: listCriteria, 1389 listConfig: listConfig, 1390 productTypes: {"4":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Expandable"},"5":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Fifth Wheel"},"29":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Travel Trailer"},"7":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Folding Pop-Up Camper"},"28":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Toy Hauler Travel Trailer"},"26":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Toy Hauler Fifth Wheel"},"3":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Destination Trailer"},"59":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Horse Trailer"},"65":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Snowmobile Trailer"},"22":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Park Models"},"23":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Park Trailer"},"79":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Truck"},"55":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Cargo Trailer"},"60":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Horse Trailers with living quarters"},"61":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Livestock Trailer"},"68":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Utility Trailer"},"128":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Flat Bed Trailer"},"57":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Dump Trailer"},"186":{"ListItemTemplate":"UnitListItemV2.5.cshtml","Description":"Fully Enclosed Trailer"}}, 1391 lazyLoadBufferSize: 12, 1392 noUnitsText: '<p>We&#39;re sorry. We were unable to find any results for this page. Please give us a call for an up to date product list or try our <a href="/rv-search">Search</a> and expand your criteria.</p>', 1393 noExactMatchText: '<p class="no-exact-match-text">We couldn't find an exact match for your search, but these are similar:</p>', 1394 noSuggestedUnitsText: '<p class="no-exact-match-text">While we couldn't find results matching your search, here are some units you might like:</p>' 1395 }); 1396 1397 $('.ajax-unit-list').on('click', '.pagination a', function (e) { 1398 e.preventDefault(); 1399 1400 var pageNum = parseInt($(this).attr('data-page'), 10); 1401 if (!isNaN(pageNum)) { 1402 $('.ajax-unit-list').ajaxUnitList('update', {page: pageNum}); 1403 $("html, body").animate({ scrollTop: $('.ajax-unit-list').offset().top }, "fast"); 1404 } 1405 }); 1406 1407 if ($.fn.consolidatedUnitList) { 1408 $('.ajax-unit-list').consolidatedUnitList(); 1409 } 1410 }); 1411 </script>
1411 1412 <div class="hide"> 1413 <div id="change-zip-dialog"> 1414 <div> 1415 <a rel="colorbox-close"> <i class="fa fa-remove close"></i> </a> 1416 </div> 1417 1418 <form id="change-dialog-form"> 1419 <div class="h3">Location</div> 1420 <p>Enter your location to find RVs nearest you</p> 1421 <br /> 1422 <div id="modal-loc-tabs" class="location-type-wrapper"> 1423 <div class="btn-group" role="group" aria-label="Location Type"> 1424 <button type="button" id="zipCodeTab" class="btn btn-default active">Zip Code</button> 1425 <button type="button" id="useMyLocationTab" class="btn btn-default"> 1426 <i class="fa-solid fa-location-crosshairs icon"></i>My Location 1427 </button> 1428 </div> 1429 <label for="zip-textbox" class="sr-only">Zip Code</label> 1430 <input 1431 name="locationZip" 1432 id="zip-textbox" 1433 type="text" 1434 class="form-control location-zip" 1435 placeholder="Enter zip code" 1436 /> 1437 <div class="location-finder-error"> 1438 <small class="msg"></small> 1439 </div> 1440 </div> 1441 <button type="submit" id="locationDialogBtn" class="btn location-dialog-btn"> 1442 Submit 1443 </button> 1444 </form> 1445 </div> 1446 </div> 1447
1447<script type="text/javascript"> 1448 $(function() { 1449 // page size dropdown change event handler 1450 var autoChanging = false; 1451 $('.unit-list .page-sizes').change(function() { 1452 if (!autoChanging) { 1453 gtmAnalyticsEventTrack(this, 'Interactions', 'Clicked', 'Number Showing', '1', 'true'); 1454 if (true) { 1455 $('.ajax-unit-list').ajaxUnitList('update', {pagesize: this.value}); 1456 autoChanging = true; 1457 $('.unit-list .page-sizes').val(this.value); 1458 autoChanging = false; 1459 $("html, body").animate({ scrollTop: $('.ajax-unit-list').offset().top }, "fast"); 1460 } 1461 else { 1462 document.location = '/rv-search?s=true&types=55&pagesize=' + this.value; 1463 } 1464 } 1465 }); 1466 1467 // USE MY LOCATION related code 1468 async function toggleLocationTabs(clickedTab) { 1469 const locationTabs = document.querySelectorAll("#modal-loc-tabs.location-type-wrapper .btn-group .btn"); 1470 const zipInput = document.querySelector("#modal-loc-tabs .location-zip"); 1471 let useMyLocation = false; 1472 1473 toggleLocFinderErrMsg(false); 1474 if (clickedTab.classList.contains('active')) { return; } 1475 1476 locationTabs.forEach((tab) => { 1477 if (tab.classList.contains("active")) { 1478 tab.classList.remove("active"); 1479 } 1480 else { 1481 tab.classList.add("active"); 1482 if (tab.textContent.trim() === "My Location") { 1483 $.cookie('user_location_type', 'loc', { path: '/' }); 1484 zipInput.style.display = "none"; 1485 zipInput.value = ""; 1486 useMyLocation = true; 1487 } 1488 else { 1489 zipInput.style.display = "block"; 1490 $.cookie('user_location_type', 'zip', { path: '/' }); 1491 } 1492 } 1493 }); 1494 1495 if (useMyLocation) { 1496 try { 1497 await initUseGeolocation(); 1498 $('.distance-sort-option').text('Distance (Closest to my location)'); 1499 } catch(error) { 1500 console.log(error); 1501 } 1502 } 1503 } 1504 1505 function setGeolocationCookies(coords) { 1506 if (coords.length === 2) { 1507 $.cookie('user_lat', coords[0], { expires: 90, path: '/' }); 1508 $.cookie('user_lon', coords[1], { expires: 90, path: '/' }); 1509 } 1510 } 1511 1512 async function initUseGeolocation() { 1513 return new Promise((resolve, reject) => { 1514 if (navigator.geolocation) { 1515 function onSuccess(userPosition) { 1516 setGeolocationCookies([userPosition.coords.latitude, userPosition.coords.longitude]); 1517 resolve(); 1518 } 1519 1520 function onError(error) { 1521 let msg; 1522 switch(error.code) { 1523 case 1: msg = 'Geolocation access has been denied.'; break; 1524 default: msg = error.message; 1525 } 1526 toggleLocFinderErrMsg(true, msg); 1527 reject(msg); 1528 } 1529 1530 navigator.geolocation.getCurrentPosition(onSuccess, onError); 1531 } else { 1532 const msg = 'Geolocation is not supported by this browser.' 1533 toggleLocFinderErrMsg(true, msg); 1534 reject(msg); 1535 } 1536 }) 1537 } 1538 1539 function toggleLocFinderErrMsg(show, message = '') { 1540 const errorMsgWrapper = document.querySelector('#modal-loc-tabs .location-finder-error'); 1541 const errorMsg = errorMsgWrapper.querySelector('.msg'); 1542 errorMsg.textContent = message; 1543 show ? errorMsgWrapper.classList.add('show') : errorMsgWrapper.classList.remove('show'); 1544 } 1545 1546 // init location type tab cookie 1547 const locationTypeCookie = $.cookie('user_location_type'); 1548 const zipTab = document.getElementById("zipCodeTab"); 1549 const locationTab = document.getElementById("useMyLocationTab"); 1550 1551 if (zipTab && locationTab) { 1552 if (!locationTypeCookie) {
1553 $.cookie('user_location_type', 'zip', { path: '/' }); 1554 } else { 1555 if (locationTypeCookie === 'zip') { 1556 toggleLocationTabs(zipTab); 1557 } else { 1558 toggleLocationTabs(locationTab); 1559 } 1560 } 1561 } 1562 1563 // click handlers for location type tabs 1564 const locationTabs = document.querySelectorAll("#modal-loc-tabs.location-type-wrapper .btn-group .btn"); 1565 locationTabs.forEach((tab) => { 1566 tab.addEventListener("click", function() { toggleLocationTabs(this) }); 1567 }); 1568 1569 var showChangeZipDialog = function (successCallback, failedCallback) { 1570 const zipInput = document.querySelector('#modal-loc-tabs #zip-textbox'); 1571 const zipCodeTab = document.getElementById('zipCodeTab'); 1572 const useMyLocationTab = document.getElementById('useMyLocationTab'); 1573 var zip = null; 1574 1575 $('#locationDialogBtn').unbind('click'); 1576 $('#change-dialog-form').submit(async function (e) { 1577 e.preventDefault(); 1578 zip = zipInput.value; 1579 const useMyLocation = useMyLocationTab?.classList?.contains('active') ?? false; 1580 const haveCoords = $.cookie('user_lat') && $.cookie('user_lon'); 1581 if (useMyLocation) { 1582 try { 1583 await initUseGeolocation(); 1584 $('.distance-sort-option').text('Distance (Closest to my location)'); 1585 successCallback(); 1586 $.colorbox.close(); 1587 } catch(error) { 1588 console.log(error); 1589 return; 1590 } 1591 } else if (!zip) { 1592 toggleLocFinderErrMsg(true, "Please enter a zip code.") 1593 if (failedCallback) failedCallback(); 1594 } else { 1595 $.get('/rebraco/datanugget/getgeocoords?zip=' + zip, function (data) { 1596 var coords = (data || '').split(','); 1597 if (coords.length == 2) { 1598 $.cookie('user_zip', zip, { expires: 90, path: '/' }); 1599 $.cookie('user_lat', coords[0], { expires: 90, path: '/' }); 1600 $.cookie('user_lon', coords[1], { expires: 90, path: '/' }); 1601 $('.distance-sort-option').text('Distance (Closest to ' + zip + ')'); 1602 1603 if (successCallback) successCallback(); 1604 } 1605 else { 1606 if (failedCallback) failedCallback(); 1607 } 1608 $.colorbox.close(); 1609 }); 1610 } 1611 1612 1613 }); 1614 1615 $.colorbox({ href: '#change-zip-dialog', inline: true, rel: 'nofollow', height: 315, width: 400, onClosed: function () { 1616 zipInput.value = ''; 1617 toggleLocFinderErrMsg(false); 1618 } }); 1619 }; 1620 1621 $('.change-zip-link').on('click', function(e) { 1622 e.preventDefault(); 1623 showChangeZipDialog(function() { 1624 if (true) { 1625 $('.ajax-unit-list').ajaxUnitList('update', {}); 1626 $("html, body").animate({ scrollTop: $('.ajax-unit-list').offset().top }, "fast"); 1627 } 1628 else { 1629 document.location = '/rv-search?s=true&types=55&pagesize=24&sort='; 1630 } 1631 }); 1632 }); 1633 1634 // sorting dropdown event handlers 1635 (function(){ 1636 1637 var previous; 1638 1639 $('#sortOptions').on('focus', function() { 1640 previous = this.value; 1641 }).change(function() { 1642 gtmAnalyticsEventTrack(this, 'Interactions', 'Clicked', 'Sort Options', '1', 'true'); 1643 1644 var sortValue = this.value; 1645 1646 function refresh() { 1647 previous = sortValue; 1648 1649 if (true) { 1650 $('.ajax-unit-list').ajaxUnitList('update', {sort: sortValue}); 1651 $("html, body").animate({ scrollTop: $('.ajax-unit-list').offset().top }, "fast"); 1652 } 1653 else { 1654 document.location = '/rv-search?s=true&types=55&pagesize=24&sort=' + sortValue; 1655 } 1656 }; 1657 1658 if (sortValue.indexOf('distance-') === 0) { 1659 const shouldShowChangeZip = 'False' == 'False' || 'False' == 'True' && Boolean(!$('#lotsFilter').length); 1660 if (($.cookie('user_zip') || '') !== '' ) { 1661 refresh(); 1662 if (shouldShowChangeZip) $('.change-zip-link').removeClass('hide'); 1663 } 1664 else { 1665 var success = function() { 1666 refresh(); 1667 if (shouldShowChangeZip) $('.change-zip-link').removeClass('hide'); 1668 }; 1669 1670 var failed = function () { 1671 $('#sortOptions option[value="' + previous + '"]').prop('selected', true); 1672 }; 1673 1674 showChangeZipDialog(success, failed); 1675 } 1676 } 1677 else { 1678 refresh(); 1679 $('.change-zip-link').addClass('hide'); 1680 } 1681 }); 1682 })(); 1683 }); 1684 </script>
1684 1685
1685<script type="text/javascript"> 1686 $(function () { 1687 $('.unitContainer').on("click", 'button.compareButton', function (e) { 1688 var units = $("input.compare:checked").map(function () { return $(this).val(); }).get().join(','); 1689 irv.modal({ href: '/snippets/comparison?compare=' + units }); 1690 e.stopPropagation(); 1691 }); 1692 1693 $('.unitContainer').on('click', 'label.compareText, label.tool-favorite, [data-toggle="tooltip"]', function (e) { 1694 e.stopPropagation(); 1695 }); 1696 1697 $('.unitContainer').on("click", "input.compare", function (e) { 1698 e.stopPropagation(); 1699 }); 1700 1701 $('.unitContainer').on("change", "input.compare", function (e) { 1702 var checked = $("input.compare:checked"); 1703 1704 if (this.checked) { 1705 if (checked.length > 4) { 1706 e.preventDefault(); 1707 $(this).prop('checked', false); 1708 // long term, might want to do something else here 1709 alert('Only 2 to 4 items may be compared'); 1710 } 1711 else if (checked.length > 1) { 1712 checked.each(function () { 1713 $(this).closest('.compareContainer, .compare-container').find('label.compareText').addClass("hidden"); 1714 $(this).closest('.compareContainer, .compare-container').find('button.compareButton').removeClass("hidden"); 1715 $(this).closest('.compareContainer, .compare-container').addClass("compare-enabled"); 1716 }); 1717 } 1718 1719 if (checked.length <= 4) { 1720 $(this).closest('.compareContainer, .compare-container').addClass("selected"); 1721 } 1722 } 1723 else { 1724 $(this).closest('.compareContainer, .compare-container').removeClass("selected compare-enabled"); 1725 1726 $(this).closest('.compareContainer, .compare-container').find('label.compareText').removeClass("hidden"); 1727 $(this).closest('.compareContainer, .compare-container').find('button.compareButton').addClass("hidden"); 1728 1729 if (checked.length == 1) { 1730 checked.each(function () { 1731 $(this).closest('.compareContainer, .compare-container').find('label.compareText').removeClass("hidden"); 1732 $(this).closest('.compareContainer, .compare-container').find('button.compareButton').addClass("hidden"); 1733 $(this).closest('.compareContainer, .compare-container').removeClass("compare-enabled"); 1734 }); 1735 } 1736 } 1737 1738 e.stopPropagation(); 1739 }); 1740 1741 $("input.compare:checked").each(function () { 1742 $(this).closest('.compareContainer, .compare-container').find('label.compareText').addClass("hidden"); 1743 $(this).closest('.compareContainer, .compare-container').find('button.compareButton').removeClass("hidden"); 1744 $(this).closest('.compareContainer, .compare-container').addClass("selected compare-enabled"); 1745 }); 1746 1747 // show popover on favorites button when a favorite checkbox is clicked for the first time 1748 $('.unitContainer').on("click", "input.favorite", function (e) { 1749 if ($.cookie('irv_fav_popover_seen') !== 'true') { 1750 $('.btn-toolbar-favorites').popover({ 1751 placement: 'bottom', 1752 content: 'You can find all of the units you\'re interested in here.', 1753 }).popover('show'); 1754 1755 $.cookie('irv_fav_popover_seen', 'true', { expires: 30, path: '/' }); 1756 } 1757 }); 1758 1759 // close and destroy the favorites popup if a click happens anyw
1759here 1760 $('body').on('click', function () { 1761 $('.btn-toolbar-favorites').popover('destroy'); 1762 }); 1763 1764 var equalizeGridRowHeights = function (units) { 1765 var titleHeights = units.map(function (i, x) { return $(x).find('.unit-title.hidden-list-mode').height(); }).get(); 1766 var maxTitleHeight = Math.max.apply(null, titleHeights); 1767 units.each(function () { $(this).find('.unit-title.hidden-list-mode').height(maxTitleHeight); }); 1768 1769 var bodyHeights = units.map(function (i, x) { return $(x).find('.unit-body').height(); }).get(); 1770 var maxBodyHeight = Math.max.apply(null, bodyHeights); 1771 units.each(function () { $(this).find('.unit-body').height(maxBodyHeight); }); 1772 1773 var toolsHeights = units.map(function (i, x) { return $(x).find('.unit-tools.hidden-list-mode').height(); }).get(); 1774 var maxToolsHeight = Math.max.apply(null, toolsHeights); 1775 units.each(function () { $(this).find('.unit-tools.hidden-list-mode').height(maxToolsHeight); }); 1776 }; 1777 1778 var removeGridRowHeights = function (units) { 1779 units.each(function () { $(this).find('.unit-title.hidden-list-mode, .unit-body, .unit-tools.hidden-list-mode').css('height', ''); }); 1780 }; 1781 1782 var equalizeSectionGridRowHeights = function ($section) { 1783 var units = $section.find('.unit'); 1784 if (units.length < 1) 1785 return; 1786 1787 var horzUnitCount = 1; 1788 var previousTopOffset = $(units.first()).offset().top; 1789 for (var i = 1; i < units.length; i++) { 1790 if ($(units[i]).offset().top !== previousTopOffset) 1791 break; 1792 1793 previousTopOffset = $(units[i]).offset().top; 1794 horzUnitCount++; 1795 } 1796 1797 if (horzUnitCount <= 1) { 1798 removeGridRowHeights(units); 1799 return; 1800 } 1801 1802 var rowCount = Math.ceil(units.length / horzUnitCount); 1803 for (var i = 0; i < rowCount; i++) { 1804 var rowUnits = units.slice(i * horzUnitCount, i * horzUnitCount + horzUnitCount); 1805 equalizeGridRowHeights(rowUnits); 1806 } 1807 }; 1808 1809 $('ol.unitList, ol.sa-unit-list').each(function () { 1810 equalizeSectionGridRowHeights($(this)); 1811 }); 1812 1813 var displayModeChanged = function () { 1814 setTimeout(function () { 1815 $('ol.unitList, ol.sa-unit-list').each(function () { 1816 equalizeSectionGridRowHeights($(this)); 1817 }); 1818 }, 200); 1819 }; 1820 1821 $('.unit-list').on('grid-mode-activated', displayModeChanged); 1822 $('.unit-list').on('list-mode-activated', displayModeChanged); 1823 $('.unit-list').on('recalculate-grid-row-heights', function () { 1824 $('.unit-title.hidden-list-mode, .unit-body, .unit-tools.hidden-list-mode').css('height', ''); 1825 displayModeChanged(); 1826 }); 1827 1828 $('.unitContainer .unit').each(function () { 1829 var $this = $(this); 1830 $this.find('[data-toggle="tooltip"]').tooltip(); 1831 }); 1832 1833 $('.ajax-unit-list').on('unit-loaded', function (e, $unit) { 1834 equalizeSectionGridRowHeights($unit.closest('ol.unitList, ol.sa-unit-list')); 1835 $unit.find('[data-toggle="tooltip"]').tooltip(); 1836 $unit.find('.cycle-slideshow').cycle(); 1837 }); 1838 1839 $(window).resize($.debounce(function () { 1840 $('ol.unitList, ol.sa-unit-list').each(function () { 1841 equalizeSectionGridRowHeights($(this)); 1842 }); 1843 }, 500)); 1844 1845 // script for the "Go to Type" link in the gray bar at the top 1846 (function () { 1847 var popupOpen = false;
1848 $('.jump-to-label').click(function (e) { 1849 if (!popupOpen) { 1850 $('.jump-to-link-popup').removeClass("hidden"); 1851 popupOpen = true; 1852 e.stopPropagation(); 1853 } 1854 }); 1855 $("body").on("click", function (e) { 1856 if (popupOpen && !$(e.target).is('.jump-to-link-popup') && !$(e.target).closest('.jump-to-link-popup').length) { 1857 $('.jump-to-link-popup').addClass("hidden"); 1858 popupOpen = false; 1859 } 1860 }); 1861 })(); 1862 1863 // hide mobile filter link if filtered search isn't on the page 1864 if ($('#facetedSearch').length < 1) { 1865 $('.mobile-filter-link').addClass('hide'); 1866 } 1867 1868 // hide/show change location link based on location finder conditions 1869 const lotsFilter = document.getElementById('lotsFilter'); 1870 const changeZipLink = document.getElementById('changeZipLink'); 1871 if (changeZipLink && 'False' == 'True' && !lotsFilter) { 1872 changeZipLink.classList.remove('hide'); 1873 } 1874 }); 1875 </script>
1875 1876 </div> 1877 <!-- GAP marketing variables --> 1878
1878<script> 1879 window.GAPRVType = "Cargo Trailer" 1880 </script>
1880 1881 1882 1883 <div class="bottomPageContent"> 1884 1885 </div> 1886 1887<div class="disclaimer"> 1888 1889 1890<p class="disclaimer-main"> 1891 1892 C&R Auto & Trailer Sales is not responsible for any misprints, typos, or errors found in our website pages. Any price listed excludes sales tax, registration tags, and delivery fees. Manufacturer pictures, specifications, and features may be used in place of actual units on our lot. Please contact us @435-246-3048 for availability as our inventory changes rapidly. All calculated payments are an estimate only and do not constitute a commitment that financing or a specific interest rate or term is available. 1893 </p> 1894 1895 <p class="disclaimer-library_stock_photos"> 1896 1897 1898Manufacturer and/or stock photographs may be used and may not be representative of the particular unit being viewed. Where an image has a stock image indicator, please confirm specific unit details with your dealer representative. 1899 </p> 1900 1901</div> 1902 1903<!-- GAP marketing variables -->
1904<script> 1905 window.GAPPageType = "Listing"; 1906</script>
1906 1907 1908 </section> 1909 <aside id="sideBar" class=" 1910col-md-3 col-md-pull-9 1911 1912"> 1913 1914 1915 1916 1917 1918 1919 1920<div role="form" id="faceted-search" class="SearchPanel "> 1921 <div class="fs-modal-toolbar visible-xs visible-sm"> 1922 <div class="pull-left"> 1923 <a href="#" class="fs-clear-filters">Clear Filters</a> 1924 </div> 1925 <div class="pull-right"> 1926 <button class="fs-done btn btn-primary">Done</button> 1927 </div> 1928 <div class="clearfix"></div> 1929 </div> 1930 <label class="sort-by-label visible-xs visible-sm">Sort By</label> 1931 <div class="mobile-sort-options-wrapper"></div> 1932 <label class="mobile-filters-label visible-xs visible-sm">Filters</label> 1933 <div class="clear-filters-toolbar" style="display:none;"> 1934 <label class="clear-filters-label">Your Search</label> 1935 <div class="pull-right"><a href="javascript:void(0)" class="btn-clear-all">Clear All</a></div> 1936 <div class="selected-filters-wrapper"></div> 1937 <div class="clearfix"></div> 1938 </div> 1939 <div class="save-search-toolbar well well-sm hidden"> 1940 <button type="button" class="btn btn-primary save-search-btn">Save Search</button> 1941 </div> 1942 1943 1944 1945 <div class="panel-group" id="facetedSearch"> 1946<div class="panel panel-default" data-min-checkbox-count="2"><div class="panel-heading"><h4 class="panel-title"><button type="button"> Location <i class="pull-right fa fa-minus"></i> </button></h4></div><div id="lotsFilter" class="panel-collapse in" style="height: auto;"><div class="panel-body"><div class="form-group SearchRow lotsWrapper"><div class="CheckBoxList lots" data-field-name="lots"><div class="checkbox"><label><input type="checkbox" name="lots" value="1723" data-lat="48.1549106" data-long="-114.285901" /> Kalispell, MT <span class="count-wrapper">(<span class="count">46</span>)</span></label></div> 1947<div class="checkbox"><label><input type="checkbox" name="lots" value="1227" data-lat="41.6755977" data-long="-112.1379563" /> Tremonton, UT <span class="count-wrapper">(<span class="count">218</span>)</span></label></div></div></div></div></div></div><div class="panel panel-default" data-min-checkbox-count="2"><div class="panel-heading"><h4 class="panel-title"><button type="button"> Condition <i class="pull-right fa fa-minus"></i> </button></h4></div><div id="conditionFilter" class="panel-collapse in" style="height: auto;"><div class="panel-body"><div class="form-group SearchRow conditionWrapper"><div class="CheckBoxList condition" data-field-name="condition"><div class="checkbox"><label><input type="checkbox" name="condition" value="1" /> New <span class="count-wrapper">(<span class="count">236</span>)</span></label></div> 1948<div class="checkbox"><label><input type="checkbox" name="condition" value="0" /> Used <span class="count-wrapper">(<span class="count">28</span>)</span></label></div></div></div></div></div></div><div class="panel panel-default" data-min-checkbox-count="2"><div class="panel-heading"><h4 class="panel-title"><button type="button"> Type <i class="pull-right fa fa-minus"></i> </button></h4></div><div id="typesFilter" class="panel-collapse in" style="height: auto;"><div class="panel-body"><div class="form-group SearchRow typesWrapper"><div class="CheckBoxList types" data-field-name="types"><div class="checkbox"><label><input type="checkbox" name="types" value="55" /> Cargo Trailer <span class="count-wrapper">(<span class="count">2</span>)</span></label></div> 1949<div class="checkbox"><label><input type="checkbox" name="types" value="3" /> Destination Trailer <span class="count-wrapper">(<span class="count">3</span>)</span></label></div> 1950<div class="checkbox"><label><input type="checkbox" name="types" value="57" /> Dump Trailer <span class="count-wrapper">(<span class="count">5</span>)</span></label></div> 1951<div class="checkbox"><label><input type="checkbox" name="types" value="5" /> Fifth Wheel <span class="count-wrapper">(<span class="count">11</span>)</span></label></div> 1952<div class="checkbox"><label><input type="checkbox" name="types" value="128" /> Flat Bed Trailer <span class="count-wrapper">(<span class="count">2</span>)</span></label></div> 1953<div class="checkbox"><label><input type="checkbox" name="types" value="59" /> Horse Trailer <span class="count-wrapper">(<span class="count">64</span>)</span></label></div> 1954<div class="checkbox"><label><input type="checkbox" name="types" value="60" /> Horse Trailers with living quarters <span class="count-wrapper">(<span class="count">26</span>)</span></label></div> 1955<div class="checkbox"><label><input type="checkbox" name="types" value="61" /> Livestock Trailer <span class="count-wrapper">(<span class="count">10</span>)</span></label></div> 1956<div class="checkbox"><label><input type="checkbox" name="types" value="65" /> Snowmobile Trailer <span class="count-wrapper">(<span class="count">60</span>)</span></label></div> 1957<div class="checkbox"><label><input type="checkbox" name="types" value="26" /> Toy Hauler Fifth Wheel <span class="count-wrapper">(<span class="count">17</span>)</span></label></div> 1958<div class="checkbox"><label><input type="checkbox" name="types" value="28" /> Toy Hauler Travel Trailer <span class="count-wrapper">(<span class="count">14</span>)</span></label></div> 1959<div class="checkbox"><label><input type="checkbox" name="types" value="29" /> Travel Trailer <span class="count-wrapper">(<span class="count">49</span>)</span></label></div> 1960<div class="checkbox"><label><input type="checkbox" name="types" value="68" /> Utility Trailer <span class="count-wrapper">(<span class="count">1</span>)</span></label></div></div></div></div></div></div><div class="panel panel-default" data-min-checkbox-count="2"><div class="panel-heading"><h4 class="panel-title"><button type="button"> Price Range <i class="pull-right fa fa-plus"></i> </button></h4></div><div id="priceFilter" class="panel-collapse collapse" style="height: auto;"><div class="panel-body"><div class="form-group SearchRow priceWrapper"><div class="CheckBoxList price" data-field-name="price"><div class="checkbox"><label>
1960<input type="checkbox" name="price" value="0|10000" /> Under $10,000 <span class="count-wrapper">(<span class="count">4</span>)</span></label></div> 1961<div class="checkbox"><label><input type="checkbox" name="price" value="10000|15000" /> $10,000 to $15,000 <span class="count-wrapper">(<span class="count">13</span>)</span></label></div> 1962<div class="checkbox"><label><input type="checkbox" name="price" value="15000|30000" /> $15,000 to $30,000 <span class="count-wrapper">(<span class="count">61</span>)</span></label></div> 1963<div class="checkbox"><label><input type="checkbox" name="price" value="30000|45000" /> $30,000 to $45,000 <span class="count-wrapper">(<span class="count">66</span>)</span></label></div> 1964<div class="checkbox"><label><input type="checkbox" name="price" value="45000|60000" /> $45,000 to $60,000 <span class="count-wrapper">(<span class="count">52</span>)</span></label></div> 1965<div class="checkbox"><label><input type="checkbox" name="price" value="60000|75000" /> $60,000 to $75,000 <span class="count-wrapper">(<span class="count">18</span>)</span></label></div> 1966<div class="checkbox"><label><input type="checkbox" name="price" value="75000|90000" /> $75,000 to $90,000 <span class="count-wrapper">(<span class="count">23</span>)</span></label></div> 1967<div class="checkbox"><label><input type="checkbox" name="price" value="90000|105000" /> $90,000 to $105,000 <span class="count-wrapper">(<span class="count">9</span>)</span></label></div> 1968<div class="checkbox"><label><input type="checkbox" name="price" value="105000|120000" /> $105,000 to $120,000 <span class="count-wrapper">(<span class="count">3</span>)</span></label></div> 1969<div class="checkbox"><label><input type="checkbox" name="price" value="120000|135000" /> $120,000 to $135,000 <span class="count-wrapper">(<span class="count">3</span>)</span></label></div> 1970<div class="checkbox"><label><input type="checkbox" name="price" value="135000|150000" /> $135,000 to $150,000 <span class="count-wrapper">(<span class="count">2</span>)</span></label></div> 1971<div class="checkbox"><label><input type="checkbox" name="price" value="150000|200000" /> $150,000 to $200,000 <span class="count-wrapper">(<span class="count">7</span>)</span></label></div> 1972<div class="checkbox"><label><input type="checkbox" name="price" value="250000|300000" /> $250,000 to $300,000 <span class="count-wrapper">(<span class="count">1</span>)</span></label></div></div></div></div></div></div><div class="panel panel-default" data-min-checkbox-count="2"><div class="panel-heading"><h4 class="panel-title"><button type="button"> Monthly Payment <i class="pull-right fa fa-plus"></i> </button></h4></div><div id="monthly_paymentFilter" class="panel-collapse collapse" style="height: auto;"><div class="panel-body"><div class="form-group SearchRow monthly_paymentWrapper"><div class="CheckBoxList monthly_payment" data-field-name="monthly_payment"><div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="0|99" /> Under $99 <span class="count-wrapper">(<span class="count">5</span>)</span></label></div> 1973<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="100|149" /> $100 to $149 <span class="count-wrapper">(<span class="count">23</span>)</span></label></div> 1974<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="150|199" /> $150 to $199 <span class="count-wrapper">(<span class="count">23</span>)</span></label></div> 1975<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="200|249" />
1975 $200 to $249 <span class="count-wrapper">(<span class="count">22</span>)</span></label></div> 1976<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="250|299" /> $250 to $299 <span class="count-wrapper">(<span class="count">25</span>)</span></label></div> 1977<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="300|399" /> $300 to $399 <span class="count-wrapper">(<span class="count">51</span>)</span></label></div> 1978<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="400|499" /> $400 to $499 <span class="count-wrapper">(<span class="count">39</span>)</span></label></div> 1979<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="500|749" /> $500 to $749 <span class="count-wrapper">(<span class="count">43</span>)</span></label></div> 1980<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="750|999" /> $750 to $999 <span class="count-wrapper">(<span class="count">14</span>)</span></label></div> 1981<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="1000|1249" /> $1,000 to $1,249 <span class="count-wrapper">(<span class="count">6</span>)</span></label></div> 1982<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="1250|1499" /> $1,250 to $1,499 <span class="count-wrapper">(<span class="count">3</span>)</span></label></div> 1983<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="1500|1999" /> $1,500 to $1,999 <span class="count-wrapper">(<span class="count">4</span>)</span></label></div> 1984<div class="checkbox"><label><input type="checkbox" name="monthly_payment" value="2000|1000000" /> $2,000 and above <span class="count-wrapper">(<span class="count">1</span>)</span></label></div></div></div></div></div></div><div class="panel panel-default" data-min-checkbox-count="2"><div class="panel-heading"><h4 class="panel-title"><button type="button"> Manufacturer <i class="pull-right fa fa-plus"></i> </button></h4></div><div id="manufacturerFilter" class="panel-collapse collapse" style="height: auto;"><div class="panel-body"><div class="form-group SearchRow manufacturerWrapper"><div class="CheckBoxList manufacturer" data-field-name="manufacturer"><div class="checkbox"><label><input type="checkbox" name="manufacturer" value="037216" /> 037216 <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 1985<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="4 star" /> 4 Star <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 1986<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="atc" /> ATC <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 1987<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="atc trailers" /> ATC Trailers <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 1988<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="bar m" /> Bar M <span class="count-wrapper">(<span class="count">9</span>)</span></label></div> 1989<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="bar m" /> BAR M <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 1990<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="bar m trailers" /> Bar M Trailers <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 1991<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="bar- m" /> BAR- M <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 1992<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="bar-m" /> Bar-M <span class="count-wrapper">(<span class="count">6</span>)</span></label></div> 1993<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="bar-m trailers" /> Bar-M Trailers <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 1994<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="bloomer" /> Bloomer <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 1995<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="cb" /> CB <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 1996<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="cedar creek" /> Cedar Creek <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 1997<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="cimarron" /> Cimarron <span class="count-wrapper">(<span class="count">2</span>)</span></label></div> 1998<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="coachmen" /> Coachmen <span class="count-wrapper">(<span class="count">3</span>)</span></label></div> 1999<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="coachmen rv" /> Coachmen RV <span class="count-wrapper">(<span class="count">3</span>)</span></label></div> 2000<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="crossroads" /> CrossRoads <span class="count-wrapper">(<span class="count">4</span>)</span></label></div> 2001<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="crossroads rv" /> CrossRoads RV <span class="count-wrapper">(<span class="count">5</span>)</span></label></div> 2002<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="elite" /> Elite <span class="count-wrapper">(<span class="count">12</span>)</span></label></div> 2003<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="elite trailer" /> Elite Trailer <span class="count-wrapper">(<span class="count">2</span>)</span></label></div> 2004<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="forest river" /> Forest River <span class="count-wrapper">(<span class="count">16</span>)</span></label></div> 2005<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="forest river rv" /> Forest River RV <span class="count-wrapper">(<span class="count">28</span>)</span></label></div> 2006<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="gulf stream" /> Gulf Stream <span class="count-wrapper">(<span class="count">2</span>)</span></label></div> 2007<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="gulf stream rv" /> Gulf Stream RV <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2008<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="gulfstream" /> Gulfstream <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2009<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="heartland" /> Heartland <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2010<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="jayco" /> Jayco <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2011<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="keystone" /> Keystone <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2012<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="keystone rv" /> Keystone RV <span class="count-wrapper">(<span class="count">7</span>)</span></label></div> 2013<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="kz" /> KZ <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2014<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="lakota" /> Lakota <span class="count-wrapper">(<span class="count">6</span>)</span></label></div> 2015<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="merhow" /> Merhow <span class="count-wrapper">(<span class="count">10</span>)</span></label></div> 2016<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="merhow industries" /> Merhow Industries <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2017<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="trails west" /> Trails West <span class="count-wrapper">(<span class="count">114</span>)</span></label></div> 2018<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="trails west" /> TRAILS WEST <span class="count-wrapper">(<span class="count">8</span>)</span></label></div> 2019<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="trials west" /> Trials West <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2020<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="walton" /> Walton <span class="count-wrapper">(<span class="count">6</span>)</span></label></div> 2021<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="walton trailers" /> Walton Trailers <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2022<div class="checkbox"><label><input type="checkbox" name="manufacturer" value="winnebago" /> Winnebago <span class="count-wrapper">(<span class="count">1</span>)</span></label></div></div></div></div></div></div><div class="panel panel-default" data-min-checkbox-count="1"><div class="panel-heading"><h4 class="panel-title"><button type="button"> Features <i class="pull-right fa fa-plus"></i> </button></h4></div><div id="Features-prop-4Filter" class="panel-collapse collapse" style="height: auto;"><div class="panel-body"><div class="form-group SearchRow Features-prop-4Wrapper"><div class="CheckBoxList Features-prop-4" data-field-name="Features-prop-4"><div class="checkbox"><label><input type="checkbox" name="Features-prop-4" value="61" /> Bath and a Half <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2023<div class="checkbox"><label><input type="checkbox" name="Features-prop-4" value="11" /> Front Bedroom <span class="count-wrapper">(<span class="count">6</span>)</span></label></div> 2024<div class="checkbox"><label><input type="checkbox" name="Features-prop-4" value="60" /> Kitchen Island <span class="count-wrapper">(<span class="count">5</span>)</span></label></div> 2025<div class="checkbox"><label><input type="checkbox" name="Features-prop-4" value="63" /> Loft <span class="count-wrapper">(<span class="count">2</span>)</span></label></div> 2026<div class="checkbox"><label><input type="checkbox" name="Features-prop-4" value="68" /> Murphy Bed <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2027<div class="checkbox"><label><input type="checkbox" name="Features-prop-4" value="58" /> Outdoor Kitchen <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2028<div class="checkbox"><label><input type="checkbox" name="Features-prop-4" value="20" /> Rear Bath <span class="count-wrapper">(<span class="count">2</span>)</span></label></div> 2029<div class="checkbox"><label><input type="checkbox" name="Features-prop-4" value="3" /> Rear Living Area <span class="count-wrapper">(<span class="count">4</span>)</span></label></div> 2030<div class="checkbox"><label><input type="checkbox" name="Features-prop-4" value="25" /> Two Entry/Exit Doors <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2031<div class="checkbox"><label><input type="checkbox" name="Features-prop-4" value="64" /> Two Full Baths <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2032<div class="checkbox"><label><input type="checkbox" name="Features-prop-4" value="59" /> U Shaped Dinette <span class="count-wrapper">(<span class="count">1</span>)</span></label></div></div></div></div></div></div><div class="panel panel-default" data-min-checkbox-count="2"><div class="panel-heading"><h4 class="panel-title"><button type="button"> Weight <i class="pull-right fa fa-plus"></i> </button></h4></div><div id="Dry_Weight-prop-17Filter" class="panel-collapse collapse" style="height: auto;"><div class="panel-body"><div class="form-group SearchRow Dry_Weight-prop-17Wrapper"><div class="CheckBoxList Dry_Weight-prop-17" data-field-name="Dry_Weight-prop-17"><div class="checkbox"><label><input type="checkbox" name="Dry_Weight-prop-17" value="3500|5500" /> 3500 to 5500 lbs <span class="count-wrapper">(<span class="count">8</span>)</span></label></div> 2033<div class="checkbox"><label><input type="checkbox" name="Dry_Weight-prop-17" value="5500|8500" /> 5500 to 8500 lbs <span class="count-wrapper">(<span class="count">7</span>)</span></label></div> 2034<div class="checkbox"><label><input type="checkbox" name="Dry_Weight-prop-17" value="8500|11000" /> 8500 to 11000 lbs <span class="count-wrapper">(<span class="count">2</span>)</span></label></div> 2035<div class="checkbox"><label><input type="checkbox" name="Dry_Weight-prop-17" value="11000|14000" /> 11000 to 14000 lbs <span class="count-wrapper">(<span class="count">3</span>)</span></label></div> 2036<div class="checkbox"><label><input type="checkbox" name="Dry_Weight-prop-17" value="14000|999999" /> 14000 lbs and up <span class="count-wrapper">(<span class="count">4</span>)</span></label></div></div></div></div></div></div><div class="panel panel-default" data-min-checkbox-count="2"><div class="panel-heading"><h4 class="panel-title"><button type="button"> Sleeps <i class="pull-right fa fa-plus"></i> </button></h4></div><div id="Sleeps-prop-5Filter" class="panel-collapse collapse" style="height: auto;"><div class="panel-body"><div class="form-group SearchRow Sleeps-prop-5Wrapper"><div class="CheckBoxList Sleeps-prop-5" data-field-name="Sleeps-prop-5"><div class="checkbox"><label><input type="checkbox" name="Sleeps-prop-5" value="2|4" /> 2 to 4 <span class="count-wrapper">(<span class="count">6</span>)</span></label></div> 2037<div class="checkbox"><label><input type="checkbox" name="Sleeps-prop-5" value="4|6" /> 4 to 6 <span class="count-wrapper">(<span class="count">6</span>)</span></label></div> 2038<div class="checkbox"><label><input type="checkbox" name="Sleeps-prop-5" value="6|8" /> 6 to 8 <span class="count-wrapper">(<span class="count">2</span>)</span></label></div></div></div></div></div></div><div class="panel panel-default" data-min-checkbox-count="2"><div class="panel-heading"><h4 class="panel-title"><button type="button"> Year <i class="pull-right fa fa-plus"></i> </button></h4></div><div id="yearFilter" class="panel-collapse collapse" style="height: auto;"><div class="panel-body"><div class="form-group SearchRow yearWrapper"><div class="CheckBoxList year" data-field-name="year"><div class="checkbox"><label><input type="checkbox" name="year" value="2027" /> 2027 <span class="count-wrapper">(<span class="count">102</span>)</span></label></div> 2039<div class="checkbox"><label><input type="checkbox" name="year" value="2026" /> 2026 <span class="count-wrapper">(<span class="count">130</span>)</span></label></div> 2040<div class="checkbox"><label><input type="checkbox" name="year" value="2025" /> 2025 <span class="count-wrapper">(<span class="count">7</span>)</span></label></div> 2041<div class="checkbox"><label><input type="checkbox" name="year" value="2024" /> 2024 <span class="count-wrapper">(<span class="count">6</span>)</span></label></div> 2042<div class="checkbox"><label><input type="checkbox" name="year" value="2023" /> 2023 <span class="count-wrapper">(<span class="count">3</span>)</span></label></div> 2043<div class="checkbox"><label><input type="checkbox" name="year" value="2022" /> 2022 <span class="count-wrapper">(<span class="count">3</span>)</span></label></div> 2044<div class="checkbox"><label><input type="checkbox" name="year" value="2021" /> 2021 <span class="count-wrapper">(<span class="count">2</span>)</span></label></div> 2045<div class="checkbox"><label><input type="checkbox" name="year" value="2020" /> 2020 <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2046<div class="checkbox"><label><input type="checkbox" name="year" value="2019" /> 2019 <span class="count-wrapper">
2046(<span class="count">1</span>)</span></label></div> 2047<div class="checkbox"><label><input type="checkbox" name="year" value="2018" /> 2018 <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2048<div class="checkbox"><label><input type="checkbox" name="year" value="2015" /> 2015 <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2049<div class="checkbox"><label><input type="checkbox" name="year" value="2013" /> 2013 <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2050<div class="checkbox"><label><input type="checkbox" name="year" value="2011" /> 2011 <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2051<div class="checkbox"><label><input type="checkbox" name="year" value="2010" /> 2010 <span class="count-wrapper">(<span class="count">2</span>)</span></label></div> 2052<div class="checkbox"><label><input type="checkbox" name="year" value="2008" /> 2008 <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2053<div class="checkbox"><label><input type="checkbox" name="year" value="2006" /> 2006 <span class="count-wrapper">(<span class="count">1</span>)</span></label></div> 2054<div class="checkbox"><label><input type="checkbox" name="year" value="2001" /> 2001 <span class="count-wrapper">(<span class="count">1</span>)</span></label></div></div></div></div></div></div> </div> 2055 2056 <div class="form-group SearchRow StockNumberWrapper"> 2057 <label for="filteredSearchStockNumber" class="sr-only">Stock # or Model</label> 2058 <input 2059 name="stockNumber" 2060 id="filteredSearchStockNumber" 2061 type="text" 2062 class="form-control SearchStockNumber" 2063 placeholder="Stock # or Model" 2064 /> 2065 </div> 2066 2067 <button type="submit" name="SearchButton" class="btn btn-primary SearchButton"> 2068 Search 2069 </button> 2070 2071 <div class="clearBoth"></div> 2072 2073</div> 2074
2075<script type="text/javascript"> 2076 2077 document.addEventListener("DOMContentLoaded", () => { 2078 /////////// Location Finder //////////// 2079 2080 function changeQueryParam(entries) { 2081 const url = new URL(window.location.href); 2082 entries.forEach((entry) => { 2083 const [key, value] = entry; 2084 value !== null ? url.searchParams.set(key, value) : url.searchParams.delete(key); 2085 }); 2086 window.History.pushState({ noUpdate: true }, document.title, url.toString()); 2087 } 2088 2089 function resetLocationFinder() { 2090 const rangeInput = document.getElementById('distanceRange'); 2091 if (rangeInput) rangeInput.value = 'any'; 2092 changeQueryParam([['zip', null], ['distance', null]]); 2093 } 2094 2095 function setZipCookie(zip) { 2096 if (zip) { 2097 $.cookie('user_zip', zip, { expires: 90, path: '/' }); 2098 } else { 2099 $.cookie('user_zip', null); 2100 } 2101 } 2102 2103 function setGeolocationCookies(coords) { 2104 if (coords.length === 2) { 2105 $.cookie('user_lat', coords[0], { expires: 90, path: '/' }); 2106 $.cookie('user_lon', coords[1], { expires: 90, path: '/' }); 2107 } 2108 } 2109 2110 function toggleLocFinderErrMsg(show, message = '') { 2111 const errorMsgWrapper = document.querySelector('#filter-loc-finder .location-finder-error'); 2112 const errorMsg = errorMsgWrapper?.querySelector('.msg') ?? null; 2113 2114 if (errorMsgWrapper) { 2115 errorMsg.textContent = message; 2116 show ? errorMsgWrapper.classList.add('show') : errorMsgWrapper.classList.remove('show'); 2117 } 2118 } 2119 2120 async function useLocationFinder(userZip = '', range) { 2121 let geoCoords = !$.cookie('user_lat') || !$.cookie('user_lon') ? null : [$.cookie('user_lat'), $.cookie('user_lon')]; 2122 const useMyLocation = document.querySelector(".use-my-location-btn")?.classList.contains('active') ?? false; 2123 async function getGeoCoords(zip) { 2124 const data = await $.get('/rebraco/datanugget/getgeocoords?zip=' + zip); 2125 const coords = (data || '').split(','); 2126 return coords.length === 2 ? coords : null; 2127 } 2128 2129 function getDistanceToLocation(userCoords, locCoords) { 2130 if (!userCoords || !locCoords) return null; 2131 2132 function degToRadians(value) { 2133 return value * Math.PI / 180; 2134 } 2135 2136 const [userLat, userLong] = userCoords; 2137 const [locLat, locLong] = locCoords; 2138 const R = 3956; // mi 2139 const dLat = degToRadians(locLat-userLat); 2140 const dLon = degToRadians(locLong-userLong); 2141 const lat1 = degToRadians(userLat); 2142 const lat2 = degToRadians(locLat); 2143 const a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 2144 const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 2145 const distance = R * c; 2146 2147 return Math.floor(distance); 2148 } 2149 2150 function selectLocationsInRange(range) { 2151 toggleLocFinderErrMsg(false); 2152 2153 // iterate over location inputs and handle necessary updates 2154 const locationInputs = document.querySelectorAll('#lotsFilter .CheckBoxList input'); 2155 let locFound = false; 2156 let changedInput = null; 2157 2158 locationInputs.forEach((input) => { 2159 const inputWasChecked = input.checked; 2160 if (range === 'any') { 2161 input.checked = false; 2162 if (inputWasChecked) { 2163 locFound = true; 2164 changedInput = input; 2165 } 2166 } else if (!geoCoords) { 2167 input.checked = false; 2168 if (inputWasChecked) { 2169 changedInput = input; 2170 } 2171 } else { 2172 const locDistance = getDistanceToLocation(geoCoords, [input.dataset.lat, input.dataset.long]); 2173 if (locDistance <= Number(range)) { 2174 input.checked = true; 2175 locFound = true; 2176 changedInput = input; 2177 } else { 2178 input.checked = false; 2179 if (inputWasChecked) { 2180 changedInput = input; 2181 } 2182 } 2183 } 2184 }); 2185 2186 // if an input changed, trigger an eval of the inputs to get new results 2187 const sortSelect = document.getElementById("sortOptions"); 2188 if (changedInput) { 2189 getResultsFromInputChange(changedInput); 2190 } else if (sortSelect?.value === "distance-asc") { 2191 $('.ajax-unit-list').ajaxUnitList('update', false); 2192 } 2193
2194 // trigger a location finder error message if no locs found 2195 const msg = 'No locations found for given zipcode/range.' 2196 locFound || range === 'any' ? toggleLocFinderErrMsg(false) : toggleLocFinderErrMsg(true, msg); 2197 } 2198 2199 // validate inputs, set cookies and query params 2200 if (!range) { 2201 toggleLocFinderErrMsg(true, 'Please enter a radius.'); 2202 return; 2203 } 2204 2205 if (useMyLocation) { 2206 try { 2207 await initUseGeolocation(); 2208 changeQueryParam([['zip', null], ['distance', range]]); 2209 $('.distance-sort-option').text('Distance (Closest to my location)'); 2210 } catch(error) { 2211 console.log(error); 2212 return; 2213 } 2214 } else if (userZip) { 2215 changeQueryParam([['zip', userZip], ['distance', range]]); 2216 setZipCookie(userZip); 2217 geoCoords = await getGeoCoords(userZip); 2218 setGeolocationCookies(geoCoords); 2219 $('.distance-sort-option').text(`Distance (Closest to ${userZip})`); 2220 } else { 2221 toggleLocFinderErrMsg(true, 'Please enter a zipcode.'); 2222 return; 2223 } 2224 selectLocationsInRange(range); 2225 } 2226 2227 async function initUseGeolocation() { 2228 return new Promise((resolve, reject) => { 2229 if (navigator.geolocation) { 2230 function onSuccess(userPosition) { 2231 changeQueryParam([['zip', null]]); 2232 //setZipCookie(null); 2233 setGeolocationCookies([userPosition.coords.latitude, userPosition.coords.longitude]); 2234 const sortSelect = document.getElementById("sortOptions"); 2235 if (sortSelect?.value === "distance-asc") { 2236 $('.ajax-unit-list').ajaxUnitList('update', false); 2237 } 2238 resolve(); 2239 } 2240 2241 function onError(error) { 2242 let msg; 2243 switch(error.code) { 2244 case 1: msg = 'Geolocation access has been denied.'; break; 2245 default: msg = error.message; 2246 } 2247 toggleLocFinderErrMsg(true, msg); 2248 reject(msg); 2249 } 2250 2251 navigator.geolocation.getCurrentPosition(onSuccess, onError); 2252 } else { 2253 const msg = 'Geolocation is not supported by this browser.' 2254 toggleLocFinderErrMsg(true, msg); 2255 reject(msg); 2256 } 2257 }) 2258 } 2259 2260 async function toggleLocationTabs(clickedTab) { 2261 const locationTabs = document.querySelectorAll("#filter-loc-tabs.location-type-wrapper .btn-group .btn"); 2262 const zipInput = document.querySelector("#filter-loc-tabs .location-zip"); 2263 let useMyLocation = false; 2264 2265 toggleLocFinderErrMsg(false); 2266 if (clickedTab.classList.contains('active')) return; 2267 2268 locationTabs.forEach((tab) => { 2269 if (tab.classList.contains("active")) { 2270 tab.classList.remove("active"); 2271 } 2272 else { 2273 tab.classList.add("active"); 2274 if (tab.classList.contains("use-my-location-btn")) { 2275 $.cookie('user_location_type', 'loc', { path: '/' }); 2276 zipInput.style.display = "none"; 2277 zipInput.value = ""; 2278 useMyLocation = true; 2279 } 2280 else { 2281 zipInput.style.display = "block"; 2282 $.cookie('user_location_type', 'zip', { path: '/' }); 2283 } 2284 } 2285 }); 2286 2287 if (useMyLocation) { 2288 try { 2289 await initUseGeolocation(); 2290 $('.distance-sort-option').text('Distance (Closest to my location)'); 2291 } catch(error) { 2292 console.log(error); 2293 } 2294 } 2295 } 2296 2297 const distanceSearchBtn = document.getElementById('distanceSearchBtn'); 2298 const lotsFilter = document.getElementById('lotsFilter'); 2299 const locationFinder = document.getElementById('filter-loc-finder'); 2300 if (distanceSearchBtn && lotsFilter) { 2301 locationFinder.classList.remove('hide'); 2302 // init location type tab cookie 2303 const locationTypeCookie = $.cookie('user_location_type'); 2304 const zipTab = document.querySelector(".use-zip-btn"); 2305 const locationTab = document.querySelector(".use-my-location-btn"); 2306 if (!locationTypeCookie) { 2307 $.cookie('user_location_type', 'zip', { path: '/' }); 2308 } else { 2309 if (locationTypeCookie === 'zip') { 2310 toggleLocationTabs(zipTab); 2311 } else { 2312 toggleLocationTabs(locationTab); 2313 } 2314 } 2315 2316 const zipInput = document.getElementById('locationZip'); 2317 const distanceInput = document.getElementById('distanceRange');
2318 const originalZip = document.getElementById('originalLocationZip'); 2319 2320 // set zip input value to zip cookie value 2321 zipInput.value = $.cookie('user_zip') ?? ''; 2322 originalZip.value = $.cookie('user_zip') ?? ''; 2323 2324 // location finder submit handlers 2325 distanceSearchBtn.addEventListener('click', async function() { 2326 await useLocationFinder(zipInput.value ?? '', distanceInput.value); 2327 window.EventBoss.trigger('shop_by_distance_click'); 2328 }); 2329 2330 zipInput.addEventListener('keydown', (e) => { 2331 if (e.key === 'Enter') { 2332 e.preventDefault(); 2333 useLocationFinder(zipInput.value ?? '', distanceInput.value); 2334 } 2335 }); 2336 2337 distanceInput.addEventListener('change', function () { 2338 window.EventBoss.trigger('shop_by_distance_interaction'); 2339 }); 2340 2341 // location type tab event handlers 2342 const locationTabs = document.querySelectorAll("#filter-loc-tabs.location-type-wrapper .btn-group .btn"); 2343 locationTabs.forEach((tab) => { 2344 tab.addEventListener("click", function() { 2345 toggleLocationTabs(this); 2346 }); 2347 }); 2348 } 2349 2350 ///////////// End Location Finder //////////////////////// 2351 2352 var isListingPage = $('.ajax-unit-list').length > 0; 2353 2354 // TODO later: This is temporary, until we have a better way to remove the "Go to Type" dropdown when faceted search is on a page 2355 $('.listing-jump-to-links').remove(); 2356 2357 // multi value columns are the ones where one unit can have more than one value (e.g. features) 2358 var multiValueColumns = {"price": { separator: ",", filterMode: "or"},"monthly_payment": { separator: ",", filterMode: "or"},"Features-prop-4": { separator: "|", filterMode: "and"},"Dry_Weight-prop-17": { separator: ",", filterMode: "or"},"Sleeps-prop-5": { separator: ",", filterMode: "or"}}; 2359 var searchCombos = [{"lots": "1227","condition": "1","types": "60","price": "105000|120000","monthly_payment": "750|999","manufacturer": "merhow","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2360{"lots": "1227","condition": "1","types": "29","price": "45000|60000","monthly_payment": "400|499","manufacturer": "forest river","Features-prop-4": "|11|58|3|","Dry_Weight-prop-17": "5500|8500","Sleeps-prop-5": "2|4,4|6","year": "2026",count: "1"}, 2361{"lots": "1227","condition": "0","types": "28","price": "15000|30000","monthly_payment": "200|249","manufacturer": "heartland","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2013",count: "1"}, 2362{"lots": "1227","condition": "1","types": "59","price": "30000|45000","monthly_payment": "300|399","manufacturer": "merhow","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "2"},
2363{"lots": "1227","condition": "1","types": "28","price": "75000|90000","monthly_payment": "750|999","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2364{"lots": "1227","condition": "1","types": "61","price": "15000|30000","monthly_payment": "200|249","manufacturer": "merhow","Features-prop-4": "","Dry_Weight-prop-17": "3500|5500","Sleeps-prop-5": "","year": "2025",count: "1"}, 2365{"lots": "1227","condition": "1","types": "29","price": "15000|30000","monthly_payment": "200|249","manufacturer": "forest river","Features-prop-4": "","Dry_Weight-prop-17": "3500|5500","Sleeps-prop-5": "2|4","year": "2026",count: "1"}, 2366{"lots": "1227","condition": "1","types": "65","price": "45000|60000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2367{"lots": "1227","condition": "1","types": "28","price": "60000|75000","monthly_payment": "500|749","manufacturer": "keystone rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2368{"lots": "1723","condition": "1","types": "59","price": "45000|60000","monthly_payment": "500|749","manufacturer": "merhow","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2369{"lots": "1227","condition": "1","types": "60","price": "60000|75000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "3"}, 2370{"lots": "1227","condition": "1","types": "28","price": "135000|150000","monthly_payment": "1000|1249","manufacturer": "keystone rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2371{"lots": "1723","condition": "1","types": "57","price": "15000|30000","monthly_payment": "100|149","manufacturer": "walton","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2372{"lots": "1227","condition": "1","types": "65","price": "45000|60000","monthly_payment": "400|499","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "2"},
2373{"lots": "1227","condition": "1","types": "3","price": "75000|90000","monthly_payment": "500|749","manufacturer": "crossroads rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2374{"lots": "1227","condition": "0","types": "29","price": "15000|30000","monthly_payment": "200|249","manufacturer": "037216","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2025",count: "1"}, 2375{"lots": "1227","condition": "1","types": "59","price": "30000|45000","monthly_payment": "300|399","manufacturer": "bar m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2376{"lots": "1723","condition": "1","types": "60","price": "250000|300000","monthly_payment": "2000|1000000","manufacturer": "elite","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2377{"lots": "1227","condition": "0","types": "65","price": "15000|30000","monthly_payment": "200|249","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2015",count: "1"}, 2378{"lots": "1723","condition": "1","types": "65","price": "45000|60000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2379{"lots": "1227","condition": "1","types": "60","price": "90000|105000","monthly_payment": "750|999","manufacturer": "lakota","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2380{"lots": "1227","condition": "1","types": "3","price": "75000|90000","monthly_payment": "500|749","manufacturer": "forest river","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2381{"lots": "1227","condition": "1","types": "29","price": "30000|45000","monthly_payment": "250|299","manufacturer": "crossroads","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2382{"lots": "1227","condition": "1","types": "29","price": "30000|45000","monthly_payment": "250|299","manufacturer": "gulf stream","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2383{"lots": "1227","condition": "1","types": "5","price": "90000|105000","monthly_payment": "750|999","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2384{"lots": "1227","condition": "1","types": "60","price": "105000|120000","monthly_payment": "750|999","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2385{"lots": "1227","condition": "1","types": "28","price": "60000|75000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2386{"lots": "1227","condition": "1","types": "28","price": "150000|200000","monthly_payment": "1250|1499","manufacturer": "keystone rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2387{"lots": "1227","condition": "0","types": "60","price": "30000|45000","monthly_payment": "300|399","manufacturer": "lakota","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2021",count: "1"}, 2388{"lots": "1227","condition": "1","types": "29","price": "15000|30000","monthly_payment": "200|249","manufacturer": "forest river","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2389{"lots": "1227","condition": "1","types": "29","price": "30000|45000","monthly_payment": "300|399","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "6"}, 2390{"lots": "1723","condition": "1","types": "60","price": "150000|200000","monthly_payment": "1500|1999","manufacturer": "merhow","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2391{"lots": "1227","condition": "1","types": "59","price": "30000|45000","monthly_payment": "300|399","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2392{"lots": "1227","condition": "1","types": "65","price": "30000|45000","monthly_payment": "","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2393{"lots": "1723","condition": "1","types": "65","price": "45000|60000","monthly_payment": "400|499","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "3"}, 2394{"lots": "1227","condition": "1","types": "60","price": "135000|150000","monthly_payment": "1000|1249","manufacturer": "lakota","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2395{"lots": "1723","condition": "1","types": "59","price": "15000|30000","monthly_payment": "200|249","manufacturer": "bar m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2396{"lots": "1227","condition": "1","types": "5","price": "45000|60000","monthly_payment": "400|499","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2397{"lots": "1227","condition": "1","types": "5","price": "90000|105000","monthly_payment": "750|999","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2398{"lots": "1723","condition": "1","types": "57","price": "10000|15000","monthly_payment": "100|149","manufacturer": "walton","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "3"}, 2399{"lots": "1227","condition": "1","types": "29","price": "15000|30000","monthly_payment": "200|249","manufacturer": "gulf stream","Features-prop-4": "|68|20|59|","Dry_Weight-prop-17": "3500|5500","Sleeps-prop-5": "2|4,4|6","year": "2025",count: "1"}, 2400{"lots": "1723","condition": "1","types": "60","price": "90000|105000","monthly_payment": "750|999","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2401{"lots": "1723","condition": "1","types": "60","price": "105000|120000","monthly_payment": "1000|1249","manufacturer": "merhow","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2402{"lots": "1227","condition": "0","types": "60","price": "150000|200000","monthly_payment": "1500|1999","manufacturer": "cimarron","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2021",count: "1"}, 2403{"lots": "1723","condition": "1","types": "128","price": "15000|30000","monthly_payment": "","manufacturer": "walton","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2404{"lots": "1227","condition": "1","types": "61","price": "45000|60000","monthly_payment": "400|499","manufacturer": "elite","Features-prop-4": "","Dry_Weight-prop-17": "5500|8500","Sleeps-prop-5": "","year": "2026",count: "1"}, 2405{"lots": "1227","condition": "0","types": "59","price": "15000|30000","monthly_payment": "150|199","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2406{"lots": "1227","condition": "1","types": "29","price": "30000|45000","monthly_payment": "300|399","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "3"}, 2407{"lots": "1723","condition": "1","types": "59","price": "15000|30000","monthly_payment": "150|199","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "4"}, 2408{"lots": "1227","condition": "0","types": "29","price": "10000|15000","monthly_payment": "100|149","manufacturer": "jayco","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2011",count: "1"}, 2409{"lots": "1227","condition": "0","types": "29","price": "15000|30000","monthly_payment": "200|249","manufacturer": "crossroads rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2022",count: "2"},
2410{"lots": "1227","condition": "0","types": "5","price": "30000|45000","monthly_payment": "300|399","manufacturer": "crossroads rv","Features-prop-4": "|11|60|3|","Dry_Weight-prop-17": "11000|14000","Sleeps-prop-5": "2|4,4|6","year": "2020",count: "1"}, 2411{"lots": "1227","condition": "1","types": "61","price": "0|10000","monthly_payment": "0|99","manufacturer": "elite trailer","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2025",count: "1"}, 2412{"lots": "1227","condition": "1","types": "29","price": "30000|45000","monthly_payment": "300|399","manufacturer": "crossroads","Features-prop-4": "","Dry_Weight-prop-17": "5500|8500","Sleeps-prop-5": "","year": "2026",count: "2"}, 2413{"lots": "1227","condition": "1","types": "5","price": "60000|75000","monthly_payment": "500|749","manufacturer": "coachmen","Features-prop-4": "|11|60|63|20|64|","Dry_Weight-prop-17": "11000|14000","Sleeps-prop-5": "4|6,6|8","year": "2026",count: "1"}, 2414{"lots": "1227","condition": "1","types": "29","price": "15000|30000","monthly_payment": "200|249","manufacturer": "gulfstream","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2415{"lots": "1723","condition": "1","types": "61","price": "30000|45000","monthly_payment": "300|399","manufacturer": "bar m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2416{"lots": "1227","condition": "1","types": "59","price": "10000|15000","monthly_payment": "100|149","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "2"},
2417{"lots": "1227","condition": "1","types": "26","price": "75000|90000","monthly_payment": "500|749","manufacturer": "keystone rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2418{"lots": "1227","condition": "1","types": "59","price": "0|10000","monthly_payment": "0|99","manufacturer": "bar- m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2419{"lots": "1227","condition": "1","types": "61","price": "10000|15000","monthly_payment": "100|149","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2420{"lots": "1227","condition": "1","types": "65","price": "75000|90000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "2"}, 2421{"lots": "1723","condition": "1","types": "59","price": "15000|30000","monthly_payment": "150|199","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "2"},
2422{"lots": "1723","condition": "1","types": "59","price": "30000|45000","monthly_payment": "300|399","manufacturer": "merhow","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2423{"lots": "1723","condition": "1","types": "59","price": "60000|75000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2424{"lots": "1227","condition": "1","types": "65","price": "30000|45000","monthly_payment": "300|399","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "11"}, 2425{"lots": "1227","condition": "1","types": "5","price": "45000|60000","monthly_payment": "400|499","manufacturer": "coachmen","Features-prop-4": "|3|11|60|","Dry_Weight-prop-17": "8500|11000","Sleeps-prop-5": "2|4,4|6","year": "2026",count: "1"}, 2426{"lots": "1227","condition": "1","types": "65","price": "60000|75000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2427{"lots": "1227","condition": "1","types": "60","price": "120000|135000","monthly_payment": "1000|1249","manufacturer": "lakota","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2428{"lots": "1227","condition": "1","types": "61","price": "30000|45000","monthly_payment": "250|299","manufacturer": "elite","Features-prop-4": "","Dry_Weight-prop-17": "3500|5500","Sleeps-prop-5": "","year": "2026",count: "1"}, 2429{"lots": "1723","condition": "1","types": "59","price": "10000|15000","monthly_payment": "100|149","manufacturer": "bar m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2430{"lots": "1227","condition": "1","types": "60","price": "150000|200000","monthly_payment": "1500|1999","manufacturer": "lakota","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2431{"lots": "1723","condition": "1","types": "128","price": "10000|15000","monthly_payment": "100|149","manufacturer": "walton trailers","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2432{"lots": "1723","condition": "1","types": "59","price": "15000|30000","monthly_payment": "100|149","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2433{"lots": "1723","condition": "1","types": "60","price": "45000|60000","monthly_payment": "300|399","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2434{"lots": "1227","condition": "1","types": "59","price": "45000|60000","monthly_payment": "400|499","manufacturer": "elite","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "4"}, 2435{"lots": "1227","condition": "1","types": "28","price": "60000|75000","monthly_payment": "500|749","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "2"},
2436{"lots": "1227","condition": "0","types": "60","price": "30000|45000","monthly_payment": "300|399","manufacturer": "4 star","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2006",count: "1"}, 2437{"lots": "1227","condition": "1","types": "65","price": "45000|60000","monthly_payment": "300|399","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "2"}, 2438{"lots": "1723","condition": "1","types": "59","price": "15000|30000","monthly_payment": "150|199","manufacturer": "bar m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "2"}, 2439{"lots": "1227","condition": "1","types": "59","price": "15000|30000","monthly_payment": "","manufacturer": "bar-m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2440{"lots": "1723","condition": "1","types": "59","price": "10000|15000","monthly_payment": "100|149","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2441{"lots": "1723","condition": "1","types": "55","price": "30000|45000","monthly_payment": "300|399","manufacturer": "atc","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2442{"lots": "1227","condition": "1","types": "59","price": "15000|30000","monthly_payment": "100|149","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "3"}, 2443{"lots": "1227","condition": "1","types": "5","price": "60000|75000","monthly_payment": "500|749","manufacturer": "forest river","Features-prop-4": "|11|60|3|","Dry_Weight-prop-17": "11000|14000","Sleeps-prop-5": "2|4,4|6","year": "2024",count: "1"}, 2444{"lots": "1227","condition": "1","types": "26","price": "90000|105000","monthly_payment": "750|999","manufacturer": "forest river","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2445{"lots": "1227","condition": "1","types": "59","price": "45000|60000","monthly_payment": "300|399","manufacturer": "merhow","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2446{"lots": "1227","condition": "0","types": "29","price": "15000|30000","monthly_payment": "200|249","manufacturer": "kz","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2023",count: "1"}, 2447{"lots": "1227","condition": "0","types": "28","price": "15000|30000","monthly_payment": "250|299","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2019",count: "1"}, 2448{"lots": "1227","condition": "1","types": "26","price": "","monthly_payment": "","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2449{"lots": "1723","condition": "1","types": "68","price": "30000|45000","monthly_payment": "250|299","manufacturer": "atc trailers","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2450{"lots": "1227","condition": "1","types": "5","price": "60000|75000","monthly_payment": "500|749","manufacturer": "coachmen","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2451{"lots": "1723","condition": "1","types": "60","price": "45000|60000","monthly_payment": "400|499","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2452{"lots": "1227","condition": "1","types": "59","price": "45000|60000","monthly_payment": "400|499","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2453{"lots": "1227","condition": "1","types": "59","price": "30000|45000","monthly_payment": "300|399","manufacturer": "elite","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2454{"lots": "1227","condition": "0","types": "59","price": "0|10000","monthly_payment": "0|99","manufacturer": "cb","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2010",count: "1"}, 2455{"lots": "1227","condition": "1","types": "65","price": "45000|60000","monthly_payment": "300|399","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "3500|5500","Sleeps-prop-5": "","year": "2026",count: "2"},
2456{"lots": "1723","condition": "1","types": "65","price": "30000|45000","monthly_payment": "250|299","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "3500|5500","Sleeps-prop-5": "","year": "2026",count: "1"}, 2457{"lots": "1227","condition": "1","types": "5","price": "75000|90000","monthly_payment": "500|749","manufacturer": "forest river","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2458{"lots": "1227","condition": "1","types": "59","price": "15000|30000","monthly_payment": "100|149","manufacturer": "bar m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2459{"lots": "1723","condition": "1","types": "60","price": "60000|75000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2460{"lots": "1227","condition": "1","types": "26","price": "75000|90000","monthly_payment": "750|999","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2461{"lots": "1227","condition": "1","types": "61","price": "30000|45000","monthly_payment": "300|399","manufacturer": "elite","Features-prop-4": "","Dry_Weight-prop-17": "3500|5500","Sleeps-prop-5": "","year": "2026",count: "1"}, 2462{"lots": "1227","condition": "1","types": "65","price": "45000|60000","monthly_payment": "400|499","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "5500|8500","Sleeps-prop-5": "","year": "2026",count: "1"}, 2463{"lots": "1723","condition": "1","types": "59","price": "15000|30000","monthly_payment": "100|149","manufacturer": "bar m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2464{"lots": "1227","condition": "1","types": "61","price": "15000|30000","monthly_payment": "150|199","manufacturer": "bar m trailers","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2465{"lots": "1227","condition": "1","types": "59","price": "30000|45000","monthly_payment": "300|399","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2466{"lots": "1227","condition": "1","types": "29","price": "45000|60000","monthly_payment": "300|399","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2467{"lots": "1723","condition": "1","types": "59","price": "15000|30000","monthly_payment": "200|249","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2468{"lots": "1227","condition": "1","types": "59","price": "15000|30000","monthly_payment": "200|249","manufacturer": "trials west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2469{"lots": "1227","condition": "1","types": "26","price": "75000|90000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "6"}, 2470{"lots": "1227","condition": "1","types": "29","price": "30000|45000","monthly_payment": "250|299","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "7"}, 2471{"lots": "1227","condition": "0","types": "29","price": "15000|30000","monthly_payment": "150|199","manufacturer": "gulf stream rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2024",count: "1"}, 2472{"lots": "1227","condition": "1","types": "59","price": "45000|60000","monthly_payment": "300|399","manufacturer": "elite trailer","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2473{"lots": "1227","condition": "1","types": "60","price": "150000|200000","monthly_payment": "1250|1499","manufacturer": "elite","Features-prop-4": "","Dry_Weight-prop-17": "14000|999999","Sleeps-prop-5": "","year": "2025",count: "1"}, 2474{"lots": "1227","condition": "1","types": "26","price": "90000|105000","monthly_payment": "750|999","manufacturer": "keystone rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "2"},
2475{"lots": "1227","condition": "1","types": "65","price": "45000|60000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "2"}, 2476{"lots": "1227","condition": "0","types": "29","price": "45000|60000","monthly_payment": "400|499","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2477{"lots": "1723","condition": "1","types": "65","price": "30000|45000","monthly_payment": "300|399","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "2"}, 2478{"lots": "1227","condition": "0","types": "29","price": "15000|30000","monthly_payment": "250|299","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2023",count: "1"}, 2479{"lots": "1227","condition": "0","types": "29","price": "10000|15000","monthly_payment": "100|149","manufacturer": "crossroads rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2010",count: "1"}, 2480{"lots": "1227","condition": "0","types": "29","price": "15000|30000","monthly_payment": "150|199","manufacturer": "winnebago","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2023",count: "1"}, 2481{"lots": "1227","condition": "0","types": "59","price": "15000|30000","monthly_payment": "150|199","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2008",count: "1"}, 2482{"lots": "1227","condition": "1","types": "29","price": "45000|60000","monthly_payment": "400|499","manufacturer": "forest river","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "3"}, 2483{"lots": "1723","condition": "1","types": "57","price": "10000|15000","monthly_payment": "0|99","manufacturer": "walton","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2484{"lots": "1227","condition": "1","types": "59","price": "0|10000","monthly_payment": "0|99","manufacturer": "bar-m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2485{"lots": "1227","condition": "1","types": "5","price": "60000|75000","monthly_payment": "500|749","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2486{"lots": "1227","condition": "0","types": "5","price": "30000|45000","monthly_payment": "300|399","manufacturer": "coachmen rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2022",count: "1"}, 2487{"lots": "1227","condition": "1","types": "60","price": "120000|135000","monthly_payment": "1000|1249","manufacturer": "merhow industries","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2488{"lots": "1227","condition": "1","types": "29","price": "30000|45000","monthly_payment": "250|299","manufacturer": "forest river","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "2"},
2489{"lots": "1227","condition": "1","types": "29","price": "15000|30000","monthly_payment": "250|299","manufacturer": "forest river","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2490{"lots": "1723","condition": "1","types": "65","price": "75000|90000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "2"}, 2491{"lots": "1227","condition": "0","types": "60","price": "75000|90000","monthly_payment": "750|999","manufacturer": "merhow","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2024",count: "1"}, 2492{"lots": "1227","condition": "1","types": "26","price": "120000|135000","monthly_payment": "1000|1249","manufacturer": "keystone","Features-prop-4": "|61|11|60|63|25|","Dry_Weight-prop-17": "14000|999999","Sleeps-prop-5": "6|8","year": "2026",count: "1"}, 2493{"lots": "1227","condition": "1","types": "3","price": "90000|105000","monthly_payment": "750|999","manufacturer": "cedar creek","Features-prop-4": "","Dry_Weight-prop-17": "14000|999999","Sleeps-prop-5": "","year": "2026",count: "1"}, 2494{"lots": "1227","condition": "1","types": "59","price": "15000|30000","monthly_payment": "150|199","manufacturer": "bar-m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "2"},
2495{"lots": "1227","condition": "0","types": "60","price": "75000|90000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2024",count: "1"}, 2496{"lots": "1227","condition": "1","types": "59","price": "15000|30000","monthly_payment": "200|249","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "8"}, 2497{"lots": "1227","condition": "1","types": "28","price": "75000|90000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "5"}, 2498{"lots": "1227","condition": "1","types": "26","price": "60000|75000","monthly_payment": "500|749","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "3"}, 2499{"lots": "1227","condition": "1","types": "65","price": "30000|45000","monthly_payment": "250|299","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "7"}, 2500{"lots": "1723","condition": "1","types": "65","price": "45000|60000","monthly_payment": "400|499","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "5500|8500","Sleeps-prop-5": "","year": "2026",count: "1"}, 2501{"lots": "1227","condition": "1","types": "61","price": "15000|30000","monthly_payment": "100|149","manufacturer": "bar-m trailers","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2502{"lots": "1227","condition": "1","types": "26","price": "150000|200000","monthly_payment": "1250|1499","manufacturer": "keystone rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2503{"lots": "1723","condition": "0","types": "65","price": "","monthly_payment": "","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2024",count: "1"}, 2504{"lots": "1227","condition": "0","types": "59","price": "15000|30000","monthly_payment": "100|149","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2018",count: "1"}, 2505{"lots": "1227","condition": "0","types": "60","price": "45000|60000","monthly_payment": "400|499","manufacturer": "bloomer","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2001",count: "1"}, 2506{"lots": "1227","condition": "1","types": "29","price": "45000|60000","monthly_payment": "400|499","manufacturer": "crossroads","Features-prop-4": "","Dry_Weight-prop-17": "5500|8500,8500|11000","Sleeps-prop-5": "","year": "2026",count: "1"}, 2507{"lots": "1227","condition": "1","types": "60","price": "90000|105000","monthly_payment": "750|999","manufacturer": "lakota","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "1"}, 2508{"lots": "1723","condition": "1","types": "60","price": "150000|200000","monthly_payment": "1500|1999","manufacturer": "elite","Features-prop-4": "","Dry_Weight-prop-17": "14000|999999","Sleeps-prop-5": "","year": "2025",count: "1"}, 2509{"lots": "1227","condition": "1","types": "29","price": "30000|45000","monthly_payment": "300|399","manufacturer": "forest river","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "2"},
2510{"lots": "1227","condition": "1","types": "29","price": "15000|30000","monthly_payment": "150|199","manufacturer": "forest river","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2511{"lots": "1227","condition": "1","types": "59","price": "15000|30000","monthly_payment": "150|199","manufacturer": "bar m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "2"}, 2512{"lots": "1227","condition": "0","types": "55","price": "10000|15000","monthly_payment": "100|149","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2513{"lots": "1227","condition": "0","types": "59","price": "60000|75000","monthly_payment": "500|749","manufacturer": "cimarron","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2024",count: "1"}, 2514{"lots": "1227","condition": "1","types": "59","price": "30000|45000","monthly_payment": "300|399","manufacturer": "elite","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2025",count: "1"}, 2515{"lots": "1227","condition": "1","types": "65","price": "45000|60000","monthly_payment": "400|499","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "16"}, 2516{"lots": "1227","condition": "1","types": "59","price": "15000|30000","monthly_payment": "100|149","manufacturer": "bar-m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2517{"lots": "1227","condition": "1","types": "61","price": "15000|30000","monthly_payment": "100|149","manufacturer": "bar-m","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2518{"lots": "1227","condition": "1","types": "59","price": "15000|30000","monthly_payment": "150|199","manufacturer": "trails west","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "5"}, 2519{"lots": "1227","condition": "1","types": "29","price": "30000|45000","monthly_payment": "250|299","manufacturer": "forest river rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2026",count: "1"}, 2520{"lots": "1227","condition": "1","types": "29","price": "30000|45000","monthly_payment": "300|399","manufacturer": "coachmen rv","Features-prop-4": "","Dry_Weight-prop-17": "","Sleeps-prop-5": "","year": "2027",count: "2"},
2521]; 2522 var noResultsMode = false; 2523 2524 // Helper function to refresh the clear filters section at the top of the filtered search. 2525 var updateClearFiltersSection = function(){ 2526 $('.selected-filters-wrapper').empty(); 2527 var searchResultsHtml = ''; 2528 for (var prop in searchCombos[0]) { 2529 if (prop === 'count') continue; 2530 2531 var checkBoxWrapper = $('#faceted-search [data-field-name="' + prop + '"]'); 2532 var currentVals = $.map(($('.ajax-unit-list').ajaxUnitList('getCurrentOpt', prop) || '').split(','), function(x) { return x.toLowerCase(); }); 2533 2534 if (checkBoxWrapper.find('input[type=checkbox]:checked').length && checkBoxWrapper.find('div.checkbox:not(.hide)').length) { 2535 var section = checkBoxWrapper[0]; 2536 2537 searchResultsHtml += '<div class="well '+$(checkBoxWrapper[0]).attr('data-field-name')+'">'; 2538 searchResultsHtml += '<div class="search-results-label"><a href="javascript:void(0)" onClick="$(\'#faceted-search\').trigger(\'clearSection\', [\'.' + $(checkBoxWrapper[0]).attr('data-field-name') + '\'])" class="clear-section" >' + $(checkBoxWrapper[0]).closest('.panel').find('.panel-title button').text() + '<i class="fa fa-times-circle pull-right"></i></a></div>'; 2539 searchResultsHtml += '<ul class="icons-ul">'; 2540 $.each(currentVals, function(i, val) { 2541 var currentCheckbox = $(checkBoxWrapper[0]).find(' :checkbox[value="' + val + '"]'); 2542 2543 // don't add to the clear filters section if the current checkbox is hidden in the filters section (even if it is checked) 2544 if (currentCheckbox.parents('div.checkbox').hasClass('hide')) { 2545 return true; 2546 } 2547 2548 var selection = (currentCheckbox.parent('label').html() || '').split(/<span[^>]*>/gi); 2549 selection = selection[0]; 2550 if (selection === '') 2551 return true; 2552 selection = selection.split(/<input[^>]*>/gi); 2553 selection = selection[1]; 2554 2555 2556 var valStripped = val.replace(/\W/g, ''); 2557 searchResultsHtml += '<li class="clear-selection ' + valStripped + '"><a href="javascript:void(0);" onClick="$(\'#faceted-search\').trigger(\'clearSelection\', [\'.' + $(checkBoxWrapper[0]).attr('data-field-name') + '\',\'' + val + '\'])" ><i class="fa fa-times"></i>' + selection + '</a></li>'; 2558 }); 2559 searchResultsHtml += '</ul>'; 2560 searchResultsHtml += '</div>'; 2561 } 2562 } 2563 2564 // add stock number to selected filters if set 2565 var stockNumEl = $('#faceted-search').find('.SearchStockNumber'); 2566 if (stockNumEl.length > 0 && stockNumEl.val() !== null && stockNumEl.val() !== '') { 2567 searchResultsHtml += '<div class="well stockNumber">'; 2568 searchResultsHtml += '<div class="search-results-label"><a href="javascript:void(0)" onClick="$(\'#faceted-search\').trigger(\'clearSection\', [\'.stockNumber\'])" class="clear-section" >Stock Number<i class="fa fa-times-circle pull-right"></i></a></div>'; 2569 searchResultsHtml += '<ul class="icons-ul">'; 2570 searchResultsHtml += '<li class="clear-selection"><a href="javascript:void(0);" onClick="$(\'#faceted-search\').trigger(\'clearSection\', [\'.stockNumber\'])" ><i class="fa fa-times"></i>' + $('<div/>').text(stockNumEl.val()).html() + '</a></li>'; // html encode stock num val 2571 searchResultsHtml += '</ul>'; 2572 searchResultsHtml += '</div>'; 2573 } 2574 2575 $('.selected-filters-wrapper').append(searchResultsHtml); 2576 2577 // show/hide clear filters toolbar at the top 2578 if ($('.selected-filters-wrapper').html() !== '') { 2579 $('.clear-filters-toolbar').fadeIn(200); 2580 } 2581 else { 2582 $('.clear-filters-toolbar').fadeOut(200); 2583 } 2584 }; 2585 2586 // Helper function to be called when the counts shown next to each checkbox and the visibility of checkboxes/sections needs to be updated 2587 var updateCounts = function() { 2588 // Tow Rating addition 2589 // over ride control if a tow rating cookie exists 2590 // applies to FilteredSearch and UnitList.cshtml 2591 if (window.location.pathname == '/tow-guide-search') { 2592 window.Interact.TowRating.checkCookie(); 2593 // console.log('tow rating cookie check fired'); 2594 } 2595 2596 if (!searchCombos || !searchCombos.length) return; 2597 2598 var currentSearchCounts = { 2599 normal: searchCombos 2600 }; 2601 2602 for (var prop in searchCombos[0]) { 2603 if (prop === 'count') continue; 2604 2605 var checkBoxWrapper = $('#faceted-search [data-field-name="' + prop + '"]'); 2606 var normalCounts = currentSearchCounts['normal']; 2607 2608 var currentVals = $.map(($('.ajax-unit-list').ajaxUnitList('getCurrentOpt', prop) || '').split(','), function(x) { return x.toLowerCase(); }); 2609 if (currentVals[0] !== '') { 2610 for (var countGroupName in currentSearchCounts) { 2611 currentSearchCounts[countGroupName] = $.grep(currentSearchCounts[countGroupName], function(x, i) { 2612 if (multiValueColumns[prop] !== undefined) { 2613 var parts = $.map(x[prop].split(multiValueColumns[prop].separator), function (x) { return x.toLowerCase(); }); 2614 if (multiValueColumns[prop].filterMode === 'and') { 2615 for (var i = 0; i < currentVals.length; i++) { 2616 if (currentVals[i] === '') continue; 2617 if (parts.indexOf(currentVals[i]) === -1) { 2618 return false; 2619 } 2620 } 2621 return true; 2622 } 2623 else { 2624 for (var i = 0; i < currentVals.length; i++) { 2625 if (currentVals[i] === '') continue; 2626 if (parts.indexOf(currentVals[i]) !== -1) { 2627 return true; 2628 } 2629 } 2630 return false; 2631 } 2632 } 2633 else { 2634 return currentVals.indexOf(x[prop].toLowerCase()) !== -1; 2635 } 2636 });
2637 } 2638 } 2639 2640 if (checkBoxWrapper.find('input[type=checkbox]:checked').length) { 2641 currentSearchCounts[prop] = normalCounts; 2642 } 2643 } 2644 2645 for (var prop in searchCombos[0]) { 2646 if (prop === 'count') continue; 2647 2648 var checkBoxWrapper = $('#faceted-search [data-field-name="' + prop + '"]'); 2649 var sectionCheckboxes = checkBoxWrapper.find('input[type=checkbox]'); 2650 2651 // get list of all checked checkbox values in the same section - this is for multivalue columns in 'and' mode 2652 var checkedValues = sectionCheckboxes.filter(":checked").map(function(i, x) { return $(x).val(); }); 2653 2654 sectionCheckboxes.each(function() { 2655 var checkboxVal = $(this).val(); 2656 2657 var countRows = $.grep(currentSearchCounts[prop] || currentSearchCounts['normal'], function(x, i) { 2658 if (multiValueColumns[prop] !== undefined) { 2659 var currVals = $.map( 2660 $.grep( 2661 x[prop].split(multiValueColumns[prop].separator), 2662 function(z) { 2663 return z !== ''; 2664 } 2665 ), 2666 function(x) { 2667 return x.toLowerCase(); 2668 } 2669 ); 2670 2671 if (multiValueColumns[prop].filterMode === 'and') { 2672 if (currVals.indexOf(checkboxVal.toLowerCase()) === -1) return false; 2673 for (var i = 0; i < checkedValues.length; i++) { 2674 if (currVals.indexOf(checkedValues[i].toLowerCase()) === -1) return false; 2675 } 2676 return true; 2677 } 2678 else { 2679 return currVals.indexOf(checkboxVal.toLowerCase()) !== -1; 2680 } 2681 } 2682 else { 2683 return x[prop].toLowerCase() === checkboxVal.toLowerCase(); 2684 } 2685 }); 2686 2687 var sum = 0; 2688 $.each(countRows, (function() { 2689 sum += parseInt(this.count, 10); 2690 })); 2691 2692 var groupWrapper = $(this).closest('.CheckBoxList'); 2693 var panel = $(this).closest('.panel'); 2694 if (sum === 0) { 2695 $(this).parents('div.checkbox').addClass('hide'); 2696 2697 // check to see if all checkboxes in the group are hidden, and if so, hide the wrapper panel also 2698 if (groupWrapper.find('div.checkbox:not(.hide)').length < 1) { 2699 panel.addClass('hide'); 2700 } 2701 } 2702 else { 2703 $(this).parent().find('.count').text(sum); 2704 $(this).parents('div.checkbox').removeClass('hide'); 2705 panel.removeClass('hide'); 2706 } 2707 }); 2708 } 2709 2710 // hide filter containers where there is only one visible checkbox 2711 $('#facetedSearch .panel').filter(":not(.hide)").each(function() { 2712 var minCheckboxCount = $(this).data('minCheckboxCount') || 2; 2713 if ($(this).find('div.checkbox:not(.hide) input[type=checkbox]').length < minCheckboxCount) { 2714 $(this).addClass('hide'); 2715 } 2716 }); 2717 // setup clear filters section 2718 updateClearFiltersSection(); 2719 }; 2720 2721 var submitToSearchPage = function(clearCheckboxFilters) { 2722 var tmpSearchInputs = $('#faceted-search').find(':input'); 2723 if (clearCheckboxFilters) { 2724 tmpSearchInputs = tmpSearchInputs.filter(':not(input[type=checkbox])'); 2725 } 2726 2727 var tmpSearchValues = tmpSearchInputs.serializeArray(); 2728 2729 // comma delimit search values with the same name 2730 var searchValMap = {}; 2731 for (var i = 0; i < tmpSearchValues.length; i++) { 2732 var fieldName = tmpSearchValues[i].name.toLowerCase(); 2733 if (searchValMap[fieldName] !== undefined && searchValMap[fieldName] !== '') { 2734 searchValMap[fieldName] += "," + tmpSearchValues[i].value; 2735 } 2736 else { 2737 searchValMap[fieldName] = tmpSearchValues[i].value; 2738 } 2739 } 2740 var searchValues = []; 2741 for (var param in searchValMap) { 2742 searchValues.push({name: param, value: searchValMap[param]}); 2743 } 2744 2745 var targetPage = '/rv-search'; 2746 var qMark = window.location.href.indexOf('?'); 2747 var currentPage = qMark > -1 ? window.location.href.substring(0, qMark) : window.location.href; 2748 currentPage = '/' + currentPage.replace(/^(?:\/\/|[^\/]+)*\//, ""); 2749 var qsValues = getUrlVars();
2750 if (currentPage === targetPage && qsValues !== undefined && qsValues !== null) { 2751 qsValues.length = 0; // remove the array elements - this is because getUrlVars adds each parameter name using .push(), and it also adds them as properties of the object. we only want the properties 2752 delete qsValues['page']; 2753 delete qsValues['s']; 2754 2755 // remove qs params that are part of the search form - this is particularly important for checkboxes, which would not be included 2756 // in the searchValues collection if unchecked 2757 for (var param in qsValues) { 2758 if ($('#faceted-search :input').filter(function() { return ($(this).attr('name') || '').toLowerCase() === param; }).length) { 2759 delete qsValues[param]; 2760 } 2761 } 2762 2763 // add/update qs params from search values 2764 for (var i = 0; i < searchValues.length; i++) { 2765 if (searchValues[i].value !== '') { 2766 qsValues[searchValues[i].name] = searchValues[i].value; 2767 } 2768 } 2769 2770 var qsArray = []; 2771 for (var param in qsValues) { 2772 qsArray.push({name: param, value: qsValues[param]}); 2773 } 2774 var qs = $.param(qsArray); 2775 window.location = "/rv-search?s=true" + (qs !== "" ? "&" + qs : ""); 2776 } 2777 else { 2778 var qs = $.param($.grep(searchValues, function(x) { return x.value !== ''; })); 2779 window.location = "/rv-search?s=true" + (qs !== "" ? "&" + qs : ""); 2780 } 2781 }; 2782 2783 var initializeSearchFields = function(data) { 2784 if (data["brand"] !== undefined) { 2785 data["brand"] = data["brand"].toLowerCase().trim(); 2786 } 2787 if (data["manufacturer"] !== undefined) { 2788 data["manufacturer"] = data["manufacturer"].toLowerCase().trim(); 2789 } 2790 $('#faceted-search :checkbox, #faceted-search :radio').removeAttr("checked"); 2791 2792 if (data["zip"] !== undefined) { 2793 const zipInput = document.getElementById("locationZip"); 2794 if (zipInput) { 2795 zipInput.value = data["zip"]; 2796 } 2797 } 2798 if (data["distance"] !== undefined) { 2799 const distanceInput = document.getElementById("distanceRange"); 2800 if (distanceInput) { 2801 distanceInput.value = data["distance"]; 2802 } 2803 } 2804 2805 for (var key in data) { 2806 if (data[key] === undefined || !isNaN(key)) { 2807 return; 2808 } 2809 2810 var mVals = data[key].indexOf(',') !== -1 ? mVals = data[key].split(',') : null; 2811 $('#faceted-search [name]').filter(function() { 2812 return ($(this).attr('name') || '').toLowerCase() === key.toLowerCase(); 2813 }).each(function(index, el){ 2814 if ($(el).is(":checkbox") || $(el).is(":radio")) { 2815 if (mVals != null) { 2816 if ($.inArray($(el).val(), mVals) !== -1) { 2817 $(el).attr("checked", "checked"); 2818 $(el).addClass("value-modified"); 2819 } 2820 } 2821 else if ($(el).val() === data[key]) { 2822 $(el).attr("checked", "checked"); 2823 $(el).addClass("value-modified"); 2824 } 2825 } 2826 else { 2827 $(el).val(data[key]); 2828 if (data[key] != '' && $(el).val() === data[key]) { 2829 $(el).addClass("value-modified"); 2830 } 2831 } 2832 }); 2833 } 2834 2835 // clear the stock number textbox if the stocknumber query string parameter isn't present. 2836 // this is needed b/c when the browser back button is clicked back to a point where the 2837 // stock number filter isn't set, even though the stocknumber query string parameter is 2838 // cleared, some browsers keep the input field filled 2839 if (data['stocknumber'] === undefined) { 2840 var stockNumEl = $('#faceted-search').find('.SearchStockNumber'); 2841 stockNumEl.val(''); 2842 } 2843 2844 updateCounts(); 2845 }; 2846 2847 var scrollToListTop = function () { 2848 // only scroll to list top if the scroll position is currently below the top of the list 2849 if ($("html, body").scrollTop() > $('.ajax-unit-list').offset().top) { 2850 $("html, body").animate({ scrollTop: $('.pageContent').offset().top + $('.pageContent').height() }, "fast"); 2851 } 2852 }; 2853 2854 function getResultsFromInputChange(input) { 2855 var stockNumEl = $('#faceted-search').find('.SearchStockNumber'); 2856 if (noResultsMode === false && isListingPage) { 2857 const inputGroupName = $(input).attr("name"); 2858 const checkboxesInGroup = $('#faceted-search').find(':input[name="' + inputGroupName + '"]'); 2859 2860 // if the only checked checkboxes in this group are hidden, uncheck them 2861 const allCheckedHidden = 2862 checkboxesInGroup 2863 .filter(":checked") 2864 .filter(function() { return $(this).parents("div.checkbox:not(.hide)").length > 0}) 2865 .length < 1;
2866 if (allCheckedHidden) { 2867 checkboxesInGroup.prop('checked', false); 2868 } 2869 2870 const newValue = checkboxesInGroup 2871 .filter(":checked") 2872 .map(function(i, v) { return $(this).val() }) 2873 .toArray() 2874 .join(","); 2875 const updateData = { s: "true" }; 2876 updateData[inputGroupName] = newValue; 2877 $('.ajax-unit-list').ajaxUnitList('update', updateData); 2878 scrollToListTop(); 2879 updateCounts(); 2880 } 2881 else { 2882 stockNumEl.val(''); 2883 submitToSearchPage(); 2884 } 2885 } 2886 2887 function clearCheckboxInputSection(sectionClass) { 2888 const targetInputs = $('#faceted-search').find(sectionClass).find('input[type=checkbox]:checked'); 2889 targetInputs.each(function() { 2890 this.checked = false; 2891 }); 2892 const updateData = { s: "true" }; 2893 updateData[targetInputs[0].name] = null; 2894 $('.ajax-unit-list').ajaxUnitList('update', updateData); 2895 } 2896 2897 // setup event handlers 2898 $("#faceted-search #facetedSearch input[type=checkbox]").change(function() { 2899 getResultsFromInputChange(this); 2900 resetLocationFinder(); 2901 }); 2902 2903 $('#faceted-search').find('.SearchButton').click(function(e) { 2904 e.preventDefault(); 2905 var stockNumEl = $('#faceted-search').find('.SearchStockNumber'); 2906 if (isListingPage && !stockNumEl.hasClass('value-modified')) { 2907 var stockNum = stockNumEl.val(); 2908 var updateData = { s: "true" }; 2909 updateData['stockNumber'] = stockNum; 2910 $('.ajax-unit-list').ajaxUnitList('update', updateData); 2911 scrollToListTop(); 2912 updateCounts(); 2913 } 2914 else { 2915 gtmAnalyticsEventTrack($(this), 'Interactions', 'StockFilteredSearch', stockNumEl.val(), '1'); 2916 submitToSearchPage(true); 2917 } 2918 return false; 2919 }); 2920 2921 var searchFieldChanged = function() { 2922 $(this).addClass("value-modified"); 2923 }; 2924 2925 $('#faceted-search input, #faceted-search select').change(searchFieldChanged); 2926 $('#faceted-search input[type="text"]').keyup(searchFieldChanged); 2927 $('#faceted-search').on('submitToSearchPage', submitToSearchPage); 2928 $('#faceted-search').on('clearFilters', function() { 2929 if ($('input[name=zip]').val() || $('input[name=stockNumber]').val()) { 2930 window.location = "/rv-search?s=true"; 2931 } 2932 $('.clear-filters-toolbar').hide(); 2933 $('#faceted-search').find('input[type=text]').val(''); 2934 $('#faceted-search').find('input[type=checkbox]').prop('checked', false); 2935 $('.ajax-unit-list').ajaxUnitList('clearFilters'); 2936 scrollToListTop(); 2937 updateCounts(); 2938 }); 2939 2940 $('#faceted-search').on('clearSection', function(e, section) { 2941 if (section === '.stockNumber') { 2942 var stockNumEl = $('#faceted-search').find('.SearchStockNumber'); 2943 stockNumEl.val(''); 2944 submitToSearchPage(); 2945 } 2946 else { 2947 clearCheckboxInputSection(section); 2948 scrollToListTop(); 2949 updateCounts(); 2950 } 2951 }); 2952 2953 $('#faceted-search').on('clearSelection', function(e, section, selection) { 2954 $('#faceted-search').find(section).find(' :checkbox[value="' + selection + '"]').prop('checked', false).trigger('change'); 2955 scrollToListTop(); 2956 updateCounts(); 2957 }); 2958 2959 $('.ajax-unit-list').on('ajaxUnitList.historychange', function(e, data) { 2960 if (data != null) { 2961 initializeSearchFields(data); 2962 } 2963 }); 2964 2965 $('a.btn-clear-all').click(function(e) { 2966 e.preventDefault(); 2967 $('#faceted-search').trigger('clearFilters'); 2968 }); 2969 2970 // setup on initial load 2971 function init(doExpand) { 2972 if (isListingPage) { 2973 var data = $('.ajax-unit-list').ajaxUnitList('getCurrentOpts'); 2974 if (data != null) { 2975 initializeSearchFields(data); 2976 } 2977 2978 if (doExpand) { 2979 $("#facetedSearch .panel-collapse").each(function () { 2980 var $this = $(this); 2981 if ($this.find(":checked").length) { 2982 $this.addClass("in"); 2983 $this.closest(".panel").find(".panel-heading i").removeClass("fa fa-plus").addClass("fa fa-minus"); 2984 } 2985 }); 2986 } 2987 } 2988 } 2989 init(true); 2990 2991 $("#facetedSearch .panel-heading button").click(function() { 2992 var $this = $(this); 2993 var $target = $this.closest(".panel").find(".panel-collapse"); 2994 if ($target.hasClass("in")) { 2995 $target.collapse("hide"); 2996 $this.find("i").removeClass("fa fa-minus").addClass("fa fa-plus"); 2997 } 2998 else { 2999 $target.collapse("show"); 3000 $this.find("i").removeClass("fa fa-plus").addClass("fa fa-minus"); 3001 } 3002 }); 3003 3004 ///////////////////////// 3005 // Saved Searches 3006 ///////////////////////// 3007 if ($('div.user-profile-wrapper').data('user-authenticated')) { 3008 $('.save-search-toolbar').removeClass('hidden'); 3009 } 3010 3011 const savedSearchPostUrl = '/rebraco/contactsavedsearch/save'; 3012 var savedSearchId = 0; 3013 var savedSearchName = null; 3014
3015 var urlParams = getUrlVars(); 3016 if (urlParams) { 3017 savedSearchId = urlParams["savedSearchId"] || 0; 3018 if (savedSearchId) { 3019 savedSearchName = urlParams["savedSearchName"]; 3020 $('.save-search-btn').text('Update Saved Search'); 3021 } 3022 } 3023 3024 $('.save-search-btn').click(function () { 3025 if (!savedSearchName) { 3026 savedSearchName = prompt("Enter a name for this saved search:"); 3027 } 3028 3029 var postData = { 3030 contactSavedSearchId: savedSearchId, 3031 name: savedSearchName, 3032 url: location.href 3033 }; 3034 3035 $.ajax(savedSearchPostUrl, { 3036 data: JSON.stringify(postData), 3037 type: 'POST', 3038 contentType: 'application/json', 3039 success: function (response) { 3040 if (response.success) { 3041 savedSearchId = response.contactSavedSearchId; 3042 $('.save-search-btn').text('Update Saved Search'); 3043 alert("Saved successfully"); 3044 } 3045 else { 3046 if (!savedSearchId) { 3047 savedSearchName = null; 3048 } 3049 alert("Save failed"); 3050 } 3051 }, 3052 error: function () { 3053 if (!savedSearchId) { 3054 savedSearchName = null; 3055 } 3056 alert("Save failed"); 3057 } 3058 }); 3059 }); 3060 3061 ///////////////////////// 3062 // Mobile Filtered Search 3063 ///////////////////////// 3064 3065 $('.mobile-filter-link').click(function(e){ 3066 e.preventDefault(); 3067 $('body').addClass('modal-open'); 3068 $('#faceted-search').addClass('fs-modal'); 3069 }); 3070 3071 $('.fs-done').click(function(e){ 3072 e.preventDefault(); 3073 $('body').removeClass('modal-open'); 3074 $('#faceted-search').removeClass('fs-modal'); 3075 }); 3076 3077 $('.fs-clear-filters').click(function(e){ 3078 e.preventDefault(); 3079 $('#faceted-search').trigger('clearFilters'); 3080 }); 3081 3082 var waitForFinalEvent = (function () { 3083 var timers = {}; 3084 return function (callback, ms, uniqueId) { 3085 if (!uniqueId) { 3086 uniqueId = "Don't call this twice without a uniqueId"; 3087 } 3088 if (timers[uniqueId]) { 3089 clearTimeout(timers[uniqueId]); 3090 } 3091 timers[uniqueId] = setTimeout(callback, ms); 3092 }; 3093 })(); 3094 3095 var $mobileSortOptions = $('#faceted-search .mobile-sort-options-wrapper'); 3096 var $desktopSortOptions = $('.listingToolbar .sort-options-wrapper'); 3097 var $sortOptions = $('#sortOptions'); 3098 var $changeZipLink = $('#changeZipLink'); 3099 function filteredSearchResponsiveStuff(initialLoad) { 3100 if ($(window).width() <= 991) { 3101 if ($mobileSortOptions.find('#sortOptions').length < 1) { 3102 $mobileSortOptions.append($sortOptions); 3103 $mobileSortOptions.append($changeZipLink); 3104 } 3105 3106 // collapse search panels on mobile, except for those with checked checkboxes 3107 if (initialLoad) { 3108 $("#facetedSearch .panel-collapse").each(function() { 3109 var $this = $(this); 3110 if ($this.find(":checked").length < 1) { 3111 $this.addClass('collapse').removeClass('in'); 3112 $this.closest(".panel").find(".panel-heading i").removeClass("fa fa-minus").addClass("fa fa-plus"); 3113 } 3114 }); 3115 } 3116 } else { 3117 if ($desktopSortOptions.find('#sortOptions').length < 1) { 3118 $desktopSortOptions.append($sortOptions); 3119 $mobileSortOptions.remove($changeZipLink); 3120 } 3121 } 3122 }; 3123 filteredSearchResponsiveStuff(true); 3124 3125 $(window).resize(function () { 3126 waitForFinalEvent(function () { 3127 filteredSearchResponsiveStuff(false); 3128 }, 500, "filteredSearchResize"); 3129 }); 3130 3131 // exports 3132 window.Interact = window.Interact || {}; 3133 window.Interact.FilteredSearch = { 3134 init: init 3135 }; 3136 }); 3137</script>
3137 3138<div class="aside-btn-tow-guides"><a href="/tow-guides"><svg class="aside-btn-tow-guides-icon" width="82" height="58" viewbox="0 0 84 60" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M59.951 59.4907C55.3184 59.4907 50.7898 58.117 46.9379 55.5432C43.086 52.9694 40.0838 49.3112 38.3109 45.0312C36.5381 40.7512 36.0742 36.0416 36.978 31.498C37.8818 26.9544 40.1126 22.7808 43.3884 19.505C46.6642 16.2292 50.8378 13.9984 55.3814 13.0946C59.9251 12.1908 64.6347 12.6547 68.9147 14.4275C73.1947 16.2004 76.8529 19.2025 79.4266 23.0545C82.0004 26.9064 83.3741 31.435 83.3741 36.0676C83.3741 42.2798 80.9063 48.2376 76.5137 52.6302C72.121 57.0229 66.1632 59.4907 59.951 59.4907ZM59.951 16.9945C56.1674 16.9912 52.4678 18.1104 49.3204 20.2104C46.1731 22.3104 43.7194 25.2969 42.2699 28.7919C40.8205 32.2869 40.4403 36.1334 41.1777 39.8445C41.915 43.5556 43.7367 46.9646 46.4121 49.64C49.0876 52.3154 52.4965 54.1371 56.2077 54.8744C59.9188 55.6118 63.7652 55.2317 67.2602 53.7822C70.7552 52.3327 73.7417 49.8791 75.8417 46.7317C77.9417 43.5843 79.0609 39.8847 79.0576 36.1011C79.0487 31.0364 77.0329 26.1817 73.4516 22.6005C69.8704 19.0192 65.0157 17.0034 59.951 16.9945Z" fill="#000" stroke="#000"></path> <path d="M57.4247 44.7343L48.2061 35.5156L51.2343 32.5041L57.4247 38.7112L68.651 27.4849L71.6793 30.4964L57.4247 44.7343Z" fill="#000" stroke="#000"></path> <path d="M42.9859 51.0083H4.80628L4.2207 49.8036C3.91955 49.1846 -2.99026 34.6288 4.40474 24.2223L5.04051 23.3188H41.5638V27.5852H7.29916C3.30051 34.3612 6.27858 43.4962 7.55012 46.7419H42.9859V51.0083Z" fill="#000" stroke="#000"></path> <path d="M13.8912 41.0033C15.8501 41.0033 17.4381 39.4153 17.4381 37.4563C17.4381 35.4974 15.8501 33.9094 13.8912 33.9094C11.9323 33.9094 10.3442 35.4974 10.3442 37.4563C10.3442 39.4153 11.9323 41.0033 13.8912 41.0033Z" fill="#000" stroke="#000"></path> <path d="M12.8871 47.2103H5.59247C4.72389 47.2103 4.01978 47.9144 4.01978 48.783V54.689C4.01978 55.5576 4.72389 56.2617 5.59247 56.2617H12.8871C13.7557 56.2617 14.4598 55.5576 14.4598 54.689V48.783C14.4598 47.9144 13.7557 47.2103 12.8871 47.2103Z" fill="#000" stroke="#000"></path> <path d="M36.6448 34.9969H24.5987C23.7486 34.9969 23.0594 35.6861 23.0594 36.5362V39.4641C23.0594 40.3142 23.7486 41.0033 24.5987 41.0033H36.6448C37.4949 41.0033 38.1841 40.3142 38.1841 39.4641V36.5362C38.1841 35.6861 37.4949 34.9969 36.6448 34.9969Z" fill="#000" stroke="#000"></path> <path d="M42.8018 27.5852H13.2385C12.4541 27.5852 11.6774 27.4307 10.9528 27.1305C10.2281 26.8304 9.56968 26.3904 9.01504 25.8358C8.46041 25.2811 8.02045 24.6227 7.72028 23.898C7.42012 23.1734 7.26562 22.3967 7.26562 21.6123V9.56615C7.26562 7.29427 8.16813 5.11543 9.77459 3.50897C11.3811 1.9025 13.5599 1 15.8318 1H46.6331C48.9037 1.00442 51.0799 1.90834 52.6854 3.51385C54.2909 5.11936 55.1949 7.29563 55.1993 9.56615V17.5467L53.7437 18.0319C49.3965 19.5384 45.7339 22.5541 43.4208 26.5311L42.8018 27.5852ZM15.8318 5.26634C14.6914 5.26634 13.5977 5.71936 12.7914 6.52573C11.985 7.3321 11.532 8.42577 11.532 9.56615V21.6123C11.532 22.056 11.7082 22.4816 12.022 22.7953C12.3358 23.1091 12.7613 23.2854 13.205 23.2854H40.3925C42.953 19.3772 46.6237 16.3241 50.9329 14.5185V9.49923C50.9285 8.36021 50.4741 7.26909 49.6687 6.46367C48.8633 5.65826 47.7721 5.20383 46.6331 5.19942L15.8318 5.26634Z" fill="#000" stroke="#000"></path> </svg><span class="aside-btn-tow-guides-title">Tow Guides</span><span class="aside-btn-tow-guides-subtitle">How much can I tow?</span></a></div> 3139 </aside> 3140 </div> 3141</div> 3142 3143 3144<footer id="site-footer"> 3145<div class="footer-body"> 3146<div class="container"> 3147<div class="row"> 3148<div class="col-sm-12 col-md-4 footer-logo text-center"><a href="/"><img src="https://assets-cdn.interactcp.com/crutah/images/montana-min.png?modified=1127202519431341" alt="C&R Auto & Trailer Sales" data-assetid="59545933" width="279" height="279"></a></div> 3149<div class="col-sm-4 col-md-3 col-xl-2 footer-quicklinks"> 3150<h4><svg xmlns="http://www.w3.org/2000/svg" width="13" height="21" viewbox="0 0 13 21" fill="none"> <path d="M11.7969 13.3906C12.3828 13.3906 12.7344 12.6094 12.2656 12.1406L1.17188 0.734375C0.742188 0.265625 0 0.578125 0 1.24219V18C0 18.625 0.703125 18.9766 1.17188 18.5078L4.53125 15.0312L6.60156 20.0703C6.75781 20.4219 7.1875 20.6172 7.53906 20.4609L9.45312 19.6406C9.80469 19.4844 9.96094 19.0547 9.80469 18.7031L7.65625 13.3906H11.7969Z" fill="black"></path> </svg> Quick Links</h4> 3151<ul> 3152<li><a href="/" title="C&R Auto & Trailer Sales">HOME</a></li> 3153<li><a href="/new-rvs-for-sale" title="RVS FOR SALE in C&R Auto & Trailer Sales">RVS FOR SALE</a></li> 3154<li><a href="/rv-financing" title="RV FINANCING in C&R Auto & Trailer Sales">FINANCING</a></li> 3155<li><a href="/rv-parts" title="RV PARTS in C&R Auto & Trailer Sales">PARTS</a></li> 3156<li><a href="/rv-service" title="RV SERVICE in C&R Auto & Trailer Sales">SERVICE</a></li> 3157<li><a href="/about-us" title="ABOUT C&R Auto & Trailer Sales">ABOUT US</a></li> 3158<li><a href="/contact-us" title="CONTACT US at C&R Auto & Trailer Sales">CONTACT US</a></li> 3159<li><a href="https://g.page/CRTrailers?share" title="Get Directions to C&R Auto & Trailer Sales" target="_blank" rel="noopener">DIRECTIONS</a></li> 3160</ul> 3161</div> 3162<div class="col-sm-4 col-md-3 col-xl-3 footer-location"> 3163<h4><svg width="15" height="21" viewbox="0 0 15 21" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M6.71875 20.1094C7.07031 20.6562 7.89062 20.6562 8.24219 20.1094C13.9453 11.9062 15 11.0469 15 8C15 3.85938 11.6406 0.5 7.5 0.5C3.32031 0.5 0 3.85938 0 8C0 11.0469 1.01562 11.9062 6.71875 20.1094ZM7.5 11.125C5.74219 11.125 4.375 9.75781 4.375 8C4.375 6.28125 5.74219 4.875 7.5 4.875C9.21875 4.875 10.625 6.28125 10.625 8C10.625 9.75781 9.21875 11.125 7.5 11.125Z" fill="black"></path> </svg> Tremonton, UT</h4> 3164<p style="margin-bottom: 5px;">5035 W Power Line Rd<br>Tremonton, UT 84337<br><a href="https://g.page/CRTrailers?share" target="_blank" rel="noopener" title="Get Directions to C&R Auto & Trailer Sales">Directions</a></p> 3165<p><strong>Sales</strong></p> 3166<p style="margin-bottom: 5px;"><a href="tel:435-257-1308" title="Call 435-246-3048">435-246-3048</a></p> 3167<p><strong>Parts</strong></p> 3168<p><a href="tel:435-246-3048" title="Call 435-246-3048">435-246-3048</a></p> 3169<p style="margin-bottom: 5px;"><a href="/contact-us" title="Contact Us">Contact Us</a></p> 3170<h4><svg width="15" height="21" viewbox="0 0 15 21" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M6.71875 20.1094C7.07031 20.6562 7.89062 20.6562 8.24219 20.1094C13.9453 11.9062 15 11.0469 15 8C15 3.85938 11.6406 0.5 7.5 0.5C3.32031 0.5 0 3.85938 0 8C0 11.0469 1.01562 11.9062 6.71875 20.1094ZM7.5 11.125C5.74219 11.125 4.375 9.75781 4.375 8C4.375 6.28125 5.74219 4.875 7.5 4.875C9.21875 4.875 10.625 6.28125 10.625 8C10.625 9.75781 9.21875 11.125 7.5 11.125Z" fill="black"></path> </svg> Kalispell, MT</h4> 3171<p style="margin-bottom: 5px;">3155 Hwy 93 South<br>Kalispell, MT 59901<br><a href="https://maps.app.goo.gl/9zn1Gik7rc38cwbC7" target="_blank" rel="noopener" title="Get Directions to C&R Auto & Trailer Sales">Directions</a></p> 3172<p><strong>Sales</strong></p> 3173<p style="margin-bottom: 5px;"><a href="tel:406-885-3333" title="Call 406-885-3333">406-885-3333</a></p> 3174<p><strong>Parts</strong></p> 3175<p><a href="tel:406-885-3333" title="Call 406-885-3333">406-885-3333</a></p> 3176<p style="margin-bottom: 5px;"><a href="/contact-us" title="Contact Us">Contact Us</a></p> 3177</div> 3178<div class="col-sm-4 col-md-3 col-xl-2 footer-hours"> 3179<h4><svg width="20" height="21" viewbox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
3179 <path d="M10 0.8125C4.64844 0.8125 0.3125 5.14844 0.3125 10.5C0.3125 15.8516 4.64844 20.1875 10 20.1875C15.3516 20.1875 19.6875 15.8516 19.6875 10.5C19.6875 5.14844 15.3516 0.8125 10 0.8125ZM13.5938 13.0391L12.8125 14.0156C12.6953 14.1719 12.5 14.2891 12.3047 14.2891C12.1875 14.2891 12.0312 14.2109 11.9531 14.1328L9.33594 12.1797C8.98438 11.9453 8.75 11.3984 8.75 10.9688V4.875C8.75 4.5625 9.02344 4.25 9.375 4.25H10.625C10.9375 4.25 11.25 4.5625 11.25 4.875V10.5L13.5156 12.1797C13.6328 12.2969 13.75 12.4922 13.75 12.6484C13.75 12.8047 13.6719 12.9609 13.5938 13.0391Z" fill="black"></path> </svg> Our Hours</h4> 3180<div class="operating-hours"> 3181<p><strong>Sales</strong><br />Monday - Friday: 9-5<br />Saturday: 9-4<br />Sunday: Closed</p> 3182<p><strong>Service</strong><br />Monday - Friday: 9-5<br />Saturday: 9-4<br />Sunday: Closed</p> 3183</div> 3184 3185 3186<div class="social"> 3187<h2 class="h2">Connect With Us!</h2> 3188<ul class="social-icons"> 3189<li><a target="_blank" href="https://www.facebook.com/CandRRV" rel="noopener" title="C&R Auto & Trailer Sales on Facebook"><i class="fa-brands fa-facebook-f" aria-hidden="true"></i><span>Facebook</span></a></li> 3190<li><a target="_blank" href="https://www.youtube.com/@crutah" rel="noopener" title="C&R Auto & Trailer Sales on Youtube"><i class="fa-brands fa-youtube" aria-hidden="true"></i><span>Youtube</span></a></li> 3191<li><a target="_blank" href="https://www.instagram.com/crutah/" rel="noopener" title="C&R Auto & Trailer Sales on Instagram"><i class="fa-brands fa-instagram" aria-hidden="true"></i><span>Instagram</span></a></li> 3192<li><a target="_blank" href="https://www.tiktok.com/@crutaht" rel="noopener" title="C&R Auto & Trailer Sales on TikTok"><i class="fa-brands fa-tiktok" aria-hidden="true"></i><span>TikTok</span></a></li> 3193</ul> 3194</div> 3195</div> 3196</div> 3197</div> 3198</div> 3199<div class="footer-bottom"> 3200<div class="container"> 3201 3202 3203<ul> 3204<li>Copyright © 2026 C&R Auto & Trailer Sales<span>â¢</span></li> 3205<li>Powered by <a href="https://www.interactrv.com" target="_blank" rel="noopener nofollow"><img src="https://assets-cdn.interactcp.com/interactrv/images/logos/irv-logo-color-1.svg" alt="Interact RV" /></a> <span>â¢</span></li> 3206<li><a href="/terms-of-use">Terms of Use</a><span>â¢</span></li> 3207<li><a href="/sold-rvs">Sold RVs</a><span>â¢</span></li> 3208<li><a href="/privacy-policy">Privacy Policy</a></li> 3209</ul> 3210</div> 3211</div> 3212</footer> 3213 3214 3215 3216 3217 3218 3219 3220 3221
3221<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/jquery.unveil.js"></script>
vendor: 1 bytes, line 3221
3221
3222<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/form-tweaker.js"></script>
vendor: 1 bytes, line 3222
3222
3223<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/eventboss-bundle.js"></script>
vendor: 1 bytes, line 3223
3223
3224<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/tealium.js"></script>
vendor: 1 bytes, line 3224
3224
3225<script type="text/javascript" src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
vendor: 1 bytes, line 3225
3225
3226<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/jquery.colorbox.1.4.3-min.js"></script>
vendor: 1 bytes, line 3226
3226
3227<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/jquery.cycle2.min.js"></script>
vendor: 1 bytes, line 3227
3227
3228<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/lazyload.js"></script>
vendor: 1 bytes, line 3228
3228
3229<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/jquery.cookie.js"></script>
vendor: 1 bytes, line 3229
3229
3230<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/jquery.hoverintent.js"></script>
vendor: 1 bytes, line 3230
3230
3231<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/jquery.defaultvalue.min.js"></script>
vendor: 1 bytes, line 3231
3231
3232<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/jquery.validate.min.js"></script>
vendor: 1 bytes, line 3232
3232
3233<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/jquery.validate.unobtrusive.min.js"></script>
vendor: 1 bytes, line 3233
3233
3234<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/date.format.js"></script>
vendor: 1 bytes, line 3234
3234
3235<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/form-persistence.js"></script>
vendor: 1 bytes, line 3235
3235
3236<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/bootstrap-datepicker.js"></script>
vendor: 1 bytes, line 3236
3236
3237<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/bootstrap-modal-lock.js"></script>
vendor: 1 bytes, line 3237
3237
3238<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/irvfavorites.js"></script>
vendor: 1 bytes, line 3238
3238
3239<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/psmnotification.js"></script>
vendor: 1 bytes, line 3239
3239
3240<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/irvform.js"></script>
vendor: 1 bytes, line 3240
3240
3241<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/irvmodal.js"></script>
vendor: 1 bytes, line 3241
3241
3242<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/colorbox-helper.js"></script>
vendor: 1 bytes, line 3242
3242
3243<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/comparison.js"></script>
vendor: 1 bytes, line 3243
3243
3244<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/jquery.history.js"></script>
vendor: 1 bytes, line 3244
3244
3245<script type="text/javascript" src="https://assets-cdn.interactcp.com/interactrv/js/common_netcore/ajaxunitlist.js"></script>
3245 3246 3247 3248<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 3248-3249
3248 3249<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3249GTM-KTVHNL4B
vendor: 83 bytes, lines 3249-3250
3249" 3250height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
3251<!-- End Google Tag Manager (noscript) --> 3252 3253<!-- Text Request --> 3254<txr-sms-chat accountid="11789" chatid="852e3b78-d9fc-4c99-9f81-6b5ea28b5174"></txr-sms-chat>
3255<script type="text/javascript" charset="UTF-8" src="https://fs.textrequest.com/sms-chat/main.bundle.js" defer></script>
3255 3256<p style="display:none">435-246-5671</p> 3257
3258<script> 3259 $('.unit-list .unit').each(function() { 3260$(this).find('.btn-glp').after('<li class="btn-call"><a class="btn btn-secondary" style = "width: 100%; margin-top: 5px; color: white!important;" href="tel:' + $(this).find('.detailsContainer').data('phone') + '" role="button" tabindex="0" data-ae-blurbtype="button">' + $(this).find('.detailsContainer').data('phone') + '</a></li>') 3261 }); 3262 3263 //lazy/AJAX loaded listing page units 3264 $('.ajax-unit-list').on('unit-loaded', function (e, unit) { 3265 $(unit).find('.btn-glp').after('<li class="btn-call"><a class="btn btn-secondary" style = "width: 100%; margin-top: 5px; color: white!important;" href="tel:' + $(unit).find('.detailsContainer').data('phone') + '" role="button" tabindex="0" data-ae-blurbtype="button">' + $(unit).find('.detailsContainer').data('phone') + '</a></li>') 3266 }); 3267</script>
3267 3268 3269<!-- Audio Eye Script -->
3270<script type="text/javascript">!function(){var b=function(){window.__AudioEyeSiteHash = "12b5ca15cecc5255bf310a25fddab893"; var a=document.createElement("script");a.src="https://wsmcdn.audioeye.com/aem.js";a.type="text/javascript";a.setAttribute("async","");document.getElementsByTagName("body")[0].appendChild(a)};"complete"!==document.readyState?window.addEventListener?window.addEventListener("load",b):window.attachEvent&&window.attachEvent("onload",b):b()}();</script>
3270 3271 3272<!--Add Metricool Java Code 01545446 -->
3273<script>function loadScript(a){var b=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.src="https://tracker.metricool.com/resources/be.js",c.onreadystatechange=a,c.onload=a,b.appendChild(c)}loadScript(function(){beTracker.t({hash:"67d227153b630c20ebaf7725e2846848"})});</script>
3273 3274 3275<!-- HubSpot Tracking Script | SF: 01770442 -->
3276<script type="text/javascript" id="hs-script-loader" async defer src="//js-na2.hs-scripts.com/246104811.js"></script>
3276 3277 3278<!-- C&R lead capture start (added by TJ/Claude 2026-10-09) -->
3279<script> 3280(function(){ 3281 if(!window.jQuery){return;} 3282 var HS_PORTAL='246104811', HS_FORM='1f595084-56ca-4405-ad84-a1554a4b6148'; 3283 function ck(n){var m=document.cookie.match(new RegExp('(?:^|; )'+n+'=([^;]*)'));return m?decodeURIComponent(m[1]):'';} 3284 function v(f,n){var e=f.find('[name="'+n+'"]');if(!e.length)return '';if(e.is(':checkbox,:radio'))e=e.filter(':checked');return jQuery.trim(e.first().val()||'');} 3285 jQuery(document).on('submit-complete','form.irvForm',function(){ 3286 try{ 3287 var f=jQuery(this); 3288 if(v(f,'ConfirmEmail-247'))return; 3289 var type=v(f,'FormType')||'Website form', isCredit=/credit/i.test(type); 3290 var unit=[v(f,'StockNumber'),v(f,'UnitYear'),v(f,'UnitMake'),v(f,'UnitModel')].filter(Boolean).join(' '); 3291 if(!unit&&/\/product\//.test(location.pathname))unit=location.pathname; 3292 var fn=v(f,'FirstName'),ln=v(f,'LastName'); 3293 if(!ln&&fn.indexOf(' ')>0){ln=fn.slice(fn.indexOf(' ')+1);fn=fn.slice(0,fn.indexOf(' '));} 3294 var data={firstname:fn,lastname:ln,email:v(f,'Email'),phone:v(f,'Phone')||v(f,'CellPhone'),zip:v(f,'Zip'),message:isCredit?'':v(f,'Comments').slice(0,2000),cr_website_form_type:type,cr_website_form_unit:unit}; 3295 window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:'cr_lead_submit',cr_form_type:type}); 3296 if(!data.email||!window.fetch)return; 3297 var fields=[];for(var k in data){if(data[k])fields.push({objectTypeId:'0-1',name:k,value:data[k]});} 3298 var ctx={pageUri:location.href,pageName:document.title};var hutk=ck('hubspotutk');if(hutk)ctx.hutk=hutk; 3299 fetch('https://api.hsforms.com/submissions/v3/integration/submit/'+HS_PORTAL+'/'+HS_FORM,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({fields:fields,context:ctx}),keepalive:true}).catch(function(){}); 3300 }catch(e){} 3301 }); 3302})(); 3303</script>
3303 3304<!-- C&R lead capture end -->
3305<script type="text/javascript"> 3306 $(document).ready(function () { 3307 if(window.location.href.indexOf("?") > -1 && $(".listingToolbar").length) { 3308 $('html, body').animate({ 3309 scrollTop: $(".listingToolbar").offset().top 3310 }, 200) 3311 } 3312}); 3313</script>
3313 3314 3315 <style> 3316.state-ut, .state-mt { right: 200px; margin: 0 15px; float: right; position: relative; background: #3f5b1b; border-radius: 0 0 10px 10px; padding: 5px 15px; top: 0px; color: white; display: none;} 3317.state-ut img, .state-mt img {max-width: 40px; margin-right: 5px;} 3318.state-ut a, .state-mt a {color: white; font-weight: 500;} 3319#site-header { 3320 background: #fff; 3321 height: 70px; 3322 position: relative; 3323} 3324.btn-header-location-nearest-you { 3325 position: absolute; 3326 right: 15px; 3327 top: 10px; 3328 font-size: 20px; 3329 font-weight: 700; 3330 padding: 0px 10px; 3331 background: #fb2020; 3332 border-radius: 10px; 3333 color: white; 3334} 3335 3336@media(min-width: 768px) { 3337 3338} 3339 3340@media(min-width: 992px) { 3341#site-header { 3342 background: #fff; 3343 height: 60px; 3344 position: relative; 3345} 3346 3347.state-ut, .state-mt {display: inline-block;} 3348.btn-header-location-nearest-you { 3349 position: absolute; 3350 right: 35px; 3351 top: 0px; 3352 font-size: 20px; 3353 font-weight: 700; 3354 padding: 0px 10px; 3355 background: #fb2020; 3356 border-radius: 0px 0px 10px 10px; 3357 color: white; 3358} 3359 3360} 3361@media(min-width: 1200px) { 3362 3363} 3364@media(min-width: 1600px) { 3365 3366} 3367 3368 3369.btn-header-location-nearest-you a { 3370color: #fff; 3371} 3372 3373.location-modal .row { 3374 padding: 20px 0; 3375} 3376 3377.location-modal .loc-phone { font-weight: 600;} 3378 3379.off-color { 3380 background: #EDF0F4; 3381 margin: 0 -15px; 3382} 3383 3384.loc-pin span { 3385 font-size: 21px; 3386 line-height: 28px; 3387 font-weight: 900; 3388 position: relative; 3389 top: 5px; 3390} 3391 3392.loc-pin { 3393 margin: 0 auto; 3394 font-size: 14px; 3395 line-height: 14px; 3396 font-weight: 900; 3397 position: relative; 3398} 3399.loc-pin svg {display: block} 3400 3401 3402@media (min-width: 992px) { 3403.loc-pin svg { 3404 position: absolute; 3405 left: 0; 3406 top: 0px; 3407 margin: 0 auto; 3408} 3409.loc-pin { 3410 padding-left: 40px; 3411} 3412} 3413 3414</style> 3415 3416 3417
3417<script type="text/javascript"> 3418 (function(doc, tagName) { 3419 var firstScript = doc.getElementsByTagName(tagName)[0]; 3420 var targetParent = (firstScript && firstScript.parentNode) || doc.head || doc.body; 3421 var addScript = function(url, id) { 3422 if (!targetParent) { return; } 3423 if (id && doc.getElementById(id)) { return; } 3424 if (doc.querySelector('script[src="' + url + '"]')) { return; } 3425 var el = doc.createElement(tagName); 3426 el.src = url; 3427 el.async = true; 3428 if (id) { el.id = id; } 3429 if (firstScript && firstScript.parentNode) { 3430 firstScript.parentNode.insertBefore(el, firstScript); 3431 } else { 3432 targetParent.appendChild(el); 3433 } 3434 }; 3435 3436 if (window.innerWidth <= 959) { 3437 addScript( 3438 'https://assets-cdn.interactcp.com/interactrv/js/common_netcore/jquery.cycle2.swipe.min.js',
3439 'cycle2-swipe' 3440 ); 3441 } 3442 }(document, 'script')); 3443 </script>
3443 3444 3445
3445<script type="text/javascript" src="https://cdn.customerconnections.io/Script/d840b19795c64d66ad9a2a37825a6b4e" defer></script>
3445 3446
3447<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a48173fa78baeac6',t:'MTc5MTU5MTU2MQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
3447</body> 3448</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.