Truck Campers for Sale | Campers Inn RV of Huntsville-Madison, AL (2024)

Campers Inn RV of Alabama has a convenient location with incredible deals on used truck campers for Alabama RVers. Visit us in Madison, Ala., on Madison Ave. to find your perfect RV! Our inventory is always changing, so contact us for the latest truck campers on our lot. When you shop with Campers Inn RV, you’ll enjoy a five-star customer experience. Our no-pressure sales process is designed to help you find your dream RV, and our RV matchmakers want you to be confident you are choosing the right camper for your needs and budget.

Visit our resource center to learn more about RV shopping, maintenance and travel.

We'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 Search and expand your criteria.

Change Zip

Filter

Favorites ()

  • «
  • »

Showing 1 - 0 of 0

Confirmation

Thank you for requesting our Show Price on this RV. Please check your email to view this great deal. Thank you for visiting www.CampersInn.com.

Contact an RV Consultant or Ask a Question

Close

Confirmation

Thank you for requesting our personalized quote on this RV. A member of our team will be contacting you shortly with that information. Thank you for visiting www.CampersInn.com.

Contact an RV Consultant or Ask a Question

Close

*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("icon-plus").addClass("icon-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("icon-minus").addClass("icon-plus");}else {$this.find("i").removeClass("icon-plus").addClass("icon-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("icon-minus").addClass("icon-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 };});

Truck Campers for Sale | Campers Inn RV of Huntsville-Madison, AL (2024)
Top Articles
Latest Posts
Article information

Author: Jamar Nader

Last Updated:

Views: 5425

Rating: 4.4 / 5 (75 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Jamar Nader

Birthday: 1995-02-28

Address: Apt. 536 6162 Reichel Greens, Port Zackaryside, CT 22682-9804

Phone: +9958384818317

Job: IT Representative

Hobby: Scrapbooking, Hiking, Hunting, Kite flying, Blacksmithing, Video gaming, Foraging

Introduction: My name is Jamar Nader, I am a fine, shiny, colorful, bright, nice, perfect, curious person who loves writing and wants to share my knowledge and understanding with you.