Campers Inn RV of Union has Connecticut’s best selection of new RVs for sale at unbeatable prices. Our dealership is packed with the industry’s most popular brands of pop-ups, travel trailers, fifth wheels and Class A, Class B and Class C motorhomes. Our RV matchmakers are ready to help you find the perfect RV for your lifestyle and budget with our no-pressure customer experience.Contact us with any questions or to make an appointment with one of our knowledgeable team members!
Do you want more information about the RV lifestyle? Our resource center is filled with expert advice on RV shopping, maintenance and travel destinations.
Showing 1 - 50 of 54
Change Zip
Filter
Favorites ()
Expandable
-
New 2023 Forest River RV Rockwood Roo 19
Stock #71396
Union CT
2 FOLD OUT QUEEN BEDS--SLEEPER SOFA--SLEEPER DINETTE--LIGHT WEIGHT
Previous Next
- +63
- View More »
New 2023 Forest River RV Rockwood Roo 19
Stock #71396
Union CT
2 FOLD OUT QUEEN BEDS--SLEEPER SOFA--SLEEPER DINETTE--LIGHT WEIGHT
- Sleeps 6
- 22ft long
- 4298 lbs
- MSRP: $39,897
- You Save: $12,900
- Sale Price: $26,997
Go Camping For Less! $219 /mo.
$ Get Internet Price $ View Details »
View Details »
- Value My Trade
- Get Pre-Approved
- Send to Friend
-
New 2024 Forest River RV Rockwood Roo 235S
Stock #87402
Union CT
Best of both worlds! Hybrid camper that opens up in a huge way! Sleeps up to 6! Come see it before its gone!
Previous Next
- +33
- View More »
New 2024 Forest River RV Rockwood Roo 235S
Stock #87402
Union CT
Best of both worlds! Hybrid camper that opens up in a huge way! Sleeps up to 6! Come see it before its gone!
- Sleeps 7
- 1 Slides
- 25ft long
- 5639 lbs
- MSRP: $50,433
- You Save: $9,983
- Sale Price: $40,450
Go Camping For Less! $328 /mo.
$ Get Internet Price $ View Details »
View Details »
- Value My Trade
- Get Pre-Approved
- Send to Friend
Travel Trailer
-
New 2023 Grand Design Reflection 315RLTS
Stock #84291
Union CT
Travel trailer with the layout of a FW! Sleep sofa with theater seats and a private bedroom!
Previous Next
- +55
- View More »
New 2023 Grand Design Reflection 315RLTS
Stock #84291
Union CT
Travel trailer with the layout of a FW! Sleep sofa with theater seats and a private bedroom!
- Sleeps 5
- 3 Slides
- 9443 lbs
- Fireplace
- Rear Living Area
...View Floorplan
- MSRP: $84,818
- You Save: $19,943
- Sale Price: $64,875
Go Camping For Less! $467 /mo.
$ Get Internet Price $ View Details »
View Details »
See AlsoRV Dealer in Davenport, Iowa |RV Sales & ServiceRV Dealer in Richfield, WINew RVs for Sale in OhioRV Dealer in Richfield, WI- Value My Trade
- Get Pre-Approved
- Send to Friend
-
New 2024 Gulf Stream RV Friendship 177BH
Stock #94266
Union CT
Liquidation Sale! This camper will not last!
Previous Next
- +44
- View More »
New 2024 Gulf Stream RV Friendship 177BH
Stock #94266
Union CT
Liquidation Sale! This camper will not last!
- Sleeps 5
- 21ft long
- 2810 lbs
- Bunkhouse
...View Floorplan
- MSRP: $26,971
- You Save: $11,976
- Sale Price: $14,995
Go Camping For Less! $122 /mo.
$ Get Internet Price $ View Details »
View Details »
- Value My Trade
- Get Pre-Approved
- Send to Friend
-
New 2024 Gulf Stream RV Friendship 177BH
Stock #94268
Union CT
LIQUIDATION SALE! THIS CAMPER WILL NOT LAST! BETTER THAN OTHER CAMPERS OF THIS PRICE RANGE!
Previous Next
- +44
- View More »
New 2024 Gulf Stream RV Friendship 177BH
Stock #94268
Union CT
LIQUIDATION SALE! THIS CAMPER WILL NOT LAST! BETTER THAN OTHER CAMPERS OF THIS PRICE RANGE!
- Sleeps 5
- 21ft long
- 2810 lbs
- Bunkhouse
...View Floorplan
- MSRP: $22,971
- You Save: $7,976
- Sale Price: $14,995
Go Camping For Less! $122 /mo.
$ Get Internet Price $ View Details »
View Details »
- Value My Trade
- Get Pre-Approved
- Send to Friend
-
New 2024 Keystone RV Springdale Classic 200RLC
Stock #92035
Union CT
This trailer is perfect for your crew of four to six. Find Your Away at Campers Inn RV Today!
Previous Next
- +41
- View More »
New 2024 Keystone RV Springdale Classic 200RLC
Stock #92035
Union CT
This trailer is perfect for your crew of four to six. Find Your Away at Campers Inn RV Today!
- Sleeps 5
- 25ft long
- 4535 lbs
- Front Bedroom
...View Floorplan
- MSRP: $26,564
- You Save: $6,569
- Sale Price: $19,995
Go Camping For Less! $162 /mo.
$ Get Internet Price $ View Details »
View Details »
- Value My Trade
- Get Pre-Approved
- Send to Friend
-
New 2024 Keystone RV Springdale Classic 200RLC
Stock #90985
Union CT
No Slide! Light Weight! Huge back window for epic views! Great for a budget minded camper!
New 2024 Keystone RV Springdale Classic 200RLC
Stock #90985
Union CT
No Slide! Light Weight! Huge back window for epic views! Great for a budget minded camper!
- Sleeps 5
- 25ft long
- 4535 lbs
- Front Bedroom
...View Floorplan
- MSRP: $26,564
- You Save: $6,569
- Sale Price: $19,995
Go Camping For Less! $162 /mo.
$ Get Internet Price $ View Details »
View Details »
- Value My Trade
- Get Pre-Approved
- Send to Friend
-
New 2024 Keystone RV Springdale Classic 261BHC
Stock #94106
Union CT
Classic edition! Slide out! Best price range!
Previous Next
- +35
- View More »
New 2024 Keystone RV Springdale Classic 261BHC
Stock #94106
Union CT
Classic edition! Slide out! Best price range!
- Sleeps 9
- 1 Slides
- 27ft long
- 6145 lbs
- Bunkhouse
- Front Bedroom
...View Floorplan
- MSRP: $31,994
- You Save: $6,999
- Sale Price: $24,995
Go Camping For Less! $203 /mo.
$ Get Internet Price $ View Details »
View Details »
- Value My Trade
- Get Pre-Approved
- Send to Friend
-
New 2024 Grand Design Imagine AIM 16ML
Stock #89401
Union CT
Lots of camper for the size! Perfect Couples camper! Light weight easy to tow!
Previous Next
- +37
- View More »
New 2024 Grand Design Imagine AIM 16ML
Stock #89401
Union CT
Lots of camper for the size! Perfect Couples camper! Light weight easy to tow!
- Sleeps 3
- 1 Slides
- 20ft long
- 3768 lbs
- Rear Bath
...View Floorplan
- MSRP: $36,360
- You Save: $7,361
- Sale Price: $28,999
Go Camping For Less! $235 /mo.
$ Get Internet Price $ View Details »
View Details »
- Value My Trade
- Get Pre-Approved
- Send to Friend
-
New 2023 Forest River RV Rockwood Mini Lite 2205S
Stock #86335
Union CT
Light weight camper loaded with features under 26ft!
Previous Next
- +34
- View More »
New 2023 Forest River RV Rockwood Mini Lite 2205S
Stock #86335
Union CT
Light weight camper loaded with features under 26ft!
- Sleeps 2
- 1 Slides
- 24ft long
- 5132 lbs
- Front Bedroom
...View Floorplan
- MSRP: $48,639
- You Save: $15,189
- Sale Price: $33,450
Go Camping For Less! $271 /mo.
$ Get Internet Price $ View Details »
View Details »
- Value My Trade
- Get Pre-Approved
- Send to Friend
-
New 2023 Forest River RV Rockwood Mini Lite 2205S
Stock #84537
Union CT
Cozy light weight unit under 25 ft! Great for a weekend getaway!
Previous Next
- +33
- View More »
New 2023 Forest River RV Rockwood Mini Lite 2205S
Stock #84537
Union CT
Cozy light weight unit under 25 ft! Great for a weekend getaway!
- Sleeps 2
- 1 Slides
- 5132 lbs
- Fireplace
- Front Bedroom
...View Floorplan
- MSRP: $46,938
- You Save: $13,488
- Sale Price: $33,450
Go Camping For Less! $271 /mo.
$ Get Internet Price $ View Details »
View Details »
- Value My Trade
- Get Pre-Approved
- Send to Friend
-
New 2024 Forest River RV Rockwood Mini Lite 2104S
Stock #87397
Union CT
Perfect couples camper! Open floor plan! Light weight! Buy now before Airstream of Southern New England takes over!
Previous Next
- +32
- View More »
New 2024 Forest River RV Rockwood Mini Lite 2104S
Stock #87397
Union CT
Perfect couples camper! Open floor plan! Light weight! Buy now before Airstream of Southern New England takes over!
- Sleeps 4
- 1 Slides
- 22ft long
- 4977 lbs
- U Shaped Dinette
- Murphy Bed
...View Floorplan
- MSRP: $48,036
- You Save: $13,039
- Sale Price: $34,997
Go Camping For Less! $284 /mo.
$ Get Internet Price $ View Details »
View Details »
- Value My Trade
- Get Pre-Approved
- Send to Friend
Fifth Wheel
Motor Home Class B
Motor Home Class B - Diesel
Motor Home Class B+ - Diesel
- «
- 1
- 2
- »
Showing 1 - 50 of 54
*All calculated monthly payments are an estimate for qualified buyers only and do not constitute a commitment that financing or a specific interest rate or term is available. Financing terms may not be available in all Campers Inn locations. Campers Inn RV 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 inventory in stock on our lot. Please contact us for availability as our inventory changes rapidly.
Manufacturer 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.
Manufacturer 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.
';}}// add stock number to selected filters if setvar stockNumEl = $('#faceted-search').find('.SearchStockNumber');if (stockNumEl.length > 0 && stockNumEl.val() !== null && stockNumEl.val() !== '') {searchResultsHtml += '
';searchResultsHtml += '
Stock Number
';searchResultsHtml += '
- ';searchResultsHtml += '
- ' + $('').text(stockNumEl.val()).html() + ' '; // html encode stock num valsearchResultsHtml += '
';searchResultsHtml += '
';}$('.selected-filters-wrapper').append(searchResultsHtml);// show/hide clear filters toolbar at the topif ($('.selected-filters-wrapper').html() !== '') {$('.clear-filters-toolbar').fadeIn(200);}else {$('.clear-filters-toolbar').fadeOut(200);}}; // Helper function to be called when the counts shown next to each checkbox and the visibility of checkboxes/sections needs to be updatedvar updateCounts = function() {// Tow Rating addition// over ride control if a tow rating cookie exists// applies to FilteredSearch and UnitList.cshtmlif (window.location.pathname == '/tow-guide-search') {window.Interact.TowRating.checkCookie();// console.log('tow rating cookie check fired');}if (!searchCombos || !searchCombos.length) return;var currentSearchCounts = {normal: searchCombos};for (var prop in searchCombos[0]) {if (prop === 'count') continue;var checkBoxWrapper = $('#faceted-search [data-field-name="' + prop + '"]');var normalCounts = currentSearchCounts['normal'];var currentVals = $.map(($('.ajax-unit-list').ajaxUnitList('getCurrentOpt', prop) || '').split(','), function(x) { return x.toLowerCase(); });if (currentVals[0] !== '') {for (var countGroupName in currentSearchCounts) {currentSearchCounts[countGroupName] = $.grep(currentSearchCounts[countGroupName], function(x, i) {if (multiValueColumns[prop] !== undefined) { var parts = $.map(x[prop].split(multiValueColumns[prop].separator), function (x) { return x.toLowerCase(); }); if (multiValueColumns[prop].filterMode === 'and') { for (var i = 0; i < currentVals.length; i++) { if (currentVals[i] === '') continue; if (parts.indexOf(currentVals[i]) === -1) { return false; } } return true; } else { for (var i = 0; i < currentVals.length; i++) { if (currentVals[i] === '') continue; if (parts.indexOf(currentVals[i]) !== -1) { return true; } } return false; }}else {return currentVals.indexOf(x[prop].toLowerCase()) !== -1;}});}}if (checkBoxWrapper.find('input[type=checkbox]:checked').length) {currentSearchCounts[prop] = normalCounts;}}for (var prop in searchCombos[0]) {if (prop === 'count') continue;var checkBoxWrapper = $('#faceted-search [data-field-name="' + prop + '"]'); var sectionCheckboxes = checkBoxWrapper.find('input[type=checkbox]');// get list of all checked checkbox values in the same section - this is for multivalue columns in 'and' modevar checkedValues = sectionCheckboxes.filter(":checked").map(function(i, x) { return $(x).val(); });sectionCheckboxes.each(function() { var checkboxVal = $(this).val();var countRows = $.grep(currentSearchCounts[prop] || currentSearchCounts['normal'], function(x, i) {if (multiValueColumns[prop] !== undefined) { var currVals = $.map( $.grep(x[prop].split(multiValueColumns[prop].separator),function(z) { return z !== ''; }), function(x) { return x.toLowerCase(); }); if (multiValueColumns[prop].filterMode === 'and') { if (currVals.indexOf(checkboxVal.toLowerCase()) === -1) return false; for (var i = 0; i < checkedValues.length; i++) { if (currVals.indexOf(checkedValues[i].toLowerCase()) === -1) return false; } return true; } else { return currVals.indexOf(checkboxVal.toLowerCase()) !== -1; }}else {return x[prop].toLowerCase() === checkboxVal.toLowerCase();}});var sum = 0;$.each(countRows, (function() {sum += parseInt(this.count, 10);}));var groupWrapper = $(this).closest('.CheckBoxList');var panel = $(this).closest('.panel');if (sum === 0) {$(this).parents('div.checkbox').addClass('hide');// check to see if all checkboxes in the group are hidden, and if so, hide the wrapper panel alsoif (groupWrapper.find('div.checkbox:not(.hide)').length < 1) {panel.addClass('hide');}}else {$(this).parent().find('.count').text(sum);$(this).parents('div.checkbox').removeClass('hide');panel.removeClass('hide');}});}// hide filter containers where there is only one visible checkbox$('#facetedSearch .panel').filter(":not(.hide)").each(function() {var minCheckboxCount = $(this).data('minCheckboxCount') || 2;if ($(this).find('div.checkbox:not(.hide) input[type=checkbox]').length < minCheckboxCount) { $(this).addClass('hide');}}); // setup clear filters sectionupdateClearFiltersSection();};var submitToSearchPage = function(clearCheckboxFilters) {var tmpSearchInputs = $('#faceted-search').find(':input');if (clearCheckboxFilters) {tmpSearchInputs = tmpSearchInputs.filter(':not(input[type=checkbox])');}var tmpSearchValues = tmpSearchInputs.serializeArray();// comma delimit search values with the same namevar searchValMap = {};for (var i = 0; i < tmpSearchValues.length; i++) {var fieldName = tmpSearchValues[i].name.toLowerCase();if (searchValMap[fieldName] !== undefined && searchValMap[fieldName] !== '') {searchValMap[fieldName] += "," + tmpSearchValues[i].value;}else {searchValMap[fieldName] = tmpSearchValues[i].value;}}var searchValues = [];for (var param in searchValMap) {searchValues.push({name: param, value: searchValMap[param]});}var targetPage = '/rv-search';var qMark = window.location.href.indexOf('?');var currentPage = qMark > -1 ? window.location.href.substring(0, qMark) : window.location.href;currentPage = '/' + currentPage.replace(/^(?:\/\/|[^\/]+)*\//, "");var qsValues = getUrlVars();if (currentPage === targetPage && qsValues !== undefined && qsValues !== null) {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 propertiesdelete qsValues['page'];delete qsValues['s'];// remove qs params that are part of the search form - this is particularly important for checkboxes, which would not be included// in the searchValues collection if uncheckedfor (var param in qsValues) {if ($('#faceted-search :input').filter(function() { return ($(this).attr('name') || '').toLowerCase() === param; }).length) {delete qsValues[param];}}// add/update qs params from search valuesfor (var i = 0; i < searchValues.length; i++) {if (searchValues[i].value !== '') {qsValues[searchValues[i].name] = searchValues[i].value;}}var qsArray = [];for (var param in qsValues) {qsArray.push({name: param, value: qsValues[param]});}var qs = $.param(qsArray);window.location = "/rv-search?s=true" + (qs !== "" ? "&" + qs : "");}else {var qs = $.param($.grep(searchValues, function(x) { return x.value !== ''; }));window.location = "/rv-search?s=true" + (qs !== "" ? "&" + qs : "");}};var initializeSearchFields = function(data) {if (data["brand"] !== undefined) {data["brand"] = data["brand"].toLowerCase().trim();}if (data["manufacturer"] !== undefined) {data["manufacturer"] = data["manufacturer"].toLowerCase().trim();}$('#faceted-search :checkbox, #faceted-search :radio').removeAttr("checked"); if (data["zip"] !== undefined) { const zipInput = document.getElementById("locationZip"); if (zipInput) { zipInput.value = data["zip"]; } } if (data["distance"] !== undefined) { const distanceInput = document.getElementById("distanceRange"); if (distanceInput) { distanceInput.value = data["distance"]; } }for (var key in data) {if (data[key] === undefined || !isNaN(key)) {return;}var mVals = data[key].indexOf(',') !== -1 ? mVals = data[key].split(',') : null;$('#faceted-search [name]').filter(function() {return ($(this).attr('name') || '').toLowerCase() === key.toLowerCase();}).each(function(index, el){if ($(el).is(":checkbox") || $(el).is(":radio")) {if (mVals != null) {if ($.inArray($(el).val(), mVals) !== -1) {$(el).attr("checked", "checked");$(el).addClass("value-modified");}}else if ($(el).val() === data[key]) {$(el).attr("checked", "checked");$(el).addClass("value-modified");}}else {$(el).val(data[key]);if (data[key] != '' && $(el).val() === data[key]) {$(el).addClass("value-modified");}}});}// clear the stock number textbox if the stocknumber query string parameter isn't present.// this is needed b/c when the browser back button is clicked back to a point where the// stock number filter isn't set, even though the stocknumber query string parameter is// cleared, some browsers keep the input field filledif (data['stocknumber'] === undefined) {var stockNumEl = $('#faceted-search').find('.SearchStockNumber');stockNumEl.val('');}updateCounts(); };var scrollToListTop = function () {// only scroll to list top if the scroll position is currently below the top of the listif ($("html, body").scrollTop() > $('.ajax-unit-list').offset().top) {$("html, body").animate({ scrollTop: $('.ajax-unit-list').offset().top }, "fast");}};// setup event handlers$("#faceted-search #facetedSearch input[type=checkbox]").change(function() {var stockNumEl = $('#faceted-search').find('.SearchStockNumber');if (noResultsMode === false && isListingPage) {var name = $(this).attr("name");var checkboxesInGroup = $('#faceted-search').find(':input[name="' + name + '"]');// if the only checked checkboxes in this group are hidden, uncheck themif (checkboxesInGroup.filter(':checked').filter(function() { return $(this).parents('div.checkbox:not(.hide)').length > 0; }).length < 1) {checkboxesInGroup.prop('checked', false);}var newValue = checkboxesInGroup.filter(':checked').map(function(i,v) { return $(this).val(); }).toArray().join(",");var updateData = { s: "true" };updateData[name] = newValue;$('.ajax-unit-list').ajaxUnitList('update', updateData);scrollToListTop();updateCounts();}else {stockNumEl.val('');submitToSearchPage();}});$('#faceted-search').find('.SearchButton').click(function(e) { e.preventDefault();var stockNumEl = $('#faceted-search').find('.SearchStockNumber');if (isListingPage && !stockNumEl.hasClass('value-modified')) {var stockNum = stockNumEl.val();var updateData = { s: "true" };updateData['stockNumber'] = stockNum;$('.ajax-unit-list').ajaxUnitList('update', updateData); scrollToListTop();updateCounts();} else { gtmAnalyticsEventTrack($(this), 'Interactions', 'StockFilteredSearch', stockNumEl.val(), '1');submitToSearchPage(true);}return false;});var searchFieldChanged = function() {$(this).addClass("value-modified");};$('#faceted-search input, #faceted-search select').change(searchFieldChanged);$('#faceted-search input[type="text"]').keyup(searchFieldChanged);$('#faceted-search').on('submitToSearchPage', submitToSearchPage);$('#faceted-search').on('clearFilters', function() {if ($('input[name=zip]').val() || $('input[name=stockNumber]').val()) {window.location = "/rv-search?s=true";}$('.clear-filters-toolbar').hide();$('#faceted-search').find('input[type=text]').val('');$('#faceted-search').find('input[type=checkbox]').prop('checked', false);$('.ajax-unit-list').ajaxUnitList('clearFilters'); scrollToListTop();updateCounts();}); $('#faceted-search').on('clearSection', function(e, section) {if (section === '.stockNumber') {var stockNumEl = $('#faceted-search').find('.SearchStockNumber');stockNumEl.val('');submitToSearchPage();}else {$('#faceted-search').find(section).find('input[type=checkbox]:checked').prop('checked', false).trigger('change');scrollToListTop();updateCounts();}});$('#faceted-search').on('clearSelection', function(e, section, selection) {$('#faceted-search').find(section).find(' :checkbox[value="' + selection + '"]').prop('checked', false).trigger('change'); scrollToListTop();updateCounts();});$('.ajax-unit-list').on('ajaxUnitList.historychange', function(e, data) {if (data != null) {initializeSearchFields(data);}});$('a.btn-clear-all').click(function(e) {e.preventDefault();$('#faceted-search').trigger('clearFilters');});// setup on initial loadfunction init(doExpand) {if (isListingPage) {var data = $('.ajax-unit-list').ajaxUnitList('getCurrentOpts');if (data != null) {initializeSearchFields(data);}if (doExpand) {$("#facetedSearch .panel-collapse").each(function () {var $this = $(this);if ($this.find(":checked").length) {$this.addClass("in");$this.closest(".panel").find(".panel-heading i").removeClass("fa fa-plus").addClass("fa fa-minus");}});}}}init(true);$("#facetedSearch .panel-heading a").click(function() {var $this = $(this);if ($this.closest(".panel").find(".panel-collapse.in").length) {$this.find("i").removeClass("fa fa-minus").addClass("fa fa-plus");}else {$this.find("i").removeClass("fa fa-plus").addClass("fa fa-minus");}});/////////////////////////// Saved Searches/////////////////////////if ($('div.user-profile-wrapper').data('user-authenticated')) {$('.save-search-toolbar').removeClass('hidden');} const savedSearchPostUrl = '/rebraco/contactsavedsearch/save';var savedSearchId = 0;var savedSearchName = null;var urlParams = getUrlVars();if (urlParams) {savedSearchId = urlParams["savedSearchId"] || 0;if (savedSearchId) {savedSearchName = urlParams["savedSearchName"];$('.save-search-btn').text('Update Saved Search');}}$('.save-search-btn').click(function () { if (!savedSearchName) { savedSearchName = prompt("Enter a name for this saved search:"); } var postData = { contactSavedSearchId: savedSearchId, name: savedSearchName, url: location.href }; $.ajax(savedSearchPostUrl, { data: JSON.stringify(postData), type: 'POST', contentType: 'application/json', success: function (response) { if (response.success) {savedSearchId = response.contactSavedSearchId; $('.save-search-btn').text('Update Saved Search'); alert("Saved successfully"); }else {if (!savedSearchId) {savedSearchName = null; } alert("Save failed"); }},error: function () { if (!savedSearchId) { savedSearchName = null; } alert("Save failed"); } });});/////////////////////////// Mobile Filtered Search/////////////////////////$('.mobile-filter-link').click(function(e){e.preventDefault();$('body').addClass('modal-open');$('#faceted-search').addClass('fs-modal');});$('.fs-done').click(function(e){e.preventDefault();$('body').removeClass('modal-open');$('#faceted-search').removeClass('fs-modal');});$('.fs-clear-filters').click(function(e){e.preventDefault();$('#faceted-search').trigger('clearFilters');});var waitForFinalEvent = (function () {var timers = {};return function (callback, ms, uniqueId) {if (!uniqueId) {uniqueId = "Don't call this twice without a uniqueId";}if (timers[uniqueId]) {clearTimeout(timers[uniqueId]);}timers[uniqueId] = setTimeout(callback, ms);};})();var $mobileSortOptions = $('#faceted-search .mobile-sort-options-wrapper');var $desktopSortOptions = $('.listingToolbar .sort-options-wrapper');var $sortOptions = $('#sortOptions');function filteredSearchResponsiveStuff(initialLoad) {if ($(window).width() <= 991) {if ($mobileSortOptions.find('#sortOptions').length < 1) {$mobileSortOptions.append($sortOptions);}// collapse search panels on mobile, except for those with checked checkboxesif (initialLoad) {$("#facetedSearch .panel-collapse").each(function() {var $this = $(this);if ($this.find(":checked").length < 1) {$this.addClass('collapse').removeClass('in');$this.closest(".panel").find(".panel-heading i").removeClass("fa fa-minus").addClass("fa fa-plus");}});}} else {if ($desktopSortOptions.find('#sortOptions').length < 1) {$desktopSortOptions.append($sortOptions);}}};filteredSearchResponsiveStuff(true);$(window).resize(function () {waitForFinalEvent(function () {filteredSearchResponsiveStuff(false);}, 500, "filteredSearchResize"); }); // exports window.Interact = window.Interact || {}; window.Interact.FilteredSearch = { init: init };});