{"version":3,"sources":["inventory-search-results.js"],"names":["storeTradeIn","tradeIn","document","querySelector","value","$","replace","show","localStorageSetItemCommon","HCPV_SESSION_KEY","isPinInPolygon","pushpin","polygon","loc","st","isInside","x","longitude","y","latitude","paths","i","length","j","documentMode","userAgent","test","navigator","undefined","hasClass","isColorExists","arr","color","validateEmail","email","minYearSlider","maxYearSlider","defaultYearSlider","removeTagFilterPressed","programOrder","T2","T1","BT","dataIsReady","MapInfo","init","_classCallCheck","this","Object","defineProperty","enumerable","writable","split","timeoutId","Array","radiusMiles","zoomLevel","tracking","that","ready","checkBarOffset","$triggerElement","$stickyElement","offset","top","height","addClass","scrollTop","window","innerHeight","removeClass","tradeInStore","sessionStorage","getItem","Number","toLocaleString","innerText","initRadiusSlider","initFilterSliders","initGeneral","initEmailAlertLayer","contactDealerPost","initFiltersLayer","width","showFilterDiv","filterYear","m","getParameterByName","slider","trigger","scroll","on","toggle","bind","addEventListener","which","_satellite","track","pin","infobox","setOptions","location","getLocation","title","metadata","description","visible","byPhone","map","entities","getLength","entity","get","Microsoft","Maps","Pushpin","phone","ex","dealerid","fadeIn","dealer","findDealerById","name","html","attr","find","click","setTimeout","fadeOut","setVar","localStorageGetItemCommon","Map","getElementById","credentials","disableScrollWheelZoom","showMapTypeSelector","enableClickableLogo","showCopyright","showScalebar","layerblue","Layer","layer","layers","insert","mapAPIReady","$window","Events","addHandler","firstLoad","windowWidth","mapViewChange","Infobox","Location","setMap","loadModule","ajaxurl","hcpv_rpa_util","dataSource","getJSON","pois","data","POIResponse","POIs","POI","dealerPois","initMapBluePushPins","hideCertainBluePushPins","zip","lat","lon","lastRadius","clear","myCenter","path","SpatialMath","getRegularPolygon","DistanceUnits","Miles","fillColor","Color","add","showLoadingSkeleton","hide","setView","center","zoom","setZoomBasedOnRadius","type","getCenter","Polygon","strokeColor","getAjaxData","dealers","dealersArray","cars","updateCarCountForDealersList","initMapPushPins","is","log","initMapWithZip","zipcode","showLocateMeButton","enableSearchLogo","lastZoomLevel","hideInfoBox","reApplyFilter","newZip","newRadius","clearProgramFilter","resetLoadMoreStep","radius","d","Output","Results","ajaxData","Models","applyData","a","ModelAttributes","ModelAttribute","seatsArray","getPinCode","console","initCarsList","Model","Dealers","Dealer","Specials","carsArray","initFilterUIWithNewData","initFilterUI","currentCars","applyToData","applyMultiFilters","autoFiltersByQueryString","autoFiltersFromVDP","radiusFilterApplied","parents","defaultYearsApplied","text","css","display","flex-wrap","now","toGMTString","turnOnOfferButton","calculateEstMoPayment","fail","showGlobalErrorMSG","parseInt","firstAutoFilter","program","trim","updateFilterCount","price","dp","etv","tl","mp","apr","search","push","year","initDealersList","programs","whichProgram","element","types","filter","toLowerCase","names","initStylesAttributesLists","trims","isNaN","val","referrer","indexOf","max","min","filter1","data-min","data-max","filter2","JSON","parse","values","bodyStyleList","hcpv_bodystyle","BodyStyles","BodyStyle","hcpv_modelattribute","attributesObj","modelAttributeList","hcpv_special","Special","specialsObj","specialList","dealernumbers","dealerId","D","dealerData","id","DealerName","address","DealerAddress","DealerCity","state","DealerState","DealerZip","DealerLat","DealerLong","DealerPhoneNo","DealerEmail","hours","DealerHours","manager","distance","DealerDistance","attributes","DealerAttributes","city","fax","url","count","POIId","Latitude","Longitude","createBluePushpin","nicon","icon","normalicon","activeicon","POIName","e","layercluster","allpins","ClusterLayer","clusteredPinCallback","cluster","containedPushpins","gridSize","bodyStylesObj","createPushpin","target","pushpinClicked","DealerInternetMngr","carData","seatingData","specialsData","findDealerInfoById","infoType","dN","dD","DealerID","vehicles","v","getPrimitives","pins","ModelVINsOnSite","VIN","vin","hasBuyOnline","BuyOnline","buyOnlineURL","stock","StockNo","modelId","specialLease","ModelYear","groupName","ModelGroupName","ModelTrim","trimName","ModelMarketingName","ModelTransmission","ModelTransmissionMarketingName","Mileage","dsrp","parseFloat","DSRP","certDate","Date","CertDate","cpoTier","CPOTier","VehicleType","ModelBaseColor","inColor","ModelInteriorColorName","photo","Photos","stockPhoto","ModelStockPhotos","styles","specials","specialId","specialAPR","specialTerm","specialDescription","specialMonthlyPayment","specialEndDate","k","specialsSpecialdata","PaymentTerms","FinanceTerms","SampleFinancePayment","SampleAPR","SampleTerm","SampleModelDescription","SampleMonthlyPayment","EndDate","SpecialID","inColorCD","ModelInteriorColorCD","exColorCD","isDealerPushPinInArray","enginename","vhrurl","VHRUrl","iceurl","ICEUrl","offerDescription","car","hcpv_car","dealerName","dealerDistance","transmission","transmissionName","msrp","mileage","exColor","exColorName","generateFeaturesList","seats","sortSeating","b","type_array","vehicle_array","model_array","trans_array","excolor_array","type_html","seats_html","program_html","used_html","model_html","incolor_html","feature_html","program_array","used_array","every","item","label","incolor_array","seats_array","sort","label_seat","programName","vehicle_html","EngineName","trans_html","excolor_html","feature_array","featureStrMap","elementID","zip5","dealer_html","preSelect","each","items","featureStr","seating","parentID","getStyleNameById2","activeFilterTypeCount","currentActiveFilters","el","children","parentId","tradein","currentTerm","create","parent","string","handle","slide","event","ui","currentrange","satelliteTrack","change","handleAppliedFilters","singleSlide","first","last","options","plus","sliderID","doubleSlide","defaultFilter","createSingleSlide","validateNumber","minmax","step","formattedMileageValue","item_id","range","createDoubleSlide","formattedYearValues","handleIndex","digitalDataLayerLibrary","InventoryYearSliderSet","sliderElements","querySelectorAll","setAttribute","filterValue","action","filterElement","appliedFilterHTML","appliedFiltersContainer","dataValue","_typeof","whichFilter","calcEstimateMonthlyPayment","append","remove","existingSliderTag","yearQS","replaceWith","slideFilters","thisFilter","isInteriorColor","isExteriorColor","substring","thisSlider","getZoom","eq","initMap","callback","img","Image","img2","src","c","createElement","ctx","drawImage","font","fillStyle","textAlign","yearsFirstLoad","anchor","Point","getContext","fillText","onload","scope","angular","$apply","alert","compareCarList","compareCodeList","compareSpecifications","showHideLoadMoreButton","activeSliders","not","priceSlider","activeYear","isapply","OffersOn","filterValuesActive","index","array","property","newarray","regex","RegExp","results","removeAttr","toDataURL","price1","upToPayment","slice","formattedPriceValues","price2","montlyPaymentValue","searchBudgetSubmitted","toggleClass","filterTxt","filtersApplied","appliedTxt","substr","filterid","filter-program","filter-type","filter-vehicle","filter-model","filter-transmission","filter-seat","filter-excolor","filter-incolor","filter-dealers","filter-features","trackingKey","trackingMap","seat_array","@Value","exec","decodeURIComponent","onoff","filtervs","preventDefault","slideDown","slideUp","adjustBarPosition","compareVehicles","savedVehicles","p","position","stringify","currentHref","origin","redirectUrl","MSStream","filters","filters2","forEach","filtered","match","findObjectIndexByProperty","features","message","allError","setMessage","msg","closeButton","model","template","cStep","jQuery","browser","mobile","vendor","opera"],"mappings":"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","file":"inventory-search-results.min.js","sourcesContent":["//Filter year min and max\r\nvar minYearSlider = 2014;\r\nvar maxYearSlider = '2025';\r\nvar defaultYearSlider = '2019';\r\nvar removeTagFilterPressed = null;\r\n// programs order on filter section\r\nconst programOrder = {'T2': 1, 'T1': 2, 'BT': 3};\r\nconst HCPV_SESSION_KEY = 'hcpv.inventory.tradein';\r\nvar dataIsReady = false;\r\nlet timeoutId;\r\n\r\nclass MapInfo {\r\n\r\n featureStr = \"Leather Interiors|AWD / 4WD|Moonroof|Bluetooth|Android Auto|Apple CarPlay|Rearview Camera|Heated Seats|Rear Entertainment System|Navigation\".split(\"|\");\r\n featureStrMap = \"INTERIOR MATERIAL|DRIVE|Moonroof|BTUTH|AAUTO|CPLAY|Rearview Camera|Heated Seats|Rear Entertainment System|NAVIG\".split(\"|\");\r\n\r\n map = null;\r\n layerblue = null;\r\n layer = null;\r\n layercluster = null;\r\n layerclusterblue = null;\r\n bluepins = new Array();\r\n blackpins = new Array();\r\n allpins = new Array();\r\n polygon = null;\r\n infobox = null;\r\n firstLoad = true;\r\n firstAutoFilter = true;\r\n\r\n radiusMiles = 25;\r\n lastRadius = this.radiusMiles;\r\n myCenter = null;\r\n zoomLevel = 10;\r\n lastZoomLevel = this.zoomLevel;\r\n\r\n toBeRemoved = new Array();\r\n currentCars = new Array();\r\n\r\n ajaxData = null;\r\n\r\n carsArray = new Array();\r\n dealersArray = new Array();\r\n\r\n attributesObj = null;\r\n bodyStylesObj = null;\r\n specialsObj = null;\r\n\r\n mapAPIReady = false;\r\n cIndex = 10;\r\n\r\n filter1 = null;\r\n filter2 = null;\r\n\r\n dealerPois = null;\r\n\r\n /* For Tracking */\r\n tracking = new Array();\r\n defaultFilter = true;\r\n\r\n //seo\r\n filterYear = null;\r\n\r\n // if inventory API fails to load, then update to true\r\n useDevData = false;\r\n\r\n constructor(init) {\r\n\r\n if (init == false) return;\r\n\r\n //used for satelliteTrack\r\n this.tracking[\"radius\"] = false;\r\n this.tracking[\"price\"] = false;\r\n this.tracking[\"year\"] = false;\r\n this.tracking[\"type\"] = false;\r\n this.tracking[\"vehicle\"] = false;\r\n this.tracking[\"mileage\"] = false;\r\n this.tracking[\"dealers\"] = false;\r\n this.tracking[\"color_int\"] = false;\r\n this.tracking[\"color_ext\"] = false;\r\n this.tracking[\"seating\"] = false;\r\n this.tracking[\"transmission\"] = false;\r\n this.tracking[\"model\"] = false;\r\n this.tracking[\"offers\"] = false;\r\n this.tracking[\"features\"] = false;\r\n\r\n /* JQUERY STUFF --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */\r\n var that = this;\r\n $(document).ready(function() {\r\n const tradeInStore = sessionStorage.getItem(HCPV_SESSION_KEY);\r\n if(tradeInStore) {\r\n document.querySelector('input[name=\"tradein\"]').value = Number(tradeInStore).toLocaleString();\r\n document.querySelector('.pr-estimate span:last-of-type').innerText = \"$\"+Number(tradeInStore).toLocaleString();\r\n }\r\n\r\n document.querySelector('input[name=\"downPayment\"]').value = \"3,000\"\r\n this.initRadiusSlider();\r\n this.initFilterSliders();\r\n\r\n this.initGeneral(that);\r\n\r\n // email-alert.js\r\n initEmailAlertLayer(that);\r\n\r\n // contact-dealer.js\r\n contactDealerPost(that);\r\n\r\n this.initFiltersLayer(that);\r\n\r\n var $window = $(window);\r\n var windowWidth = $window.width();\r\n\r\n // If the user scrolls down, hide sticky nav on mobile. Otherwise, show sticky nav on scroll up.\r\n if (windowWidth > 991) {\r\n that.showFilterDiv();\r\n }\r\n\r\n this.filterYear = m.getParameterByName(\"modelyear\");\r\n\r\n\r\n if (this.filterYear) {\r\n if (this.filterYear != null) {\r\n $(\"#slider-year\").slider('values', 1, this.filterYear);\r\n $(\"#slider-year\").slider('values', 0, this.filterYear);\r\n $(\"#slider-year\").trigger(\"slidestop\");\r\n }\r\n }\r\n\r\n /* save/compare sticky bar */\r\n\r\n $(document).scroll(function() {\r\n checkBarOffset();\r\n });\r\n function checkBarOffset() {\r\n var $triggerElement = $('.ahm-footer');\r\n var $stickyElement = $('.map-list .compare-content');\r\n if (($stickyElement.offset().top + $stickyElement.height() >= $triggerElement.offset().top - 10)){\r\n $stickyElement.addClass('fixed');\r\n }\r\n if ($(document).scrollTop() + window.innerHeight < $triggerElement.offset().top)\r\n $stickyElement.removeClass('fixed'); // restore when you scroll up\r\n }\r\n\r\n // program vehicles info-box toggle\r\n $(\".program-info\").on(\"click\", function() {\r\n $(\".program-tooltip\").toggle(300);\r\n });\r\n\r\n }.bind(this));\r\n /* JQUERY STUFF --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */\r\n\r\n window.addEventListener('beforeunload', storeTradeIn);\r\n\r\n };\r\n\r\n /* Satellite Tracking for radius, price, type, vehicle and year*/\r\n // for any new/updated tags, make sure to add them to 'tracking[]'\r\n satelliteTrack(which) {\r\n if (this.tracking[which] == false) {\r\n _satellite.track(\"invsearch_filter_\" + which);\r\n this.tracking[which] = true;\r\n // console.log('satelliteTrack: ', which);\r\n }\r\n }\r\n\r\n /* MAP STUFF --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */\r\n\r\n // Show InfoBox to the correspsonding Pin\r\n showInfoBox(pin) {\r\n infobox.setOptions({\r\n location: pin.getLocation(),\r\n title: pin.metadata.title,\r\n description: pin.metadata.description,\r\n visible: true\r\n });\r\n }\r\n\r\n // Find Pin by dealer phone number\r\n findPin(byPhone) {\r\n for (var i = 0; i < map.entities.getLength(); i++) {\r\n var entity = map.entities.get(i);\r\n if (entity instanceof Microsoft.Maps.Pushpin) {\r\n try {\r\n if (entity.metadata.phone == byPhone) return entity;\r\n } catch (ex) {\r\n continue;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n // Map Infobox View Inventory Button Click Handler\r\n mapViewInventory(dealerid) {\r\n $(\".map-overlay\").fadeIn(300, function() {\r\n\r\n var dealer = this.findDealerById(dealerid);\r\n var name = dealer.name;\r\n\r\n $(\".narrow-search-to span\").html(name);\r\n $(\".narrow-search-to\").show();\r\n\r\n //DeSelecting All Dealers\r\n $(\"#filter-dealers\").attr(\"data-values\", \"\");\r\n $(\"#filter-dealers\").find(\".filter-value\").removeClass(\"filter-value-active\");\r\n\r\n if ($(\"#filter-dealers\").find(\".filter-value[data-value='\" + dealerid + \"']\").hasClass(\"filter-value-active\") == false) {\r\n $(\"#filter-dealers\").find(\".filter-value[data-value='\" + dealerid + \"']\").click();\r\n }\r\n setTimeout(function() {\r\n $(\".narrow-search-to\").fadeOut(300);\r\n $(\".map-overlay\").fadeOut(300, function() {\r\n\r\n $(\".filter-nav-list-view-button\").click();\r\n });\r\n }, 1500);\r\n\r\n _satellite.setVar('dealername', name);\r\n _satellite.track(\"invsearch_results_map_inventory\");\r\n }.bind(this));\r\n }\r\n\r\n /* MAP STUFF --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */\r\n\r\n\r\n\r\n // Setup Bing Map\r\n loadBingMap() {\r\n\r\n $(\".itt-zip\").html(localStorageGetItemCommon(\"_GeoCurrentZipCode\"));\r\n\r\n this.map = new Microsoft.Maps.Map(document.getElementById('myMap'), {\r\n credentials: bingMapsAPIKey,\r\n disableScrollWheelZoom: true,\r\n showDashboard: true,\r\n showLocateMeButton: false,\r\n showMapTypeSelector: false,\r\n enableClickableLogo: false,\r\n enableSearchLogo: false,\r\n showCopyright: false,\r\n showScalebar: false\r\n });\r\n this.layerblue = new Microsoft.Maps.Layer();\r\n this.layer = new Microsoft.Maps.Layer();\r\n this.map.layers.insert(this.layerblue);\r\n this.map.layers.insert(this.layer);\r\n\r\n /* LOAD OTHER MODULE -----------------------------------------------------------------*/\r\n Microsoft.Maps.loadModule('Microsoft.Maps.SpatialDataService', function() {\r\n\r\n Microsoft.Maps.loadModule(\"Microsoft.Maps.SpatialMath\", function() {\r\n this.mapAPIReady = true;\r\n }.bind(this));\r\n\r\n Microsoft.Maps.Events.addHandler(this.map, 'mousedown', function() {\r\n this.firstLoad = false;\r\n }.bind(this));\r\n\r\n Microsoft.Maps.Events.addHandler(this.map, 'viewchangeend', function() {\r\n this.mapViewChange();\r\n }.bind(this));\r\n\r\n this.infobox = new Microsoft.Maps.Infobox(new Microsoft.Maps.Location(0, 0), {\r\n visible: false\r\n });\r\n\r\n this.infobox.setMap(this.map);\r\n\r\n\r\n }.bind(this));\r\n\r\n Microsoft.Maps.loadModule(\"Microsoft.Maps.Clustering\", function() {\r\n\r\n }.bind(this));\r\n /* LOAD OTHER MODULE -----------------------------------------------------------------*/\r\n\r\n\r\n };\r\n\r\n loadDealerLocations() {\r\n var ajaxurl = hcpv_rpa_util.dataSource() + \"/handlers/find-dealers.ashx?radius=250&zip=\" + localStorageGetItemCommon(\"_GeoCurrentZipCode\");\r\n $.getJSON(ajaxurl, function(data) {\r\n var pois = data.POIResponse.POIs.POI;\r\n this.dealerPois = pois;\r\n this.initMapBluePushPins(pois);\r\n this.hideCertainBluePushPins(this);\r\n }.bind(this));\r\n }\r\n\r\n initMapWithZip(zip) {\r\n\r\n // Deselect Any Dealer Since The Zip Code Change\r\n $(\"#filter-dealers\").find(\".filter-value-active\").click();\r\n\r\n var lat = localStorageGetItemCommon(\"_GeoCurrentLat\");\r\n var lon = localStorageGetItemCommon(\"_GeocurrentLong\");\r\n if (localStorageGetItemCommon(\"lastRadius\") != undefined) {\r\n this.lastRadius = localStorageGetItemCommon(\"lastRadius\");\r\n }\r\n //this.map.entities.clear();\r\n this.layer.clear();\r\n this.myCenter = new Microsoft.Maps.Location(lat, lon);\r\n var path = Microsoft.Maps.SpatialMath.getRegularPolygon(this.myCenter, this.lastRadius, 36, Microsoft.Maps.SpatialMath.DistanceUnits.Miles);\r\n this.polygon = new Microsoft.Maps.Polygon(path, {\r\n fillColor: new Microsoft.Maps.Color(100, 156, 228, 232),\r\n strokeColor: new Microsoft.Maps.Color(100, 156, 228, 232)\r\n });\r\n //this.map.entities.push(poly);\r\n this.layer.add(this.polygon);\r\n // $(\".tmp-honda-loader\").fadeIn(300);\r\n this.showLoadingSkeleton();\r\n $(\".list-items, .btn-load-more\").hide();\r\n\r\n this.map.setView({\r\n center: this.myCenter,\r\n zoom: this.zoomLevel\r\n });\r\n this.setZoomBasedOnRadius();\r\n this.getAjaxData(true, true, zip, this.lastRadius);\r\n }\r\n\r\n\r\n\r\n // Initialize map\r\n initMap(type, data) {\r\n this.layer.clear();\r\n this.myCenter = this.map.getCenter();\r\n var path = Microsoft.Maps.SpatialMath.getRegularPolygon(this.myCenter, this.lastRadius, 36, Microsoft.Maps.SpatialMath.DistanceUnits.Miles);\r\n this.polygon = new Microsoft.Maps.Polygon(path, {\r\n fillColor: new Microsoft.Maps.Color(100, 156, 228, 232),\r\n strokeColor: new Microsoft.Maps.Color(100, 156, 228, 232)\r\n });\r\n this.layer.add(this.polygon);\r\n this.setZoomBasedOnRadius();\r\n\r\n //When we first load the app\r\n if (type == 0) {\r\n this.map.setView({\r\n center: this.myCenter,\r\n zoom: this.zoomLevel\r\n });\r\n this.getAjaxData(false, true);\r\n }\r\n\r\n //When we have any filter change except radius change\r\n else if (type == 1) {\r\n var dealers = this.dealersArray;\r\n var cars = data;\r\n this.updateCarCountForDealersList(cars, dealers);\r\n this.initMapPushPins(dealers);\r\n this.initMapBluePushPins(this.dealerPois);\r\n }\r\n\r\n //When the mapview changes = zip location change\r\n else if (type == 2) {\r\n\r\n if ($(\"#search-map-move\").is(\":checked\") == false) return;\r\n\r\n // $(\".tmp-honda-loader\").fadeIn(300);\r\n var lat = this.myCenter.latitude;\r\n var lon = this.myCenter.longitude;\r\n\r\n getPinCode(lat, lon, function(zip, lat, lon) {\r\n if (zip == null) {\r\n console.log(\"zip is BAD. let's revert back to previous zip=\" + localStorageGetItemCommon(\"_GeoCurrentZipCode\"));\r\n this.initMapWithZip(localStorageGetItemCommon(\"_GeoCurrentZipCode\"));\r\n } else {\r\n // Deselect Any Dealer Since The Zip Code Change\r\n $(\"#filter-dealers\").find(\".filter-value-active\").click();\r\n\r\n $(\".itt-zip\").html(zip);\r\n this.getAjaxData(true, true, zip);\r\n var zipcode = zip;\r\n $(window).trigger(\"app.zipchanged\", {\r\n zip: zipcode\r\n });\r\n }\r\n\r\n\r\n }.bind(this));\r\n }\r\n //When we change the radius\r\n else if (type == 3) {\r\n this.showLoadingSkeleton();\r\n $(\".list-items, .btn-load-more\").fadeOut(300);\r\n\r\n this.getAjaxData(true, true, null, this.lastRadius);\r\n localStorageSetItemCommon(\"lastRadius\", this.lastRadius);\r\n\r\n }\r\n //When we clear all the filters\r\n else if (type == 5) {\r\n this.showLoadingSkeleton();\r\n $(\".list-items, .btn-load-more\").hide();\r\n this.getAjaxData(false, true, null, this.radiusMiles, true);\r\n }\r\n this.hideCertainBluePushPins(this);\r\n };\r\n\r\n // Zoom Level Based On Radius\r\n setZoomBasedOnRadius() {\r\n this.lastZoomLevel = this.zoomLevel - (this.lastRadius / 65);\r\n if (this.lastRadius == 25) this.lastZoomLevel = this.zoomLevel;\r\n if (this.lastRadius < 25) this.lastZoomLevel = this.zoomLevel + (1 - this.lastRadius / 25);\r\n this.map.setView({\r\n zoom: this.lastZoomLevel\r\n });\r\n this.hideInfoBox();\r\n }\r\n\r\n // Retrieve Ajax Data\r\n getAjaxData(reApplyFilter, applyToData, newZip, newRadius, clearProgramFilter) {\r\n\r\n this.resetLoadMoreStep();\r\n\r\n /* You Need To Put A Copy Of inventory-results.json.txt Into \\hcpvredesign\\HondaCertifiedSC\\Website\\Static\\js\\inventory-search-results\\ for this to work */\r\n\r\n var zip = localStorageGetItemCommon(\"_GeoCurrentZipCode\");\r\n var radius = this.radiusMiles;\r\n if (newZip != undefined && newZip != null) zip = newZip;\r\n if (newRadius != undefined) radius = newRadius;\r\n\r\n var ajaxurl = hcpv_rpa_util.dataSource() + \"/handlers/get-inventory-data.ashx?zip=\" + zip + \"&radius=\" + radius;\r\n\r\n // Do we have cache???\r\n //var apicache=localStorageGetItemCommon(\"apicache\");\r\n var apicache = null;\r\n if (apicache != null) {\r\n var apicacheObj = JSON.parse(apicache);\r\n var now = new Date();\r\n var before = new Date(apicacheObj[\"datetime\"]);\r\n var seconds = parseInt((now - before) / 1000);\r\n if (apicacheObj[\"zip\"] == zip && apicacheObj[\"radius\"] == radius && seconds < 600) {\r\n if (radius != this.radiusMiles) {\r\n $(\"#slider-radius\").slider('value', radius);\r\n $(\"#slider-radius\").parents(\".filter\").attr(\"data-filter\", \"true\");\r\n this.updateFilterCount();\r\n }\r\n\r\n var d = apicacheObj.Output.Results;\r\n this.ajaxData = d;\r\n\r\n var a = d.ModelAttributes.ModelAttribute;\r\n var seatsArray = new Array();\r\n\r\n for(var i=0; i 0) {\r\n $(\".list-items\").show();\r\n $(\".list-no-result\").hide();\r\n }\r\n }\r\n this.initStylesAttributesLists(d);\r\n var cars = this.initCarsList(d.Models.Model,seatsArray,d.Dealers.Dealer);\r\n\r\n var dealers = this.initDealersList(cars, d.Dealers.Dealer);\r\n this.carsArray = cars;\r\n this.dealersArray = dealers;\r\n\r\n // Preserving the previous filter selection if reApplyFilter flag is true\r\n this.initFilterUIWithNewData(cars, dealers, \"\", reApplyFilter,\"\");\r\n this.initFilterUI(cars, dealers, \"\", reApplyFilter,null);\r\n this.initMapPushPins(dealers);\r\n\r\n // Apply Data To Angular\r\n this.currentCars = cars;\r\n if (applyToData) this.applyData(cars);\r\n\r\n if (reApplyFilter == true) {\r\n this.applyMultiFilters();\r\n } else {\r\n\r\n }\r\n // Automatically Apply Filters Based On Query String and firstAutoFilter flag\r\n this.autoFiltersByQueryString();\r\n this.autoFiltersFromVDP();\r\n\r\n return;\r\n }\r\n }\r\n\r\n // When there is no cache available\r\n $.getJSON(ajaxurl, function(data) {\r\n var d = data.Output.Results;\r\n this.ajaxData = d;\r\n if (d.Models == null) {\r\n $(\".list-no-result\").fadeIn(300);\r\n $(\".list-items, .btn-load-more\").fadeOut(300);\r\n this.applyData([]);\r\n return;\r\n } else {\r\n if ($(\".filter-nav-map-view-button:visible, .list-car-map-btn:visible\").length > 0) {\r\n $(\".list-items\").show();\r\n $(\".list-no-result\").hide();\r\n }\r\n }\r\n var a = data.Output.Results.ModelAttributes.ModelAttribute;\r\n var seatsArray = new Array();\r\n\r\n for(var i=0; i 0 && !radiusFilterApplied) {\r\n $('.applied-filters').css({\"display\": \"flex\",\"flex-wrap\": \"wrap\"});\r\n }\r\n\r\n // Cahcing api data to local storage\r\n var now = new Date();\r\n data[\"datetime\"] = now.toGMTString();\r\n data[\"zip\"] = zip;\r\n data[\"radius\"] = radius;\r\n\r\n this.loadDealerLocations();\r\n turnOnOfferButton();\r\n\r\n this.calculateEstMoPayment();\r\n\r\n }.bind(this)).fail(function() {\r\n this.showGlobalErrorMSG(\"inventory\");\r\n }.bind(this));\r\n }\r\n\r\n // AutoFilter Based On Query String\r\n autoFiltersByQueryString() {\r\n\r\n if (this.firstAutoFilter == false) return;\r\n\r\n var program = this.getParameterByName(\"program\");\r\n var year = this.getParameterByName(\"year\");\r\n var type = this.getParameterByName(\"style\");\r\n var trim = this.getParameterByName(\"trim\");\r\n var name = this.getParameterByName(\"modelgroupname\");\r\n var price = this.getParameterByName(\"price\");\r\n var dealer = this.getParameterByName(\"dealerid\");\r\n var dp = this.getParameterByName(\"dp\");\r\n var etv = this.getParameterByName(\"etv\");\r\n var tl = this.getParameterByName(\"tl\");\r\n var mp = this.getParameterByName(\"mp\");\r\n var apr = this.getParameterByName(\"apr\");\r\n var search = this.getParameterByName(\"search\");\r\n\r\n if (program == \"undefined\") program = null;\r\n if (year == \"undefined\") year = null;\r\n if (type == \"undefined\") type = null;\r\n if (trim == \"undefined\") trim = null;\r\n if (name == \"undefined\") name = null;\r\n if (price == \"undefined\") price = null;\r\n if (dealer == \"undefined\") dealer = null;\r\n if (dp == \"undefined\") dp = null;\r\n if (etv == \"undefined\") etv = null;\r\n if (tl == \"undefined\") tl = null;\r\n if (mp == \"undefined\") mp = null;\r\n if (apr == \"undefined\") apr = null;\r\n if (search == \"undefined\") search = null;\r\n\r\n if (year != null) {\r\n if (year == \"none\") {\r\n $(\"#slider-year\").slider('values', [minYearSlider, maxYearSlider]).trigger(\"slidestop\");\r\n $(\".year-sl\").attr(\"data-trigger\", \"true\");\r\n } else {\r\n $(\"#slider-year\").slider('values', 1, year);\r\n $(\"#slider-year\").slider('values', 0, year);\r\n $(\"#slider-year\").trigger(\"slidestop\");\r\n }\r\n }\r\n\r\n if (program != null) {\r\n if(program === 'trueusedcertified') {\r\n program = 'certified_plus|certified';\r\n }\r\n var programs = program.split(\"|\");\r\n\r\n for (var i = 0; i < programs.length; i++) {\r\n\r\n var whichProgram = programs[i] == \"certified\" ? \"T2\"\r\n : programs[i] == \"used\" ? \"U\"\r\n : programs[i] == \"trueused\" ? \"BT\"\r\n : \"none\";\r\n\r\n var element = $(\"#filter-program\").find(\".filter-value[data-value='\" + whichProgram + \"']\");\r\n\r\n setTimeout(function() {\r\n if (!element.length && whichProgram != \"none\") {\r\n $(\".list-no-result\").fadeIn(300);\r\n $(\".list-items, .btn-load-more\").fadeOut(300);\r\n $(\".applied-filters\").hide();\r\n }\r\n }, 0);\r\n element.trigger(\"click\");\r\n }\r\n }\r\n\r\n if (type != null) {\r\n //Case Insensitive\r\n var types = type.split(\"|\");\r\n\r\n for (let i = 0; i < types.length; i++) {\r\n var element = $(\"#filter-type\").find(\".filter-value\").filter(function() {\r\n return $(this).attr('data-value').toLowerCase() == types[i].toLowerCase();\r\n });\r\n $(element).click();\r\n }\r\n }\r\n\r\n if (name != null) {\r\n var names = name.split(\"|\");\r\n for (var i = 0; i < names.length; i++) {\r\n //Case Insensitive\r\n var element = $(\"#filter-vehicle\").find(\".filter-value\").filter(function() {\r\n return $(this).attr('data-value').toLowerCase() == names[i].toLowerCase();\r\n });\r\n element.removeClass('filter-value-disabled');\r\n if (!$(element).length) {\r\n $(\".list-no-result\").fadeIn(300);\r\n $(\".list-items, .btn-load-more\").hide();\r\n }\r\n $(element).click();\r\n }\r\n }\r\n\r\n if (trim != null) {\r\n //Case Insensitive\r\n var trims = trim.split(\"|\");\r\n\r\n for (let i = 0; i < trims.length; i++) {\r\n var element = $(\"#filter-model\").find(\".filter-value\").filter(function() {\r\n return $(this).attr('data-value').toLowerCase() == trims[i].toLowerCase();\r\n });\r\n\r\n $(element).click();\r\n }\r\n }\r\n\r\n if (price != null) {\r\n $(\"#sliderTwo\").val(price);\r\n $(\".pr-max\").text(\"$\" + Number(price).toLocaleString());\r\n $(\".pr-values\").attr(\"data-max\", price);\r\n $(\".price-sliders\").trigger(\"change\");\r\n $('.filter-name-2.price-filter').trigger('click');\r\n }\r\n\r\n if (dealer != null) {\r\n $(\"#filter-dealers\").find(\".filter-value[data-value='\" + dealer + \"']\").click();\r\n }\r\n\r\n if(dp != null && !Number.isNaN(dp)) {\r\n $('input[name=\"downPayment\"]').val(Number(dp).toLocaleString());\r\n }\r\n\r\n if(etv != null && !Number.isNaN(etv)) {\r\n $('input[name=\"tradein\"]').val(Number(etv).toLocaleString());\r\n }\r\n\r\n if(tl != null) {\r\n $(`button[data-term=\"${tl}\"]`).click();\r\n }\r\n\r\n if(mp != null) {\r\n $(\"#moPaymentSlider\").val(parseInt(mp));\r\n $(\".pm-current\").text(`$${mp}`);\r\n }\r\n\r\n if(apr != null) {\r\n $('input[name=\"apr\"]').val(apr);\r\n }\r\n\r\n if(search) {\r\n $('form#searchBudget input[type=\"submit\"]').click();\r\n }\r\n\r\n this.firstAutoFilter = false;\r\n }\r\n\r\n // AutoFilter If Coming Back From VDP Page\r\n autoFiltersFromVDP() {\r\n\r\n if (document.referrer.toLowerCase().indexOf(\"vehicle-details?vin=\") == -1) return;\r\n if (localStorageGetItemCommon(\"filter1\") == undefined && localStorageGetItemCommon(\"filter2\") == undefined) return;\r\n if (localStorageGetItemCommon(\"filter1\") == \"\" && localStorageGetItemCommon(\"filter2\") == \"\") return;\r\n\r\n if (localStorageGetItemCommon(\"filter1\") != undefined) {\r\n if (localStorageGetItemCommon(\"filter1\") != \"null\") {\r\n var filter1 = JSON.parse(localStorageGetItemCommon(\"filter1\"));\r\n\r\n for (var i = 0; i < filter1.length; i++) {\r\n var max = filter1[i].max;\r\n var min = filter1[i].min;\r\n\r\n if (filter1[i].filter == \"dsrp\") {\r\n\r\n $(\"#sliderOne\").val(min);\r\n $(\"#sliderTwo\").val(max);\r\n\r\n $(\".pr-min\").text(\"$\" + Number(min).toLocaleString() + \" -\");\r\n\r\n $(\".pr-max\").text(function() {\r\n if (max == 60000) return \"$30,000+\";\r\n return \"$\" + Number(max).toLocaleString();\r\n });\r\n\r\n $(\".pr-values\").attr({\r\n \"data-min\": min,\r\n \"data-max\": max\r\n });\r\n\r\n $(\".price-sliders\").trigger(\"change\");\r\n\r\n } else if (filter1[i].filter == \"year\") {\r\n // don't render tag if default years\r\n if (max != maxYearSlider || min != defaultYearSlider) {\r\n $(\".year-sl\").attr(\"data-trigger\", \"true\");\r\n }\r\n $(\"#slider-year\").slider('values', 1, max);\r\n $(\"#slider-year\").slider('values', 0, min);\r\n $(\"#slider-year\").trigger(\"slidestop\");\r\n\r\n\r\n } else if (filter1[i].filter == \"mileage\") {\r\n $(\"#slider-mileage\").slider('value', max);\r\n $(\"#slider-mileage\").trigger(\"slidestop\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (localStorageGetItemCommon(\"filter2\") != undefined) {\r\n if (localStorageGetItemCommon(\"filter2\") != \"null\") {\r\n var filter2 = JSON.parse(localStorageGetItemCommon(\"filter2\"));\r\n for (var i = 0; i < filter2.length; i++) {\r\n var filter = filter2[i].filter;\r\n var values = filter2[i].values.split(\", \");\r\n for (var x = 0; x < values.length; x++) {\r\n var value = values[x];\r\n $(\".filter-values[data-filter-type='\" + filter + \"']\").find(\".filter-value[data-value='\" + value + \"']\").click();\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n // Create BodyStyle and ModelAttribute List\r\n initStylesAttributesLists(data) {\r\n if (data.BodyStyles != null) {\r\n var bodyStyleList = new hcpv_bodystyle(data.BodyStyles.BodyStyle);\r\n this.bodyStylesObj = bodyStyleList;\r\n } else console.log(\"BodyStyles is NULL from API\");\r\n if (data.ModelAttributes != null) {\r\n var modelAttributeList = new hcpv_modelattribute(data.ModelAttributes.ModelAttribute);\r\n this.attributesObj = modelAttributeList;\r\n } else console.log(\"ModelAttributes is NULL from API\");\r\n if (data.Specials != null) {\r\n var specialList = new hcpv_special(data.Specials.Special);\r\n this.specialsObj = specialList;\r\n }\r\n\r\n }\r\n // Create a unique list of dealers from the list of cars.\r\n initDealersList(cars, dealerData) {\r\n\r\n var dealernumbers = new Array();\r\n for (var i = 0; i < cars.length; i++) {\r\n if (dealernumbers.indexOf(cars[i].dealerId) == -1) dealernumbers.push(cars[i].dealerId);\r\n }\r\n var dealers = new Array();\r\n // Create a list of dealers\r\n for (var x = 0; x < dealerData.length; x++) {\r\n\r\n var D = dealerData[x];\r\n\r\n var id = D.DealerID;\r\n\r\n var name = D.DealerName;\r\n var address = D.DealerAddress;\r\n var city = D.DealerCity;\r\n var state = D.DealerState;\r\n var zip = D.DealerZip;\r\n var lat = D.DealerLat;\r\n var lon = D.DealerLong;\r\n var phone = D.DealerPhoneNo;\r\n var fax = D.DealerFaxNo;\r\n var email = D.DealerEmail;\r\n var hours = D.DealerHours;\r\n var url = D.DealerURL;\r\n var manager = D.DealerInternetMngr;\r\n var distance = D.DealerDistance;\r\n var attributes = D.DealerAttributes;\r\n\r\n var dealer = new hcpv_dealer(id, name, address, city, state, zip, lat, lon, phone, fax, email, hours, url, manager, distance, attributes);\r\n\r\n dealers.push(dealer);\r\n\r\n }\r\n\r\n dealers = this.updateCarCountForDealersList(cars, dealers);\r\n return dealers;\r\n }\r\n\r\n // Update Car Count For Each Dealer + Update Distance On Cars\r\n updateCarCountForDealersList(cars, dealers) {\r\n // Update the car count for each dealer\r\n for (var i = 0; i < dealers.length; i++) {\r\n dealers[i].count = 0;\r\n for (var x = 0; x < cars.length; x++) {\r\n if (cars[x].dealerId == dealers[i].id) {\r\n dealers[i].count = dealers[i].count + 1;\r\n if (cars[x].dealer == null) {\r\n cars[x].dealer = dealers[i];\r\n cars[x].distance = dealers[i].distance;\r\n }\r\n }\r\n }\r\n }\r\n return dealers;\r\n }\r\n\r\n // Hide The Blue PushPin That Is Inside The Search Radius\r\n hideCertainBluePushPins(that) {\r\n return;\r\n\r\n var pins = that.layerblue.getPrimitives();\r\n if (that.dealersArray.length <= 0 || pins.length <= 0) {\r\n window.setTimeout(function() {\r\n that.hideCertainBluePushPins(that)\r\n }, 1500);\r\n return;\r\n }\r\n for (var i = 0; i < pins.length; i++) {\r\n for (var x = 0; x < that.dealersArray.length; x++) {\r\n if (that.dealersArray[x].id == pins[i].metadata.dealerid) {\r\n pins[i].setOptions({\r\n visible: false\r\n });\r\n //console.log(that.dealersArray[x].id+\"<--->\"+pins[i].metadata.dealerid);\r\n }\r\n }\r\n }\r\n\r\n\r\n var pins = that.layerblue.getPrimitives();\r\n if (that.dealersArray.length <= 0 || pins.length <= 0) {\r\n window.setTimeout(function() {\r\n that.hideCertainBluePushPins(that)\r\n }, 500);\r\n return;\r\n }\r\n for (var i = 0; i < this.bluepins.length; i++) {\r\n if (isPinInPolygon(this.bluepins[i], this.polygon)) this.bluepins[i].setOptions({\r\n visible: false\r\n });\r\n }\r\n }\r\n\r\n // Create Map Blue PushPins (dealers is POIs)\r\n initMapBluePushPins(pois) {\r\n if (pois == null) return;\r\n // Init Map PushPins ---------------------------------------------------------------\r\n var dealernumbers = new Array();\r\n for (var x = 0; x < this.dealersArray.length; x++) {\r\n dealernumbers.push(this.dealersArray[x].id);\r\n }\r\n for (var i = 0; i < pois.length; i++) {\r\n var D = pois[i];\r\n if (dealernumbers.indexOf(D.POIId) != -1) {\r\n continue;\r\n }\r\n var location = new Microsoft.Maps.Location(D.Latitude, D.Longitude);\r\n this.createBluePushpin(location, D, function(pushpin, nicon, icon, d) {\r\n\r\n pushpin.metadata = {\r\n normalicon: nicon,\r\n activeicon: icon,\r\n dealerid: d.POIId,\r\n description: '

' + d.POIName + '

'\r\n };\r\n\r\n Microsoft.Maps.Events.addHandler(pushpin, 'click', function(e) {\r\n this.pushpinClicked(e);\r\n }.bind(this));\r\n\r\n Microsoft.Maps.Events.addHandler(pushpin, 'mouseover', function(e) {\r\n this.pushpinClicked(e);\r\n }.bind(this));\r\n if (this.isDealerPushPinInArray(pushpin) == false) {\r\n this.allpins.push(pushpin);\r\n this.layercluster.add(pushpin);\r\n }\r\n }.bind(this));\r\n }\r\n\r\n // Init Map PushPins ---------------------------------------------------------------\r\n }\r\n\r\n // Create Map PushPins\r\n initMapPushPins(dealers) {\r\n this.allpins = new Array();\r\n if (this.layercluster != null) {\r\n this.layercluster.clear();\r\n }\r\n\r\n this.layercluster = new Microsoft.Maps.ClusterLayer(this.allpins, {\r\n clusteredPinCallback: function(cluster) {\r\n\r\n var count = cluster.containedPushpins.length;\r\n var clusterIcon = '{0}Dealers';\r\n cluster.setOptions({\r\n icon: clusterIcon.replace('{0}', count),\r\n text: ''\r\n });\r\n },\r\n gridSize: 60\r\n });\r\n this.map.layers.insert(this.layercluster);\r\n\r\n // Init Map PushPins ---------------------------------------------------------------\r\n for (var i = 0; i < dealers.length; i++) {\r\n var D = dealers[i];\r\n if (D.lat == null) continue;\r\n if (D.count == 0) continue;\r\n var location = new Microsoft.Maps.Location(D.lat, D.lon);\r\n\r\n this.createPushpin(location, D, function(pushpin, nicon, icon, d) {\r\n\r\n pushpin.metadata = {\r\n normalicon: nicon,\r\n activeicon: icon,\r\n dealerid: d.id,\r\n description: '

' + d.name + '

' + d.distance + ' miles away
'\r\n };\r\n\r\n Microsoft.Maps.Events.addHandler(pushpin, 'click', function(e) {\r\n this.pushpinClicked(e);\r\n }.bind(this));\r\n\r\n Microsoft.Maps.Events.addHandler(pushpin, 'mouseover', function(e) {\r\n e.target.setOptions({\r\n icon: e.target.metadata.activeicon\r\n });\r\n this.pushpinClicked(e);\r\n }.bind(this));\r\n\r\n Microsoft.Maps.Events.addHandler(pushpin, 'mousedown', function(e) {\r\n\r\n });\r\n\r\n Microsoft.Maps.Events.addHandler(pushpin, 'mouseout', function(e) {\r\n e.target.setOptions({\r\n icon: e.target.metadata.normalicon\r\n });\r\n });\r\n\r\n //this.blackpins.push(pushpin);\r\n if (this.isDealerPushPinInArray(pushpin) == false) {\r\n this.allpins.push(pushpin);\r\n this.layercluster.add(pushpin);\r\n }\r\n }.bind(this));\r\n }\r\n // Init Map PushPins ---------------------------------------------------------------\r\n\r\n }\r\n\r\n //Initialize Filters, Car List, Dealer List, Map PushPins\r\n initCarsList(carData, seatingData, dealerData, specialsData) {\r\n var cars = new Array();\r\n var vehicles = carData;\r\n\r\n /**\r\n * This funtion is used to get Dealer name by dealer ID\r\n * Only on Inventory page\r\n * infoType: dN = Dealer name, dD = Dealer Distance\r\n */\r\n function findDealerInfoById(dealerId, infoType){\r\n if(!dealerData) return;\r\n var dN, dD;\r\n /**Loop to find dealer name and distance */\r\n for (var i = 0; i < dealerData.length; i++) {\r\n if (dealerData[i].DealerID == dealerId) {\r\n dN = (dealerData[i].DealerName);\r\n dD = (dealerData[i].DealerDistance);\r\n if (infoType == 'dealerName'){\r\n return dN;\r\n }\r\n if (infoType == 'dealerDistance'){\r\n return dD;\r\n }\r\n }\r\n }\r\n }\r\n\r\n //Create Car List\r\n for (var i = 0; i < vehicles.length; i++) {\r\n var v = vehicles[i];\r\n\r\n if (v.ModelVINsOnSite.VIN != undefined){\r\n\r\n for (var x = 0; x < v.ModelVINsOnSite.VIN.length; x++) {\r\n var offerDescription = '';\r\n var vin = v.ModelVINsOnSite.VIN[x].VIN;\r\n var hasBuyOnline = v.ModelVINsOnSite.VIN[x].BuyOnline ? v.ModelVINsOnSite.VIN[x].BuyOnline[\"@OnlineRetailingPreferredVIN\"] : false;\r\n var buyOnlineURL = v.ModelVINsOnSite.VIN[x].BuyOnline ? v.ModelVINsOnSite.VIN[x].BuyOnline[\"@VehicleDetailPageURL\"] : '';\r\n var vin = v.ModelVINsOnSite.VIN[x].VIN;\r\n var stock = v.ModelVINsOnSite.VIN[x].StockNo;\r\n var dealerId = v[\"@DealerId\"];\r\n var dealerName = findDealerInfoById(dealerId, 'dealerName');\r\n var dealerDistance = findDealerInfoById(dealerId, 'dealerDistance');\r\n var modelId = v[\"@ModelId\"];\r\n var specialLease = parseInt(v[\"@SpecialLease\"]);\r\n var year = v.ModelYear;\r\n var groupName = v.ModelGroupName;\r\n var trim = v.ModelTrim;\r\n var trimName = v.ModelMarketingName;\r\n var transmission = v.ModelTransmission;\r\n var transmissionName = v.ModelTransmissionMarketingName;\r\n var msrp = v.ModelMSRP;\r\n var mileage = parseInt(v.ModelVINsOnSite.VIN[x].Mileage);\r\n var dsrp = parseFloat(v.ModelVINsOnSite.VIN[x].DSRP);\r\n var certDate = new Date(v.ModelVINsOnSite.VIN[x].CertDate);\r\n var cpoTier = v.ModelVINsOnSite.VIN[x].CPOTier;\r\n var VehicleType = v.ModelVINsOnSite.VIN[x].VehicleType;\r\n var exColorName = v.ModelVINsOnSite.VIN[x].ModelExteriorColorName;\r\n var exColor = v.ModelVINsOnSite.VIN[x].ModelBaseColor;\r\n var inColor = v.ModelVINsOnSite.VIN[x].ModelInteriorColorName;\r\n var photo = v.ModelVINsOnSite.VIN[x].Photos;\r\n var stockPhoto = v.ModelVINsOnSite.VIN[x].ModelStockPhotos;\r\n var styles = v.BodyStyles;\r\n var attributes = null;\r\n if (v.ModelAttributes != undefined) attributes = v.ModelAttributes.ModelAttribute;\r\n\r\n var specials = v.Specials;\r\n /** Find offer APR if there is a special */\r\n if(specials!=undefined && specialsData!=undefined){\r\n if (specials[\"@Count\"] >= 1 && specials.Special!=undefined) {\r\n offerDescription = 'See Finance Offer';\r\n var specialsSpecialdata = specialsData.Special;\r\n var specialId = specials.Special[0][\"@id\"];\r\n var specialId, specialAPR, specialTerm, specialDescription, specialMonthlyPayment, specialEndDate;\r\n\r\n //APR data from Sample\r\n for (var k = 0; k < specialsSpecialdata.length; k++) {\r\n if(specialsSpecialdata[k][\"@id\"] == specialId){\r\n if(specialsSpecialdata[k].PaymentTerms.FinanceTerms.SampleFinancePayment != undefined){\r\n specialAPR = specialsSpecialdata[k].PaymentTerms.FinanceTerms.SampleFinancePayment.SampleAPR\r\n specialTerm = specialsSpecialdata[k].PaymentTerms.FinanceTerms.SampleFinancePayment.SampleTerm\r\n specialDescription = specialsSpecialdata[k].PaymentTerms.FinanceTerms.SampleFinancePayment.SampleModelDescription\r\n specialMonthlyPayment = specialsSpecialdata[k].PaymentTerms.FinanceTerms.SampleFinancePayment.SampleMonthlyPayment\r\n specialEndDate = specialsSpecialdata[k].EndDate\r\n specialId = specialsSpecialdata[k].SpecialID\r\n } else {\r\n specialAPR = specialsSpecialdata[k].PaymentTerms.FinanceTerms.SampleFinancePayment.SampleAPR\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n var inColorCD = v.ModelVINsOnSite.VIN[x].ModelInteriorColorCD;\r\n var exColorCD = v.ModelVINsOnSite.VIN[x].ModelBaseColor;\r\n var enginename = v.EngineName;\r\n var vhrurl = v.ModelVINsOnSite.VIN[x].VHRUrl;\r\n var iceurl = v.ModelVINsOnSite.VIN[x].ICEUrl;\r\n\r\n if (specialLease) {\r\n if (offerDescription) {\r\n offerDescription += ` & Lease Offers`;\r\n }else {\r\n offerDescription = 'See Special Lease';\r\n }\r\n }\r\n\r\n if (VehicleType =='U' || cpoTier == 'BT' ) {\r\n offerDescription = '';\r\n }\r\n\r\n if (cpoTier != 'OP' || VehicleType == 'U') {\r\n var car = new hcpv_car(vin, stock, dealerId, dealerName, dealerDistance, modelId, specialLease, offerDescription, year, groupName, trim, trimName, transmission, transmissionName, msrp, mileage, dsrp, certDate, exColor, cpoTier, exColorName, inColor, photo, stockPhoto, styles, attributes, specials, specialAPR, specialTerm, inColorCD, exColorCD, enginename, vhrurl, iceurl, VehicleType, hasBuyOnline, buyOnlineURL, specialDescription, specialMonthlyPayment, specialEndDate, specialId);\r\n car.generateFeaturesList(this.attributesObj);\r\n if(seatingData!=null) {\r\n car.generateSeating(seatingData);\r\n }\r\n cars.push(car);\r\n }\r\n }\r\n }\r\n }\r\n return cars;\r\n\r\n }\r\n\r\n showLoadingSkeleton() {\r\n if (!$(\".inventory-skeleton\").is(':visible')) {\r\n $(\".inventory-skeleton\").show();\r\n }\r\n }\r\n\r\n //Init Filter UI On NEW API DATA\r\n initFilterUIWithNewData(cars, dealers, elementID, preSelect, seats) {\r\n function sortSeating(a,b) {\r\n return a - b;\r\n }\r\n\r\n var bodyStyleList = this.bodyStylesObj;\r\n // Init Filter UI ---------------------------------------------------------------\r\n var program_array = new Array();\r\n var used_array = new Array();\r\n var type_array = new Array();\r\n var vehicle_array = new Array();\r\n var seats_array = seats; //seating feature: HCPV-766\r\n var model_array = new Array();\r\n var trans_array = new Array();\r\n var excolor_array = new Array();\r\n var incolor_array = new Array();\r\n var feature_array = this.featureStr;\r\n\r\n var type_html = \"\";\r\n var seats_html = \"\";\r\n var program_html = \"\";\r\n var used_html = \"\";\r\n var vehicle_html = \"\";\r\n var model_html = \"\";\r\n var trans_html = \"\";\r\n var dealer_html = \"\";\r\n var excolor_html = \"\";\r\n var incolor_html = \"\";\r\n var feature_html = \"\";\r\n\r\n\r\n for (var i = 0; i < cars.length; i++) {\r\n if (cars[i].styles != null) {\r\n for (var x = 0; x < cars[i].styles.BodyStyle.length; x++) {\r\n if (type_array.indexOf(cars[i].styles.BodyStyle[x]) == -1) {\r\n type_array.push(cars[i].styles.BodyStyle[x]);\r\n }\r\n }\r\n }\r\n\r\n if (program_array.indexOf(cars[i].cpoTier) == -1 && (cars[i].cpoTier != \"U\")) {\r\n program_array.push(cars[i].cpoTier);\r\n }\r\n\r\n if (used_array.indexOf(cars[i].VehicleType) == -1) {\r\n used_array.push(cars[i].VehicleType);\r\n }\r\n\r\n if (vehicle_array.indexOf(cars[i].groupName) == -1) {\r\n vehicle_array.push(cars[i].groupName);\r\n }\r\n if (model_array.indexOf(cars[i].trimName) == -1) {\r\n if (cars[i].trimName == null) continue;\r\n model_array.push(cars[i].trimName);\r\n }\r\n if (trans_array.every(function (item) {return item.value !== cars[i].transmission;})) {\r\n trans_array.push({\r\n label: cars[i].transmissionName,\r\n value: cars[i].transmission\r\n });\r\n }\r\n if (isColorExists(excolor_array, cars[i].exColor) == false && cars[i].exColor != null) {\r\n excolor_array.push([cars[i].exColor, cars[i].exColorCD]);\r\n }\r\n if (isColorExists(incolor_array, cars[i].inColor) == false && cars[i].inColor != null) {\r\n incolor_array.push([cars[i].inColor, cars[i].inColorCD]);\r\n }\r\n }\r\n\r\n //TODO: get values below dynamically , from VDP details\r\n\r\n seats_array.sort(sortSeating);\r\n\r\n type_array.sort();\r\n\r\n vehicle_array.sort();\r\n model_array.sort();\r\n trans_array.sort(function (a, b) {\r\n return a.value < b.value ? 0 : 1;\r\n });\r\n excolor_array.sort(function(a, b) {\r\n if (a[0] > b[0]) return 1;\r\n if (a[0] < b[0]) return -1;\r\n return 0;\r\n });\r\n incolor_array.sort(function(a, b) {\r\n if (a[0] > b[0]) return 1;\r\n if (a[0] < b[0]) return -1;\r\n return 0;\r\n });\r\n\r\n for (var i = 0; i < type_array.length; i++) {\r\n type_array[i] = bodyStyleList.getStyleNameById2(type_array[i]);\r\n type_html += '
' + type_array[i] + '
';\r\n }\r\n\r\n if(seats_array.length>0) {\r\n for (var i = 0; i < seats_array.length; i++) {\r\n var label_seat = seats_array[i][\"@Value\"].trim().replace('\"','');\r\n seats_html += '
' + label_seat + '
';\r\n }\r\n }\r\n\r\n // sort using program order defined in the constant object\r\n program_array = program_array.filter(p => !!p);\r\n program_array.sort((a,b) => programOrder[a] - programOrder[b]);\r\n\r\n for (var i = 0; i < program_array.length; i++) {\r\n if (program_array[i] != null) {\r\n var programName;\r\n switch (program_array[i]) {\r\n case 'T2':\r\n programName = \"HondaTrue Certified\";\r\n program_html += '
' + programName + '
';\r\n break;\r\n case 'BT':\r\n programName = \"HondaTrue Used\";\r\n program_html += '
' + programName + '
';\r\n break;\r\n default:\r\n programName = \"Undetermined\";\r\n program_html += '
' + programName + '
';\r\n break;\r\n }\r\n }\r\n }\r\n\r\n for (var i = 0; i < used_array.length; i++) {\r\n if(used_array[i] == \"U\") {\r\n used_html += '
Used
';\r\n }\r\n }\r\n\r\n for (var i = 0; i < vehicle_array.length; i++) {\r\n vehicle_html += '
' + vehicle_array[i] + '
';\r\n }\r\n for (var i = 0; i < model_array.length; i++) {\r\n model_html += '
' + model_array[i] + '
';\r\n }\r\n for (var i = 0; i < trans_array.length; i++) {\r\n trans_html += '
' + trans_array[i].label + '
';\r\n }\r\n for (var i = 0; i < excolor_array.length; i++) {\r\n excolor_html += '
' + excolor_array[i][0] + '
';\r\n }\r\n for (var i = 0; i < incolor_array.length; i++) {\r\n incolor_html += '
' + incolor_array[i][0] + '
';\r\n }\r\n\r\n for (var i = 0; i < feature_array.length; i++) {\r\n feature_html += '
' + feature_array[i] + '
';\r\n }\r\n\r\n if (elementID != \"filter-type\") $(\"#filter-type\").html(type_html);\r\n if (elementID != \"filter-seat\") $(\"#filter-seat\").html(seats_html);\r\n if (elementID != \"filter-program\") $(\"#filter-program\").html(program_html);\r\n if (elementID != \"filter-program\") $(\"#filter-program\").append(used_html);\r\n if (elementID != \"filter-vehicle\") $(\"#filter-vehicle\").html(vehicle_html);\r\n if (elementID != \"filter-model\") $(\"#filter-model\").html(model_html);\r\n if (elementID != \"filter-transmission\") $(\"#filter-transmission\").html(trans_html);\r\n if (elementID != \"filter-excolor\") $(\"#filter-excolor\").html(excolor_html + '
');\r\n if (elementID != \"filter-incolor\") $(\"#filter-incolor\").html(incolor_html + '
');\r\n if (elementID != \"filter-features\") $(\"#filter-features\").html(feature_html + '
');\r\n\r\n\r\n var dealernumbers = new Array();\r\n for (var i = 0; i < cars.length; i++) {\r\n if (dealernumbers.indexOf(cars[i].dealerId) == -1) dealernumbers.push(cars[i].dealerId);\r\n }\r\n for (var i = 0; i < dealers.length; i++) {\r\n var D = dealers[i];\r\n if (D.lat == null) continue;\r\n dealer_html += '
' + dealers[i].name + '
' + dealers[i].city + \", \" + dealers[i].state + \" \" + dealers[i].zip5() + '
';\r\n }\r\n // Init Filter Dealers Box ---------------------------------------------------------------\r\n if (elementID != \"filter-dealers\") $(\"#filter-dealers\").html(dealer_html);\r\n\r\n // Preserving The Previous Selections\r\n if (preSelect == true) {\r\n $(\".filter-values\").each(function(x) {\r\n\r\n var items = $(this).attr(\"data-values\").split(\", \");\r\n for (var i = 0; i < items.length; i++) {\r\n $(this).find(\".filter-value\").each(function(y) {\r\n if ($(this).html() == items[i]) $(this).addClass(\"filter-value-active\");\r\n if ($(this).attr(\"data-value\") == items[i]) $(this).addClass(\"filter-value-active\");\r\n });\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n // Init Filter UI ---------------------------------------------------------------\r\n }\r\n //Initialize Filter UI\r\n initFilterUI(cars, dealers, elementID, preSelect,seats) {\r\n\r\n var bodyStyleList = this.bodyStylesObj;\r\n // Init Filter UI ---------------------------------------------------------------\r\n\r\n var type_array = new Array();\r\n var program_array = new Array();\r\n var used_array = new Array();\r\n var vehicle_array = new Array();\r\n var model_array = new Array();\r\n var trans_array = new Array();\r\n var excolor_array = new Array();\r\n var incolor_array = new Array();\r\n var seats_array = seats; // HCPV:766\r\n var feature_array = this.featureStr;\r\n\r\n var type_html = \"\";\r\n var program_html = \"\";\r\n var used_html = \"\";\r\n var vehicle_html = \"\";\r\n var model_html = \"\";\r\n var trans_html = \"\";\r\n var dealer_html = \"\";\r\n var excolor_html = \"\";\r\n var incolor_html = \"\";\r\n var feature_html = \"\";\r\n var seats_html= \"\";\r\n\r\n\r\n for (var i = 0; i < cars.length; i++) {\r\n if (cars[i].styles != null) {\r\n for (var x = 0; x < cars[i].styles.BodyStyle.length; x++) {\r\n if (type_array.indexOf(cars[i].styles.BodyStyle[x]) == -1) {\r\n type_array.push(cars[i].styles.BodyStyle[x]);\r\n }\r\n }\r\n }\r\n if (program_array.indexOf(cars[i].cpoTier) == -1) {\r\n program_array.push(cars[i].cpoTier);\r\n }\r\n\r\n if (used_array.indexOf(cars[i].VehicleType) == -1) {\r\n used_array.push(cars[i].VehicleType);\r\n }\r\n\r\n if (seats_array.indexOf(cars[i].seating) == -1) {\r\n seats_array.push(cars[i].seating);\r\n }\r\n if (vehicle_array.indexOf(cars[i].groupName) == -1) {\r\n vehicle_array.push(cars[i].groupName);\r\n }\r\n if (model_array.indexOf(cars[i].trimName) == -1) {\r\n if (cars[i].trimName == null) continue;\r\n model_array.push(cars[i].trimName);\r\n }\r\n if (trans_array.every(function (item) {return item.value !== cars[i].transmission;})) {\r\n trans_array.push({\r\n label: cars[i].transmissionName,\r\n value: cars[i].transmission\r\n });\r\n }\r\n if (isColorExists(excolor_array, cars[i].exColor) == false && cars[i].exColor != null) {\r\n excolor_array.push([cars[i].exColor, cars[i].exColorCD]);\r\n }\r\n if (isColorExists(incolor_array, cars[i].inColor) == false && cars[i].inColor != null) {\r\n incolor_array.push([cars[i].inColor, cars[i].inColorCD]);\r\n }\r\n }\r\n\r\n // disables all available filter values\r\n $(\".filter-value\").each(function() {\r\n var parentID = $(this).parents(\".filter-values\").attr(\"id\");\r\n if (elementID != parentID || removeTagFilterPressed) $(this).addClass(\"filter-value-disabled\");\r\n });\r\n removeTagFilterPressed = null;\r\n\r\n for (var i = 0; i < type_array.length; i++) {\r\n type_array[i] = bodyStyleList.getStyleNameById2(type_array[i]);\r\n type_html += '
' + type_array[i] + '
';\r\n $(\".filter-value[data-value='\" + type_array[i] + \"']\").removeClass(\"filter-value-disabled\");\r\n }\r\n\r\n if(seats_array != null){\r\n if(seats_array.length>0) {\r\n for (var i = 0; i < seats_array.length; i++) {\r\n seats_html += '
' + seats_array[i] + '
';\r\n $(\".filter-value[data-value='\" + seats_array[i] + \"']\").removeClass(\"filter-value-disabled\");\r\n }\r\n }\r\n }\r\n\r\n for (var i = 0; i < program_array.length; i++) {\r\n program_html += '
' + program_array[i] + '
';\r\n $(\".filter-value[data-value='\" + program_array[i] + \"']\").removeClass(\"filter-value-disabled\");\r\n }\r\n\r\n for (var i = 0; i < used_array.length; i++) {\r\n used_html += '
' + used_array[i] + '
';\r\n $(\".filter-value[data-value='\" + used_array[i] + \"']\").removeClass(\"filter-value-disabled\");\r\n }\r\n\r\n for (var i = 0; i < vehicle_array.length; i++) {\r\n vehicle_html += '
' + vehicle_array[i] + '
';\r\n $(\".filter-value[data-value='\" + vehicle_array[i] + \"']\").removeClass(\"filter-value-disabled\");\r\n }\r\n for (var i = 0; i < model_array.length; i++) {\r\n model_html += '
' + model_array[i] + '
';\r\n $(\".filter-value[data-value='\" + model_array[i] + \"']\").removeClass(\"filter-value-disabled\");\r\n }\r\n for (var i = 0; i < trans_array.length; i++) {\r\n trans_html += '
' + trans_array[i].label + '
';\r\n $(\".filter-value[data-value='\" + trans_array[i].value + \"']\").removeClass(\"filter-value-disabled\");\r\n }\r\n for (var i = 0; i < excolor_array.length; i++) {\r\n excolor_html += '
' + excolor_array[i][0] + '
';\r\n $(\"#filter-excolor .filter-value[data-value='\" + excolor_array[i][0] + \"']\").removeClass(\"filter-value-disabled\");\r\n }\r\n for (var i = 0; i < incolor_array.length; i++) {\r\n incolor_html += '
' + incolor_array[i][0] + '
';\r\n $(\"#filter-incolor .filter-value[data-value='\" + incolor_array[i][0] + \"']\").removeClass(\"filter-value-disabled\");\r\n }\r\n\r\n for (var i = 0; i < feature_array.length; i++) {\r\n feature_html += '
' + feature_array[i] + '
';\r\n $(\".filter-value[data-value='\" + feature_array[i] + \"']\").removeClass(\"filter-value-disabled\");\r\n }\r\n\r\n $(\"#filter-dealers .filter-value\").removeClass(\"filter-value-disabled\");\r\n var dealernumbers = new Array();\r\n for (var i = 0; i < cars.length; i++) {\r\n if (dealernumbers.indexOf(cars[i].dealerId) == -1) dealernumbers.push(cars[i].dealerId);\r\n }\r\n for (var i = 0; i < dealers.length; i++) {\r\n var D = dealers[i];\r\n if (D.lat == null) continue;\r\n dealer_html += '
' + dealers[i].name + '
' + dealers[i].city + \", \" + dealers[i].state + \" \" + dealers[i].zip5() + '
';\r\n $(\".filter-value[data-value='\" + dealers[i].id + \"']\").removeClass(\"filter-value-disabled\");\r\n }\r\n // Init Filter Dealers Box ---------------------------------------------------------------\r\n var activeFilterTypeCount = 0;\r\n $(\".filter-value-txt\").each(function() {\r\n if ($(this).html() != \"\") activeFilterTypeCount++;\r\n });\r\n\r\n // Preserving The Previous Selections\r\n if (preSelect == true) {\r\n $(\".filter-values\").each(function(x) {\r\n var item_id = $(this).attr(\"id\");\r\n var items = $(this).attr(\"data-values\").split(\", \");\r\n for (var i = 0; i < items.length; i++) {\r\n $(this).find(\".filter-value\").each(function(y) {\r\n\r\n //seating filter should not apply... condition for seating here\r\n if(item_id != 'filter-seat') {\r\n if ($(this).html() == items[i]) $(this).addClass(\"filter-value-active\");\r\n if ($(this).attr(\"data-value\") == items[i]) $(this).addClass(\"filter-value-active\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n // disable \"clear all\" button when no filters are applied\r\n setTimeout(function() {\r\n $(\".filter-nav-filters-apply\").text() == 0 ? $(\".filters-clearall-btn\").addClass(\"disabled\") : $(\".filters-clearall-btn\").removeClass(\"disabled\");\r\n }, 0);\r\n\r\n // re-enable greyed out filters\r\n var currentActiveFilters = [];\r\n\r\n // if a filter click has triggered\r\n if (elementID) {\r\n $(\".filter-values\").each(function(i, el) {\r\n if ($(this).children().hasClass(\"filter-value-active\")) {\r\n currentActiveFilters.push($(this).attr(\"id\"));\r\n }\r\n });\r\n }\r\n\r\n $.each(currentActiveFilters, function(i, parentId) {\r\n if (elementID != parentId && elementID != \"on\") {\r\n $(\"#\"+parentId).children().removeClass(\"filter-value-disabled\")\r\n }\r\n });\r\n\r\n // Init Filter UI ---------------------------------------------------------------\r\n }\r\n\r\n // calculate estimated monthly payment for each vehicle card, onload\r\n calculateEstMoPayment() {\r\n var tradein = parseInt($(\"#tradein\").val()) || 0;\r\n var apr = $(\"#apr\").val();\r\n var currentTerm = $(\".term-btn.current\").text();\r\n hcpv_rpa_util.calcEstimateMonthlyPayment(tradein, parseFloat(apr), parseInt(currentTerm), $(\".list-car-price\"));\r\n }\r\n\r\n //Initialize Radius Slider\r\n initRadiusSlider() {\r\n var that = this;\r\n // Radius slider\r\n $(\"#slider-radius\").slider({\r\n min: 5,\r\n max: 250,\r\n value: 25,\r\n create: function() {\r\n var currentrange = $(this).parent().find(\".current-range\");\r\n var handle = $(this).parent().find(\".handle\");\r\n var min = $(this).slider(\"option\", \"min\");\r\n var max = $(this).slider(\"option\", \"max\");\r\n var value = $(this).slider(\"option\", \"value\");\r\n var string = (value + \" mi.\");\r\n currentrange.text(string);\r\n $(handle).find(\".min\").html(min + \" mi.\");\r\n $(handle).find(\".max\").html(max + \" mi.\");\r\n },\r\n slide: function(event, ui) {\r\n var currentrange = $(this).parent().find(\".current-range\");\r\n var string = (ui.value + \" mi.\");\r\n currentrange.text(string);\r\n that.satelliteTrack(\"radius\");\r\n },\r\n change: function(event, ui) {\r\n var currentrange = $(this).parent().find(\".current-range\");\r\n var string = (ui.value + \" mi.\");\r\n currentrange.text(string);\r\n $(\".itt-radius\").html(ui.value);\r\n\r\n that.handleAppliedFilters(string, 'addEdit', 'radius');\r\n }\r\n });\r\n }\r\n\r\n //Initialize Other Filter Sliders\r\n initFilterSliders() {\r\n var that = this;\r\n\r\n function singleSlide(slider, ui, first, last) {\r\n var options = $(slider).slider(\"option\");\r\n var min = options.min;\r\n var max = options.max;\r\n var currentrange = $(slider).parent().find(\".current-range\");\r\n var plus = \"\";\r\n if ($(slider).attr(\"id\") == \"slider-mileage\" ) {\r\n if (options.value >= max) plus = \"+\";\r\n }\r\n var string = first + options.value + last + plus;\r\n if (ui != undefined) string = first + ui.value + last + plus;\r\n currentrange.text(string);\r\n\r\n var sliderID = $(slider).attr(\"id\");\r\n\r\n if (sliderID == \"slider-price\") {\r\n that.satelliteTrack(\"price\")\r\n }\r\n if (sliderID == \"slider-mileage\") {\r\n that.satelliteTrack(\"mileage\")\r\n };\r\n }\r\n\r\n function doubleSlide(slider, ui) {\r\n var currentrange = $(slider).parent().find(\".current-range\");\r\n var options = $(slider).slider(\"option\");\r\n var min = options.values[0];\r\n var max = options.values[1];\r\n if (ui != undefined) {\r\n min = ui.values[0];\r\n max = ui.values[1];\r\n }\r\n var string = (min + \" - \" + max);\r\n currentrange.text(string);\r\n\r\n var sliderID = $(slider).attr(\"id\");\r\n\r\n // don't call satelliteTrack onload\r\n if (sliderID == \"slider-year\" && that.defaultFilter == false) {\r\n that.satelliteTrack(\"year\");\r\n that.defaultFilter = false;\r\n }\r\n }\r\n\r\n function createSingleSlide(slider, first, last, plus) {\r\n var currentrange = $(slider).parent().find(\".current-range\");\r\n var handle = $(slider).parent().find(\".handle\");\r\n var options = $(slider).slider(\"option\");\r\n var min = options.min;\r\n var max = options.max;\r\n var string = first + max + last + plus;\r\n currentrange.text(string);\r\n $(handle).find(\".min\").html(first + min + last);\r\n $(handle).find(\".max\").html(first + max + last + plus);\r\n }\r\n\r\n function createDoubleSlide(slider) {\r\n var currentrange = $(slider).parent().find(\".current-range\");\r\n var handle = $(slider).parent().find(\".handle\");\r\n var options = $(slider).slider(\"option\");\r\n var min = options.min;\r\n var max = options.max;\r\n var string = (options.values[0] + \" - \" + max);\r\n currentrange.text(string);\r\n $(handle).find(\".min\").html(min);\r\n $(handle).find(\".max\").html(max);\r\n }\r\n\r\n // Price Slider\r\n var minmax = [5000, 30000];\r\n\r\n // Mileage Slider\r\n //minmax=this.findObjectArrayMaxMinValue(cars, \"mileage\");\r\n minmax = [0, 80000];\r\n $(\"#slider-mileage\").slider({\r\n min: minmax[0],\r\n max: minmax[1],\r\n value: minmax[1],\r\n step: 1000,\r\n create: function() {\r\n createSingleSlide(this, \"\", \" mi.\", \"+\");\r\n },\r\n slide: function(event, ui) {\r\n singleSlide(this, ui, \"\", \" mi.\");\r\n },\r\n // Potentially need the change event because of auto filter by query string functionality\r\n change: function(event, ui) {\r\n var formattedMileageValue = \"Mileage: \" +ui.value+ ' mi.';\r\n singleSlide(this, ui, \"\", \" mi.\");\r\n that.handleAppliedFilters(formattedMileageValue, 'addEdit', 'mileage');\r\n }\r\n });\r\n\r\n function validateNumber(e) {\r\n const value = e.target.value.replace(/\\,/g,'');\r\n e.target.value = Number.isNaN(Number(value)) ? '0' : Number(value).toLocaleString();\r\n }\r\n document.querySelector('input[name=\"downPayment\"]').addEventListener('blur', validateNumber);\r\n document.querySelector('input[name=\"tradein\"]').addEventListener('blur', validateNumber);\r\n\r\n // Year Slider\r\n minmax = [minYearSlider, maxYearSlider];\r\n $(\"#slider-year\").slider({\r\n range: true,\r\n min: minmax[0],\r\n max: minmax[1],\r\n values: [defaultYearSlider, minmax[1]],\r\n create: function() {\r\n createDoubleSlide(this);\r\n },\r\n slide: function(event, ui) {\r\n doubleSlide(this, ui);\r\n },\r\n // Need the change event because of auto filter by query string functionality\r\n change: function(event, ui) {\r\n doubleSlide(this, ui);\r\n var formattedYearValues = ui.values[0] + '-' + ui.values[1];\r\n const slider = ui.handleIndex === 1 ? 'year_max' : 'year_min'\r\n const year = ui.value;\r\n if(typeof window.digitalDataLayerLibrary.InventoryYearSliderSet === \"function\") {\r\n window.digitalDataLayerLibrary.InventoryYearSliderSet(slider, year);\r\n }\r\n that.handleAppliedFilters(formattedYearValues, 'addEdit', 'years');\r\n }\r\n });\r\n\r\n var sliderElements = document.querySelectorAll(\"#slider-year > span.ui-slider-handle\");\r\n if(sliderElements) {\r\n sliderElements[0].setAttribute('data-tap-element-id', 'filter_year_min_slider');\r\n sliderElements[1].setAttribute('data-tap-element-id', 'filter_year_max_slider');\r\n }\r\n }\r\n\r\n // applied filters labels\r\n handleAppliedFilters(filterValue, action, filterElement) {\r\n\r\n var appliedFiltersContainer = $('.applied-filters');\r\n var dataValue = typeof(filterElement) == 'object' ? filterElement.attr('data-value') : filterElement;\r\n var whichFilter = typeof(filterElement) == 'object' ? filterElement.parent().attr('id') : filterElement;\r\n var appliedFilterHTML;\r\n\r\n appliedFiltersContainer.css({\"display\": \"flex\",\"flex-wrap\": \"wrap\"});\r\n\r\n if (whichFilter == 'filter-seat') filterValue = 'Seats: ' + filterValue;\r\n if (whichFilter == 'filter-dealers') filterValue = filterElement.attr('data-display-value');\r\n\r\n if (whichFilter == 'filter-excolor') {\r\n filterValue = 'Exterior: ' + filterValue;\r\n dataValue = 'excolor' + dataValue;\r\n }\r\n\r\n if (whichFilter == 'filter-incolor') {\r\n filterValue = 'Interior: ' + filterValue;\r\n dataValue = 'incolor' + dataValue;\r\n }\r\n\r\n appliedFilterHTML = ' ' + filterValue + ' ' +\r\n ' ' +\r\n '';\r\n\r\n switch (action) {\r\n case 'add':\r\n appliedFiltersContainer.append(appliedFilterHTML);\r\n\r\n break;\r\n\r\n case 'remove':\r\n appliedFiltersContainer.find(\".remove-filter-tag[data-label='\"+dataValue+\"']\").parent().remove();\r\n\r\n if ($('.filter-tag').length == 0) {\r\n $('.applied-filters').hide();\r\n }\r\n\r\n break;\r\n\r\n case 'addEdit':\r\n var existingSliderTag = appliedFiltersContainer.find(\".remove-filter-tag[data-label='\"+dataValue+\"']\");\r\n var yearsFirstLoad = $(\".year-sl\").attr(\"data-trigger\");\r\n var yearQS = this.getParameterByName(\"year\");\r\n\r\n // don't render years tag on first load\r\n if (dataValue == 'years' && yearsFirstLoad == undefined && (yearQS == null || yearQS == 'none')) return;\r\n\r\n if (existingSliderTag.length == 0) {\r\n appliedFiltersContainer.append(appliedFilterHTML);\r\n } else {\r\n existingSliderTag.parent().replaceWith(appliedFilterHTML);\r\n }\r\n\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n removeFilterTag(thisTag) {\r\n var slideFilters = ['radius', 'price', 'mileage', 'years'];\r\n var thisFilter = thisTag.attr('data-label');\r\n\r\n // non slide filters\r\n if (slideFilters.indexOf(thisFilter) == -1) {\r\n var isInteriorColor = thisFilter.indexOf('incolor') != -1;\r\n var isExteriorColor = thisFilter.indexOf('excolor') != -1;\r\n\r\n $('.applied-filters').find(\".remove-filter-tag[data-label='\"+thisFilter+\"']\").parent().remove();\r\n\r\n // offer switch\r\n if (thisFilter == 'fos-box') {\r\n $(\".fos-box\").trigger(\"click\");\r\n }\r\n\r\n // differentiate colors as some values are the same\r\n if (isInteriorColor) {\r\n // remove color preffix\r\n thisFilter = thisFilter.substring(7);\r\n $(\"#filter-incolor\").find(\".filter-value[data-value='\"+thisFilter+\"']\").trigger(\"click\");\r\n } else if (isExteriorColor) {\r\n // remove color preffix\r\n thisFilter = thisFilter.substring(7);\r\n $(\"#filter-excolor\").find(\".filter-value[data-value='\"+thisFilter+\"']\").trigger(\"click\");\r\n } else {\r\n removeTagFilterPressed = $(\".filter-value[data-value='\"+thisFilter+\"']\").parents(\".filter-values\").attr(\"id\");\r\n $(\".filter-value[data-value='\"+thisFilter+\"']\").trigger(\"click\");\r\n }\r\n }\r\n\r\n // sliders\r\n else {\r\n var thisSlider = thisFilter == 'radius' ? $(\"#slider-radius\")\r\n : thisFilter == 'price' ? 'price-sliders'\r\n : thisFilter == 'mileage' ? $(\"#slider-mileage\")\r\n : $(\"#slider-year\");\r\n\r\n // back to default\r\n if (thisFilter == 'radius') thisSlider.slider('value', 25);\r\n if (thisFilter == 'mileage') thisSlider.slider('value', 80000);\r\n if (thisFilter == 'years') thisSlider.slider('values', [defaultYearSlider, maxYearSlider]);\r\n if (thisFilter == 'price') {\r\n // reset monthly payment calculator to default values\r\n $(\"#moPaymentSlider\").val(370);\r\n $(\".pm-current\").text(\"$370\");\r\n\r\n $(\"#downPayment\").val(\"\");\r\n $(\"#tradein\").val(0);\r\n\r\n $(\"#apr\").val(Cookies.get('api_apr'));\r\n $(\".term-btn.default\").trigger(\"click\");\r\n\r\n // reset price slider to default values\r\n $(\"#sliderOne\").val(5000);\r\n $(\"#sliderTwo\").val(30000);\r\n\r\n $(\".pr-min\").text(\"$5,000-\");\r\n $(\".pr-max\").text(\"$30,000\");\r\n\r\n $(\".pr-values\").removeAttr(\"data-min data-max\");\r\n $(\".price-sliders\").trigger(\"change\");\r\n }\r\n\r\n if (thisSlider != 'price-sliders') {\r\n thisSlider.trigger(\"slidestop\");\r\n thisSlider.parents(\".filter\").attr(\"data-filter\", \"false\");\r\n }\r\n $('.applied-filters').find(\".remove-filter-tag[data-label='\"+thisFilter+\"']\").parent().remove();\r\n this.updateFilterCount();\r\n }\r\n // hide applied filters container when no tags\r\n if ($('.filter-tag').length == 0) {\r\n $('.applied-filters').hide();\r\n }\r\n }\r\n\r\n // Reset With Cache Data\r\n resetBackToCacheData() {\r\n var d = this.ajaxData;\r\n this.initStylesAttributesLists(d);\r\n\r\n var a = d.ModelAttributes.ModelAttribute; //modelAttributes.modelAttribute; //d.ModelAttributes.ModelAttribute;\r\n var seatsArray = new Array();\r\n\r\n for(var i=0; idtmDataLayerSearch = { \"resultcount\":\"' + data.length + '\"}');\r\n }\r\n if (!data.length) $(\".list-no-result\").fadeIn(300);\r\n }\r\n\r\n // Update ui to show the total number of filters being applied\r\n updateFilterCount() {\r\n setTimeout(function() {\r\n // excluding years here, because it applies by default, but shouldn't reflect on count / tags\r\n var activeSliders = $(\".filter[data-filter='true']\").not(\".year-sl\").length;\r\n var priceSlider = $(\"[data-label=price]\").length ? 1 : 0;\r\n var activeYear = $(\"[data-label=years]\").length ? 1 : 0;\r\n var filterValuesActive = $(\".filter-value-active\").length;\r\n var OffersOn = $(\"#filter-offers[data-values='on']\").length;\r\n\r\n $(\".filter-nav-filters-apply\").html(activeSliders + filterValuesActive + OffersOn + activeYear + priceSlider);\r\n }, 0);\r\n }\r\n\r\n //Show Filter Div on vehicle search page load\r\n showFilterDiv() {\r\n $(\".filter-nav\").addClass(\"filter-nav-active\");\r\n $(\".filters\").addClass(\"filters-active\");\r\n $(\".filters-outer\").show(300);\r\n $(\".map-list\").addClass(\"map-list-push-over\");\r\n $(\".mini-compare-bar\").addClass(\"super-mini\");\r\n $(\".list-items\").addClass(\"list-items-3\");\r\n $(\".loading-item\").removeClass(\"stretch\").addClass(\"adjust\");\r\n // Make sure the pfixed class is apply to the filters class\r\n $(window).trigger(\"scroll\");\r\n }\r\n\r\n // Find vehicle by its vin number\r\n findCarByVin(vin) {\r\n for (var i = 0; i < this.currentCars.length; i++) {\r\n if (this.currentCars[i].vin == vin) return this.currentCars[i];\r\n }\r\n return null;\r\n }\r\n\r\n // Find If Dealer PushPin Already In Array\r\n isDealerPushPinInArray(pushpin) {\r\n for (var i = 0; i < this.allpins.length; i++) {\r\n var pin = this.allpins[i];\r\n if (pin.metadata.dealerid == pushpin.metadata.dealerid) return true;\r\n }\r\n return false;\r\n }\r\n\r\n // Find dealer by ID\r\n findDealerById(id) {\r\n for (var i = 0; i < this.dealersArray.length; i++) {\r\n if (this.dealersArray[i].id == id) return this.dealersArray[i];\r\n }\r\n return null;\r\n }\r\n\r\n // Find Object In An Array By Its Property Value\r\n findObjectByProperty(array, property, value) {\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i][property] == value) return array[i];\r\n }\r\n return null;\r\n }\r\n\r\n findObjectIndexByProperty(array, property, value) {\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i][property] == value) return i;\r\n }\r\n return -1;\r\n }\r\n\r\n // Find Object Array Property Max Value\r\n findObjectArrayMaxMinValue(array, property) {\r\n var newarray = new Array();\r\n for (var i = 0; i < array.length; i++) {\r\n newarray.push(parseFloat(array[i][property]));\r\n }\r\n var min = Math.min(...newarray);\r\n var max = Math.max(...newarray);\r\n return [min, max];\r\n }\r\n\r\n // Find Query String Parameter Value\r\n getParameterByName(name, url) {\r\n if (!url) {\r\n url = window.location.href;\r\n }\r\n\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\", \"i\"),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n\r\n // jQuery Functions Initialize Filters Layer --------------------------------------------------------------------------------------------------------------------------------------\r\n initFiltersLayer(that) {\r\n // Filter Control Click (Shows the Filters)\r\n $(\".filter-nav-control\").on(\"click\", function() {\r\n that.showFilterDiv();\r\n\r\n });\r\n\r\n // SEE VEHICLES BUTTON ALSO filter-btn-create\r\n // Filter Control X Button Click (Hides the Filter)\r\n $(\".filter-nav-control-x, .filter-btn-cancel, .filter-btn-create\").on(\"click\", function(event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n\r\n $(\".filter-nav\").removeClass(\"filter-nav-active\");\r\n $(\".filters\").removeClass(\"filters-active\");\r\n $(\".filters-outer\").hide(300);\r\n $(\".map-list\").removeClass(\"map-list-push-over\");\r\n $(\".mini-compare-bar\").removeClass(\"super-mini\");\r\n $(\".list-items\").removeClass(\"list-items-3\");\r\n $(\".loading-item\").removeClass(\"adjust\").addClass(\"stretch\");\r\n });\r\n\r\n // Clear All Filters\r\n $(\".filters-clearall-btn, .applied-filters-clear\").on(\"click\", function() {\r\n\r\n if($(this).hasClass(\"disabled\")) return;\r\n\r\n var options = $(\"#slider-year\").slider('option');\r\n $(\"#slider-year\").slider('values', [defaultYearSlider, options.max]);\r\n\r\n $('.slider').each(function() {\r\n var options = $(this).slider('option');\r\n if ($(this).attr(\"id\") == \"slider-radius\") $(this).slider('value', [that.radiusMiles]);\r\n else $(this).slider('value', [options.max]);\r\n });\r\n\r\n $(\".filter-value-txt\").html(\"\");\r\n $(\".filter\").attr(\"data-filter\", \"false\");\r\n $(\".filter-values\").attr(\"data-values\", \"\");\r\n $(\".filter-value\").removeClass(\"filter-value-active\");\r\n\r\n // price range reset\r\n $(\"#sliderOne\").val(5000);\r\n $(\"#sliderTwo\").val(30000);\r\n $(\".pr-min\").text(\"$5,000-\");\r\n $(\".pr-max\").text(\"$30,000\");\r\n $(\".pr-values\").removeAttr(\"data-min data-max\");\r\n\r\n //Show Offer Button Off State\r\n $(\".fos-box\").removeClass(\"fos-box-on\");\r\n $(\".fos-onoff\").removeClass(\"fos-active\");\r\n $(\".fos-off\").addClass(\"fos-active\");\r\n var onoff = \"off\";\r\n $(\".fos-box\").parents(\".filter\").find(\".filter-values\").attr(\"data-values\", onoff);\r\n $(\".fos-box\").parents(\".filter\").find(\".filter-value-txt\").html(onoff);\r\n\r\n that.filter1 = null;\r\n that.filter2 = null;\r\n localStorageSetItemCommon(\"filter1\", \"\");\r\n localStorageSetItemCommon(\"filter2\", \"\");\r\n localStorageSetItemCommon(\"lastRadius\", that.radiusMiles);\r\n\r\n $(\".filter-nav-filters-apply\").html(0);\r\n that.lastRadius = that.radiusMiles;\r\n that.initMap(5);\r\n\r\n // remove filter tags\r\n $(\".applied-filters\").hide().find(\".filter-tag\").not(\".applied-filters-clear\").remove();\r\n });\r\n\r\n\r\n // Slider slidestop event\r\n $(\".slider\").on(\"slidestop\", function(event, ui) {\r\n\r\n that.showLoadingSkeleton();\r\n\r\n var options = $(this).slider('option');\r\n\r\n if ($(this).attr(\"data-filter-type\") == \"year\") {\r\n if (options.values[0] != options.min || options.values[1] != options.max) {\r\n $(this).parents(\".filter\").attr(\"data-filter\", \"true\");\r\n }\r\n } else {\r\n if (true) {\r\n $(this).parents(\".filter\").attr(\"data-filter\", \"true\");\r\n } else $(this).parents(\".filter\").attr(\"data-filter\", \"false\");\r\n }\r\n\r\n that.updateFilterCount();\r\n\r\n if ($(this).attr(\"data-filter-type\") == \"radius\") {\r\n\r\n that.lastRadius = options.value;\r\n\r\n that.initMap(3);\r\n\r\n } else {\r\n var cars = that.applyMultiFilters();\r\n that.initFilterUI(cars, that.dealersArray, \"slider\", true, []);\r\n }\r\n\r\n });\r\n\r\n // Price Range Slider event\r\n $(\".price-sliders\").on(\"change\", function () {\r\n that.showLoadingSkeleton();\r\n\r\n $(this).parent().attr(\"data-trigger\", \"true\");\r\n\r\n var cars = that.applyMultiFilters();\r\n var price1 = $('#sliderOne').val();\r\n var price2 = $('#sliderTwo').val();\r\n var upToPayment = $('.pm-current').text().slice(1);\r\n var formattedPriceValues = '$' + Number(price1).toLocaleString() + ' - ' + '$'+ Number(price2).toLocaleString();\r\n var montlyPaymentValue = 'Up to $' + upToPayment + '/mo';\r\n var searchBudgetSubmitted = $(\"#searchBudget\").attr(\"data-budget-submitted\");\r\n\r\n that.initFilterUI(cars, that.dealersArray, \"slider\", true, []);\r\n\r\n if (searchBudgetSubmitted) {\r\n that.handleAppliedFilters(montlyPaymentValue, 'addEdit', 'price');\r\n\r\n } else {\r\n if(price2 == 30000) formattedPriceValues += '+';\r\n that.handleAppliedFilters(formattedPriceValues, 'addEdit', 'price');\r\n }\r\n\r\n that.updateFilterCount();\r\n });\r\n\r\n // Filters (TYPE,VEHICLE,MODEL,FEATURES,OFFERS,TRANSMISSION,EXTERIOR COLORS,INTERIOR COLORS,DEALERS) Value Click\r\n $(\".filter\").on(\"click\", \".filter-value\", function() {\r\n\r\n if ($(this).hasClass(\"filter-value-disabled\")) return;\r\n\r\n that.showLoadingSkeleton();\r\n\r\n $(this).toggleClass(\"filter-value-active\");\r\n\r\n var filterTxt = \"\";\r\n var filterValue = \"\";\r\n $(this).parents(\".filter\").find(\".filter-value-active\").each(function(i) {\r\n if ($(this).attr(\"data-value\") != undefined) filterValue += $(this).attr(\"data-value\") + \", \";\r\n if ($(this).attr(\"data-display-value\") != undefined) filterTxt += $(this).attr(\"data-display-value\") + \", \";\r\n else filterTxt += $(this).html() + \", \";\r\n });\r\n var appliedTxt = \"applied\";\r\n var filtersApplied = filterTxt.split(\", \").length - 1;\r\n if (filtersApplied <= 0) {\r\n appliedTxt = \"\";\r\n filtersApplied = \"\";\r\n }\r\n\r\n if (!$(this).hasClass(\"filter-seats\")) {\r\n $(this).parents(\".filter\").find(\".filter-value-txt\").html(filtersApplied + \" \" + appliedTxt);\r\n }\r\n\r\n if (filterValue != \"\") filterTxt = filterValue;\r\n $(this).parents(\".filter\").find(\".filter-values\").attr(\"data-values\", filterTxt.substr(0, filterTxt.length - 2));\r\n\r\n\r\n var type = that.getParameterByName(\"style\");\r\n var name = that.getParameterByName(\"modelgroupname\");\r\n var filterid = $(this).parents(\".filter-values\").attr(\"id\");\r\n\r\n //TODO: Optimize this code block and test\r\n if (!(type != undefined && that.firstAutoFilter == true) && filterid) {\r\n const trackingMap = {\r\n \"filter-program\": \"program\",\r\n \"filter-type\": \"type\",\r\n \"filter-vehicle\": \"vehicle\",\r\n \"filter-model\": \"model\",\r\n \"filter-transmission\": \"transmission\",\r\n \"filter-seat\": \"seating\",\r\n \"filter-excolor\": \"color_ext\",\r\n \"filter-incolor\": \"color_int\",\r\n \"filter-dealers\": \"dealers\",\r\n \"filter-features\": \"features\"\r\n };\r\n\r\n const trackingKey = trackingMap[filterid];\r\n if (trackingKey) {\r\n that.satelliteTrack(trackingKey);\r\n }\r\n }\r\n\r\n that.updateFilterCount();\r\n\r\n var cars = that.applyMultiFilters();\r\n\r\n //get seating array from here and pass\r\n var seat_array = new Array();\r\n $(\".filter-values\").each(function() {\r\n var type = $(this).attr(\"data-filter-type\");\r\n var value = $(this).attr(\"data-values\");\r\n if (type == \"seats\") {\r\n seat_array.push({\r\n \"@Code\": \"# of Passengers\",\r\n \"@Value\": value\r\n });\r\n }\r\n\r\n });\r\n\r\n that.initFilterUI(cars, that.dealersArray, $(this).parents(\".filter-values\").attr(\"id\"), true,seat_array);\r\n\r\n if ($(this).hasClass(\"filter-value-active\")) {\r\n\r\n that.handleAppliedFilters($(this).text(), 'add', $(this));\r\n\r\n } else {\r\n that.handleAppliedFilters('', 'remove', $(this));\r\n }\r\n\r\n if ($(this).hasClass(\"filter-seats\")) {\r\n $(this).removeClass(\"filter-value-active\");\r\n }\r\n\r\n that.calculateEstMoPayment();\r\n });\r\n\r\n // Filters (TYPE,VEHICLE,MODEL,FEATURES,OFFERS,TRANSMISSION,EXTERIOR COLORS,INTERIOR COLORS,DEALERS) Click (Expands or Collapse filter content)\r\n $(\".filter\").on(\"click\", \".filter-name-2\", function(e) {\r\n // don't expand program when tooltip is clicked\r\n if ($(this).text().indexOf(\"PROGRAM\") !== -1 && e.target !== this) return;\r\n\r\n if ($(this).hasClass(\"filter-expand\")) {\r\n $(this).parents(\".filter\").find(\".filter-values\").hide();\r\n } else $(this).parents(\".filter\").find(\".filter-values\").show();\r\n\r\n $(this).toggleClass(\"filter-expand\");\r\n });\r\n\r\n /* Filters Show Offer Switch Click */\r\n $(\".fos-box\").on(\"click\", function() {\r\n that.showLoadingSkeleton();\r\n that.satelliteTrack(\"offers\");\r\n\r\n $(this).toggleClass(\"fos-box-on\");\r\n $(\".fos-onoff\").toggleClass(\"fos-active\");\r\n var filtervs = $(this).parents(\".filter\").find(\".filter-values\")\r\n var onoff = $(filtervs).attr(\"data-values\");\r\n if (onoff == \"on\") {\r\n onoff = \"off\";\r\n that.handleAppliedFilters('', 'remove', 'fos-box');\r\n\r\n } else {\r\n onoff = \"on\";\r\n that.handleAppliedFilters('Offers', 'add', 'fos-box');\r\n }\r\n $(filtervs).attr(\"data-values\", onoff);\r\n $(this).parents(\".filter\").find(\".filter-value-txt\").html(onoff);\r\n\r\n that.updateFilterCount();\r\n var cars = that.applyMultiFilters();\r\n that.initFilterUI(cars, that.dealersArray, onoff, true, []);\r\n });\r\n\r\n /* Filter controls Sort By Link Button Click */\r\n $(\".filter-nav-sortby-btn\").click(function() {\r\n $(\".filter-nav-sortby-inner\").slideDown(300);\r\n });\r\n /* Filter controls Sort By Option Click */\r\n $(\".fnsb-item\").click(function() {\r\n $(\".filter-nav-sortby-btn\").html($(this).html());\r\n $(\".filter-nav-sortby-inner\").slideUp(300);\r\n });\r\n\r\n }\r\n\r\n\r\n // jQuery Functions General Initialization --------------------------------------------------------------------------------------------------------------------------------------\r\n initGeneral(that) {\r\n // List View Button Click\r\n $(\".filter-nav-list-view-button\").click(function() {\r\n $(\"#list\").fadeIn(300);\r\n $(this).hide();\r\n $(\".filter-nav-sortby\").show();\r\n $(\".filter-nav-map-view-button\").show();\r\n $(\".filter-nav\").removeClass(\"filter-nav-map-active\");\r\n $('#map').css('position','absolute');\r\n $('.map-list').find('.mini-compare-bar').css('margin-top','0');\r\n });\r\n\r\n // adjust mini-compare bar position in map-view\r\n function adjustBarPosition() {\r\n if (compareVehicles.length || savedVehicles.length) {\r\n $('.map-list').find('.mini-compare-bar').css('margin-top','-65px');\r\n $('#map').css('position','relative');\r\n }\r\n }\r\n\r\n // Map View Button Click\r\n $(\".filter-nav-map-view-button\").click(function() {\r\n $(\"#list\").fadeOut(300);\r\n $(this).hide();\r\n $(\".filter-nav-sortby\").hide();\r\n $(\".filter-nav-list-view-button\").show();\r\n //$(\".map-list\").height($(\"#myMap\").height());\r\n\r\n $(\".filter-nav\").addClass(\"filter-nav-map-active\");\r\n\r\n adjustBarPosition();\r\n });\r\n\r\n // Mobile Map View Button Click\r\n $(\".list-items\").on(\"click\", \".list-car-map-btn\", function() {\r\n var p = $(\".inventory-main\").position();\r\n $(\"html, body\").animate({\r\n scrollTop: p.top\r\n });\r\n $(\".map-list\").css(\"height\", \"auto\");\r\n $(\"#list\").fadeOut(300);\r\n $(\".filter-nav-list-view-button\").show();\r\n $(\".filter-nav-map-view-button\").hide();\r\n $(\".filter-nav-sortby-mobile\").hide();\r\n\r\n adjustBarPosition();\r\n });\r\n\r\n // Mobile List View Button Click\r\n $(\".map-list-view-btn\").click(function() {\r\n $(\"#list\").fadeIn(300);\r\n $(\".filter-nav-list-view-button\").hide();\r\n $(\".filter-nav-map-view-button\").show();\r\n $(\".filter-nav-sortby-mobile\").show();\r\n $('#map').css('position','absolute');\r\n $('.map-list').find('.mini-compare-bar').css('margin-top','0');\r\n });\r\n\r\n // Search When Map Moves Button Click\r\n $(\"#search-map-move\").click(function() {\r\n\r\n });\r\n\r\n // Redo Search In Map\r\n $(\".btn-redo-search-map\").click(function() {\r\n $(\"#search-map-move\").prop('checked', true);\r\n that.initMap(2);\r\n $(\".map-search-when-move .radio-box\").toggle();\r\n });\r\n\r\n // See Details Button\r\n $(\"#map-page-content\").on(\"click\", \".list-item-inner-wrapper\", function(e) {\r\n\r\n // don't redirect to VDP, if payment tooltip is clicked\r\n if (e.target.className == \"payment-info\") return false;\r\n\r\n localStorageSetItemCommon(\"filter1\", JSON.stringify(that.filter1));\r\n localStorageSetItemCommon(\"filter2\", JSON.stringify(that.filter2));\r\n\r\n var year = $(this).find('.list-car-btn-detail').attr(\"data-year\");\r\n var model = $(this).find('.list-car-btn-detail').attr(\"data-name\");\r\n // HCPVISSUES-682 removed.\r\n // callFloodlight('inventory-search-details', model, year);\r\n _satellite.track('invsearch_results_list_details');\r\n var url = $(this).parent('.list-item-inner').find('.list-car-btn-detail').attr(\"data-url\");\r\n\r\n window.location = url;\r\n });\r\n\r\n // See Compare Details Button\r\n $(\"#map-page-content\").on(\"click\", \".list-car-btn-detail\", function() {\r\n var url = $(this).attr(\"data-url\");\r\n window.location = url;\r\n });\r\n\r\n // clickout to dealer's website\r\n $(\"#list\").on(\"click\", \".list-car-dealername\", function() {\r\n var currentHref = $(this).attr(\"href\");\r\n\r\n if (currentHref.indexOf('https') == -1) {\r\n var redirectUrl = location.origin + '/redirect.html?ref=' + currentHref;\r\n $(this).attr(\"href\", redirectUrl)\r\n }\r\n });\r\n\r\n // Page Scroll Event ---------------------------------------------------------------------------------------------------------------------------------->>>>>\r\n $(window).on(\"scroll\", function(e) {\r\n var st = $(this).scrollTop();\r\n\r\n // Back To Top Button\r\n if (st > 900) {\r\n $(\".btn-back-to-top\").show();\r\n\r\n } else {\r\n $(\".btn-back-to-top\").hide();\r\n }\r\n\r\n // Filter | Mini Compare Bar Position Fixed\r\n if (st > $(\".filter-nav-outer\").offset().top - $(\".ahm-global-nav\").height()) {\r\n $(\".filter-nav\").addClass(\"pfixed\");\r\n } else {\r\n $(\".filter-nav\").removeClass(\"pfixed\");\r\n }\r\n\r\n if (st > $(\".main-content\").offset().top - $(\".ahm-global-nav\").height() - $(\".filter-nav\").height()) {\r\n $(\".filters-active\").addClass(\"pfixed\");\r\n } else {\r\n $(\".filters-active\").removeClass(\"pfixed\");\r\n }\r\n\r\n\r\n // if (document.documentMode || /Edge/.test(navigator.userAgent)) {\r\n if ((document.documentMode) || (/Edge/.test(navigator.userAgent)) || (/android/.test(navigator.userAgent)) || ((/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream))) {\r\n if (!$(\".compare-content\").hasClass(\"fixed\")){\r\n // alert(\"IF 3016\")\r\n if (st > $(\".main-content\").offset().top - $(\".ahm-global-nav\").height() - $(\".filter-nav\").height()) {\r\n\r\n $(\".mini-compare-bar\").addClass(\"pfixed\");\r\n if ($(\".mini-compare-bar\").hasClass(\"super-mini\")) $(\".mini-compare-bar\").addClass(\"super-mini-ie\");\r\n } else {\r\n $(\".mini-compare-bar\").removeClass(\"pfixed\");\r\n $(\".mini-compare-bar\").removeClass(\"super-mini-ie\");\r\n }\r\n }\r\n }\r\n\r\n });\r\n\r\n }\r\n // MultiFilter Front End Function\r\n applyMultiFilters() {\r\n\r\n var filters = new Array();\r\n\r\n // price slider\r\n if ($(\"#pr-range\").attr(\"data-trigger\")) {\r\n var min = $(\".pr-values\").attr(\"data-min\") || 5000;\r\n var max = $(\".pr-values\").attr(\"data-max\") || 60000;\r\n if (max == 30000) max = 60000;\r\n\r\n filters.push({\r\n \"filter\": \"dsrp\",\r\n \"min\": parseInt(min),\r\n \"max\": parseInt(max)\r\n });\r\n }\r\n\r\n if ($(\"#slider-mileage\").parents(\".filter\").attr(\"data-filter\") == \"true\") {\r\n var max = $(\"#slider-mileage\").slider(\"option\", \"value\");\r\n if (max == $(\"#slider-mileage\").slider(\"option\", \"max\")) max = 99999;\r\n filters.push({\r\n \"filter\": \"mileage\",\r\n \"min\": 0,\r\n \"max\": max\r\n });\r\n }\r\n if ($(\"#slider-year\").parents(\".filter\").attr(\"data-filter\") == \"true\") filters.push({\r\n \"filter\": \"year\",\r\n \"min\": $(\"#slider-year\").slider(\"values\", 0),\r\n \"max\": $(\"#slider-year\").slider(\"values\", 1)\r\n });\r\n\r\n var filters2 = new Array();\r\n $(\".filter-values\").each(function() {\r\n var type = $(this).attr(\"data-filter-type\");\r\n var values = $(this).attr(\"data-values\");\r\n if (values != \"\") {\r\n filters2.push({\r\n \"filter\": type,\r\n \"values\": values\r\n });\r\n }\r\n });\r\n\r\n\r\n var data = this.currentCars;\r\n\r\n this.filter1 = filters;\r\n this.filter2 = filters2;\r\n\r\n // sliders\r\n for (var i = 0; i < filters.length; i++) {\r\n var filter = filters[i];\r\n\r\n var filtered = [];\r\n\r\n angular.forEach(data, function(item) {\r\n if (item[filter.filter] >= filter.min && item[filter.filter] <= filter.max) {\r\n if (this.findObjectIndexByProperty(filtered, \"vin\", item.vin) == -1) filtered.push(item);\r\n }\r\n }.bind(this));\r\n data = filtered;\r\n }\r\n\r\n for (var i = 0; i < filters2.length; i++) {\r\n var filter = filters2[i];\r\n if (filter.filter == \"offers\" && filter.values == \"off\") continue;\r\n var filtered = [];\r\n angular.forEach(data, function(item) {\r\n var match = 0;\r\n var values = filter.values.split(\", \");\r\n for (var x = 0; x < values.length; x++) {\r\n\r\n //special case for styles because a car can have multiple styles, so we have to compare all it's styles\r\n if (filter.filter == \"styles\") {\r\n if (item.styles != null) {\r\n for (var c = 0; c < item.styles.BodyStyle.length; c++) {\r\n\r\n if (this.bodyStylesObj.getStyleNameById2(item.styles.BodyStyle[c]) == $.trim(values[x])) {\r\n //make sure we don't put duplicates in the filtered list\r\n if (this.findObjectIndexByProperty(filtered, \"vin\", item.vin) == -1) {\r\n filtered.push(item);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n } else if (filter.filter == \"features\") {\r\n if (item.features != null) {\r\n for (var c = 0; c < item.features.length; c++) {\r\n if (item.features[c] == $.trim(values[x])) {\r\n match++;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n } else {\r\n if ((item[filter.filter] == $.trim(values[x])) || item[\"VehicleType\"] == $.trim(values[x])) {\r\n if (this.findObjectIndexByProperty(filtered, \"vin\", item.vin) == -1) filtered.push(item);\r\n }\r\n if (filter.filter == \"offers\" && item['specialLease']) {\r\n if (this.findObjectIndexByProperty(filtered, \"vin\", item.vin) == -1) filtered.push(item);\r\n }\r\n }\r\n }\r\n\r\n if (filter.filter == \"features\" && match == values.length) {\r\n if (this.findObjectIndexByProperty(filtered, \"vin\", item.vin) == -1) {\r\n filtered.push(item);\r\n }\r\n }\r\n\r\n if (item.seating == null) {\r\n console.log('null seating vins');\r\n }\r\n\r\n if (filter.filter == \"seats\" && item.seating >= values[0]) {\r\n if (this.findObjectIndexByProperty(filtered, \"vin\", item.vin) == -1) {\r\n filtered.push(item);\r\n }\r\n }\r\n }.bind(this));\r\n data = filtered;\r\n }\r\n\r\n this.applyData(data);\r\n this.initMap(1, data);\r\n\r\n if (data.length <= 0) {\r\n $(\".list-no-result\").fadeIn(300);\r\n } else {\r\n $(\".list-items\").show();\r\n $(\".list-no-result\").hide();\r\n }\r\n dataIsReady = true;\r\n $(\".inventory-skeleton\").hide();\r\n return data;\r\n }\r\n\r\n // Global Error Message\r\n showGlobalErrorMSG(which) {\r\n var message = \"We are sorry, we are experiencing some server error.\";\r\n\r\n if (which == \"alert\") {\r\n message = \"Sorry about that! It seems that our alerts feature isn’t working the way it should, but you can be sure we’re working on getting it back up and running. Please check back in a bit.\"\r\n } else if (which == \"contact\") {\r\n message = \"Sorry about that! It seems that the dealer email features isn’t working the way it should, but you can be sure we’re working on getting it back up and running. Please check back in a bit.\"\r\n } else if (which == \"inventory\") {\r\n message = \"Sorry about that! It seems that Inventory Search isn’t working the way it should, but you can be sure we’re working on getting it back up and running. Please check back in a bit.\"\r\n }\r\n\r\n allError.setMessage({\r\n msg: message,\r\n closeButton: true,\r\n template: 'A'\r\n });\r\n }\r\n\r\n // Load More Button Show Or Hide\r\n showHideLoadMoreButton(cars) {\r\n var scope = angular.element($(\"#my-map-scope\")).scope();\r\n if (cars.length > scope.cStep) $(\".btn-load-more\").show();\r\n else $(\".btn-load-more\").hide();\r\n }\r\n resetLoadMoreStep() {\r\n var scope = angular.element($(\"#my-map-scope\")).scope();\r\n scope.cStep = scope.step;\r\n }\r\n}\r\n\r\n // Back to Top button Desktop\r\n $(\".btn-back-to-top\").on(\"click\", function() {\r\n $(\"html, body\").animate({\r\n scrollTop: \"0px\"\r\n });\r\n });\r\n\r\n if ($(\".btn-back-to-top:visible\")) {\r\n $(\".btn-back-to-top, .list-car-map-btn\").addClass(\"btn-back-to-top-push\");\r\n }\r\n\r\n function storeTradeIn() {\r\n let tradeIn = document.querySelector('input[name=\"tradein\"]').value;\r\n if(tradeIn) {\r\n tradeIn = tradeIn.replace(/\\,/g,'');\r\n localStorageSetItemCommon(HCPV_SESSION_KEY, tradeIn);\r\n }\r\n }\r\n\r\nfunction isPinInPolygon(pushpin, polygon) {\r\n var loc = pushpin.getLocation();\r\n if (loc == undefined) return false;\r\n var isInside = false;\r\n var j = 0;\r\n var x = loc.longitude;\r\n var y = loc.latitude;\r\n var paths = polygon.getLocations();\r\n\r\n for (var i = 0; i < paths.length; i++) {\r\n j++;\r\n if (j == paths.length) {\r\n j = 0;\r\n }\r\n if (paths[i].latitude == undefined || paths[j].latitude == undefined || paths[i].longitude == undefined || paths[j].longitude == undefined) continue;\r\n if (((paths[i].latitude < y) && (paths[j].latitude >= y)) || ((paths[j].latitude < y) && (paths[i].latitude >= y))) {\r\n if (paths[i].longitude + (y - paths[i].latitude) / (paths[j].latitude - paths[i].latitude) * (paths[j].longitude - paths[i].longitude) < x) {\r\n isInside = !isInside\r\n }\r\n }\r\n }\r\n\r\n return isInside;\r\n}\r\n\r\n\r\n\r\nfunction isColorExists(arr, color) {\r\n for (var i = 0; i < arr.length; i++) {\r\n if (arr[i][0] == color) return true;\r\n }\r\n return false;\r\n}\r\n\r\nfunction validateEmail(email) {\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(email);\r\n}\r\n\r\n/* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */\r\n\r\n(function(a) {\r\n (jQuery.browser = jQuery.browser || {}).mobile = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|android|ipad|playbook|silk|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))\r\n})(navigator.userAgent || navigator.vendor || window.opera);\r\n\r\n"]}