{"version":3,"sources":["vehicle-details.js"],"names":["getParameterByName","name","url","arguments","length","undefined","window","location","href","replace","regex","RegExp","results","closeSharePopover","$","popover","click","removeClass","checkBottomBar","setTimeout","saveBar","acpv","SavedVehicles","has","thisModelData","VIN","compareBar","CompareVehicles","css","attr","getDistanceFromDealer","ajax","ZipStorage","getZip","dataType","type","DealerZip","_zip","substring","console","zip","radius","success","result","dealerId","DealerID","checkOfferModelId","thisDealer","DealerURL","i","modelsData","ModelID","html","DealerName","retVal","SingleOwner","vdpWrapper","hide","addClass","hasOffer","textStatus","errorThrown","element","elementId","bottomBar","offset","x","y","bottomBarController","data","content","height","SaveAnimation","toElementId","getOffersFromApi","class_term","class_desk","$window","windowWidth","status","data_desk","ModelId","log","toggleOfferTitleCalcLayer","disp_data","mid","_apr","hasClass","_term","v","error","setOfferFieldValues","_shortdesc","_shortdisclaimer","_lowapr","_lowterm","vehicleType","maxTerm","hasOfferTitle","isOfferApplied","offerApr","offerTerm","offerDisclaimer","offerDescription","applyOffer","offerTermVdp","setOfferFieldsOff","setCalcLayerControl","apr","term","calculateMonthly","desc","width","setOfferVDPOverlay","data2","setOfferTitleCalcLayer","title","dataURL","disp_offer","complete","val","each","index","obj","this","text","models_length","VehicleType","cpoTier","CPOTier","a","show","termOffer","loadTermMonths","removeAttr","buttons","openPopUp","disclaimer","_satellite","track","top","screen","SampleAPR","parseInt","value","txtbox","apiAPR","arr_length","j","indexOf","ModelGroupName","head","modelId","stringUrl","thisMSRP","g_apr","jqXHR","len","hasLowTerm","stringName","hasOffArr","PaymentTerms","FinanceTerms","FinanceTerm","_hasApr","parseFloat","item","open","hasLowApr","left","_hasLowTerm","tval","clearZero","downpayment","monthly","thisMonthly","dynamicAPR","lowApr","lowTerm","arr","tradeinValue","thisDownpayment","customAPR","msrp","thisvin","DSRP","g_shortDescription","g_shortDisclaimer","g_term","_typeof","Specials","hasOffers","isCalcFirstLoad","activeTermsBoxes","parent","forEach","isInitialPageLoad","_lowTerm","TradeInValue","modelid","Term","SampleTerm","termClick","aprIndex","financeTermArray","findIndex","clearErrorTradein","addDtmDataLayertoVDP","hasOffers_data","hasOffersArr","JSON","parse","evt","Special","keyCode","SampleFinancePayment","txt","event","checkDownpayment","dpTxt","SpecialShort","totalprice","offerAprVdp","divId","trade_amt","amt","downPmt","vehicleCardDisclaimer","APR","Math","round","tot_cash_amt","isNaN","theEvent","which","key","String","fromCharCode","returnValue","preventDefault","validateCalcNumber","split","test","totalapr","clearErrorAPR","s","phoneno","txtId","showDivError","elem","txtctl","noHighlightTextbox","pattern","emailAddress","checkForm","form_data","error_free","highlightTextbox","fld","input","arr_ctrl1","arr_ctrl2","jQuery","hideDivError","ctlerr","txtmessage","clearErrorDownpayment","trim","keypress","e","k","push","focus","isValidEmailAddress","isNumber","isFinite","serializeArray","inArray","email","call","methodOfContactSelected","validateForm","addCommas","getDealerObject","hasOwnProperty","objects","idClicked","nStr","usedElement","x1","rgx","x2","Models","n","similarVins","similarVehicles","isEmpty","toString","getVehicleDealerObject","_yrstart","ModelYear","_yrend","veh_count","_miles","svehicle1","Mileage","_price","svehicle2","_modelgroupName","svehicle3","modelYearStart","modelYearEnd","priceLimit","modelImage","modelGroupName","getRelatedVehiclesDealers","dealer","dealerDistance","dealerName","modelYear","dealerURL","modelGroup","modelPackage","modelMiles","openBuyOnlineToolTip","contactBtn","thisVehicle","vin","modelTrim","modelPrice","simVehicleType","simCPOTier","modelInteriorColor","VehicleImage","elementIndex","PhotosNoImage","dealerid","buyOnline","buyOnlineData","simHasBuyOnline","similarModel","buyonline","dealerID","modelExteriorColor","modeldealerid","simVin","totalCount","ProgramID","createJumpLink","formatCurrency","clear","err","thisModel","thisResult","thisFinanceOffers","thisDefaultAPR","HasBuyOnline","BuyOnlineURL","sliderThumb","isLocal","vpdSlider","overlySlider","setDataPath","usedev","Features_PackageName","decodeURIComponent","Features","MilesAway","DealerAddress","DealerCity","DealerState","ModelMarketingName","PhotoLink","Photos","Photos_Count","ModelTrim","ModelExteriorColorCD","ModelInteriorColorCD","modelPriceLimit","ModelTransmission","ModelTransmissionMarketingName","StockNo","VHRUrl","ICEUrl","DealerPhoneNumber","DealerHours","engineText","driveTrain","transmissionType","toLowerCase","PackageName","setFeature","KeyFeatures","append","PackageFeatures","p","DealerDescription","setVehicleDetail","Output","Results","Model","Dealers","Dealer","map","special","getFeature","document","getElementById","dataset","disclaimersContent","epaDisclaimers","BuyOnline","CourtesyVehicle","specialCountsEmpty","specials","VHRType","ModelExteriorColorName","ModelBaseColor","ModelInteriorColorName","dnotes","ModelAttributes","ModelAttribute","photos","ModelVINsOnSite","thisModelStockPhotos","Photo","ModelStockPhotos","thisModelPhotos","ex","videos","photoStr","thumbphotovideoStr","Videos","videoPhotoStr","videothumb","photothumb","Video","videoStr","slider","sliderOverlay","duration","items","thumbnailSlider","trigger","thumbIndex","cssText","owlCarousel","loop","nav","responsive","find","slideBy","0","600","1000","on","thisStock","sort","PACKAGE","Number","toLocaleString","TermMax","b","offer","stringify","idElement","offerValue","disc","DealerPhoneNo","dealerHours","target","id","binglink","slice","formatDealerhours","no_photo_image","_address","eng","day","time","hostname","drive","epaText","cityText","highwayText","comboText","getVehicleDetails","tooltip","SalesProgramCode","EndDate","SpecialID","ready","coptbox","ctrlKey","children","setCoptTextBox","opttype","toggle","activeIndex","itemCount","activeItemIndex","indexCount","margin","dotData","agi","dots","overlayCalc","overlayContact","background-color","TapCallback","context","mileage","playerID","performSaveAnimation","set","provider","videoStart","Utils","validateNumberCurrencyFormat","trade_val","animated","placement","modal","previousAPR","currentMSRP","emailEntered","dp","blur","one","keydown","metaKey","BottomBar","reloadiFrame","activeGroupIndexLeft","activeGroupIndexRight","overlayContactElement","Overlay","wheelDelta","openContactOverlay","close","overlayCalcElement","overlayOfferElement","overlayOffer","callFloodlight","overlayGallery","overlayElement","margin-top","margin-bottom","player","src","addEventListener","receiveMessage","price","delete","sanitize","size","shareClipboard","ClipboardJS","$shareBtn","bind","zipdealer","stored_zip","padding-top","constructor","isElementInView","elementTop","prototype","_ishp","fullyInView","_iscell","pageBottom","pageTop","elementBottom","scroll","veh_info","CampaignName","Cookies","submit","fname","lname","zipcode","saletype","_email","_tradein","is","_image","_extColor","_intColor","_hp","_cell","get","dealerRequest","posturl","LastName","post","Email","Cellnumber","IsCell","DealerPhone","modelInteriorColorCd","modelTransmission","modelMileage","ModelConfiguredDSRP","Tracking","ShoppingTool","CarToTradeIn","Status","title_max_copare","aprvalue","carvalue","checkTradeinValue","border-color","ajaxStop","showOffersVDP","checkAPR","btntext","apr_text","toggleClass","newURL","calcOpen","tradeIn","sessionStorage","offerString","dealerUrlHidden","getItem","noImageContent","setAltPhoto","termMax","offerSelected","async","getAltPhoto","defaultValue","getUrlVars","hash","hashes","dealerhour","d","distanceFooter","footerHeight","distanceCTA","vars","fixed","dhours","days","times","scrollTop","elementOffset","elementOffsetFooter","distanceFromBottom","oldScroll","scrollY"],"mappings":"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","file":"vehicle-details.min.js","sourcesContent":["'use strict';\r\nvar isInitialPageLoad = true;\r\nvar isCalcFirstLoad = true;\r\nvar thisModel;\r\nvar thisResult;\r\nvar thisvin;\r\nvar thisDealer;\r\nvar thisFinanceOffers = [];\r\nvar thisMonthly;\r\nvar thisDownpayment;\r\nvar thisMSRP;\r\nvar thisDefaultAPR;\r\nvar HasBuyOnline = 'false';\r\nvar BuyOnlineURL = '';\r\nvar isLocal = false;\r\nvar dataURL = 'https://acuracertifieddev.rpa-dev.com';\r\nvar vpdSlider, overlySlider, sliderThumb;\r\nvar vdpWrapper = $('#vehicle-details-wrapper');\r\n\r\nvar setDataPath = function() {\r\n var usedev = getParameterByName('usedev');\r\n switch (usedev) {\r\n case '1': \r\n dataURL = 'https://acuracertifieddev.rpa-dev.com';\r\n break;\r\n case '2':\r\n dataURL = 'https://acuracertifieddev2.rpa-dev.com';\r\n break;\r\n default:\r\n dataURL = '';\r\n }\r\n}\r\n\r\nfunction getParameterByName(name, url = window.location.href) {\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\nvar thisModelData = {\r\n DSRP: '',\r\n Features_PackageName: '',\r\n Features: '',\r\n CPOTier: '',\r\n VehicleType: '',\r\n ModelYear: '',\r\n ModelGroupName: '',\r\n Mileage: '',\r\n MilesAway: '',\r\n DealerID: '',\r\n DealerName: '',\r\n DealerAddress: '',\r\n DealerCity: '',\r\n DealerZip: '',\r\n DealerState: '',\r\n DealerURL: '',\r\n ModelMarketingName: '',\r\n PhotoLink: '',\r\n Photos: [],\r\n Photos_Count: 0,\r\n VehicleImage: '',\r\n PhotosNoImage: '',\r\n ModelTrim: '',\r\n ModelId: '',\r\n modelYearStart: '0',\r\n modelYearEnd: '0',\r\n ModelExteriorColorCD: '',\r\n ModelInteriorColorCD: '',\r\n modelPriceLimit: '0',\r\n ModelTransmission: '',\r\n ModelTransmissionMarketingName: '',\r\n VIN: '',\r\n HasBuyOnline: 'false',\r\n BuyOnlineURL: '',\r\n StockNo: '',\r\n VHRUrl: '',\r\n ICEUrl: '',\r\n DealerPhoneNumber: '',\r\n DealerHours: '',\r\n SingleOwner: '',\r\n Specials: '',\r\n SampleAPR: '',\r\n SampleTerm: '',\r\n hasOffer: '0',\r\n hasOfferTitle: '',\r\n isOfferApplied: '',\r\n offerApr: '',\r\n offerTerm: '',\r\n offerAprVdp: '',\r\n offerTermVdp: '',\r\n maxTerm: '',\r\n offerDisclaimer: '',\r\n offerDescription: '',\r\n engineText: '',\r\n cityText: '',\r\n highwayText: '',\r\n comboText: '',\r\n driveTrain: '',\r\n transmissionType: ''\r\n }\r\n\r\n\r\nvar setFeature = function(result) {\r\n if (thisModel.ModelGroupName.toLowerCase() != 'nsx') {\r\n thisModelData.Features_PackageName = result.PackageName;\r\n thisModelData.Features = result; \r\n $('#keyFeatures').show();\r\n //key feature\r\n if (thisModelData.Features.KeyFeatures.length > 0 ) {\r\n $('#keyFeatures #keyFeature').show();\r\n for (var k=0;k'+ thisModelData.Features.KeyFeatures[k] +'');\r\n }\r\n } else {\r\n $('#keyFeatures #keyFeature').hide();\r\n }\r\n //package feature\r\n if (thisModel.ModelMarketingName != null) {\r\n if (thisModel.ModelMarketingName.trim().length > 0 && thisModelData.Features.PackageFeatures.length > 0) {\r\n $('#keyFeatures #PackageFeature').show();\r\n $('#keyFeatures #PackageFeature .title').html(thisModel.ModelMarketingName);\r\n for (var p=0;p'+ thisModelData.Features.PackageFeatures[p] +'');\r\n }\r\n } else {\r\n $('#keyFeatures #PackageFeature').hide();\r\n }\r\n } else {\r\n $('#keyFeatures #PackageFeature').hide();\r\n }\r\n\r\n\r\n if (thisvin.DealerDescription != null) {\r\n if (thisvin.DealerDescription.trim().length > 0) {\r\n $('#keyFeatures #featureDealerDesc').show();\r\n $('#keyFeatures #featureDealerDesc .copy').html(thisModel.DealerDescription);\r\n } else {\r\n $('#keyFeatures #featureDealerDesc').hide();\r\n } \r\n }\r\n\r\n } else {\r\n $('#keyFeatures').hide();\r\n }\r\n}\r\n\r\nvar setVehicleDetail = function (result) {\r\n\r\n thisResult = result.Output.Results;\r\n thisModel = result.Output.Results.Models.Model[0];\r\n\r\n thisvin = thisModel.ModelVINsOnSite.VIN[0];\r\n thisDealer = thisResult.Dealers.Dealer[0];\r\n\r\n if (thisResult.Specials) {\r\n const index = thisResult.Specials.Special.map((special) => special[\"SalesProgramTypeCD\"]).indexOf('R');\r\n if (index !== -1) {\r\n thisFinanceOffers = thisResult.Specials.Special[index].PaymentTerms.FinanceTerms.FinanceTerm; \r\n } \r\n }\r\n \r\n\r\n var ModelId = (thisModel['@ModelId'] != '') ? thisModel['@ModelId'] : '';\r\n thisModelData.ModelId = ModelId;\r\n\r\n getFeature();\r\n var ModelYear = thisModel.ModelYear;\r\n document.getElementById('epa-disclaimer').dataset.disclaimersContent = window.acpv.epaDisclaimers[ModelYear];\r\n thisModelData.ModelYear = ModelYear;\r\n var ModelGroupName = thisModel.ModelGroupName;\r\n thisModelData.ModelGroupName = ModelGroupName;\r\n var ModelTrim = thisModel.ModelTrim;\r\n thisModelData.ModelTrim = ModelTrim;\r\n var ModelMarketingName = thisModel.ModelMarketingName;\r\n thisModelData.ModelMarketingName = ModelMarketingName;\r\n var ModelTransmission = (thisModel.ModelTransmission != 'null') ? thisModel.ModelTransmission : '';\r\n thisModelData.ModelTransmission = ModelTransmission;\r\n var ModelTransmissionMarketingName = thisModel.ModelTransmissionMarketingName;\r\n thisModelData.ModelTransmissionMarketingName = ModelTransmissionMarketingName;\r\n var VIN = thisvin.VIN;\r\n thisModelData.VIN = VIN;\r\n var VehicleType = thisvin.VehicleType;\r\n var CPOTier = thisvin.CPOTier;\r\n thisModelData.CPOTier = CPOTier;\r\n thisModelData.VehicleType = VehicleType;\r\n var Mileage = thisvin.Mileage;\r\n thisModelData.Mileage = Mileage;\r\n var DSRP = thisvin.DSRP;\r\n thisModelData.DSRP = DSRP;\r\n\r\n if(thisFinanceOffers.length && (CPOTier !== 'BT' && VehicleType !== 'U')) {\r\n $('.vdp-offers').removeClass('hidden');\r\n }\r\n\r\n var buyOnlineData = (thisvin.BuyOnline == null || thisvin.BuyOnline == 'undefined') ? null : thisvin.BuyOnline;\r\n if (buyOnlineData != null) { \r\n HasBuyOnline = thisvin.BuyOnline['@OnlineRetailingPreferredVIN'];\r\n BuyOnlineURL = thisvin.BuyOnline['@VehicleDetailPageURL'];\r\n }\r\n thisModelData.HasBuyOnline = HasBuyOnline;\r\n thisModelData.BuyOnlineURL = BuyOnlineURL;\r\n\r\n var StockNo = thisvin.StockNo;\r\n thisModelData.StockNo = StockNo;\r\n var SingleOwner = (thisvin.SingleOwner == null) ? \"false\" : thisvin.SingleOwner;\r\n thisModelData.SingleOwner = SingleOwner;\r\n var CourtesyVehicle = thisvin.CourtesyVehicle;\r\n thisModelData.CourtesyVehicle = CourtesyVehicle;\r\n\r\n var specialCountsEmpty = thisResult.Specials ? thisResult.Specials.Special.map(special => special['SalesProgramTypeCD']).indexOf('R') !== -1 : false;\r\n var SampleAPR = '';\r\n var SampleTerm = '';\r\n var specials = '';\r\n\r\n if (specialCountsEmpty) { \r\n SampleAPR = thisResult.Specials.Special[0].PaymentTerms.FinanceTerms.SampleFinancePayment.SampleAPR;\r\n SampleTerm = thisResult.Specials.Special[0].PaymentTerms.FinanceTerms.SampleFinancePayment.SampleTerm;\r\n specials = thisResult.Specials.Special[0];\r\n thisModelData.SampleAPR = SampleAPR;\r\n thisModelData.SampleTerm = SampleTerm;\r\n thisModelData.Specials = specials;\r\n }\r\n \r\n\r\n\r\n var VHRUrl = '';\r\n var VHRType = ''\r\n if (\r\n (thisvin.VHRUrl[\"@Source\"].toLowerCase() == \"carfax\") ||\r\n (thisvin.VHRUrl[\"@Source\"].toLowerCase() == \"autocheck\")\r\n )\r\n {\r\n VHRUrl = (thisvin.VHRUrl[\"#text\"] == null) ? '' : thisvin.VHRUrl[\"#text\"];\r\n VHRType = (thisvin.VHRUrl[\"@Source\"] != null) ? thisvin.VHRUrl[\"@Source\"].toLowerCase() : '';\r\n }\r\n //console.log('fdsa', thisvin)\r\n var ICEUrl = (thisvin.ICEUrl != null) ? thisvin.ICEUrl: '';\r\n thisModelData.VHRUrl = VHRUrl;\r\n thisModelData.VHRType = VHRType;\r\n thisModelData.ICEUrl = ICEUrl;\r\n\r\n var ModelExteriorColorName = thisvin.ModelExteriorColorName;\r\n var ModelExteriorColorCD = thisvin.ModelExteriorColorName;\r\n var ModelBaseColor = thisvin.ModelBaseColor;\r\n var ModelInteriorColorName = thisvin.ModelInteriorColorName;\r\n var ModelInteriorColorCD = thisvin.ModelInteriorColorName;\r\n thisModelData.ModelExteriorColorCD = ModelExteriorColorName;\r\n thisModelData.ModelInteriorColorCD = ModelInteriorColorName;\r\n \r\n \r\n\r\n var dnotes = thisvin.DealerDescription;\r\n var DealerDescription = dnotes;\r\n if (DealerDescription != null) {\r\n if (dnotes.indexOf(\" 0 || dnotes.indexOf(\" 0 || dnotes.indexOf(\" 0 || dnotes.indexOf(\" 0) //if there's an html code in dealernotes, handle \r\n {\r\n DealerDescription = '';\r\n }\r\n } else {\r\n DealerDescription = '';\r\n }\r\n\r\n\r\n var ModelAttributes = []; //VIN no photos:\r\n\r\n for (var i = 0; i < thisModel.ModelAttributes.ModelAttribute.length; i++)\r\n { \r\n for (var j = 0; j < thisResult.ModelAttributes.ModelAttribute.length; j++)\r\n { \r\n if (thisModel.ModelAttributes.ModelAttribute[i] == thisResult.ModelAttributes.ModelAttribute[j][\"@id\"])\r\n {\r\n // ModelAttributes.Add(new KeyValuePair(results[\"ModelAttributes\"][\"ModelAttribute\"][j][\"@Name\"].ToString(), results[\"ModelAttributes\"][\"ModelAttribute\"][j][\"@Value\"].ToString()));\r\n ModelAttributes.push({\r\n key: thisResult.ModelAttributes.ModelAttribute[j][\"@Name\"],\r\n value: thisResult.ModelAttributes.ModelAttribute[j][\"@Value\"]\r\n });\r\n }\r\n } \r\n } \r\n\r\n var photos = '';\r\n if ( thisModel.ModelVINsOnSite.VIN[0].Photos != null) {\r\n photos = thisModel.ModelVINsOnSite.VIN[0].Photos.Photos.Photo;\r\n }\r\n \r\n var ModelStockPhotos = [];\r\n var thisModelPhotos = [];\r\n var thisModelStockPhotos = [];\r\n try\r\n { \r\n for (var i=0; i 0) {\r\n for (var j = 0; j < videos.Video.length; j++)\r\n {\r\n if (videos.Video[j][\"@Type\"] == \"E\")\r\n {\r\n videoStr = videos.Video[j][\"#text\"];\r\n }\r\n } \r\n videoPhotoStr += '
';\r\n videoPhotoStr += ' ';\r\n videoPhotoStr += '
';\r\n\r\n videothumb += '
';\r\n videothumb += '
';\r\n videothumb += ' \"\"';\r\n videothumb += '
';\r\n videothumb += '
';\r\n } else {\r\n \r\n }\r\n \r\n if (photos.length > 0) {\r\n for (var p=0;p';\r\n photoStr += ' ';\r\n photoStr += '';\r\n\r\n photothumb += '
';\r\n photothumb += '
';\r\n photothumb += ' \"\"';\r\n photothumb += '
';\r\n photothumb += '
';\r\n\r\n $('.thumbnail-slider-container').show();\r\n }\r\n thisModelData.Photos_Count = photos.length;\r\n thisModelData.PhotoLink = photos[0]['#text'];\r\n thisModelData.VehicleImage = photos[0]['#text'];\r\n videoPhotoStr += photoStr;\r\n thumbphotovideoStr = videothumb + photothumb\r\n\r\n //hide gallery before it loads\r\n $('#vehicle-details-wrapper .gallerySlide').css('visibility', 'hidden');\r\n\r\n //insert content to gallery and thumbnails\r\n $('#vehicle-details-wrapper #slider').html(videoPhotoStr)\r\n $('#vehicle-details-wrapper .photo-slider-container .total-count').html(photos.length)\r\n $('.thumbnail-slider-container #thumbnailSlider').html(thumbphotovideoStr)\r\n //inset content for overlay\r\n $('#inventory-details-fullpreview #slider-overlay').html(photoStr);\r\n \r\n //insert image to contact dealer modal\r\n $('.vehicle-img-wrapper img').attr('src',thisModelData.VehicleImage);\r\n\r\n var slider = $('#slider');\r\n var thumbnailSlider = $('#thumbnailSlider');\r\n var sliderOverlay = $('#slider-overlay');\r\n var duration = 250;\r\n //add count again\r\n $('.total-count').html(photos.length);\r\n // Hide navigation buttons if only 1 image\r\n if (photos.length == 1) {\r\n $('.slider-previous-btn, .slider-next-btn').css({'cssText': 'display: none !important'});;\r\n }\r\n\r\n //load Carousel in a delay to prevent flicker\r\n setTimeout(function () {\r\n // Make first thumbnail active\r\n $(\"#thumbnailSlider .item:eq(0) img\").css(\"border-bottom\", \"2px solid red\");\r\n // carousel function for photo gallery\r\n vpdSlider = slider.owlCarousel({\r\n loop: false, //rpaik\r\n nav: false,\r\n items: 1\r\n }).on('changed.owl.carousel', function(e) {\r\n // On change of main item to trigger thumbnail item\r\n thumbnailSlider.trigger('to.owl.carousel', [e.item.index, duration, true]);\r\n // Remove active state from all thumbnail and add it to selected item\r\n var thumbIndex = e.item.index;\r\n //console.log(\"Line 113: thumbIndex: \" + thumbIndex)\r\n \r\n $(\"#thumbnailSlider\").find(\"*\").css(\"border\", \"0\");\r\n //sets border on staged item\r\n $(\"#thumbnailSlider .item:eq(\" + thumbIndex + \") img\").css(\"border-bottom\", \"2px solid red\");\r\n // Change counter on mobile\r\n $('.current-position').html(thumbIndex+1);\r\n }).on('click', '.owl-item', function() {\r\n // On click of image to trigger overlay same photo item\r\n sliderOverlay.trigger('to.owl.carousel', [$(this).index(), duration, true]);\r\n //console.log(\"owl item this.index: \" + $(this).index())\r\n }); \r\n\r\n\r\n // carousel function for thumbnail gallery\r\n sliderThumb = thumbnailSlider.owlCarousel({\r\n loop: false, //rpaik\r\n nav: false,\r\n center: false,\r\n responsive: {\r\n 0: {\r\n items: 0\r\n },\r\n 600: {\r\n items: 6,\r\n slideBy: 6\r\n },\r\n 1000: {\r\n items: 6,\r\n slideBy: 6\r\n }\r\n }\r\n }).on('click', '.owl-item', function() {\r\n // On click of thumbnail items to trigger same photo item\r\n slider.trigger('to.owl.carousel', [$(this).index(), duration, true]);\r\n // On click of image to trigger overlay same photo item\r\n sliderOverlay.trigger('to.owl.carousel', [$(this).index(), duration, true]);\r\n // Remove active state from all thumbnail and just add it to clicked item\r\n var thumbIndex = $(this).index();\r\n $(\"#thumbnailSlider\").find(\"*\").css(\"border\", \"0\");\r\n $(\"#thumbnailSlider .item:eq(\" + thumbIndex + \") img\").css(\"border-bottom\", \"2px solid red\");\r\n }); \r\n\r\n $('#vehicle-details-wrapper .gallerySlide').css('visibility', 'visible');\r\n }, 1500);\r\n \r\n\r\n\r\n //slider-overlay-container slider-overlay\r\n overlySlider = sliderOverlay.owlCarousel({\r\n loop: false,\r\n nav: false,\r\n items: 1\r\n });\r\n\r\n \r\n \r\n\r\n\r\n\r\n } else {\r\n getAltPhoto();\r\n $('#vehicle-details-wrapper .photo-counter').css({'cssText': 'display: none !important'});\r\n $('#vehicle-details-wrapper .slider-previous-btn').css({'cssText': 'display: none !important'});\r\n $('#vehicle-details-wrapper .slider-next-btn').css({'cssText': 'display: none !important'});\r\n }\r\n \r\n\r\n\r\n var FeaturesPackageName = '';\r\n //if (Features.PackageName == null)\r\n //{\r\n // Features.PackageName = '';\r\n //}\r\n\r\n //stock and vin\r\n var thisStock = thisvin.StockNo;\r\n\r\n $('.vin-stock .vinNumber').html(VIN);\r\n $('.vin-stock span.cp-12').html(thisStock);\r\n $('.vin span.cp-12').html(VIN);\r\n $('.dealer-stock span.cp-12').html(thisStock);\r\n\r\n //buy online data\r\n if (HasBuyOnline != 'false') {\r\n $('.vehicle-info #buyOnline').removeClass('hidden');\r\n }else {\r\n $('.vehicle-info .contact-dealer-btn').addClass('col-md-12');\r\n }\r\n\r\n //offer\r\n if (VehicleType != 'U') {\r\n $('.vehicle-info #offerSection').removeClass('hidden');\r\n $('#mobileOffers').removeClass('hidden');\r\n }\r\n\r\n //ice\r\n if(CPOTier === 'BT') {\r\n $('.ICE-container span').addClass('point-112');\r\n }else {\r\n $('.ICE-container span').addClass('point-182');\r\n }\r\n\r\n //v type\r\n if (VehicleType != \"U\") {\r\n if(CPOTier === 'BT') {\r\n $('.benefit-112').removeClass('hidden');\r\n $('.vehicle-info .vehicle-type-precision-used').show();\r\n }else {\r\n $('.benefit-182').removeClass('hidden');\r\n $('.vehicle-info .vehicle-type-precision').show();\r\n }\r\n } else {\r\n $('.vehicle-info .vehicle-type-used').show();\r\n $('.ICE-container span').addClass('hidden');\r\n }\r\n\r\n //set model year\r\n $('.vehicle-info .year-model h1').html(ModelYear + ' ' + ModelGroupName);\r\n $('.modelGroupName').html(ModelGroupName)\r\n $('.vehicle-info-wrapper .year-model h2').html(ModelYear + ' ' + ModelGroupName);\r\n $('.calculate-inventory-details-wrapper .year-model h2.hidden-xs').html(ModelYear + ' ' + ModelGroupName);\r\n $('.calculate-inventory-details-wrapper .year-model h2.visible-xs').html(ModelYear + ' ' + ModelGroupName);\r\n\r\n //set vin\r\n $('.vehicle-info-wrapper .vin span.cp-12').html(VIN);\r\n $('.calculate-inventory-details-wrapper .vin span.cp-12').html(VIN);\r\n\r\n //set marketing name\r\n if (ModelMarketingName != '') {\r\n $('.vehicle-info .package span').html(ModelMarketingName);\r\n $('.vehicle-info-wrapper .package span').html(ModelMarketingName);\r\n $('.calculate-inventory-details-wrapper .package span').html(ModelMarketingName);\r\n } else {\r\n $('.vehicle-info .package span').html(PACKAGE);\r\n $('.vehicle-info .package').css('visibility','hidden');\r\n }\r\n\r\n //set miles\r\n $('.vehicle-info .miles span.mileage').html(Number(Mileage).toLocaleString('en-US') + ' miles');\r\n $('.contact-dealer-wrapper .vehicle-info-wrapper .miles span.cp-10').html(Number(Mileage).toLocaleString('en-US') + ' miles');\r\n $('#calculate-inventory-details-wrapper .vehicle-info-wrapper .miles span').html(Number(Mileage).toLocaleString('en-US') + ' miles');\r\n\r\n //set price (DSRP)\r\n $('.vehicle-info .price span').html('$' + Number(DSRP).toLocaleString('en-US'));\r\n $('#inventory-details-contact .vehicle-info-wrapper .price span.hl-6a').html('$' + Number(DSRP).toLocaleString('en-US'));\r\n $('#calculate-inventory-details-wrapper .vehicle-info-wrapper .price span').html('$' + Number(DSRP).toLocaleString('en-US'));\r\n\r\n $('.calculate-inventory-details-wrapper .details-info-right .errMessage span').html('Downpayment and trade-in value combined must not exceed $'+ (Number(DSRP) - 5000).toLocaleString('en-US') +'.')\r\n\r\n //offers\r\n thisFinanceOffers.sort((a,b) => parseFloat(b.APR) - parseFloat(a.APR));\r\n const disc = window.acpv.currentOffer;\r\n if(CPOTier !== 'BT' && VehicleType !== 'U') {\r\n for(let i=0; i< thisFinanceOffers.length; i++) {\r\n let offer = thisFinanceOffers[i];\r\n let offerValue = JSON.stringify(offer);\r\n const idElement = `${offer.APR}_radio`;\r\n $('.vdp-offers .form-group').prepend(`
\r\n \r\n \r\n
`);\r\n }\r\n }\r\n\r\n\r\n $(document).on('change', '.vdp-offers .radio-offer', function(e) {\r\n const value = e.target.value;\r\n const offerSelected = JSON.parse(value);\r\n const {APR, TermMax} = offerSelected;\r\n $('.vdp-offers radio').removeClass('checked');\r\n if(e.target.checked) {\r\n this.parentElement.classList.add('checked');\r\n vdpWrapper.attr('data-tap-offer-term', `${APR}% APR up to ${TermMax} months`);\r\n\r\n if(e.target.id === 'no_offer') {\r\n calculateMonthly(null);\r\n return;\r\n } \r\n \r\n calculateMonthly({apr: APR, term: TermMax});\r\n }\r\n });\r\n\r\n if (ModelGroupName.toLowerCase() != \"nsx\")\r\n {\r\n $('#cmp').append('');\r\n \r\n }\r\n\r\n\r\n\r\n var DealerID = thisModel[\"@DealerId\"];\r\n thisModelData.DealerID = DealerID;\r\n var DealerName = thisDealer.DealerName;\r\n thisModelData.DealerName = DealerName;\r\n var DealerURL = thisDealer.DealerURL;\r\n thisModelData.DealerURL = thisDealer.DealerURL;\r\n var DealerAddress = thisDealer.DealerAddress;\r\n thisModelData.DealerAddress = DealerAddress;\r\n var DealerCity = thisDealer.DealerCity;\r\n thisModelData.DealerCity = DealerCity;\r\n var DealerState = (thisDealer.DealerState == null) ? '' : thisDealer.DealerState;\r\n thisModelData.DealerState = DealerState;\r\n var DealerZip = (thisDealer.DealerZip == null) ? '' : thisDealer.DealerZip.slice(0,5) + '-' + thisDealer.DealerZip.slice(5, thisDealer.DealerZip.length);\r\n thisModelData.DealerZip = DealerZip;\r\n var DealerPhoneNumber = thisDealer.DealerPhoneNo.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3');\r\n thisModelData.DealerPhoneNumber = DealerPhoneNumber;\r\n var dealerHours = (thisDealer.DealerHours == null) ? '' : formatDealerhours(thisDealer.DealerHours);\r\n thisModelData.DealerHours = dealerHours;\r\n\r\n //contact confirmation dealer name\r\n $('#thankyou span.confirmationdealername').html(DealerName);\r\n\r\n //insert Dealer name and distance\r\n $('.vehicle-info .dealerName').html(DealerName);\r\n $('.vehicle-info .miles .dealer-website').text(DealerName);\r\n $('.vehicle-info .miles .dealer-website').attr('href', DealerURL);\r\n //$('.dealer-info-wrapper .miles-away .dealer-website').attr('href',DealerURL);\r\n\r\n $('.calculate-inventory-details-wrapper .miles-away').text(DealerName);\r\n $('.calculate-inventory-details-wrapper .miles-away').attr('href',DealerURL);\r\n\r\n $('.calculate-inventory-details-wrapper .dealer p span a').text(DealerName);\r\n $('.calculate-inventory-details-wrapper .dealer p span a').attr('href',DealerURL);\r\n\r\n //insert all dealer zip\r\n var _address = DealerAddress.trim() + \",\" + DealerCity.trim() + \" \" + DealerState.trim() + \" \" + DealerZip;\r\n var binglink = \"https://www.bing.com/maps?rtp=~adr.\" + _address;\r\n $('.dealer-address-wrapper .dealer-address-line1 a').attr('href',binglink);\r\n $('.dealer-address-wrapper .dealer-address-line1 a').text(DealerAddress);\r\n\r\n $('.dealer-address-wrapper .city a').attr('href',binglink);\r\n $('.dealer-address-wrapper .city a').text(DealerCity+ ', '+ DealerState + ', '+ DealerZip);\r\n\r\n $('.dealer-info-wrapper .dealer-info .dealer-address-wrapper a').attr('href',binglink);\r\n\r\n\r\n\r\n //insert all dealer phone number\r\n $('.dealer-info-row .dealer-phone').html(DealerPhoneNumber);\r\n $('._dealerPhoneFormatted').val(DealerPhoneNumber);\r\n $('.dealer-phone-wrapper .phone-red a').attr(\"href\", \"tel:\"+DealerPhoneNumber);\r\n $('.dealer-phone-wrapper .dealer-phone a').attr(\"href\", \"tel:\"+DealerPhoneNumber);\r\n $('.dealer-phone-wrapper .dealer-phone a').text(DealerPhoneNumber);\r\n\r\n //insert dealer hours\r\n if (dealerHours.length > 0) {\r\n for (var i=0;i'+ dealerHours[i].day+'

')\r\n $('.hours .copy-right').append('

'+ dealerHours[i].time+'

')\r\n }\r\n } else {\r\n $('.hours').hide();\r\n }\r\n\r\n var no_photo_image = window.location.hostname + \"/-/media/F66501FA28274458B47D88D252E2A600.ashx\";\r\n //handle of photos count = 0\r\n if (thisModelPhotos.length == 0)\r\n {\r\n //var got_photo = getAlternateVehiclePhoto(vin, inventoryModel.DealerZip);\r\n var got_photo = 'null';\r\n //if no deaaler photos and stock photos, default to no image available\r\n if (got_photo != 'null')\r\n {\r\n thisModelPhotos.push(got_photo);\r\n } else\r\n {\r\n thisModelPhotos.push(no_photo_image);\r\n }\r\n \r\n }\r\n\r\n //save no image photo for similar vehicles without images\r\n var PhotosNoImage = no_photo_image;\r\n thisModelData.PhotosNoImage = PhotosNoImage;\r\n\r\n //overview section\r\n if (ModelGroupName.toLowerCase() != 'nsx') {\r\n\r\n //show notnsx section\r\n $('#overview-section #notnsx').removeClass('hidden');\r\n $('#overview-section #notnsx').addClass('visible-xs');\r\n\r\n if ($('#header-gallery #notnsx-header').length > 0) {\r\n $('#header-gallery #notnsx-header').removeClass('hidden');\r\n $('#header-gallery #notnsx-header').addClass('visible-lg');\r\n } else {\r\n $('#overview-section #notnsx').addClass('visible-lg');\r\n }\r\n\r\n \r\n\r\n var eng = ModelAttributes.find(x => x.key === 'Engine Name').value;\r\n var drive = ModelAttributes.find(x => x.key === 'DRIVE').value;\r\n var epaText = ModelAttributes.find(x => x.key === 'City Fuel Efficiency').value + ' city / ' + ModelAttributes.find(x => x.key === 'Highway Fuel Efficiency').value+ ' hwy / ' + ModelAttributes.find(x => x.key === 'COMB_MPG').value + ' combined';\r\n thisModelData.engineText = eng;\r\n thisModelData.driveTrain = drive;\r\n thisModelData.cityText = ModelAttributes.find(x => x.key === 'City Fuel Efficiency').value;\r\n thisModelData.highwayText = ModelAttributes.find(x => x.key === 'Highway Fuel Efficiency').value;\r\n thisModelData.comboText = ModelAttributes.find(x => x.key === 'COMB_MPG').value;\r\n thisModelData.transmissionType = drive;\r\n\r\n $('#overview-section .engineText').html(eng)\r\n $('#header-gallery .engineText').html(eng);\r\n\r\n $('#overview-section .transmission').html(ModelTransmissionMarketingName)\r\n $('#header-gallery .transmission').html(ModelTransmissionMarketingName);\r\n\r\n $('#overview-section .driveTrain').html(drive);\r\n $('#header-gallery .driveTrain').html(drive);\r\n\r\n $('#overview-section .epaText').html(epaText);\r\n $('#header-gallery .epaText').html(epaText);\r\n\r\n $('#overview-section .exteriorColor').html(ModelExteriorColorName);\r\n $('#header-gallery .exteriorColor').html(ModelExteriorColorName);\r\n\r\n $('#overview-section .interiorColor').html(ModelInteriorColorName);\r\n $('#header-gallery .interiorColor').html(ModelInteriorColorName);\r\n \r\n if (VHRUrl != '') {\r\n $('#overview-section #overview_carfax').removeClass('hidden');\r\n $('#overview-section #overview_carfax .carfax-container a').attr('href',VHRUrl);\r\n \r\n $('#header-overview-section #overview_carfax').removeClass('hidden');\r\n $('#header-overview-section #overview_carfax').removeClass('hidden');\r\n } else {\r\n $('#overview-section #no_overview_carfax').removeClass('hidden');\r\n\r\n $('#header-overview-section #no_overview_carfax').removeClass('hidden');\r\n }\r\n \r\n if (VHRUrl != '' && VHRType == 'autocheck' && VehicleType != 'U')\r\n {\r\n $('#overview-section #overview_autocheck .autocheck-container a').attr('href',VHRUrl);\r\n $('#overview-section #overview_autocheck').removeClass('hidden');\r\n\r\n $('#header-overview-section #overview_carfax .autocheck-container a').attr('href',VHRUrl);\r\n $('#header-overview-section #overview_carfax').removeClass('hidden');\r\n }\r\n \r\n if (ICEUrl != '' && VHRType == 'carfax')\r\n {\r\n $('#overview-section #overview_ICE .ICE-container a').attr('href',ICEUrl);\r\n $('#overview-section #overview_ICE').removeClass('hidden');\r\n\r\n $('#header-overview-section #overview_ICE .ICE-container a').attr('href',ICEUrl);\r\n $('#header-overview-section #overview_ICE').removeClass('hidden');\r\n }\r\n \r\n\r\n } else {\r\n $('#overview-section #isnsx').removeClass('hidden');\r\n if ((DealerDescription.toLowerCase() != '' && (VHRUrl == '') && ICEUrl == '')) {\r\n //show nsx dealer notes\r\n //currently we are hiding notes\r\n //$('#isnsx #nocarfax').removeClass('hidden');\r\n $('#isnsx #nocarfax .features p.copy-nsx').html(DealerDescription);\r\n\r\n } else {\r\n $('#hascarfax').removeClass('hidden');\r\n\r\n if (DealerDescription != '') {\r\n //currently we are hiding the notes\r\n //$('#isnsx #hascarfax #dealerNotes-carfax').removeClass('hidden');\r\n $('#isnsx #hascarfax #dealerNotes-carfax p.copy').html(DealerDescription);\r\n }\r\n\r\n if (VHRType == 'carfax' && VHRUrl != '') {\r\n $('#isnsx #hascarfax #overview-section #overview_carfax_nsx').removeClass('hidden');\r\n $('#isnsx #hascarfax #overview-section .carfax-container a').attr('href',VHRUrl);\r\n }\r\n\r\n if (VHRUrl != '' && VHRType == 'autocheck') {\r\n $('#isnsx #hascarfax #overview-section #overview_autocheck_nsx').removeClass('hidden');\r\n $('#isnsx #hascarfax #overview-section .autocheck-container a').attr('href',VHRUrl);\r\n }\r\n if (ICEUrl != '') {\r\n $('#isnsx #hascarfax #overview-section #overview_ICE_nsx').removeClass('hidden');\r\n $('#overview_ICE').removeClass('hidden');\r\n $('#isnsx #hascarfax #overview-section .ICE-container a').attr('href',ICEUrl);\r\n }else {\r\n console.log('jasdlfkjsa')\r\n $('#overview-section #no_overview_carfax').removeClass('hidden');\r\n }\r\n }\r\n }\r\n\r\n\r\n //benefit module\r\n if (VehicleType != 'U') {\r\n $('.benefit-module .benefit-cert').removeClass('hidden');\r\n } else {\r\n $('.benefit-module .benefit-used').removeClass('hidden');\r\n }\r\n\r\n //console.log(thisModelData)\r\n $('.vdploader .spinner').hide();\r\n if (thisModelData.VIN != '') {\r\n $('.vdploader .spinner').css('top','50%');\r\n $('.spinner').show();\r\n //set distance from dealer fields\r\n getDistanceFromDealer();\r\n //start calculate on initial load of calc overlay\r\n setTimeout(function() {\r\n //set lower or default apr.\r\n if(CPOTier !== 'BT' && VehicleType !== 'U' && thisFinanceOffers.length) {\r\n $('.vdp-offers .form-group div:first-child').find('input').trigger('click')\r\n }else {\r\n calculateMonthly(null);\r\n }\r\n }, 500);\r\n //check chat and text status\r\n // getContactOnceStatus();\r\n //load related vehicles and dealers info section \r\n getVehicleDealerObject();\r\n }\r\n\r\n //set vdp wrapper tap data\r\n vdpWrapper.attr('data-tap-element-id','vdp-details');\r\n vdpWrapper.attr('data-tap-dealer-name',thisModelData.DealerName);\r\n vdpWrapper.attr('data-tap-dealer-id',thisModelData.DealerID);\r\n //vdpWrapper.attr('data-tap-dealer-distance','');\r\n //distance is set in the dealer distance ajax call around line 2187\r\n if (thisModelData.HasBuyOnline == 'true') {\r\n vdpWrapper.attr('data-tap-dealer-options','buyonline');\r\n } else {\r\n vdpWrapper.attr('data-tap-dealer-options','default');\r\n }\r\n\r\n vdpWrapper.attr('data-tap-model-name',thisModelData.ModelGroupName);\r\n vdpWrapper.attr('data-tap-model-year',thisModelData.ModelYear);\r\n vdpWrapper.attr('data-tap-model-trim',thisModelData.ModelTrim);\r\n vdpWrapper.attr('data-tap-model-mspr',thisModelData.DSRP);\r\n vdpWrapper.attr('data-tap-model-exterior-color',thisModelData.ModelExteriorColorCD);\r\n vdpWrapper.attr('data-tap-model-interior-color',thisModelData.ModelInteriorColorCD);\r\n let ProgramID = (VehicleType != 'U') ? CPOTier === 'BT' ? 'precision_used' : 'precision_certified':'used';\r\n vdpWrapper.attr('data-tap-model-program-id',ProgramID);\r\n vdpWrapper.attr('data-tap-offer-type','finance');\r\n vdpWrapper.attr('data-tap-offer-term',thisModelData.SampleTerm);\r\n //offer description is set in offer function => showOffersVDP\r\n //vdpWrapper.attr('data-tap-offer-monthly','');\r\n //vdpWrapper.attr('data-tap-offer-description',thisModelData.Specials.SpecialDescription);\r\n vdpWrapper.attr('data-tap-offer-code',thisModelData.Specials.SalesProgramCode)\r\n vdpWrapper.attr('data-tap-offer-availability',thisModelData.Specials.EndDate);\r\n vdpWrapper.attr('data-tap-offer-id',thisModelData.Specials.SpecialID);\r\n //end of vdp wrapper tap\r\n\r\n}\r\n\r\n$(document).ready(function() {\r\n $('.vdploader .spinner').css('top','200px');\r\n $('.vdploader .spinner').show();\r\n setDataPath();\r\n getVehicleDetails();\r\n //console.log(thisModel);\r\n //Adding cta buy online\r\n $('#continue-cta-buy-online').on('click' , function(){\r\n window.open(BuyOnlineURL, \"_blank\");\r\n\r\n $(\"#buyOnlineModal\").modal('hide');\r\n });\r\n\r\n //for buyline tap\r\n $('#buyOnlineModal').on('show.bs.modal', function () {\r\n setTimeout(() => {\r\n if(typeof window.TapCallback === \"function\") {\r\n window.TapCallback({\r\n \"context\": \"inventory-buyonline-modal\"\r\n });\r\n }\r\n }, 500);\r\n });\r\n $('#tooltip-info-certified-used').tooltip({trigger: 'click'});\r\n $('#tooltip-info-certified').tooltip({trigger: 'click'});\r\n //Start contact dealer form code\r\n //initialize the dropbox\r\n //coptbox();\r\n //on click, open and close the dropdown\r\n\r\n //adding monthly payment pre-calculation with 10% down\r\n var currentMSRP = Number(thisModelData.DSRP);\r\n var dp = Math.round(currentMSRP / 10);\r\n var previousAPR;\r\n \r\n // console.log(\"price :\" + currentMSRP);\r\n // console.log(\"10% :\" + dp);\r\n $('#txt-downpayment').val(dp);\r\n $('.calculate-monthly #calculate-monthly-link').click();\r\n\r\n // $('.mpestIcon, .fair-info-i').tooltip({\r\n $('.mpestIcon').tooltip({\r\n animated: 'fade',\r\n placement: 'bottom',\r\n trigger: 'click'\r\n });\r\n\r\n $(\".contact-option-box\").click(function() {\r\n $(\".chevron-down-red\").toggleClass(\"open\");\r\n $(\"ul li.contact-opt:nth-child(n+2)\").toggle();\r\n });\r\n //\r\n $(\"ul li.contact-opt:nth-child(n+2)\").click(function() {\r\n hideDivError(\"#errpreferred\");\r\n //console.log(\"option text: \" + $(this).text())\r\n $(\"ul li.contact-opt\").each(function() {\r\n //console.log(\"option text: \" + $(this).text())\r\n $(this).removeClass(\"active\");\r\n });\r\n $(this).addClass(\"active\");\r\n coptbox();\r\n \r\n });\r\n\r\n $(\"#email, #phone, #text\").blur(function(){\r\n hideDivError(\"#errpreferred\");\r\n });\r\n\r\n let emailEntered = false;\r\n $(\"#contact-dealer-wrapper #email\").one('keypress',function(){\r\n if(typeof window.TapCallback === \"function\") {\r\n window.TapCallback({\r\n \"context\": \"inventory-contact-dealer-modal-start\"\r\n });\r\n }\r\n });\r\n\r\n //initialize\r\n\r\n //gets selected item and sets the value in the display of the dropdown. \r\n //Default is the first item\r\n function coptbox() {\r\n $(\"ul li.contact-opt\").each(function() {\r\n console.log(\"option text: \" + $(this).text())\r\n if ($(this).hasClass(\"active\")) {\r\n $(\"#display\").children(\"p\").text($(this).text());\r\n setCoptTextBox($(this).text());\r\n }\r\n });\r\n }\r\n //changes all the attributes of the associated textbox selected in the dropdown\r\n function setCoptTextBox(opttype) {\r\n $(\".opttxtbox\").css(\"display\", \"none\");\r\n $('[name='+ opttype.toLowerCase() + ']').toggle();\r\n // $(\".opttxtbox\").attr(\"name\", opttype.toLowerCase());\r\n // $(\".opttxtbox\").attr(\"id\", opttype.toLowerCase());\r\n // $(\".opttxtbox\").attr(\"placeholder\", opttype.toLowerCase());\r\n // if($(\".opttxtbox\").attr(\"name\") == \"text\" || $(\".opttxtbox\").attr(\"name\") == \"phone\"){\r\n // $(\".opttxtbox\").attr(\"placeholder\", \"phone #\");\r\n // $(\".opttxtbox\").attr(\"type\", \"tel\");\r\n // $(\".opttxtbox\").attr(\"maxlength\", \"10\");\r\n // }else{\r\n // $(\".opttxtbox\").attr(\"type\", \"text\");\r\n // $(\".opttxtbox\").removeAttr(\"maxlength\");\r\n // }\r\n if (opttype.toLowerCase() == \"text\") {\r\n $(\".data-rates span\").css(\"display\", \"block\");\r\n } else {\r\n $(\".data-rates span\").css(\"display\", \"none\");\r\n }\r\n }\r\n //END Contact Dealer From Code\r\n\r\n // Input only accept numbers || 'e'\r\n $(\"#zip\").keydown(function(e) {\r\n // Allow: backspace, delete, tab, escape, enter\r\n if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110]) !== -1 ||\r\n // Allow: Ctrl+A, Command+A\r\n (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) ||\r\n // Allow: home, end, left, right, down, up\r\n (e.keyCode >= 35 && e.keyCode <= 40)) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n //stop 'e'\r\n if (e.keyCode == 60) {\r\n e.preventDefault();\r\n }\r\n // Ensure that it is a number and stop the keypress\r\n if (((e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\r\n $('#output').html(e.keyCode)\r\n e.preventDefault();\r\n }\r\n });\r\n new acpv.BottomBar();\r\n \r\n \r\n //rpaik\r\n function activeItemIndex(){\r\n var itemCount = 0;\r\n var activeIndex;\r\n $('#slider .owl-item').each(function(){ \r\n if ($(this).hasClass(\"active\")){\r\n activeIndex = itemCount;\r\n }else{\r\n itemCount++;\r\n }\r\n });\r\n return activeIndex;\r\n }\r\n \r\n\r\n // Previous and next navigation\r\n $('.slider-right').click(function() {\r\n //reload the iframe video\r\n reloadiFrame(\"main-iframe-video\"); \r\n \r\n //tracking\r\n _satellite.track(\"vehdetails_gallery_advanceright\");\r\n \r\n vpdSlider.trigger('next.owl.carousel');\r\n overlySlider.trigger('next.owl.carousel');\r\n //rpaik\r\n if(activeItemIndex()+1 == thisModelData.Photos.length){\r\n var indexCount = 0;\r\n $(\"#thumbnailSlider .owl-item\").each(function(index){\r\n if(index==0){\r\n $(this).trigger(\"click\");\r\n }\r\n });\r\n }\r\n });\r\n $('.slider-left').click(function() {\r\n //reload the iframe video\r\n reloadiFrame(\"main-iframe-video\");\r\n\r\n //tracking\r\n _satellite.track(\"vehdetails_gallery_advanceleft\");\r\n\r\n vpdSlider.trigger('prev.owl.carousel');\r\n overlySlider.trigger('prev.owl.carousel');\r\n //rpaik \r\n if(activeItemIndex()==0){\r\n var indexCount = 0;\r\n $(\"#thumbnailSlider .owl-item\").each(function(index){\r\n if(index==thisModelData.Photos.length-1){\r\n $(this).trigger(\"click\");\r\n }\r\n });\r\n }\r\n });\r\n // Thumbnail previous and next navigation\r\n $('.thumb-slider-right').click(function() {\r\n //tracking\r\n _satellite.track(\"vehdetails_gallery_advanceright\");\r\n\r\n // sliderOverlay.trigger('next.owl.carousel');\r\n if(activeGroupIndexRight()){\r\n $(\"#thumbnailSlider .owl-item\").each(function(index){\r\n if(index+1==thisModelData.Photos.length && $(\"#thumbnailSlider .owl-item\").hasClass(\"active\")){\r\n \r\n sliderThumb.trigger('prev.owl.carousel');\r\n sliderThumb.trigger('prev.owl.carousel');\r\n sliderThumb.trigger('prev.owl.carousel');\r\n sliderThumb.trigger('prev.owl.carousel');\r\n }\r\n });\r\n }else{\r\n sliderThumb.trigger('next.owl.carousel');\r\n }\r\n });\r\n $('.thumb-slider-left').click(function() {\r\n \r\n //tracking\r\n _satellite.track(\"vehdetails_gallery_advanceleft\");\r\n\r\n \r\n if(activeGroupIndexLeft()){\r\n $(\"#thumbnailSlider .owl-item\").each(function(index){\r\n if(index==0 && $(\"#thumbnailSlider .owl-item\").hasClass(\"active\")){\r\n \r\n sliderThumb.trigger('next.owl.carousel');\r\n sliderThumb.trigger('next.owl.carousel');\r\n sliderThumb.trigger('next.owl.carousel');\r\n sliderThumb.trigger('next.owl.carousel');\r\n }\r\n });\r\n }else{\r\n sliderThumb.trigger('prev.owl.carousel');\r\n }\r\n\r\n // sliderOverlay.trigger('prev.owl.carousel');\r\n }); \r\n function activeGroupIndexLeft(){\r\n var itemCount = 0;\r\n var agi = false;\r\n $('#thumbnailSlider .owl-item').each(function(index){ \r\n if ((index==0) && ($(this).hasClass(\"active\"))){\r\n agi = true;\r\n }\r\n });\r\n return agi;\r\n }\r\n function activeGroupIndexRight(){\r\n var itemCount = 0;\r\n var agi = false;\r\n $('#thumbnailSlider .owl-item').each(function(index){ \r\n if ((index+1==thisModelData.Photos.length) && ($(this).hasClass(\"active\"))){\r\n agi = true;\r\n }\r\n });\r\n return agi;\r\n }\r\n \r\n var $window = $(window);\r\n var windowWidth = $window.width();\r\n // If the user scrolls down, hide sticky nav on mobile. Otherwise, show sticky nav on scroll up.\r\n if (windowWidth < 768) {\r\n $('html').on('DOMMouseScroll mousewheel', function(e) {\r\n if (e.originalEvent.detail > 0 || e.originalEvent.wheelDelta < 0) {\r\n //scroll down\r\n $(\".acpv-header\").addClass(\"hideme\");\r\n $(\".details-nav-wrapper\").css(\"top\", \"0\");\r\n } else {\r\n //scroll up\r\n $(\".acpv-header\").removeClass(\"hideme\");\r\n $(\".details-nav-wrapper\").css(\"top\", \"50px\");\r\n }\r\n });\r\n }\r\n // Top of page vehicle photo carousel\r\n $('.photos-carousel').owlCarousel({\r\n items: 1,\r\n loop: false,\r\n margin: 10,\r\n dotData: true\r\n });\r\n // Bottom of page similar vehicle carousel\r\n $('.similar-vehicle-carousel').owlCarousel({\r\n // loop: true,\r\n margin: 12,\r\n nav: false,\r\n dots: true,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 600: {\r\n items: 2\r\n },\r\n 1000: {\r\n items: 3\r\n }\r\n }\r\n });\r\n //#region VDP Overlays\r\n //#region Contact Dealer overlay\r\n var overlayContactElement = $('#inventory-details-contact');\r\n var overlayContact = new Overlay(overlayContactElement, {});\r\n $('#contact-dealer-button').css('cursor', 'pointer');\r\n\r\n window.openContactOverlay = openContactOverlay;\r\n $('#contact-dealer-button').click(function() {\r\n openContactOverlay();\r\n });\r\n $('#contact-dealer-button-bottom').click(function() {\r\n openContactOverlay();\r\n });\r\n $('#contact-dealer-btn-xs').click(function() {\r\n openContactOverlay();\r\n });\r\n\r\n function openContactOverlay() {\r\n $('[name=contact-error-api]').removeClass('contact-error-api').addClass('contact-error-api hidden');\r\n $('#form-dealer').removeClass('showForm hidden').addClass('showForm');\r\n $('#thankyou').attr('class', 'ty hidden');\r\n $('#firstname').val(''); \r\n $('#lastname').val('');\r\n $('#email').val('');\r\n $('#call').val('');\r\n $('#textmessage').val('');\r\n $('#emailcontact').removeClass().addClass(\"unchecked\");\r\n $('#callcontact').removeClass().addClass(\"unchecked\");\r\n $('#textmessagecontact').removeClass().addClass(\"unchecked\");\r\n $('#tradeinimage').removeClass().addClass(\"unchecked\");\r\n $('#submitdisclaimer').removeClass().addClass(\"unchecked\");\r\n $('#errpreferred').addClass(\"hidden\");\r\n overlayContact.open();\r\n $('#inventory-details-contact').css('display', 'block');\r\n $('.overlay').css({ 'background-color': 'white' });\r\n $('.backdrop').css({ 'background-color': 'rgba(0,0,0,0.8)' });\r\n\r\n // tap call\r\n setTimeout(() => {\r\n if(typeof window.TapCallback === \"function\") {\r\n window.TapCallback({\r\n \"context\": \"inventory-contact-dealer-modal-load\"\r\n });\r\n }\r\n }, 100);\r\n\r\n }\r\n $('.close-window').click(function() {\r\n reloadiFrame(\"overlay-iframe-video\");\r\n overlayContact.close();\r\n });\r\n $('#contact-dealer-return-button').click(function() {\r\n overlayContact.close();\r\n });\r\n //#endregion\r\n //#region Calc Payment overlay\r\n var overlayCalcElement = $('#inventory-details-calculate');\r\n var overlayCalc = new Overlay(overlayCalcElement, {});\r\n $('#calculate-monthly-link').css('cursor', 'pointer');\r\n\r\n $('#calculate-monthly-link').on('click', function() {\r\n //pre set downpayment to 10%\r\n //$(\"#txt-downpayment\").val('0');\r\n $(\"#txt-tradein\").val('0');\r\n $(\".errdownpayment\").addClass(\"hidden\");\r\n $(\"#div-tradein, #div-downpayment, #div-tradein\").attr('style', 'border:0px;');\r\n $('[name=errtradein]').addClass('hidden');\r\n $(\"#txt-apr\").trigger(\"click\");\r\n //console.log('click-calculate-monthly-link');\r\n\r\n if (thisModelData.hasOffer == '1') {\r\n //console.log('link click- calculateMonthly()');\r\n //set apr textbox before re-calc. should be faster since it already set the hidden fields prior to clicking calc-monthly-link\r\n var a = thisModelData.offerApr;\r\n setCalcLayerControl(a);\r\n calculateMonthly(null);\r\n }\r\n overlayCalc.open();\r\n $('#inventory-details-calculate').css('display', 'block');\r\n\r\n $('.overlay').css({ 'background-color': 'white' });\r\n $('.backdrop').css({ 'background-color': 'rgba(0,0,0,0.8)' });\r\n\r\n callFloodlight('estimate-payments-results');\r\n });\r\n\r\n $('.close-window').click(function () {\r\n reloadiFrame(\"overlay-iframe-video\");\r\n overlayCalc.close();\r\n \r\n if ($(this).hasClass('cmp') && $('[name=_hasoffer]').val() == '1') {\r\n $('.terms').children().removeClass(\"term-btn-active\");\r\n }\r\n $('.overlay-backdrop').removeClass('backdrop-visible').addClass('backdrop-hidden');\r\n $('#inventory-details-calculate').css('display', 'none');\r\n $(\"#txt-apr\").removeAttr(\"data-custom-apr\");\r\n });\r\n //#endregion\r\n //#region Inventory Offer overlay\r\n var overlayOfferElement = $('.offer-details-overlay');\r\n var overlayOffer = new Overlay(overlayOfferElement, {});\r\n $('#offer-details-link').css('cursor', 'pointer');\r\n\r\n window.buyOnline = function buyOnline(e) {\r\n e.preventDefault();\r\n setTimeout(() => {\r\n if(typeof window.TapCallback === \"function\") {\r\n window.TapCallback({\r\n \"context\": \"inventory-buyonline-modal\" //TODO: change context value if tagging requires it\r\n });\r\n }\r\n }, 500);\r\n };\r\n \r\n $('body').on('click', 'a.offer-short-details-link', function(e) {\r\n e.preventDefault();\r\n setOfferVDPOverlay();\r\n overlayOffer.open();\r\n $('.offer-details-overlay').removeClass('hideme');\r\n if(typeof window.TapCallback === \"function\") {\r\n window.TapCallback({\r\n \"context\": \"inventory-offers_modal\"\r\n });\r\n }\r\n });\r\n $('.close-window').click(function() {\r\n reloadiFrame(\"overlay-iframe-video\");\r\n overlayOffer.close();\r\n $('.offer-details-overlay').addClass('hideme');\r\n });\r\n //#endregion\r\n //Vehicle gallery fullscreen\r\n var overlayElement = $('#inventory-details-fullpreview');\r\n var overlayGallery = new Overlay(overlayElement, {});\r\n $('.gallery-fullscreen').css('cursor', 'pointer');\r\n $('.close-window').click(function() {\r\n reloadiFrame(\"overlay-iframe-video\");\r\n overlayGallery.close();\r\n });\r\n\r\n $('.gallery-fullscreen').click(function () {\r\n $('.overlay').css({ 'background-color': 'black' });\r\n $('.overlay').css({ 'margin-top': '0' });\r\n $('.overlay').css({ 'margin-bottom': '0' });\r\n $('.backdrop').css({ 'background-color': 'black' });\r\n overlayGallery.open();\r\n if(typeof window.TapCallback === \"function\") {\r\n window.TapCallback({\r\n \"context\": \"inventory-gallery-modal\"\r\n });\r\n }\r\n //onclick, reload the main video player to stop the video from playing\r\n //this is to prevent 2 voice overs playing at the same time\r\n reloadiFrame(\"main-iframe-video\");\r\n });\r\n\r\n // Previous and next navigation\r\n $('.fullscreen-slider-right').click(function() {\r\n //reset iframe video\r\n reloadiFrame(\"overlay-iframe-video\");\r\n //rpaik\r\n if(activeItemIndex()+1 == thisModelData.Photos.length){\r\n var indexCount = 0;\r\n $(\"#thumbnailSlider .owl-item\").each(function(index){\r\n if(index==0){\r\n $(this).trigger(\"click\");\r\n }\r\n });\r\n }else{\r\n overlySlider.trigger('next.owl.carousel');\r\n vpdSlider.trigger('next.owl.carousel'); \r\n }\r\n \r\n });\r\n $('.fullscreen-slider-left').click(function() {\r\n //reset iframe video\r\n reloadiFrame(\"overlay-iframe-video\");\r\n if(activeItemIndex()==0){\r\n var indexCount = 0;\r\n $(\"#thumbnailSlider .owl-item\").each(function(index){\r\n if(index==thisModelData.Photos.length-1){\r\n $(this).trigger(\"click\");\r\n }\r\n });\r\n }else{\r\n overlySlider.trigger('prev.owl.carousel');\r\n vpdSlider.trigger('prev.owl.carousel'); \r\n }\r\n \r\n });\r\n //#endregion\r\n // this funciton is to reload the iframe to stop video from playing\r\n function reloadiFrame(playerID) {\r\n const player = document.getElementById(playerID)\r\n if (player) {\r\n player.src = player.src;\r\n }\r\n }\r\n \r\n //iFrame video tracking code\r\n function videoStart() {\r\n _satellite.track(\"vehdetails_gallery_videostart\");\r\n }\r\n\r\n function videoCompleted() {\r\n _satellite.track(\"vehdetails_gallery_videocomplete\");\r\n }\r\n\r\n window.addEventListener(\"message\", receiveMessage, false);\r\n function receiveMessage(event) {\r\n if (event !== null && typeof event === 'object') {\r\n if (event.data !== null && typeof event.data === 'object') {\r\n if (event.data.provider !== null && event.data.provider === 'ifrmae-csi-mp') {\r\n if (event.data.action == \"media-started\") videoStart();\r\n\r\n if (event.data.action == \"media-completed\") videoCompleted();\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n //#region Utility Top Bar \r\n $('#savevehiclelink').click(function() {\r\n var vin = thisModelData.VIN;\r\n // console.log('vin', vin);\r\n if (window.acpv.SavedVehicles.has(vin)) {\r\n window.acpv.SavedVehicles.delete(vin);\r\n $('#savevehicleimage').attr('style', 'border-color:white');\r\n } else {\r\n console.log('seting saved vehicle');\r\n $('#savevehicleimage').attr('style', 'border-color:red');\r\n performSaveAnimation($(\"#savevehicleimage\")[0], 'savedVehicleCount');\r\n // we store some information about the vehicle to show\r\n // when the vehicle has been sold\r\n window.acpv.SavedVehicles.set(vin, {\r\n mileage: thisModelData.Mileage,\r\n modelGroupName: thisModelData.ModelGroupName,\r\n modelYear: thisModelData.ModelYear,\r\n price: thisModelData.DSRP\r\n });\r\n }\r\n // check if compare/save bar is open and adjust contact dealer \r\n checkBottomBar();\r\n });\r\n $('#savevehicleimage').click(function() {\r\n var vin = thisModelData.VIN;\r\n if (window.acpv.SavedVehicles.has(vin)) {\r\n window.acpv.SavedVehicles.delete(vin);\r\n $('#savevehicleimage').attr('style', 'border-color:white');\r\n } else {\r\n //console.log('seting saved vehicle');\r\n $('#savevehicleimage').attr('style', 'border-color:red');\r\n performSaveAnimation($(\"#savevehicleimage\")[0], 'savedVehicleCount');\r\n window.acpv.SavedVehicles.set(vin, {\r\n mileage: thisModelData.Mileage,\r\n modelGroupName: thisModelData.ModelGroupName,\r\n modelYear: thisModelData.ModelYear,\r\n price: thisvin.DSRP\r\n }); //Dany to fetch vechiles every time compare vehicles is now hit\r\n }\r\n // check if compare/save bar is open and adjust contact dealer \r\n checkBottomBar();\r\n });\r\n $('#comparevehicleimage').click(function() {\r\n var vin = thisModelData.VIN;\r\n if (window.acpv.CompareVehicles.has(vin)) {\r\n window.acpv.CompareVehicles.delete(vin);\r\n $(\"#comparevehicleimage\").removeClass();\r\n $('#comparevehicleimage').addClass('unchecked');\r\n } else if (window.acpv.CompareVehicles.size < 3) {\r\n //console.log('seting compare vehicle');\r\n $(\"#comparevehicleimage\").removeClass();\r\n $('#comparevehicleimage').addClass('checked');\r\n performSaveAnimation($(\"#comparevehicleimage\")[0], 'compareVehicleCount');\r\n window.acpv.CompareVehicles.set(vin, 1);\r\n }\r\n // check if compare/save bar is open and adjust contact dealer \r\n checkBottomBar();\r\n });\r\n $('#comparevehiclelink').click(function() {\r\n var vin = thisModelData.VIN;\r\n if (window.acpv.CompareVehicles.has(vin)) {\r\n // check if compare/save bar is open and adjust contact dealer\r\n window.acpv.CompareVehicles.delete(vin);\r\n $(\"#comparevehicleimage\").removeClass();\r\n $('#comparevehicleimage').addClass('unchecked');\r\n } else if (window.acpv.CompareVehicles.size < 3) {\r\n // check if compare/save bar is open and adjust contact dealer\r\n //console.log('seting compare vehicle');\r\n $(\"#comparevehicleimage\").removeClass();\r\n $('#comparevehicleimage').addClass('checked');\r\n performSaveAnimation($(\"#comparevehicleimage\")[0], 'compareVehicleCount');\r\n window.acpv.CompareVehicles.set(vin, 1);\r\n }\r\n // check if compare/save bar is open and adjust contact dealer \r\n checkBottomBar(); \r\n });\r\n\r\n //#endregion\r\n\r\n //#region Copy ClipboardJS\r\n /*\r\n *\r\n * closeSharePopover() is used to close the popover\r\n *\r\n */\r\n\r\n // bootstrap popover function\r\n\r\n $(\"[data-toggle=popover]\").popover({\r\n html: true,\r\n sanitize: false,\r\n content: function () {\r\n return $('#popover-content').html();\r\n },\r\n // container: '.details-nav'\r\n });\r\n\r\n $(\"[data-toggle=popover]\").on('show.bs.popover', function () {\r\n if(typeof window.TapCallback === \"function\") {\r\n window.TapCallback({\r\n \"context\": \"inventory-share-modal\"\r\n });\r\n }\r\n })\r\n\r\n\r\n // init Clipboard plugin\r\n let shareClipboard = new ClipboardJS('#sharePopover', {\r\n text: () => window.location,\r\n\r\n\r\n });\r\n\r\n //after popover is open and visible, listen for click to change\r\n //the 'text' copy to a check mark\r\n $(document).on('click', '#share-btn', function (event) {\r\n var $shareBtn = $('.popover').find('#share-btn');\r\n if ($(\".popover\").is(\":visible\")) {\r\n $shareBtn.addClass('copied').text('');\r\n $('.popover').find('p').text('Link copied and ready to share.');\r\n }\r\n });\r\n\r\n\r\n // Bind resize event to popover \r\n $(window).bind('resize', function () {\r\n if ($(\".popover\").length) {\r\n $(\"[data-toggle=popover]\").popover('show');\r\n }\r\n });\r\n\r\n shareClipboard.on('success', function (e) {\r\n\r\n // $('.share-link-copy').addClass('copied');\r\n // console.info('Action:', e.action);\r\n // console.info('Text:', e.text);\r\n // console.info('Trigger:', e.trigger);\r\n // e.clearSelection();\r\n // $('.popover').addClass('popoverStyle');\r\n\r\n // $('.popover').css({ 'width': '100%', 'max-width': '100%', 'left': '0' });\r\n // $('.arrow').css('left', '80%');\r\n\r\n // let $window = $(window);\r\n // let windowWidth = $window.width();\r\n\r\n // if (windowWidth < 768) {\r\n // $('.popover').css({ 'width': '300px', 'left': '-224px' });\r\n // $('.arrow').css('left', '91%');\r\n // }\r\n });\r\n shareClipboard.on('error', function (e) {\r\n console.log('Clipboard : ', e);\r\n });\r\n //#endregion\r\n //#region Contact form\r\n $('[name=errfirstname]').removeClass('errMessage').addClass('errMessage hidden');\r\n $('[name=errlastname]').removeClass('errMessage').addClass('errMessage hidden');\r\n $('[name=errzip]').removeClass('errMessage').addClass('errMessage hidden');\r\n $('[name=errpreferred]').removeClass('errMessage').addClass('errMessage hidden');\r\n $('[name=contact-error-api]').removeClass('contact-error-api').addClass('contact-error-api hidden');\r\n $('[name=errapr]').removeClass('errMessage').addClass('errMessage hidden');\r\n $('[name=errdownpayment]').removeClass('errMessage').addClass('errMessage hidden');\r\n $('[name=calculate-api-err]').removeClass('calculate-api-err').addClass('calculate-api-err hidden');\r\n var stored_zip = ZipStorage.getZip();\r\n var zipdealer = stored_zip;\r\n \r\n // Make sure there is a zip code before updating the field\r\n if (zipdealer) {\r\n $('[name=zip]').val(zipdealer);\r\n }\r\n var $window = $(window);\r\n var windowWidth = $window.width();\r\n if (windowWidth < 790 && windowWidth > 768) {\r\n $('.trade-in').css({ 'padding-top': '6%' });\r\n }\r\n if (windowWidth < 768) {\r\n // $('.trade-in').css({ 'padding-top': '9%'}); // $('.trade-in').css({ 'padding-top': '9%', 'left': '-224px' });\r\n }\r\n $('#emailcontact').click(function() {\r\n if ($('#emailcontact').hasClass('checked')) {\r\n // console.log('set to uncheck');\r\n $(\"#emailcontact\").removeClass();\r\n $('#emailcontact').addClass('unchecked');\r\n } else {\r\n // console.log('set to check');\r\n $(\"#emailcontact\").removeClass();\r\n $('#emailcontact').addClass('checked');\r\n }\r\n });\r\n $('#callcontact').click(function() {\r\n if ($('#callcontact').hasClass('checked')) {\r\n //console.log('set to uncheck');\r\n $(\"#callcontact\").removeClass();\r\n $('#callcontact').addClass('unchecked');\r\n } else {\r\n // console.log('set to check');\r\n $(\"#callcontact\").removeClass();\r\n $('#callcontact').addClass('checked');\r\n }\r\n });\r\n $('#textmessagecontact').click(function() {\r\n if ($('#textmessagecontact').hasClass('checked')) {\r\n // console.log('set to uncheck');\r\n $(\"#textmessagecontact\").removeClass();\r\n $('#textmessagecontact').addClass('unchecked');\r\n } else {\r\n // console.log('set to check');\r\n $(\"#textmessagecontact\").removeClass();\r\n $('#textmessagecontact').addClass('checked');\r\n }\r\n });\r\n $('#tradeinimage').click(function() {\r\n if ($('#tradeinimage').hasClass('checked')) {\r\n // console.log('set to uncheck');\r\n $(\"#tradeinimage\").removeClass();\r\n $('#tradeinimage').addClass('unchecked');\r\n } else {\r\n // console.log('set to check');\r\n $(\"#tradeinimage\").removeClass();\r\n $('#tradeinimage').addClass('checked');\r\n }\r\n });\r\n $('#submitdisclaimer').click(function() {\r\n if ($('#submitdisclaimer').hasClass('checked')) {\r\n // console.log('set to uncheck');\r\n $(\"#submitdisclaimer\").removeClass();\r\n $('#submitdisclaimer').addClass('unchecked');\r\n } else {\r\n // console.log('set to check');\r\n $(\"#submitdisclaimer\").removeClass();\r\n $('#submitdisclaimer').addClass('checked');\r\n $('#privacypolicy').css('color', '#888');\r\n }\r\n });\r\n //#region scrolling VDP page \r\n\r\n\r\n function Utils() {\r\n\r\n }\r\n\r\n Utils.prototype = {\r\n constructor: Utils,\r\n isElementInView: function(element, fullyInView) {\r\n var pageTop = $(window).scrollTop() - 10;\r\n var pageBottom = pageTop + $(window).height();\r\n var elementTop = $(element).offset().top;\r\n var elementBottom = elementTop + $(element).height();\r\n if (fullyInView === true) {\r\n return ((pageTop < elementTop) && (pageBottom > elementBottom));\r\n } else {\r\n return ((elementTop <= pageBottom) && (elementBottom >= pageTop));\r\n }\r\n }\r\n };\r\n var Utils = new Utils();\r\n $(window).scroll(function() {\r\n //contact-dealer-button veh_info_div\r\n //console.log('inside scrolling contact-dealer...');\r\n var veh_info = $('#contact-dealer-button');\r\n //console.log('veh_info:', veh_info.length);\r\n var isElementInView = Utils.isElementInView(veh_info, false);\r\n if (isElementInView) {\r\n //console.log('in view');\r\n $('#contact-dealer-button-bottom').removeClass().addClass(\"button-1-fade hidden\");\r\n } else {\r\n // console.log('out of view');\r\n $('#contact-dealer-button-bottom').removeClass().addClass(\"button-1-fade\");\r\n }\r\n });\r\n //#endregion\r\n $('#contactform').submit(function(e) {\r\n if (checkForm()) {\r\n var host = document.location.hostname;\r\n var fname = $('input[name=\"firstname\"]').val();\r\n var lname = $('input[name=\"lastname\"]').val();\r\n var zipcode = $('input[name=\"zip\"]').val();\r\n var _email = $('input[name=\"email\"]').val();\r\n var _callnumber = $('input[name=\"phone\"]').val();\r\n var _textnumber = $('input[name=\"text\"]').val();\r\n var _notes = $('input[name=\"notes\"]').val();\r\n var _tradein = $('input[name=\"chktradein\"]').is(':checked');\r\n var _image = thisModelData.VehicleImage;\r\n var _dealrID = thisModelData.DealerID;\r\n var _extColor = thisModelData.ModelExteriorColorCD;\r\n var _intColor = thisModelData.ModelInteriorColorCD;\r\n var _transmission = thisModelData.ModelTransmission;\r\n var _hp = $('input[name=\"phone\"]').val();\r\n var _ishp = $('#ph').hasClass(\"active\");\r\n var _cell = $('input[name=\"text\"]').val();\r\n var _iscell = $('#tx').hasClass(\"active\");\r\n /*\r\n * SaleType is used for Provider (Leads)\r\n * Possible values 'BT', 'CPO' and 'USED'\r\n * Based on Vehicle type (ex. Acura Precision Used)\r\n */ \r\n var saletype = thisModelData.VehicleType === \"C\" ? thisModelData.CPOTier === \"BT\" ? \"BT\" : \"CPO\" : \"USED\";\r\n\r\n //if ($('#textmessagecontact').hasClass(\"checked\")\r\n //#callcontact\r\n //#textmessagecontact\r\n //HomePhone\r\n //Is Home Phone\r\n //Cell number\r\n //Is cell \r\n //get _CampaignName from cookies\r\n if (Cookies.get('_CampaignName')) {\r\n var CampaignName = Cookies.get('_CampaignName');\r\n }\r\n var dealerRequest = {\r\n \"FirstName\": fname,\r\n \"LastName\": lname,\r\n \"ZipCode\": zipcode,\r\n \"Email\": _email,\r\n \"HomePhone\": _hp,\r\n \"IsHomePhone\": _ishp,\r\n \"Cellnumber\": _cell,\r\n \"IsCell\": _iscell,\r\n \"ModelYear\": thisModelData.ModelYear,\r\n \"ModelMake\": \"Acura\",\r\n \"ModelName\": thisModelData.ModelGroupName,\r\n \"ModelMarketingName\": (thisModelData.ModelMarketingName == \"\" ? \" \" : thisModelData.ModelMarketingName),\r\n \"SaleType\": saletype,\r\n \"DealerName\": thisModelData.DealerName,\r\n \"DealerAddress\": thisModelData.DealerAddress + \" \" + thisModelData.DealerCity + \" \" + thisModelData.DealerState + \" \" + thisModelData.DealerZip,\r\n \"DealerPhone\": thisModelData.DealerPhoneNumber,\r\n \"VehicleImage\": _image,\r\n \"ModelTrim\": thisModelData.ModelTrim,\r\n \"ModelPrice\": Number(thisvin.DSRP).toLocaleString('en-US'),\r\n \"DrivingDistance\": thisModelData.SingleOwner,\r\n \"Model\": {\r\n \"modelId\": thisModelData.ModelId,\r\n \"modelGroupName\": null,\r\n \"modelYearStart\": 0,\r\n \"modelYearEnd\": 0,\r\n \"modelExteriorColorCd\": _extColor,\r\n \"modelInteriorColorCd\": _intColor,\r\n \"modelPriceLimit\": 0,\r\n \"modelTransmission\": null,\r\n \"modelVin\": thisModelData.VIN,\r\n \"modelMileage\": thisModelData.Mileage,\r\n \"modelDealerStockNumber\": thisModelData.StockNo,\r\n \"ModelConfiguredDSRP\": thisModelData.DSRP\r\n },\r\n \"Tracking\": {\r\n \"CampaignName\": CampaignName,\r\n \"ShoppingTool\": \"Inventory - Detail Page\",\r\n },\r\n \"Dealer\": {\r\n \"dealerId\": thisModelData.DealerID\r\n },\r\n \"CarToTradeIn\": _tradein\r\n }\r\n $('.contact-dealer-btn .contact-dealer-submit-btn').addClass('disabled');\r\n $('.spinner').show();\r\n // console.log('dealerRequest data: ', dealerRequest);\r\n var posturl = \"/api/contact/dealer\";\r\n\r\n $.post(posturl, { dealerRequest: JSON.stringify(dealerRequest) }, function (data) {\r\n //console.log('https://acuracertifieddev.rpa-dev.com/api/contact/dealer:', data);\r\n data = JSON.parse(data);\r\n data = data.Output;\r\n if (data.Results.Status.toLowerCase() == \"submitted\") {\r\n // console.log(\"contact dealer submitted!\")\r\n $('#distancetodealer_span4 a').attr('data-tap-element-id','cad_complete_dealer_website');\r\n $('#form-dealer').removeClass('showForm').addClass('showForm hidden');\r\n $('#thankyou').attr('class', 'ty');\r\n if(typeof window.TapCallback === \"function\") {\r\n window.TapCallback({\r\n \"context\": \"inventory-contact-dealer-modal-complete\"\r\n });\r\n }\r\n\r\n _satellite.track(\"vehdetails_dealer_contact_submit\");\r\n $('.spinner').hide();\r\n $('.contact-dealer-btn .contact-dealer-submit-btn').removeClass('disabled');\r\n } else {\r\n console.log(data, \"contact dealer not submitted!\")\r\n $('#form-dealer').removeClass('showForm').addClass('showForm hidden');\r\n $('[name=contact-error-api]').removeClass('contact-error-api hidden').addClass('contact-error-api');\r\n $('.spinner').hide();\r\n $('.contact-dealer-btn .contact-dealer-submit-btn').removeClass('disabled');\r\n }\r\n });\r\n //$('.spinner').hide();\r\n e.preventDefault();\r\n }\r\n e.preventDefault();\r\n });\r\n //#endregion\r\n // $('#livechat').on('click', function(e) {\r\n // // console.log('livechat');\r\n // showContactOncePopup('chat');\r\n // e.preventDefault();\r\n // });\r\n // $('#sendtext').on('click', function(e) {\r\n // // console.log('livechat');\r\n // showContactOncePopup('text');\r\n // e.preventDefault();\r\n // });\r\n // $('#sendtext2').on('click', function(e) {\r\n // // console.log('livechat');\r\n // showContactOncePopup('text');\r\n // e.preventDefault();\r\n \r\n // });\r\n //console.log('[name=_vin]');\r\n // console.log('name=_vin', $('[name=_vin]').val());\r\n //#region Document startup functions\r\n\r\n if (thisModelData.Photos_Count == \"1\") {\r\n //hide nav controls in VDP slider\r\n $('[name=photo-counter]').removeClass().addClass('cp-8 photo-counter hidden');\r\n $('[name=gallery-fullscreen]').removeClass().addClass('gallery-fullscreen hidden');\r\n }\r\n var title_max_copare = \"You may only compare up to three vehicles.\";\r\n var vin = thisModelData.VIN;\r\n //check compare checkbox and compare link\r\n if (window.acpv.CompareVehicles.has(vin)) {\r\n $('checkbox').addClass('checked');\r\n $(\"#comp\").css('cursor', 'pointer');\r\n $(\"#comparevehicleimage\").attr('title', \"\");\r\n } else if (window.acpv.CompareVehicles.size >= 3) {\r\n $('checkbox').addClass('disabled');\r\n $('#comp').attr('disabled', 'disabled');\r\n $(\"#comparevehicleimage\").attr('title', title_max_copare);\r\n $(\"#comparevehiclelink\").attr('title', title_max_copare);\r\n $(\"#comp\").css('cursor', 'not-allowed');\r\n $(\"#comparevehiclelink\").css('cursor', 'not-allowed');\r\n }\r\n //check save checkbox and compare link\r\n if (window.acpv.SavedVehicles.has(vin)) {\r\n // console.log('saved vin:', vin);\r\n $('#savevehicleimage').css({ \"border-color\": \"red\" })\r\n }\r\n //#endregion\r\n\r\n function validateNumberCurrencyFormat(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\r\n $(document).ajaxStop(function() {\r\n // console.log('ajaxStop**********************');\r\n //Offers \r\n showOffersVDP();\r\n setOfferTitleCalcLayer();\r\n //show calc link\r\n $('.calculate-monthly').removeClass('hidden');\r\n $('.spinner').hide();\r\n });\r\n //#region Calculator Controls JS Functions\r\n //calc control\r\n $(\"#txt-apr\").blur(function() {\r\n // console.log('val', $(this).val())\r\n if ($(this).val() == previousAPR) return;\r\n $(this).attr(\"data-custom-apr\", $(this).val());\r\n\r\n var aprvalue = 20; //must not exceed 20%\r\n if (checkAPR($(this).val(), aprvalue)) {\r\n // console.log('inside checkAPR', $(this).val());\r\n //set apr, downpayment, kbb textboxes\r\n setCalcLayerControl($(this).val());\r\n // re-calc needed after change in txt-apr\r\n var carvalue = thisvin.DSRP;\r\n var trade_val = $(\"#txt-tradein\").val();\r\n if (checkTradeinValue(trade_val, '#txt-tradein', carvalue, '#div-tradein')) {\r\n // console.log('blurred - calculateMonthly **********************');\r\n calculateMonthly(1);\r\n }\r\n }\r\n });\r\n $('#txt-apr').on('keypress', function(e) {\r\n if (e.which === 13) {\r\n if ($(this).val() == previousAPR) return;\r\n $(this).attr(\"data-custom-apr\", $(this).val());\r\n\r\n var aprvalue = 20; //must not exceed 20%\r\n if (checkAPR($(this).val(), aprvalue)) {\r\n // console.log('inside checkAPR', $(this).val());\r\n //re-calc \r\n var carvalue = thisvin.DSRP;\r\n var trade_val = $(\"#txt-tradein\").val();\r\n if (checkTradeinValue(trade_val, '#txt-tradein', carvalue, '#div-tradein')) {\r\n calculateMonthly(1);\r\n }\r\n }\r\n $(\"#txt-downpayment\").focus();\r\n }\r\n });\r\n\r\n $(\"#txt-downpayment, #txt-tradein\")\r\n .focus(function () {\r\n clearZero($(this));\r\n });\r\n\r\n $('#txt-downpayment').on('keypress', function (e) {\r\n if (e.which === 13) {\r\n var carvalue = thisvin.DSRP //downpayment must not exceed carvalue\r\n // console.log('[name=_dsrp]');\r\n // console.log(carvalue);\r\n if (checkDownpayment($(this).val(), carvalue, '#txt-downpayment', '#div-downpayment')) {\r\n calculateMonthly(1);\r\n }\r\n $(\"#txt-tradein\").focus();\r\n }\r\n });\r\n $(\"#txt-downpayment\").blur(function(e) {\r\n // console.log('txt-downpayment blur:', $(this).val());\r\n var carvalue = thisvin.DSRP; //downpayment must not exceed carvalue\r\n // console.log('[name=_dsrp]');\r\n // console.log(carvalue);\r\n if (checkDownpayment($(this).val(), carvalue, '#txt-downpayment', '#div-downpayment')) {\r\n calculateMonthly(1);\r\n }\r\n validateNumberCurrencyFormat(e);\r\n });\r\n $(\"#txt-downpayment\").click(function() {\r\n clearErrorDownpayment(this);\r\n });\r\n $('#txt-tradein').click(function() {\r\n clearErrorTradein(this);\r\n });\r\n $('#txt-tradein').on('keypress', function(e) {\r\n if (e.which === 13) {\r\n var carvalue = thisvin.DSRP;\r\n if (checkTradeinValue($(this).val(), '#txt-tradein', carvalue, '#div-tradein')) {\r\n calculateMonthly(1);\r\n }\r\n $(\"#txt-apr\").focus();\r\n }\r\n });\r\n $(\"#txt-tradein\").blur(function(e) {\r\n // console.log($(this).val());\r\n validateNumberCurrencyFormat(e);\r\n var carvalue = thisvin.DSRP; //downpayment must not exceed carvalue\r\n if (checkTradeinValue($(this).val(), '#txt-tradein', carvalue, '#div-tradein')) {\r\n calculateMonthly(1);\r\n }\r\n });\r\n $('.term-btn').click(function() {\r\n var btntext = $(this).text();\r\n $('.term-btn').each(function(index, obj) {\r\n if (btntext != $(this).text()) {\r\n $(this).removeClass('term-btn term-btn-active').addClass('term-btn');\r\n }\r\n });\r\n $(this).toggleClass('term-btn-active');\r\n var apr_text = $(\"#txt-apr\").val();\r\n //set apr, downpayment, kbb textboxes\r\n //if (btntext == '24' || btntext == '36') {\r\n // apr_text = '0.9'\r\n //} else if (btntext == '48' || btntext == '60') {\r\n // apr_text = '1.9'\r\n //} else\r\n // { apr_text = '4.04'}\r\n\r\n // if (btntext == '66' || btntext == '72') {\r\n // apr_text = $('#txt-apr').attr('data-api-apr');\r\n // }\r\n\r\n setCalcLayerControl(apr_text);\r\n //re-calc after change in term\r\n var carvalue = thisvin.DSRP;\r\n var trade_val = $(\"#txt-tradein\").val();\r\n if (checkTradeinValue(trade_val, '#txt-tradein', carvalue, '#div-tradein')) {\r\n calculateMonthly(1, true);\r\n }\r\n });\r\n $('.calculate-btn').click(function() {\r\n $(this).toggleClass('calculate-btn-active');\r\n var btntext = $(this).text();\r\n $('.calculate-btn').each(function(index, obj) {\r\n if (btntext != $(this).text()) {\r\n $(this).removeClass('calculate-btn calculate-btn-active').addClass('calculate-btn');\r\n }\r\n });\r\n calculateMonthly(1);\r\n });\r\n $(\"#txt-apr\").click(function() {\r\n previousAPR = $(this).val();\r\n clearErrorAPR(this);\r\n });\r\n $('#lease-btn').click(function() {\r\n if ($('#finance-btn').hasClass('calculate-btn-active')) {\r\n $('#finance-btn').removeClass('calculate-btn calculate-btn-active').addClass('calculate-btn');\r\n } else {\r\n $(this).removeClass('calculate-btn').addClass('calculate-btn calculate-btn-active');\r\n }\r\n });\r\n\r\n //OWL item click, reload video iFrame to stop the video from playing\r\n $('.item').click(function () {\r\n reloadiFrame(\"main-iframe-video\");\r\n });\r\n \r\n //This funtion is used to check for http/https\r\n // Dealer Website/URL\r\n var dealerUrlHidden = thisModelData.DealerURL;\r\n RedirectDealerURL(dealerUrlHidden);\r\n function RedirectDealerURL(DealerURL) {\r\n if (!DealerURL) {\r\n return '';\r\n }\r\n var newURL;\r\n // check if URL is http or https\r\n // First: handle http\r\n if (DealerURL.indexOf('https') < 0) {\r\n newURL = 'http://' + window.location.hostname + '/redirect.html?ref=' + DealerURL\r\n $('.dealer-website').attr('href', newURL);\r\n }\r\n }\r\n\r\n //#endregion\r\n // document.ready END\r\n});\r\n\r\nvar calcOpen = function () {\r\n if(typeof window.TapCallback === \"function\") {\r\n window.TapCallback({\r\n \"context\": \"inventory-calculate-modal\"\r\n });\r\n }\r\n var overlayCalcElement = $('#inventory-details-calculate');\r\n var overlayCalc = new Overlay(overlayCalcElement, {});\r\n //pre set downpayment to 10%\r\n //$(\"#txt-downpayment\").val('0');\r\n const tradeIn = Number(sessionStorage.getItem('acpv.inventory.tradein')).toLocaleString() || 0;\r\n $(\"#txt-tradein\").val(tradeIn);\r\n $(\".errdownpayment\").addClass(\"hidden\");\r\n $(\"#div-tradein, #div-downpayment, #div-tradein\").attr('style', 'border:0px;');\r\n $('[name=errtradein]').addClass('hidden');\r\n $(\"#txt-apr\").trigger(\"click\");\r\n\r\n\r\n if (thisModelData.hasOffer == '1') {\r\n //set apr textbox before re-calc. should be faster since it already set the hidden fields prior to clicking calc-monthly-link\r\n var a = thisModelData.offerApr;\r\n setCalcLayerControl(a);\r\n\r\n const offerString = $('input[name=\"radio-offers-group\"]:checked').val();\r\n if(offerString) {\r\n var offerSelected = JSON.parse(offerString);\r\n var APR = offerSelected.APR;\r\n var termMax = offerSelected.TermMax;\r\n $('#txt-apr').val(`${APR}%`);\r\n calculateMonthly({apr: APR, term: termMax});\r\n }else {\r\n calculateMonthly(null);\r\n }\r\n }\r\n overlayCalc.open();\r\n $('#inventory-details-calculate').css('display', 'block');\r\n\r\n $('.overlay').css({ 'background-color': 'white' });\r\n $('.backdrop').css({ 'background-color': 'rgba(0,0,0,0.8)' });\r\n\r\n callFloodlight('estimate-payments-results');\r\n}\r\n\r\nvar getFeature = function() {\r\n $.ajax({\r\n url: dataURL + '/api/Features/keyFeatures',\r\n type: 'get',\r\n async: false,\r\n data: {\r\n modelid: thisModelData.ModelId\r\n },\r\n dataType: \"json\",\r\n complete: function complete(data, status) {\r\n if (status == 200) {\r\n console.log('getFeature complete. no return result');\r\n }\r\n },\r\n success: function success(result) {\r\n setFeature(result);\r\n },\r\n error: function error(jqXHR, textStatus, errorThrown) {\r\n // console.log(\"failed ajax call - getFeature\");\r\n return null;\r\n }\r\n\r\n });\r\n} \r\n\r\n\r\nvar setAltPhoto = function(result) {\r\n var noImageContent = '
';\r\n noImageContent += '
';\r\n noImageContent += ' \"\"';\r\n noImageContent += '
';\r\n noImageContent += '
'; \r\n thisModelData.VehicleImage = result;\r\n $('.vehicle-img-wrapper img').attr('src',result);\r\n $('#vehicle-details-wrapper #slider').html(noImageContent);\r\n $('#vehicle-details-wrapper #slider').show();\r\n }\r\n\r\n var getAltPhoto = function() {\r\n $.ajax({\r\n //url: 'https://acuracertifieddev.rpa-dev.com/api/Inventory/getAltVehiclePhoto',\r\n url: dataURL + '/api/Inventory/getAltVehiclePhoto',\r\n type: 'get',\r\n async: false,\r\n data: {\r\n vin: thisvin.VIN,\r\n zip: thisDealer.DealerZip\r\n },\r\n dataType: \"text\",\r\n complete: function complete(data, status) {\r\n if (status == 200) {\r\n console.log('getFeature complete. no return result');\r\n }\r\n },\r\n success: function success(result) {\r\n setAltPhoto(result);\r\n },\r\n error: function error(jqXHR, textStatus, errorThrown) {\r\n console.log('get alt photo failed')\r\n return null;\r\n }\r\n\r\n });\r\n} \r\n\r\nvar getVehicleDetails = function () {\r\n $.ajax({\r\n url: dataURL + '/api/Inventory/GetVehicleDetails',\r\n type: 'get',\r\n async: true,\r\n data: {\r\n vin: getUrlVars()[\"vin\"]\r\n },\r\n dataType: \"json\",\r\n complete: function complete(data, status) {\r\n if (status == 200) {\r\n console.log('getVehicleDetails complete. no return result');\r\n }\r\n },\r\n success: function success(result) {\r\n //console.log('ok ajx result - getVehicleDealerObject'); //Output - Results - MonthlyPayment \r\n //console.log(result);\r\n if (result.Output.Results.Models == null) {\r\n $('.error-pages').removeClass('hidden')\r\n } else {\r\n setVehicleDetail(result);\r\n $('.acpv-main.content').removeClass('hidden');\r\n\r\n //get defaultAPR\r\n $.ajax({\r\n url: dataURL + '/api/calculators/ComputeFinancePayment',\r\n type: 'get',\r\n data: {\r\n apr: '',\r\n term: '',\r\n msrp: thisvin.DSRP,\r\n downpayment: 0,\r\n TradeInValue: 0,\r\n modelid: thisModelData.ModelId\r\n },\r\n dataType: \"json\",\r\n success: function(result) {\r\n thisDefaultAPR = result.APR;\r\n const defaultValue = JSON.stringify({APR: thisDefaultAPR, TermMax: result.Term});\r\n $('.vdp-offers .form-group').append(`
\r\n \r\n \r\n
`);\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n },\r\n error: function error(jqXHR, textStatus, errorThrown) {\r\n // console.log(\"failed ajax call - getSimilarVehicles\");\r\n $('.error-pages').removeClass('hidden')\r\n return null;\r\n }\r\n\r\n });\r\n}\r\n\r\nvar getUrlVars = function()\r\n{\r\n var vars = [], hash;\r\n var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\r\n for(var i = 0; i < hashes.length; i++)\r\n {\r\n hash = hashes[i].split('=');\r\n vars.push(hash[0]);\r\n vars[hash[0]] = hash[1];\r\n }\r\n return vars;\r\n}\r\n\r\n\r\n\r\n\r\nvar formatDealerhours = function(dhours)\r\n{\r\n //orig format: Mon-Thu 9:00AM-9:00PM;Fri-Sat 9:00AM-6:00PM;Sun Closed\r\n // dhours = \"Mon-Thu 9:00AM-9:00PM;Fri-Sat 9:00AM-6:00PM;Sun Closed\";\r\n // dhours = \"Mon-Sat 9:00AM-8:00PM;Sun Closed\";\r\n\r\n var days = dhours.split(';');\r\n var dealerhour = [];\r\n var times = [];\r\n\r\n for (var d = 0; d < days.length; d++)\r\n {\r\n times = days[d].split(' ');\r\n var p = {\r\n day: times[0],\r\n time: times[1]\r\n }\r\n dealerhour.push(p);\r\n }\r\n return dealerhour;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// close copy/share popover\r\nfunction closeSharePopover() {\r\n $(\"[data-toggle=popover]\").popover('hide');\r\n //click to focus on share link\r\n $('#sharePopover').click();\r\n\r\n //reser check mark\r\n $('.share-link-copy').removeClass('copied');\r\n\r\n}\r\n\r\n$(document).on(\"scroll\", \"bottom-bar\", function () {\r\n // console.log(\"Clicked.\");\r\n});\r\n// contact dealer CTA make it sticky\r\nvar fixed = true;\r\n$(window).on('scroll', function(e) {\r\n var scrollTop = $(this).scrollTop(),\r\n elementOffset = $('#contact-btn-wrapper').offset().top,\r\n elementOffsetFooter = $('.acpv-footer').offset().top,\r\n distanceCTA = (elementOffset - scrollTop),\r\n distanceFooter = (elementOffsetFooter - scrollTop),\r\n distanceFromBottom = $(document).height() - ($(document).scrollTop() + $(window).height()),\r\n footerHeight = $('.acpv-footer').height(),\r\n vin = thisModelData.VIN;\r\n\r\n \r\n\r\n // console.log('distanceCTA: ', distanceCTA)\r\n // console.log('distanceFromBottom: ', distanceFromBottom)\r\n if ((distanceCTA > distanceFooter) && !(this.oldScroll > this.scrollY)) {\r\n if (fixed) {\r\n fixed = false;\r\n // console.log('----- > scroll is: ', this.oldScroll > this.scrollY)\r\n $('#contact-btn-wrapper').removeClass(\"fixed-cta\");\r\n }\r\n }\r\n if ((this.oldScroll > this.scrollY) && (!fixed)) {\r\n if (distanceFromBottom >= footerHeight) {\r\n fixed = true;\r\n $('#contact-btn-wrapper').addClass(\"fixed-cta\");\r\n }\r\n }\r\n // check if compare/save bar is open\r\n checkBottomBar();\r\n // print \"false\" if direction is down and \"true\" if up\r\n // console.log(this.oldScroll > this.scrollY);\r\n //get scroll detection\r\n this.oldScroll = this.scrollY;\r\n});\r\n// check if compare/save bar is open\r\nfunction checkBottomBar() {\r\n setTimeout(function() {\r\n var saveBar = window.acpv.SavedVehicles.has(thisModelData.VIN);\r\n var compareBar = window.acpv.CompareVehicles.has(thisModelData.VIN);\r\n //move contact dealer based on the conditions\r\n if (saveBar || compareBar) {\r\n $('#contact-btn-wrapper').css('bottom', '60px');\r\n\r\n //sticky bar\r\n $('bottom-bar .stickycompare').attr('data-tap-element-id','stickybar_compare');\r\n $('bottom-bar .stickysave').attr('data-tap-element-id','stickybar_save');\r\n $('bottom-bar #contact-dealer-button-bottom').attr('data-tap-element-id','stickybar_contact');\r\n } else {\r\n $('#contact-btn-wrapper').css('bottom', '0');\r\n }\r\n }, 500);\r\n}\r\n//#region ContactOnce and Other JS functions\r\n// function showContactOncePopup(option) {\r\n// var dealerId = $('[name=_dealerid]').val();\r\n \r\n// if (option == 'chat') {\r\n// var chatEngConfiguration = {\r\n// \"referenceId\": dealerId,\r\n// \"engagementId\": 1,\r\n// \"channel\": \"chat\"\r\n// };\r\n// lpTag.sdk.exec(\"caoEngager.startChat\", chatEngConfiguration);\r\n\r\n// // Old code \r\n// // javascript: window.open('https://honda.contactatonce.com/caoclientcontainer.aspx?ProviderId=1587&MerchantId=' + dealerId + '&PlacementId=1&ZipCode=xxxxx&OriginationUrl=' + encodeURIComponent(location.href), '', 'resizable =yes,toolbar=no,menubar=no,location=no,scrollbars=no,status=no,height=400,width=600');\r\n// callFloodlight('dealer-chat');\r\n// return false;\r\n// }\r\n// if (option == 'text') {\r\n// var mtcPropertiesErrorCallback = function (data) {\r\n// console.log('Error retrieving mtc property data for referenceId:' + referenceId);\r\n// };\r\n\r\n// var mtcPropertiesSuccessCallback = function (data) {\r\n// var mtcEngConfiguration = {\r\n// \"referenceId\": dealerId,\r\n// \"engagementId\": 1,\r\n// \"channel\": \"mtc\",\r\n// \"mtc\": data.properties\r\n// };\r\n// if (mtcEngConfiguration.mtc.phoneNumber) {\r\n// lpTag.sdk.exec(\"caoEngager.startChat\", mtcEngConfiguration);\r\n// }\r\n// };\r\n// lpTag.sdk.exec(\"caoEngager.getMtcProperties\", {\r\n// referenceId: dealerId,\r\n// onSuccess: mtcPropertiesSuccessCallback,\r\n// onError: mtcPropertiesErrorCallback\r\n// });\r\n\r\n// // Old code\r\n// // javascript: window.open('https://mtc.contactatonce.com/MobileTextConnectConversationInitiater.aspx?AdvertiserId=' + dealerId + '&ProviderId=1587&PlacementId=1&ZipCode=xxxxx&Message=Hi%2C%20I%20have%20a%20question%20about%20Acura&OriginationUrl=' + encodeURIComponent(location.href), '', 'resizable=yes,toolbar=no,menubar=no,location=no,scrollbars=no,status=no,height=350,width=410');\r\n// callFloodlight('dealer-chat');\r\n// return false;\r\n// }\r\n \r\n// }\r\n//function to check if chat in Online\r\n// function getContactOnceStatus() {\r\n// var dealerId = $('[name=_dealerid]').val();\r\n// var status = false;\r\n\r\n// function presenceCallback(presenceData) {\r\n// if (presenceData.presenceStatus === 'online') {\r\n// console.log('Chat is online');\r\n// status = true;\r\n// } else {\r\n// console.log('Chat is offline');\r\n// $('.live-chat-wrapper').addClass('hidden');\r\n// $('.text-wrapper').addClass('hidden');\r\n// }\r\n// }\r\n// function presenceErrorCallback() {\r\n// console.log(\"Error checking Contact At Once presence\");\r\n// }\r\n// var presenceReq = {\r\n// \"referenceId\": dealerId,\r\n// \"engagementId\": 1,\r\n// \"onSuccess\": presenceCallback,\r\n// \"onError\": presenceErrorCallback\r\n// };\r\n// lpTag.sdk.exec(\"caoPresence.getPresence\", presenceReq);\r\n// return status;\r\n// }\r\n\r\nfunction getDistanceFromDealer() {\r\n // console.log('ajaxCall get-getDistanctFromDealer');\r\n // http://acuracertified/api/dealerlocator/finddealersonly?zip=90404&radius=250\r\n \r\n // get user zip code from local storage \r\n var localStorageZip = ZipStorage.getZip();\r\n var _zip;\r\n //if there is no zip in local storage, use dealer zip\r\n if (localStorageZip){\r\n _zip = localStorageZip\r\n } else {\r\n _zip = thisModelData.DealerZip;\r\n }\r\n var _rad = 250;\r\n _zip = _zip.substring(0, 5);\r\n // console.log('_zip', _zip);\r\n // console.log('_rad', _rad);\r\n $.ajax({\r\n type: 'get',\r\n dataType: \"json\",\r\n url: '/api/dealerlocator/finddealersonly',\r\n data: {\r\n zip: _zip,\r\n radius: _rad\r\n },\r\n success: function (result) {\r\n // console.log('ok ajax result - getDistanctFromDealer'); //Output - Results - MonthlyPayment \r\n //console.log('result',result[\"POIResponse\"][\"POIs\"][\"POI\"][0]);\r\n //get the hidden value of the dealer ID\r\n var dealerId = thisModelData.DealerID;\r\n var results = result[\"POIResponse\"][\"POIs\"][\"POI\"];\r\n if (thisDealer.DealerURL == 'null') {\r\n thisDealer.DealerURL = '#';\r\n }\r\n for (var i = 0; i < results.length; i++) {\r\n if (result[\"POIResponse\"][\"POIs\"][\"POI\"][i] != null) {\r\n //only find the matching dealer ID\r\n if (result[\"POIResponse\"][\"POIs\"][\"POI\"][i][\"POIId\"] == dealerId) {\r\n $('#distancetodealer_link2').html(result[\"POIResponse\"][\"POIs\"][\"POI\"][i][\"Distance\"] + ' away ');\r\n $('#distancetodealer_link3').html(result[\"POIResponse\"][\"POIs\"][\"POI\"][i][\"Distance\"]);\r\n $('#distancetodealer_span').html(result[\"POIResponse\"][\"POIs\"][\"POI\"][i][\"Distance\"] + ' away at ' + '' + thisDealer.DealerName + '');\r\n $('#distancetodealer_span2').html(result[\"POIResponse\"][\"POIs\"][\"POI\"][i][\"Distance\"]);\r\n $('#distancetodealer_span3').html(result[\"POIResponse\"][\"POIs\"][\"POI\"][i][\"Distance\"] + '');\r\n $('#distancetodealer_span4').html(result[\"POIResponse\"][\"POIs\"][\"POI\"][i][\"Distance\"] + ' away from ' + '' + thisDealer.DealerName + '');\r\n thisModelData.SingleOwner = result[\"POIResponse\"][\"POIs\"][\"POI\"][i][\"DrivingDistance\"];\r\n vdpWrapper.attr('data-tap-dealer-distance',result[\"POIResponse\"][\"POIs\"][\"POI\"][i][\"Distance\"]);\r\n }\r\n } else {\r\n $('.spinner').hide();\r\n $('#similarvehicles').addClass('hidden');\r\n }\r\n }\r\n },\r\n error: function (jqXHR, textStatus, errorThrown) {\r\n // since ajax call failed, ask user to input location\r\n // console.log('error result getDistanctFromDealer', jqXHR); \r\n $('#distancetodealer').html('');\r\n }\r\n });\r\n}\r\n//#endregion\r\n//#region Offers JS Functions\r\nfunction performSaveAnimation(element, elementId) {\r\n var bottomBar = $('bottom-bar');\r\n if (bottomBar.length === 0) {\r\n return;\r\n }\r\n\r\n var offset = { x: 0, y: 0 };\r\n var bottomBarController = bottomBar.data('controller');\r\n if (bottomBarController.isClosed()) {\r\n offset.y = -bottomBarController.content.height();\r\n }\r\n new window.SaveAnimation({\r\n element: element,\r\n offset: offset,\r\n toElementId: elementId\r\n });\r\n}\r\n//getOffersFromApi -TODO: verify, check and cleanup \r\nfunction getOffersFromApi() {\r\n //var url = 'api/calculators/ComputeFinancePayment?apr=5&term=36&msrp=26000&downpayment=1000&TradeInValue=1000&modelid=DE2F3HJW';\r\n var url = 'public/data/test-offers.json';\r\n $.ajax({\r\n url: url,\r\n type: 'get',\r\n dataType: \"json\",\r\n complete: function (data, status) {\r\n if (status == 200) {\r\n\r\n }\r\n },\r\n success: function(result) {\r\n // console.log(\"success getOffersFromApi\");\r\n //console.log('result:', result);\r\n var mid = thisModelData.ModelId\r\n if (checkOfferModelId(mid, result)) {\r\n // console.log(\"model id in Offers json\");\r\n $('.offer-details').removeClass('hidden');\r\n } else {\r\n console.log(\"model id NOT in Offers json\");\r\n }\r\n },\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n console.log(\"getOffersFromApi: did not work\");\r\n }\r\n });\r\n}\r\n\r\nfunction checkOfferModelId(mid, data) {\r\n try {\r\n // console.log(\"inside checkOfferModelId\");\r\n var modelsData = data['HOT']['MOTs']['MOT']['Output']['Results']['Specials']['Special'][0]['ApplicableModels']['Model'];\r\n // console.log('modelData:', modelsData);\r\n // console.log('modelID:', mid);\r\n var retVal = false;\r\n $.each(modelsData, function(i, v) {\r\n if (v.ModelID == mid) {\r\n // found it...\r\n // console.log('modelID found it...');\r\n retVal = true; // stops the loop\r\n }\r\n });\r\n // console.log('modelID is found ? ', retVal);\r\n return retVal;\r\n\r\n }\r\n catch (error) {\r\n console.log(\"error checkOfferModelId:\", error);\r\n return false;\r\n }\r\n}\r\n\r\nfunction setOfferFieldValues(_apr, _term, _shortdesc, _shortdisclaimer, _lowapr, _lowterm) {\r\n thisModelData.hasOffer = '1';\r\n thisModelData.maxTerm = '0'; //0=false, user hasnt clicked on a term thats not part of an offer\r\n thisModelData.hasOfferTitle = 'Apply ' + _apr + '% APR for ' + _term + ' months offer?';\r\n thisModelData.isOfferApplied ='with ' + _apr + '% APR for ' + _term + ' months offer applied';\r\n thisModelData.offerApr = _apr;\r\n thisModelData.offerTerm = _term;\r\n thisModelData.offerDisclaimer = _shortdisclaimer;\r\n thisModelData.offerDescription = _shortdesc;\r\n thisModelData.offerAprVdp = _apr;\r\n thisModelData.offerTermVdp = _term;\r\n}\r\n\r\nfunction setOfferFieldsOff() {\r\n thisModelData.hasOffer = '0';\r\n}\r\n\r\nfunction showOffersVDP() {\r\n if (thisModelData.hasOffer != '1') {\r\n // console.log('showoffersVDP: no offers here. CalcMonthly API might still be loading ');\r\n //no offers, return function\r\n return;\r\n }\r\n // console.log(\"showOffersVDP:\", $('[name=_hasoffer]').val());\r\n $('.offer-details').removeClass('hidden');\r\n var apr, term, shortdesc, shortdisclaimer;\r\n apr = thisModelData.offerApr;\r\n term = thisModelData.offerTermVdp;\r\n // console.log(\"apr showOffersVDP ****\", apr);\r\n // console.log(\"term showOffersVDP ***\", term);\r\n var class_desk = '
';\r\n var class_mobile = '
';\r\n var class_term = '';\r\n var $window = $(window);\r\n var windowWidth = $window.width();\r\n if (windowWidth < 768) {\r\n class_term = class_mobile\r\n } else {\r\n class_term = class_desk\r\n }\r\n //desktop\r\n var data_desk = '
FINANCE OFFER
';\r\n data_desk = data_desk + class_term;\r\n data_desk = data_desk + '
  • ' + apr + '% APR up to ' + term + ' months
  • ';\r\n data_desk = data_desk + '

For well qualified buyers. Details

'\r\n data_desk = data_desk + '
';\r\n $('.offer-details').html(data_desk);\r\n}\r\n\r\nfunction setOfferTitleCalcLayer() {\r\n if (thisModelData.hasOffer != '1' || thisModelData.maxTerm == '1') {\r\n toggleOfferTitleCalcLayer(0);\r\n return;\r\n }\r\n var title = thisModelData.isOfferApplied\r\n var data = '' + title + '';\r\n var disp_offer = thisModelData.hasOfferTitle;\r\n var disp_data = '' + disp_offer + '';\r\n var apr = thisModelData.offerApr;\r\n var term = thisModelData.offerTerm;\r\n var _apr = $('#txt-apr').val().replace(/\\%/g, '');\r\n var _term = '';\r\n $('.term-btn').each(function(index, obj) {\r\n if ($(this).hasClass('term-btn-active')) {\r\n _term = $(this).text()\r\n }\r\n });\r\n toggleOfferTitleCalcLayer(1);\r\n // if (apr == _apr && term == _term) {\r\n if (apr == _apr && term == _term) { //term usually is flexible, apr is !important\r\n //check term and apr \r\n $('.offer').html(data);\r\n } else if (apr != _apr || term != _term) {\r\n $('.offer').html(disp_data);\r\n }\r\n}\r\n\r\nfunction toggleOfferTitleCalcLayer(val) {\r\n var vehicleType = thisModelData.VehicleType;\r\n const cpoTier = thisModelData.CPOTier;\r\n // hide used vehicles offers\r\n if (val == 0 || vehicleType == 'U' || cpoTier == 'BT') {\r\n //todo add on cpotier bt\r\n $('.offer').addClass('hidden');\r\n } else {\r\n $('.offer').removeClass('hidden');\r\n }\r\n}\r\n//click vehicle has offer link \r\nfunction applyOffer() {\r\n // console.log('applying offer **************');\r\n var termOffer = thisModelData.offerTerm;\r\n var a = thisModelData.offerApr;\r\n\r\n setCalcLayerControl(a);\r\n $('.spinner').show();\r\n //show VDP title offer\r\n toggleOfferTitleCalcLayer(1);\r\n\r\n $('.term-btn').each(function() {\r\n if ($(this).text() == termOffer && !$(this).hasClass('term-btn-active')) {\r\n $(this).trigger(\"click\");\r\n }\r\n });\r\n\r\n $(\"#txt-apr\").removeAttr(\"data-custom-apr\");\r\n //run calc api again, ajaxstop function loads calc header offer title if any\r\n calculateMonthly(a);\r\n $('.spinner').hide();\r\n}\r\n\r\nfunction setOfferVDPOverlay() {\r\n if (thisModelData.hasOffer != '1') {\r\n return;\r\n }\r\n // console.log(\"setOfferVDPOverlay inside: *******************\");\r\n var desc = thisModelData.offerDescription;\r\n var disclaimer = thisModelData.offerDisclaimer;\r\n var data = '';\r\n var head = '' + thisModelData.SampleAPR + '% APR for ' + thisModelData.offerTerm + ' months

';\r\n var data1 = '

{head}For well-qualified buyers.{text}
'\r\n var data2 = '

{text2}

'\r\n //
\r\n //
\r\n //
\r\n //

\r\n // 0% APR for 24-36 month termsmonths available to customers who qualify for the AFS Super Preferred credit tier. 0% APR for 36 months financing at $27.78 a month per $1,000 financed. For well qualified buyers; not all buyers may qualify. Higher rates may apply for buyers with lower credit ratings. This offer is valid for all Acura Certified TSX models (model year: 2006-2011) delivered and sold from March 1, 2011 through July 21, 2011.\r\n //\r\n //

\r\n //

\r\n // Offer valid through 07/21/2011, on Acura Certified Pre-Owned vehicles. Only on approved credit by Acura Financial Services through participating dealers. Acura Financial Services` standard credit criteria apply. See your dealer for details. Dealers set actual prices. Limited time only.\r\n //

\r\n //
\r\n //
\r\n //
\r\n $.ajax({\r\n url: dataURL + '/api/offers/getfinanceoffers',\r\n type: 'get',\r\n data: {},\r\n dataType: \"json\",\r\n complete: function (data, status) {\r\n if (status == 200) {\r\n\r\n }\r\n },\r\n success: function(result) {\r\n // console.log(\"setOfferVDPOverlay inside disclaimer && desc *******************\", result);\r\n // console.log(\"disclaimer :: \", result[\"Output\"][\"Results\"][\"Specials\"][\"Special\"][0][\"TermAndConditions\"]);\r\n // console.log(\"desc :: \", result[\"Output\"][\"Results\"][\"Specials\"][\"Special\"][0][\"SpecialDescription\"]);\r\n var arr_length = result[\"Output\"][\"Results\"][\"Specials\"][\"Special\"].length;\r\n // console.log(\"arr_length: \", arr_length)\r\n for (var i = 0; i < arr_length; i++) {\r\n var models_length = result[\"Output\"][\"Results\"][\"Specials\"][\"Special\"][i][\"Models\"][\"Model\"].length;\r\n // console.log(\"models_length :: \", models_length)\r\n for(var j = 0; j < models_length; j++){\r\n if (result[\"Output\"][\"Results\"][\"Specials\"][\"Special\"][i][\"Models\"][\"Model\"][j][\"ModelMarketingName\"].indexOf(thisModelData.ModelGroupName) > -1) {\r\n\r\n disclaimer = result[\"Output\"][\"Results\"][\"Specials\"][\"Special\"][i][\"Models\"][\"Model\"][j][\"TermAndConditions\"];\r\n desc = result[\"Output\"][\"Results\"][\"Specials\"][\"Special\"][i][\"Models\"][\"Model\"][j][\"SpecialDescription\"];\r\n }\r\n }\r\n\r\n\r\n }\r\n if (disclaimer != null && desc != null) {\r\n // console.log(\"1529 : dis: \", disclaimer);\r\n // console.log(\"1530 : des: \", desc)\r\n\r\n data = data1.replace('{head}', head);\r\n // console.log('disclaimer', disclaimer);\r\n if (disclaimer == \"

\") {\r\n data = data.replace('{text}', '');\r\n } else {\r\n data = data.replace('{text}', '

' + disclaimer);\r\n }\r\n data = data + data2.replace('{text2}', desc);\r\n }\r\n // console.log(\"getfinanceoffers success: *******************\", data);\r\n $('.offers-details-wrapper').html(data);\r\n },\r\n error: function (jqXHR, textStatus, errorThrown) {\r\n\r\n }\r\n });\r\n}\r\n//#endregion\r\n//#region Calculator functions\r\nfunction loadTermMonths() {\r\n var buttons = ['24', '36', '48', '60', '66', '72'];\r\n var default_button = '66';\r\n var data = '';\r\n for (var i = 0, len = buttons.length; i < len; i++) {\r\n if (default_button != buttons[i]) {\r\n data = data + '';\r\n } else {\r\n data = data + '';\r\n }\r\n }\r\n // console.log('loadTermMonths:', data);\r\n $('.terms').html(data);\r\n}\r\n\r\nfunction openPopUp(stringUrl, stringName, width, height) {\r\n //Tracking kbb\r\n _satellite.track('vehdetails_calculate_kbb');\r\n var top = (screen.height / 2) - (height / 2);\r\n var left = (screen.width / 2) - (width / 2);\r\n window.open(stringUrl, stringName, \"scrollbars=yes,width=\" + width + \",height=\" + height + \",top=\" + top + \",left=\" + left);\r\n}\r\n\r\nfunction updateTradeinValue(value) {\r\n if (value != 0) {\r\n var tval = formatTradein(value);\r\n $('#txt-tradein').val(tval);\r\n calculateMonthly(1);\r\n }\r\n}\r\n\r\nfunction clearZero(obj) {\r\n try {\r\n var txtbox = $(obj);\r\n var value = txtbox.val();\r\n if (parseInt(value) < 1) {\r\n txtbox.val('');\r\n }\r\n\r\n\r\n }\r\n catch (error) {\r\n // console.log('clearZero error:', error);\r\n }\r\n}\r\n\r\nfunction setCalcLayerControl(_apr) {\r\n if (thisModelData.hasOffer != '1') {\r\n toggleOfferTitleCalcLayer(0);\r\n return;\r\n }\r\n var apr = _apr;\r\n if (thisModelData.maxTerm == '1') {\r\n var apiAPR = $('#txt-apr').attr('data-api-apr');\r\n $('#txt-apr').val(apiAPR);\r\n } else {\r\n $('#txt-apr').val(apr);\r\n }\r\n //append % if not yet showing\r\n if ($('#txt-apr').val().indexOf('%') < 0) {\r\n $('#txt-apr').val($('#txt-apr').val() + '%');\r\n }\r\n}\r\n\r\nfunction calculateMonthly(a, termClick) {\r\n // console.log('calculateMonthly inside');\r\n var term = '';\r\n var dynamicAPR = $('#txt-apr').attr('data-api-apr') || thisDefaultAPR;\r\n\r\n $('.term-btn').each(function(index, obj) {\r\n if ($(this).hasClass('term-btn-active')) {\r\n term = $(this).text();\r\n }\r\n });\r\n var tradeinValue = ($('#txt-tradein').val() < 1) ? 0 : $('#txt-tradein').val();\r\n var downpayment = ($('#txt-downpayment').val() < 1) ? 0 : $('#txt-downpayment').val();\r\n thisDownpayment = downpayment;\r\n var modelId = thisModelData.ModelId;\r\n var apr = ($('#txt-apr').val() < 1) ? dynamicAPR : $('#txt-apr').val().replace(/\\%/g, '');\r\n var msrp = thisvin.DSRP;\r\n thisMSRP = msrp;\r\n var monthly = 0;\r\n var g_apr = '';\r\n var g_shortDescription = 'short description here';\r\n var g_shortDisclaimer = 'short disclaimer here';\r\n var g_term = '';\r\n //change apr and term to empty, Calculator Controller->GetCalculatorConstants() will load defaults JIRA: ACPV-110\r\n //apr = '';\r\n if (a == null) {\r\n term = '';\r\n apr = '';\r\n }\r\n //rpaik begin\r\n\r\n if(a && typeof a === 'object') {\r\n apr = a.apr;\r\n term = a.term;\r\n }\r\n \r\n var hasOffers = thisModelData.Specials;\r\n if (hasOffers && isCalcFirstLoad && !isInitialPageLoad) {\r\n ////console.log(\"isCalcFirstLoad[if hasOffers&&isCalcFirstLoad]: \" + isCalcFirstLoad)\r\n isCalcFirstLoad = false;\r\n var hasLowApr = 100, hasLowTerm = 100;\r\n var _hasApr, _hasLowTerm;\r\n var hasOffArr = hasOffers;\r\n hasOffArr.PaymentTerms.FinanceTerms.FinanceTerm.forEach(function(item) {\r\n _hasApr = parseFloat(item[\"APR\"]);\r\n if (hasLowApr > _hasApr) {\r\n hasLowApr = _hasApr;\r\n }\r\n _hasLowTerm = parseInt(item[\"TermMax\"]);\r\n if (_hasLowTerm < hasLowTerm) {\r\n hasLowTerm = _hasLowTerm;\r\n }\r\n });\r\n term = hasLowTerm;\r\n apr = hasLowApr;\r\n }\r\n \r\n //rpaik end\r\n\r\n $.ajax({\r\n url: dataURL + '/api/calculators/ComputeFinancePayment',\r\n type: 'get',\r\n data: {\r\n apr: apr,\r\n term: term,\r\n msrp: msrp,\r\n downpayment: downpayment,\r\n TradeInValue: tradeinValue,\r\n modelid: modelId\r\n },\r\n dataType: \"json\",\r\n complete: function (data, status) {\r\n if (status == 200) {\r\n\r\n }\r\n },\r\n success: function(result) {\r\n // console.log('Monthly API success :', result);\r\n //monthly = result[\"Output\"][\"Results\"][\"MonthlyPayment\"];\r\n monthly = result[\"MonthlyPayment\"];\r\n thisMonthly = monthly;\r\n\r\n //set default apr\r\n // if(!apr) {\r\n // $('#txt-apr').val(`${result.APR}%`); \r\n // }\r\n\r\n // Select term month on calc popup\r\n $('.term-btn').each(function() {\r\n $(this).removeClass('term-btn-active');\r\n if ($(this).text() == result.Term) {\r\n $(this).addClass('term-btn-active');\r\n }\r\n });\r\n if (result[\"Specials\"] != null && thisModelData.VehicleType != 'U' && thisModelData.CPOTier !== 'BT') {\r\n if (result[\"Specials\"][\"FinanceSpecial\"] != null) {\r\n var lowApr = thisModelData.SampleAPR, lowTerm = thisModelData.SampleTerm;\r\n var arr = result[\"Specials\"][\"FinanceSpecial\"];\r\n //var offerData = JSON.parse(hasOffers);\r\n if(!hasOffers) {\r\n return;\r\n }\r\n var financeTermArray = hasOffers.PaymentTerms.FinanceTerms.FinanceTerm;\r\n var customAPR = $('#txt-apr').attr(\"data-custom-apr\");\r\n\r\n // Ensure that the offer APR is only showing with the offer term lengths.\r\n // Then user must be able to enter in their own APR and click each term length to see the payment. \r\n if (termClick && !customAPR) {\r\n var aprIndex = financeTermArray.findIndex(item => item[\"TermMin\"] === arr[\"TermMin\"]);\r\n \r\n if (aprIndex !== -1) {\r\n $('#txt-apr').val(financeTermArray[aprIndex][\"APR\"] + \"%\");\r\n lowApr = financeTermArray[aprIndex][\"APR\"];\r\n lowTerm = $(\".term-btn-active\").text();\r\n } else {\r\n $('#txt-apr').val(dynamicAPR + \"%\");\r\n }\r\n } \r\n\r\n setOfferFieldValues(lowApr,\r\n lowTerm,\r\n thisModelData.offerDescription,\r\n thisModelData.offerDisclaimer,\r\n lowApr,\r\n lowTerm);\r\n thisModelData.maxTerm = ''; //user clicked on a term not excluded in multiple offers for this vehicle\r\n setOfferTitleCalcLayer();\r\n\r\n $('.term-btn').each(function() {\r\n var activeTermsBoxes = $(this).parent().find('.term-btn-active');\r\n\r\n if ($(this).text() == lowTerm && a == null && activeTermsBoxes.length == 0) {\r\n $(this).addClass('term-btn-active');\r\n }\r\n });\r\n\r\n } else {\r\n //result[\"Output\"][\"Results\"]\r\n //if first page load, get offers data from hidden value. Find the lowest term and populate the associated APR\r\n if (isInitialPageLoad) {\r\n isInitialPageLoad = false;\r\n var lowApr = 100,\r\n lowTerm = 100;\r\n var _apr, _lowTerm;\r\n var hasOffers_data = thisModelData.hasOffer;\r\n var hasOffersArr = JSON.parse(hasOffers_data);\r\n _apr =\r\n hasOffersArr.Special[0].PaymentTerms.FinanceTerms\r\n .SampleFinancePayment.SampleAPR;\r\n\r\n if (lowApr > _apr) {\r\n lowApr = _apr;\r\n }\r\n\r\n _lowTerm =\r\n hasOffersArr.Special[0].PaymentTerms.FinanceTerms\r\n .SampleFinancePayment.SampleTerm;\r\n if (_lowTerm < lowTerm) {\r\n lowTerm = _lowTerm;\r\n }\r\n\r\n // hasOffersArr.Special[0].PaymentTerms.FinanceTerms.FinanceTerm.forEach(function(item) {\r\n // _apr = parseFloat(item[\"APR\"]);\r\n // if (lowApr > _apr) {\r\n // lowApr = _apr;\r\n // }\r\n // _lowTerm = parseInt(item[\"TermMax\"]);\r\n // console.log('1763 _lowTerm: ',_lowTerm)\r\n // console.log('1764 lowTerm: ',lowTerm)\r\n\r\n // if (_lowTerm < lowTerm) {\r\n // lowTerm = _lowTerm;\r\n // }\r\n // });\r\n g_apr = lowApr;\r\n g_shortDescription = hasOffersArr.Special[0].SpecialShort;\r\n g_shortDisclaimer = result[\"Specials\"][\"FinanceSpecial\"][\"ShortDisclaimer\"] === '' ? g_shortDisclaimer : result[\"Specials\"][\"FinanceSpecial\"][\"ShortDisclaimer\"];\r\n g_term = lowTerm;\r\n } else {\r\n g_apr = result[\"Specials\"][\"FinanceSpecial\"][\"APR\"] == \"\" ? g_apr : result[\"Specials\"][\"FinanceSpecial\"][\"APR\"];\r\n g_shortDescription = result[\"Specials\"][\"FinanceSpecial\"][\"ShortDescription\"] === '' ? g_shortDescription : result[\"Specials\"][\"FinanceSpecial\"][\"ShortDescription\"];\r\n g_shortDisclaimer = result[\"Specials\"][\"FinanceSpecial\"][\"ShortDisclaimer\"] === '' ? g_shortDisclaimer : result[\"Specials\"][\"FinanceSpecial\"][\"ShortDisclaimer\"];\r\n g_term = result[\"Specials\"][\"FinanceSpecial\"][\"Term\"] === '' ? g_term : result[\"Specials\"][\"FinanceSpecial\"][\"Term\"];\r\n }\r\n // //console.log(\"calc monthly success: vehicle with Offer *****\");\r\n if (thisModelData.offerAprVdp != '') {\r\n setOfferFieldValues(g_apr, g_term, g_shortDescription, g_shortDisclaimer, thisModelData.offerAprVdp, thisModelData.offerTermVdp);\r\n } else {\r\n setOfferFieldValues(g_apr, g_term, g_shortDescription, g_shortDisclaimer, g_apr, g_term);\r\n }\r\n $('.term-btn').each(function(index, obj) {\r\n $(this).removeClass('term-btn term-btn-active').addClass('term-btn');\r\n if ($(this).text() == g_term) {\r\n // console.log('calculateMonthly Return - 1605', $(this));\r\n $(this).addClass('term-btn-active');\r\n }\r\n });\r\n }\r\n } else {\r\n var arr = result;\r\n //no specials, change values of apr and term from CalcAPI \r\n $('#txt-apr').val(arr[\"APR\"] + '%');\r\n $('#txt-apr').attr('data-api-apr', arr[\"APR\"] + '%');\r\n\r\n // console.log('calculateMonthly Return - 1615');\r\n $('.term-btn').each(function(index, obj) {\r\n // $(this).removeClass('term-btn term-btn-active').addClass('term-btn');\r\n if ($(this).text() == arr[\"Term\"] && term == '') {\r\n // console.log('calculateMonthly Return - 1603', $(this));\r\n $(this).addClass('term-btn-active');\r\n }\r\n });\r\n }\r\n // console.log(monthly);\r\n // console.log(\"success monthly total\");\r\n clearErrorDownpayment($('#txt-downpayment'))\r\n clearErrorTradein($('#txt-tradein'))\r\n // Add DTM after everything is loaded: InventoryDetails.cshtml\r\n addDtmDataLayertoVDP();\r\n // Tracking\r\n _satellite.track('vehdetails_page_ready');\r\n $('[name=amountmonthly]').html('$' + monthly); //calculate overlay layer header\r\n //console.log(\"monthly: \" + monthly);\r\n\r\n $('#monthlyPaymentAlert').html(`
ESTIMATED MONTHLY PAYMENT
$${monthly}*
${apr ? apr : result.APR}% APR up to ${term ? term : result.Term } months, ${Math.round((downpayment / msrp) * 100)}% down
`);\r\n vdpWrapper.attr('data-tap-offer-monthly', `$${monthly}`);\r\n vdpWrapper.attr('data-tap-offer-description', `${apr ? apr : result.APR}% APR up to ${term ? term : result.Term } months, ${Math.round((downpayment / msrp) * 100)}% down`);\r\n //if ($('#mpestAmout').html() == '') {\r\n // $('#monthlyPaymentAlert').html('
ESTIMATED MONTHLY PAYMENT
$' + monthly + '
i

10% down / 60 months
');\r\n //$('#mpestAmout').html('$' + monthly);\r\n //}\r\n \r\n },\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n // console.log(\"did not work\");\r\n // console.log(\"no monthly above\");\r\n // console.log(\"jqXHR:\", jqXHR);\r\n // console.log(\"textStatus:\", textStatus);\r\n // console.log(\"errorThrown:\", errorThrown);\r\n $('[name=amountmonthly]').html(\"0\");\r\n }\r\n });\r\n}\r\n\r\nfunction validateNumber(evt) {\r\n var theEvent = evt || window.event;\r\n var key = theEvent.keyCode || theEvent.which;\r\n key = String.fromCharCode(key);\r\n var regex = /[0-9\\b]|\\./;\r\n if (!regex.test(key)) {\r\n theEvent.returnValue = false;\r\n if (theEvent.preventDefault) theEvent.preventDefault();\r\n }\r\n}\r\n\r\nfunction validateCalcNumber(txt, evt) {\r\n var theEvent = evt || window.event;\r\n // console.log('validateCalcNumber:', txt.value)\r\n // console.log('validateCalc Length:', txt.value.split('.').length)\r\n if (evt.keyCode === 46 && txt.value.split('.').length == 2) {\r\n // console.log('validateCalcNumber inside:')\r\n theEvent.preventDefault();\r\n return false;\r\n }\r\n var key = theEvent.keyCode || theEvent.which;\r\n key = String.fromCharCode(key);\r\n var regex = /[0-9\\b]|\\./;\r\n if (!regex.test(key) || txt.value.split('.').length > 2) {\r\n theEvent.returnValue = false;\r\n if (theEvent.preventDefault) theEvent.preventDefault();\r\n }\r\n}\r\n\r\nfunction checkDownpayment(amt, totalprice, dpTxt, divId) {\r\n try {\r\n amt = amt.replace(/\\,/g,'');\r\n var x = amt;\r\n totalprice = parseInt(totalprice) - 5000; //car must be finance-able\r\n var tradeinValue = $('#txt-tradein').val().replace(/\\,/g,'');\r\n var retVal = false;\r\n var txtbox = $(dpTxt);\r\n if (x.length < 1 || parseInt(amt) === 0) {\r\n $(txtbox).val('0');\r\n $('[name=errdownpayment]').removeClass('errMessage').addClass('errMessage hidden');\r\n $(divId).attr('style', 'border:0px;');\r\n return false;\r\n }\r\n amt = parseInt(amt) + parseInt(tradeinValue);\r\n // console.log('checkDownpayment amt:', amt);\r\n // console.log('checkDownpayment totalprice:', totalprice);\r\n if ((amt > totalprice)) {\r\n $('[name=errdownpayment]').removeClass('errMessage hidden').addClass('errMessage');\r\n $(divId).attr('style', 'border:1px solid red');\r\n $('[name=errtradein]').removeClass('errMessage hidden').addClass('errMessage');\r\n $('#div-tradein').attr('style', 'border:1px solid red');\r\n return false;\r\n } else {\r\n $('[name=errdownpayment]').removeClass('errMessage').addClass('errMessage hidden');\r\n $(divId).attr('style', 'border:0px;');\r\n $('#div-tradein').attr('style', 'border:0px;');\r\n }\r\n return true;\r\n }\r\n catch (error) {\r\n // console.log('checkDownpayment error:', error);\r\n return false;\r\n }\r\n}\r\n\r\nfunction checkTradeinValue(amt, txtId, totalprice, divId) {\r\n amt = amt.replace(/\\,/g,'');\r\n var txtbox = $(txtId);\r\n totalprice = totalprice - 5000; //car must be finance-able\r\n if (amt.length < 1 || parseInt(amt) === 0) {\r\n $(txtbox).val('0');\r\n $(divId).attr('style', 'border:0px;');\r\n // console.log(\"checkTradeinValue return false 1:\");\r\n // return false;\r\n }\r\n var trade_amt = parseInt(amt);\r\n var downPmt = $('#txt-downpayment').val();\r\n var tot_cash_amt = parseInt(downPmt) + trade_amt;\r\n // console.log('checkTradeinValue:', txtbox.length);\r\n //comment below for now, until we get a message for issue on down+tradein > msrp, \r\n if ((tot_cash_amt > totalprice)) {\r\n // console.log(amt);\r\n $('[name=errtradein]').removeClass('errMessage hidden').addClass('errMessage');\r\n $('[name=errdownpayment]').removeClass('errMessage hidden').addClass('errMessage');\r\n $(divId).attr('style', 'border:1px solid red');\r\n $('#div-downpayment').attr('style', 'border:1px solid red');\r\n // console.log(\"checkTradeinValue return false 2:\");\r\n return false;\r\n } else {\r\n $('[name=errdownpayment]').removeClass('errMessage').addClass('errMessage hidden');\r\n $('[name=errtradein]').removeClass('errMessage').addClass('errMessage hidden');\r\n $(divId).attr('style', 'border:0px;');\r\n $('#div-downpayment').attr('style', 'border:0px;');\r\n }\r\n return true;\r\n}\r\n\r\nfunction checkAPR(amt, totalapr) {\r\n var x = amt;\r\n if (isNaN(x.replace(/\\%/g, ''))) {\r\n // console.log('checkTradeinValue isNaN:');\r\n $('#txt-apr').removeClass('text-input-apr').addClass('text-input-redbox');\r\n return false;\r\n }\r\n amt = parseFloat(amt);\r\n if (x.length > 0) {\r\n if (amt > 0 && amt < 1 && x.indexOf('0') == -1 && x.indexOf('%') == -1) {\r\n // console.log('checkAPR 1 :::', x.indexOf('0'));\r\n $('#txt-apr').val('0' + $('#txt-apr').val() + '%');\r\n } else if (amt > 0 && amt < 1 && x.indexOf('0') == -1 && x.indexOf('%') > -1) {\r\n // console.log('checkAPR 2:');\r\n $('#txt-apr').val('0' + $('#txt-apr').val());\r\n } else if (x.indexOf('%') == -1 && amt > 1) {\r\n // console.log('checkAPR 3:');\r\n $('#txt-apr').val($('#txt-apr').val() + '%');\r\n }\r\n }\r\n if (amt < 0) {\r\n $('[name=errapr]').removeClass('errMessage hidden').addClass('errMessage');\r\n $('#txt-apr').removeClass('text-input-apr').addClass('text-input-redbox');\r\n return false;\r\n } else {\r\n // console.log('amt > 0', amt)\r\n }\r\n if (amt > totalapr) {\r\n $('[name=errapr]').removeClass('errMessage hidden').addClass('errMessage');\r\n $('#txt-apr').removeClass('text-input-apr').addClass('text-input-redbox');\r\n return false;\r\n }\r\n $('#txt-apr').removeClass('text-input-redbox').addClass('text-input-apr');\r\n return true;\r\n}\r\n\r\nfunction clearErrorAPR(obj) {\r\n $('[name=errapr]').removeClass('errMessage').addClass('errMessage hidden');\r\n $('#txt-apr').removeClass('text-input-redbox').addClass('text-input-apr');\r\n var s = $(obj).val();\r\n // console.log(s);\r\n if (s.length > 0) {\r\n $('#txt-apr').val(s);\r\n }\r\n}\r\n\r\nfunction clearErrorDownpayment(obj) {\r\n $('[name=errdownpayment]').removeClass('errMessage').addClass('errMessage hidden');\r\n $('#txt-downpayment').removeClass('text-input-redbox').addClass('text-input-number');\r\n var s = $(obj).val();\r\n // console.log(s);\r\n}\r\n\r\nfunction clearErrorTradein(obj) {\r\n $('[name=errtradein]').removeClass('errMessage').addClass('errMessage hidden');\r\n $('#txt-tradein').removeClass('text-input-redbox').addClass('text-input-number');\r\n var s = $(obj).val();\r\n // console.log(s);\r\n}\r\n//#endregion\r\n//#region JS functions for Contact Dealer Overlay\r\nfunction phoneno(txt) {\r\n $(txt).keypress(function(e) {\r\n var a = [];\r\n var k = e.which;\r\n var i = 0;\r\n for (i = 48; i < 58; i++) {\r\n a.push(i);\r\n } if (!(a.indexOf(k) >= 0)) e.preventDefault();\r\n });\r\n}\r\n\r\nfunction showDivError(elem) {\r\n $(elem).removeClass('errMessage hidden').addClass('errMessage');\r\n}\r\n\r\nfunction highlightTextbox(txtctl) {\r\n $(txtctl).removeClass('input-textbox').addClass('input-textbox invalidtext');\r\n $('#submitdisclaimer').focus();\r\n // $('#privacypolicy').css('color', 'red');\r\n}\r\n\r\nfunction hideDivError(elem) {\r\n $(elem).removeClass('errMessage').addClass('errMessage hidden');\r\n}\r\n\r\nfunction noHighlightTextbox(txtctl) {\r\n $(txtctl).removeClass('input-textbox invalidtext').addClass('input-textbox');\r\n}\r\n\r\nfunction isValidEmailAddress(emailAddress) {\r\n var pattern = new RegExp(/^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/i);\r\n return pattern.test(emailAddress);\r\n};\r\n\r\nfunction isNumber(e) {\r\n return !isNaN(parseFloat(e)) && isFinite(e);\r\n}\r\n\r\nfunction checkForm() {\r\n var form_data = $('#contactform').serializeArray();\r\n var error_free = true;\r\n //zip validation, only allow min 5 digits\r\n if ($('#zip').val().length != 5) {\r\n $('[name=errzip]').removeClass('errMessage hidden').addClass('errMessage');\r\n showDivError('zip');\r\n highlightTextbox('zip');\r\n $('#zip').addClass('input-textbox invalidtext');\r\n error_free = false;\r\n } \r\n\r\n for (var input in form_data) {\r\n var ctlerr = '[name=err' + form_data[input]['name'] + ']';\r\n var fld = form_data[input]['name'];\r\n var txt = '#' + form_data[input]['name'];\r\n var element = $(ctlerr);\r\n var arr_ctrl1 = [];\r\n arr_ctrl1.push('firstname');\r\n arr_ctrl1.push('lastname');\r\n //arr_ctrl1.push('zip');\r\n var arr_ctrl2 = [];\r\n arr_ctrl2.push('email');\r\n arr_ctrl2.push('phone');\r\n arr_ctrl2.push('text');\r\n //console.log(\"arr_ctrl2: \"+ arr_ctrl2)\r\n //check firstname, lastname and zip\r\n if (jQuery.inArray(fld, arr_ctrl1) != -1) {\r\n if ($(txt).val() != null && $(txt).val() != '') {\r\n hideDivError(element);\r\n noHighlightTextbox(txt);\r\n } else {\r\n showDivError(element);\r\n highlightTextbox(txt);\r\n error_free = false;\r\n }\r\n }\r\n\r\n var ctlerr = '[name=errpreferred]';\r\n var element = $(ctlerr);\r\n var email = $('input[name=\"email\"]').val();\r\n var call = $('input[name=\"phone\"]').val();\r\n var txtmessage = $('input[name=\"text\"]').val();\r\n \r\n //check if any of preferred contacts is selected\r\n \r\n if (jQuery.inArray(fld, arr_ctrl2) != -1) {\r\n //validate email \r\n\r\n if ($('#em').hasClass(\"active\") && jQuery.trim(email).length <= 1) {\r\n showDivError(element);\r\n $('#errpreferred span').text('Enter your email');\r\n error_free = false;\r\n return false;\r\n }\r\n if ($('#em').hasClass(\"active\") && jQuery.trim(email).length > 1) {\r\n if (!isValidEmailAddress(email)) {\r\n showDivError(element);\r\n $('#errpreferred span').text('Enter a valid email');\r\n error_free = false;\r\n return false;\r\n }\r\n }\r\n \r\n //validate call number\r\n \r\n if ($('#ph').hasClass('active')){\r\n if(jQuery.trim(call).length < 1){\r\n showDivError(element);\r\n $('#errpreferred span').text('Enter your phone number');\r\n error_free = false;\r\n return false;\r\n }\r\n \r\n if (jQuery.trim(call).length < 10 || jQuery.trim(call).length > 10) {\r\n error_free = false;\r\n showDivError(element);\r\n $('#errpreferred span').text('Enter a valid phone number');\r\n return false;\r\n }\r\n if (jQuery.trim(call).length == 10) {\r\n if (!isNumber(call)) {\r\n showDivError(element);\r\n $('#errpreferred span').text('Enter a valid phone number');\r\n return false;\r\n }\r\n }\r\n } \r\n //validate text number\r\n if ($('#tx').hasClass('active')){\r\n if(jQuery.trim(txtmessage).length < 1){\r\n showDivError(element);\r\n $('#errpreferred span').text('Enter your phone number');\r\n error_free = false;\r\n return false;\r\n }\r\n \r\n if (jQuery.trim(txtmessage).length < 10 || jQuery.trim(txtmessage).length > 10) {\r\n error_free = false;\r\n showDivError(element);\r\n $('#errpreferred span').text('Enter a valid phone number');\r\n return false;\r\n }\r\n if (jQuery.trim(txtmessage).length == 10) {\r\n if (!isNumber(txtmessage)) {\r\n showDivError(element);\r\n $('#errpreferred span').text('Enter a valid phone number');\r\n return false;\r\n }\r\n }\r\n } \r\n \r\n // if ($('#ph').hasClass('active') && jQuery.trim(call).length < 1) {\r\n // showDivError(element);\r\n // $('#errpreferred span').text('Enter your phone number');\r\n // error_free = false;\r\n // return false;\r\n // }\r\n // if ($('#ph').hasClass('active') && jQuery.trim(call).length < 10) {\r\n // error_free = false;\r\n // showDivError(element);\r\n // $('#errpreferred span').text('Enter a valid phone number');\r\n // return false;\r\n // }\r\n // if ($('#ph').hasClass('active') && jQuery.trim(call).length == 10) {\r\n // if (!isNumber(call)) {\r\n // showDivError(element);\r\n // $('#errpreferred span').text('Enter a valid phone number');\r\n // return false;\r\n // }\r\n // }\r\n\r\n //validate text number\r\n // if ($('#tx').hasClass('active') && jQuery.trim(txtmessage).length < 1) {\r\n // showDivError(element);\r\n // $('#errpreferred span').text('Enter your phone number');\r\n // error_free = false;\r\n // return false;\r\n // }\r\n // if ($('#tx').hasClass('active') && jQuery.trim(txtmessage).length < 10) {\r\n // error_free = false;\r\n // showDivError(element);\r\n // $('#errpreferred span').text('Enter a valid phone number');\r\n // return false;\r\n // }\r\n // if ($('#tx').hasClass('active') && jQuery.trim(txtmessage).length == 10 && !jQuery.isNumeric(txtmessage)) {\r\n // error_free = false;\r\n // showDivError(element);\r\n // $('#errpreferred span').text('Enter a valid phone number');\r\n // return false;\r\n //}\r\n //if (!methodOfContactSelected()) {\r\n // error_free = false;\r\n // showDivError(element);\r\n // $('#errpreferred span').text('Select at least one method of contact');\r\n // return false;\r\n //}\r\n }\r\n }\r\n\r\n if ($('#submitdisclaimer').hasClass('unchecked')) {\r\n $('#submitdisclaimer').focus();\r\n $('#submitdisclaimer').css('border-color', 'red');\r\n //console.log('privacypolicy false ')\r\n return false;\r\n } else {\r\n $('#submitdisclaimer').css('border-color', '#000');\r\n // console.log('privacypolicy true ')\r\n }\r\n\r\n return error_free;\r\n}\r\n\r\nfunction methodOfContactSelected() {\r\n return $('#textmessagecontact').hasClass(\"checked\") || $('#callcontact').hasClass(\"checked\") || $('#emailcontact').hasClass(\"checked\");\r\n}\r\n\r\nfunction validateForm() {\r\n var isvalid = checkForm();\r\n if (!isvalid) {\r\n $(\"#retainFlag\").val(\"1\");\r\n $(\"#contactform\").data('submitted', false);\r\n } else {\r\n $(\"#retainFlag\").val(\"\");\r\n }\r\n}\r\n//#endregion\r\n//#region JS functions for Similar vehicles\r\nfunction addCommas(nStr) {\r\n nStr += '';\r\n var x = nStr.split('.');\r\n var x1 = x[0];\r\n var x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n}\r\n\r\nfunction getDealerObject(obj, key, val) {\r\n var objects = [];\r\n for (var i in obj) {\r\n if (!obj.hasOwnProperty(i)) continue;\r\n if (typeof obj[i] == 'object') {\r\n objects = objects.concat(getDealerObject(obj[i], key, val));\r\n } else if (i == key && obj[key] == val) {\r\n objects.push(obj);\r\n }\r\n }\r\n return objects;\r\n}\r\n\r\nfunction formatCurrency(n) {\r\n var money = n.toString().replace('.00', '')\r\n return '$' + addCommas(money);\r\n}\r\n\r\nfunction formatTradein(n) {\r\n var money = n.toString().replace('.00', '')\r\n return money;\r\n}\r\n\r\nfunction isEmpty(val) {\r\n return (val === undefined || val == null) ? true : false;\r\n}\r\n\r\nfunction getVehicleDealerObject() {\r\n //var url = 'http://acuracertified/api/inventory/similarvehicles/?zip=90404&modelYearStart=2014&modelYearEnd=2015&priceLimit=50000&mileageLimit=70000';\r\n //console.log('getVehicleDealerObject - loading...'); \r\n var _zip = thisModelData.DealerZip;\r\n var _yrstart = thisModelData.ModelYear;\r\n var _yrend = thisModelData.ModelYear;\r\n var _miles = parseInt(thisModelData.Mileage) + 10000;\r\n var _price = parseInt(thisModelData.DSRP) + 10000;\r\n var _modelgroupName = thisModelData.ModelGroupName;\r\n //console.log('getVehicleDealer ajax calling...');\r\n //console.log('zip:', _zip.substring(0, 5));\r\n //console.log('modelYearStart:', _yrstart);\r\n //console.log('modelYearEnd:', _yrend);\r\n //console.log('priceLimit:', _price);\r\n //console.log('mileageLimit: ', _miles);\r\n $.ajax({\r\n url: dataURL + '/api/inventory/similarvehicles',\r\n type: 'get',\r\n data: {\r\n zip: _zip.substring(0, 5),\r\n modelYearStart: _yrstart,\r\n modelYearEnd: _yrend,\r\n priceLimit: _price,\r\n mileageLimit: _miles,\r\n modelGroupName: _modelgroupName\r\n },\r\n dataType: \"json\",\r\n complete: function(data, status) {\r\n if (status == 200) {\r\n console.log('getVehicleDealerObject complete. no return result');\r\n }\r\n },\r\n success: function(result) {\r\n //console.log('ok ajx result - getVehicleDealerObject'); //Output - Results - MonthlyPayment \r\n //console.log(result);\r\n getRelatedVehiclesDealers(result);\r\n return result;\r\n },\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n // console.log(\"failed ajax call - getSimilarVehicles\");\r\n return null;\r\n }\r\n });\r\n}\r\n\r\n//here we open the tooltip of fair element\r\n// function openFairToolTip(vehicle) {\r\n// let fairElement = $('#fair-tooltip' + vehicle);\r\n\r\n// if (fairElement.hasClass('show-tooltip')) {\r\n// fairElement.removeClass('show-tooltip');\r\n// }\r\n// else {\r\n// fairElement.addClass('show-tooltip');\r\n// }\r\n// }\r\n\r\n// here we open the used tooltip\r\nfunction openUsedToolTip(e) {\r\n let usedElement = $('#tooltip-info-used');\r\n let idClicked = $(e.target).attr('id');\r\n\r\n if(idClicked === 'tooltip-info') {\r\n if (usedElement.hasClass('show-tooltip')) {\r\n usedElement.removeClass('show-tooltip');\r\n } \r\n else {\r\n usedElement.addClass('show-tooltip');\r\n }\r\n }\r\n}\r\n\r\nfunction openBuyOnlineToolTip(e) {\r\n let usedElement = $('#tooltip-info-buy-online');\r\n let idClicked = $(e.target).attr('id');\r\n\r\n if(idClicked === 'tooltip-buy-online') {\r\n if (usedElement.hasClass('show-tooltip')) {\r\n usedElement.removeClass('show-tooltip');\r\n } \r\n else {\r\n usedElement.addClass('show-tooltip');\r\n }\r\n }\r\n}\r\n\r\nfunction getRelatedVehiclesDealers(data) {\r\n let Models = data[\"Output\"][\"Results\"][\"Models\"];\r\n let similarVehicles = [];\r\n let similarVins = [];\r\n\r\n //console.log('getSimilarVehicles ', similarVehicles);\r\n if (!isEmpty(data)) {\r\n try {\r\n // console.log('getSimilarVehicles - HTML DOM working...');\r\n // console.log('getSimilarVehicles ', data);\r\n var totalCountSimilarVeh = parseInt(data[\"Output\"][\"Results\"][\"TotalRecordCount\"]);\r\n // var subscriptionAmount = $('[name=_SubscriptionAmount]').val();\r\n // console.log('getSimilarVehicles count:', totalCountSimilarVeh);\r\n if (totalCountSimilarVeh > 1) {\r\n //19UNC1B03HY000072\r\n var _similarveh_url = \"https://www.acura.com/assets\";\r\n let vehicleType = thisModelData.VehicleType;\r\n let cpoTier = thisModelData.CPOTier;\r\n ///// SIMILAR VEHICLE 1\r\n //LOOP THROUGH DATA MAKE SURE SIMILAR VEHICLE 1 DOESNT MATCH CURRENT VEHICLE IN VDP\r\n var veh_count = 0;\r\n let svehicle1 = $('#similar-vehicles-wrapper-1');\r\n let svehicle2 = $('#similar-vehicles-wrapper-2');\r\n let svehicle3 = $('#similar-vehicles-wrapper-3');\r\n for (let v = 0;v < Models['Model'].length; v++) {\r\n for (let vin =0;vin < Models['Model'][v]['ModelVINsOnSite']['VIN'].length;vin++) {\r\n let simVin = Models['Model'][v]['ModelVINsOnSite']['VIN'][vin]['VIN'];\r\n let simVehicleType = Models['Model'][v]['ModelVINsOnSite']['VIN'][vin]['VehicleType'];\r\n let simCPOTier = Models['Model'][v]['ModelVINsOnSite']['VIN'][vin]['CPOTier'];\r\n //console.log(v,thisModelData.VIN,simVin, simVehicleType ,simCPOTier, (simVin != thisModelData.VIN && simVehicleType == vehicleType && simCPOTier == cpoTier))\r\n if (simVin != thisModelData.VIN && simVehicleType == vehicleType && simCPOTier == cpoTier) {\r\n //check if vin is unique and different than vdp model\r\n if (similarVins.indexOf(Models['Model'][v]['ModelVINsOnSite']['VIN'][vin]['VIN'] < 0)) {\r\n //set modelimage\r\n var modelImage = thisModelData.VehicleImage;\r\n if (Models['Model'][v]['ModelVINsOnSite']['VIN'][vin][\"Photos\"] != null) {\r\n //get dealer photos\r\n if (Models['Model'][v]['ModelVINsOnSite']['VIN'][vin][\"Photos\"][\"Photos\"][\"Photo\"][0][\"#text\"] != null) {\r\n modelImage = Models['Model'][v]['ModelVINsOnSite']['VIN'][vin][\"Photos\"][\"Photos\"][\"Photo\"][0][\"#text\"]\r\n }\r\n //get stock photos IF dealer photos == NULL\r\n } else if (Models['Model'][v]['ModelVINsOnSite']['VIN'][vin][\"ModelStockPhotos\"] != null &&\r\n Models['Model'][v]['ModelVINsOnSite']['VIN'][vin][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"] != null &&\r\n Models['Model'][v]['ModelVINsOnSite']['VIN'][vin][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"][0][\"#text\"] != null) {\r\n \r\n modelImage = _similarveh_url + Models['Model'][v]['ModelVINsOnSite']['VIN'][vin][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"][0][\"#text\"]\r\n \r\n }\r\n else {\r\n //no photos avail. set to no image \r\n modelImage = thisModelData.PhotosNoImage;\r\n }\r\n //model dealer\r\n let dealerid = Models['Model'][v][\"@DealerId\"];\r\n let dealer = getDealerObject(data, 'DealerID', dealerid);\r\n let DealerName = dealer[0]['DealerName'];\r\n let dealerURL = dealer[0]['DealerURL'];\r\n let dealerDistance = dealer[0]['DealerDistance'];\r\n\r\n let buyOnline = Models['Model'][v]['ModelVINsOnSite']['VIN'][vin][\"BuyOnline\"]\r\n let buyOnlineData = (buyOnline == null || buyOnline == 'undefined') ? null : buyOnline;\r\n let simHasBuyOnline;\r\n if (buyOnlineData != null) { \r\n simHasBuyOnline = buyOnlineData['@OnlineRetailingPreferredVIN'];\r\n if (buyOnlineData['@OnlineRetailingPreferredVIN']) {\r\n svehicle1.attr('data-tap-dealer-options','buyonline'); \r\n }\r\n } else {\r\n simHasBuyOnline = 'false';\r\n }\r\n\r\n let similarModel = {\r\n vin: Models['Model'][v]['ModelVINsOnSite']['VIN'][vin]['VIN'],\r\n buyonline: buyOnlineData,\r\n vehicleType : Models['Model'][v]['ModelVINsOnSite']['VIN'][vin][\"VehicleType\"],\r\n cpoTier: Models['Model'][v]['ModelVINsOnSite']['VIN'][vin]['CPOTier'],\r\n dealerID: dealerid,\r\n dealerName: DealerName,\r\n dealerDistance: dealerDistance,\r\n dealerURL: dealerURL,\r\n simHasBuyOnline: simHasBuyOnline,\r\n modelYear: Models['Model'][v]['ModelYear'],\r\n modelGroup : Models['Model'][v]['ModelGroupName'],\r\n modelPackage : Models['Model'][v]['ModelMarketingName'],\r\n modelTrim: Models['Model'][v]['ModelTrim'], \r\n modelPrice : Models['Model'][v]['ModelVINsOnSite']['VIN'][vin][\"DSRP\"],\r\n modelMiles : Models['Model'][v]['ModelVINsOnSite']['VIN'][vin][\"Mileage\"],\r\n modelExteriorColor:Models['Model'][v]['ModelVINsOnSite']['VIN'][vin]['ModelExteriorColorName'],\r\n modelInteriorColor:Models['Model'][v]['ModelVINsOnSite']['VIN'][vin]['ModelInteriorColorName'],\r\n modeldealerid: Models['Model'][v][\"@DealerId\"],\r\n modelImage : modelImage\r\n }\r\n similarVins.push(simVin);\r\n similarVehicles.push(similarModel);\r\n }\r\n }\r\n \r\n }\r\n }\r\n if (similarVehicles.length > 0) {\r\n let totalCount = similarVehicles.length\r\n if (similarVehicles.length > 3) {\r\n totalCount = 3;\r\n }\r\n let thisVehicle;\r\n let contactBtn\r\n //console.log('totalCount',totalCount)\r\n for (let s = 0; s< totalCount; s++) {\r\n let elementIndex = s+1;\r\n switch (elementIndex) {\r\n case 1:\r\n thisVehicle = $('#similar-vehicles-wrapper-1');\r\n contactBtn = $('#contact-dealer-button-bottom-left');\r\n break;\r\n case 2: \r\n thisVehicle = $('#similar-vehicles-wrapper-2');\r\n contactBtn = $('#contact-dealer-button-bottom-middle');\r\n break;\r\n case 3:\r\n thisVehicle = $('#similar-vehicles-wrapper-3');\r\n contactBtn = $('#contact-dealer-button-bottom-right');\r\n break;\r\n }\r\n\r\n //console.log('element ',thisVehicle)\r\n //console.log('models',similarVehicles);\r\n thisVehicle.attr('data-tap-element-id','similar-vehicle');\r\n if (similarVehicles[s].simHasBuyOnline != 'false') {\r\n //console.log('buying online', similarVehicles[s].simHasBuyOnline)\r\n thisVehicle.attr('data-tap-dealer-options','buyonline'); \r\n }\r\n thisVehicle.attr('data-tap-model-name',similarVehicles[s].modelGroup);\r\n thisVehicle.attr('data-tap-model-year',similarVehicles[s].modelYear);\r\n thisVehicle.attr('data-tap-model-trim',similarVehicles[s].modelTrim);\r\n thisVehicle.attr('data-tap-model-mspr',similarVehicles[s].modelPrice);\r\n thisVehicle.attr('data-tap-model-exterior-color',similarVehicles[s].modelExteriorColor);\r\n thisVehicle.attr('data-tap-model-interior-color',similarVehicles[s].modelInteriorColor);\r\n let ProgramID = (similarVehicles[s].vehicleType != 'U') ? similarVehicles[s].cpoTier === 'BT' : 'presicion_used' ? 'precision_certified':'used';\r\n thisVehicle.attr('data-tap-model-program-id',ProgramID);\r\n thisVehicle.attr('data-tap-dealer-id', similarVehicles[s].dealerID);\r\n thisVehicle.attr('data-tap-dealer-name',similarVehicles[s].dealerName);\r\n thisVehicle.attr('data-tap-dealer-distance',similarVehicles[s].dealerDistance);\r\n thisVehicle.removeClass('item similar-vehicle bg-light-grey hidden').addClass('item similar-vehicle bg-light-grey');\r\n let type = vehicleType !== 'U' ? cpoTier === 'BT' ? 'precision-used' : 'precision' : 'used';\r\n $('#vehicle-type-'+elementIndex).removeClass('vehicle-precision-type hidden').addClass(`vehicle-${type}-type`).html(`${similarVehicles[s].vehicleType !== 'U' ? similarVehicles[s].cpoTier === 'BT' ? 'Precision Used' : 'Precision Certified' : 'Used Vehicle'}`);\r\n\r\n contactBtn.attr(\"href\", window.acpv.createJumpLink(\"/shopping/inventory/vehicle?vinSlug=\" + similarVehicles[s].vin))\r\n //images change\r\n $('#similar-vehicles-img-'+elementIndex).html(\"\")\r\n //copy left change\r\n $('#similar-vehicles-copyleft-'+elementIndex).html('

' + similarVehicles[s].modelYear + ' ' + similarVehicles[s].modelGroup + '

' + (similarVehicles[s].modelPackage === null ? '

PACKAGE' : similarVehicles[s].modelPackage.replace(\"with\", \"\")) + '

' + addCommas(similarVehicles[s].modelMiles) + ' miles

'+ similarVehicles[s].dealerName +'

')\r\n //copy right change\r\n $('#similar-vehicles-copright-'+elementIndex).html('

' + formatCurrency(similarVehicles[s].modelPrice) + '

')\r\n }\r\n\r\n } else {\r\n $('#similarvehicles').css(\"display\", \"none\");\r\n }\r\n\r\n console.clear;\r\n\r\n\r\n\r\n // for (var vehicle in data[\"Output\"][\"Results\"][\"Models\"][\"Model\"]) {\r\n // var _1similarmodelvin = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"VIN\"]\r\n // var _1similarmodelvehicle_type = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"VehicleType\"]\r\n // var _1similarmodelcpotier = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"CPOTier\"]\r\n // console.log(thisModelData.VIN, _1similarmodelvin, _1similarmodelcpotier , cpoTier, (thisModelData.VIN != _1similarmodelvin && _1similarmodelvehicle_type == vehicleType && _1similarmodelcpotier == cpoTier ))\r\n\r\n \r\n // if (thisModelData.VIN != _1similarmodelvin && _1similarmodelvehicle_type == vehicleType && _1similarmodelcpotier == cpoTier ) {\r\n // var _1similarmodelYear = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelYear\"]\r\n // var _1similarmodelgroup = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelGroupName\"]\r\n // var _1similarmodelpackage = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelMarketingName\"]\r\n // var _1similarmodelprice = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"DSRP\"]\r\n // var _1similarmodelmiles = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Mileage\"]\r\n // var _1similarmodeldealerid = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"@DealerId\"]\r\n // // var _1vehicleamount = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Subscription\"][\"@Amount\"]\r\n // // var _1vehicleurl= data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Subscription\"][\"#text\"]\r\n // var _1similarmodelimage = thisModelData.VehicleImage;\r\n // if (data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Photos\"] != null) {\r\n // //get dealer photos\r\n // if (data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Photos\"][\"Photos\"][\"Photo\"][0][\"#text\"] != null) {\r\n // // console.log('similar 1');\r\n // _1similarmodelimage = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Photos\"][\"Photos\"][\"Photo\"][0][\"#text\"]\r\n // }\r\n // //get stock photos IF dealer photos == NULL\r\n // } else if (data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"] != null &&\r\n // data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"] != null &&\r\n // data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"][0][\"#text\"] != null) {\r\n\r\n // _1similarmodelimage = _similarveh_url + data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"][0][\"#text\"]\r\n \r\n // }\r\n // else {\r\n // //no photos avail. set to no image \r\n // _1similarmodelimage = thisModelData.PhotosNoImage;\r\n // }\r\n\r\n // //for tap\r\n // //set vdp wrapper tap data\r\n // svehicle1.attr('data-tap-element-id','similar-vehicle');\r\n // let simvin = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0]\r\n // let buyOnlineData = (simvin[\"BuyOnline\"] == null || simvin[\"BuyOnline\"] == 'undefined') ? null : simvin[\"BuyOnline\"];\r\n // let simHasBuyOnline;\r\n // if (buyOnlineData != null) { \r\n // simHasBuyOnline = buyOnlineData['@OnlineRetailingPreferredVIN'];\r\n // if (buyOnlineData['@OnlineRetailingPreferredVIN']) {\r\n // svehicle1.attr('data-tap-dealer-options','buyonline'); \r\n // }\r\n // }\r\n // svehicle1.attr('data-tap-model-name',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelGroupName\"]);\r\n // svehicle1.attr('data-tap-model-year',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelYear\"]);\r\n // svehicle1.attr('data-tap-model-trim',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelTrim\"]);\r\n // svehicle1.attr('data-tap-model-mspr',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"DSRP\"]);\r\n // svehicle1.attr('data-tap-model-exterior-color',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelExteriorColorName\"]);\r\n // svehicle1.attr('data-tap-model-interior-color',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelInteriorColorName\"]);\r\n // let ProgramID = (vehicleType != 'U') ? cpoTier === 'BT' : 'presicion_used' ? 'precision_certified':'used';\r\n // svehicle1.attr('data-tap-model-program-id',ProgramID);\r\n // // svehicle1.attr('data-tap-offer-type','finance');\r\n // // svehicle1.attr('data-tap-offer-monthly','');\r\n // // svehicle1.attr('data-tap-offer-term',thisModelData.SampleTerm);\r\n // // svehicle1.attr('data-tap-offer-description',thisModelData.Specials.SpecialDescription);\r\n // // svehicle1.attr('data-tap-offer-availability',thisModelData.Specials.EndDate);\r\n // // svehicle1.attr('data-tap-offer-id',thisModelData.Specials.SpecialID);\r\n // //end tap\r\n\r\n // break;\r\n // }\r\n // veh_count = veh_count + 1\r\n // }\r\n // var dealer = getDealerObject(data, 'DealerID', _1similarmodeldealerid);\r\n // var _1similarmodeldealername = dealer[0]['DealerName']\r\n // var _1dealerurl = dealer[0]['DealerURL']\r\n\r\n // //tap dealer \r\n\r\n // svehicle1.attr('data-tap-dealer-id', dealer[0]['DealerID']);\r\n // svehicle1.attr('data-tap-dealer-name',dealer[0]['DealerName']);\r\n // svehicle1.attr('data-tap-dealer-distance',dealer[0]['DealerDistance']);\r\n //end\r\n\r\n ///// SIMILAR VEHICLE 2\r\n //LOOP THROUGH DATA, MAKE SURE SIMILAR VEHICLE 2 DOESNT MATCH CURRENT VEHICLE IN VDP\r\n // veh_count = 0;\r\n // for (var vehicle in data[\"Output\"][\"Results\"][\"Models\"][\"Model\"]) {\r\n // var _2similarmodelvin = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"VIN\"]\r\n // var _2similarmodelvehicle_type = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"VehicleType\"]\r\n // var _2similarmodelcpotier = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"CPOTier\"]\r\n // if ((thisModelData.VIN != _2similarmodelvin) && (_1similarmodelvin != _2similarmodelvin) && (_2similarmodelvehicle_type == vehicleType) && _2similarmodelcpotier == cpoTier) {\r\n // //console.clear;\r\n // //console.log('[name=_vin] :', $('[name=_vin]').val());\r\n // //console.log('_1similarmodelvin :', _1similarmodelvin);\r\n // //console.log('_2similarmodelvin :', _2similarmodelvin);\r\n // var _2similarmodelYear = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelYear\"]\r\n // var _2similarmodelgroup = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelGroupName\"]\r\n // var _2similarmodelpackage = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelMarketingName\"]\r\n // var _2similarmodelprice = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"DSRP\"]\r\n // var _2similarmodelmiles = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Mileage\"]\r\n // var _2similarmodeldealerid = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"@DealerId\"]\r\n // // var _2vehicleamount = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Subscription\"][\"@Amount\"]\r\n // // var _2vehicleurl= data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Subscription\"][\"#text\"]\r\n // var _2similarmodelimage = thisModelData.VehicleImage;\r\n // if (data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Photos\"] != null) {\r\n // //get dealer photos\r\n // if (data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Photos\"][\"Photos\"][\"Photo\"][0][\"#text\"] != null) {\r\n // _2similarmodelimage = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Photos\"][\"Photos\"][\"Photo\"][0][\"#text\"]\r\n // }\r\n // //get stock photos\r\n // } else if (data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"] != null &&\r\n // data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"] != null &&\r\n // data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"][0][\"#text\"] != null) {\r\n // _2similarmodelimage = _similarveh_url + data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"][0][\"#text\"]\r\n // } else {\r\n // //no photos avail. set to no image \r\n // _2similarmodelimage = thisModelData.PhotosNoImage;\r\n // }\r\n\r\n // //for tap\r\n // //set vdp wrapper tap data\r\n // svehicle2.attr('data-tap-element-id','similar-vehicle');\r\n // let simvin = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0]\r\n // let buyOnlineData = (simvin[\"BuyOnline\"] == null || simvin[\"BuyOnline\"] == 'undefined') ? null : simvin[\"BuyOnline\"];\r\n // let simHasBuyOnline;\r\n // if (buyOnlineData != null) { \r\n // simHasBuyOnline = buyOnlineData['@OnlineRetailingPreferredVIN'];\r\n // if (buyOnlineData['@OnlineRetailingPreferredVIN']) {\r\n // svehicle2.attr('data-tap-dealer-options','buyonline'); \r\n // }\r\n // }\r\n // svehicle2.attr('data-tap-model-name',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelGroupName\"]);\r\n // svehicle2.attr('data-tap-model-year',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelYear\"]);\r\n // svehicle2.attr('data-tap-model-trim',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelTrim\"]);\r\n // svehicle2.attr('data-tap-model-mspr',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"DSRP\"]);\r\n // svehicle2.attr('data-tap-model-exterior-color',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelExteriorColorName\"]);\r\n // svehicle2.attr('data-tap-model-interior-color',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelInteriorColorName\"]);\r\n // let ProgramID = (vehicleType != 'U') ? cpoTier === 'BT' ? 'precision_used' : 'precision_certified':'used';\r\n // svehicle2.attr('data-tap-model-program-id',ProgramID);\r\n // // svehicle1.attr('data-tap-offer-type','finance');\r\n // // svehicle1.attr('data-tap-offer-monthly','');\r\n // // svehicle1.attr('data-tap-offer-term',thisModelData.SampleTerm);\r\n // // svehicle1.attr('data-tap-offer-description',thisModelData.Specials.SpecialDescription);\r\n // // svehicle1.attr('data-tap-offer-availability',thisModelData.Specials.EndDate);\r\n // // svehicle1.attr('data-tap-offer-id',thisModelData.Specials.SpecialID);\r\n // //end tap\r\n\r\n // break;\r\n // }\r\n // veh_count = veh_count + 1\r\n // }\r\n // dealer = getDealerObject(data, 'DealerID', _2similarmodeldealerid);\r\n // var _2similarmodeldealername = dealer[0]['DealerName']\r\n // var _2dealerurl = dealer[0]['DealerURL']\r\n\r\n\r\n // //tap dealer \r\n // svehicle2.attr('data-tap-dealer-id', dealer[0]['DealerID']);\r\n // svehicle2.attr('data-tap-dealer-name',dealer[0]['DealerName']);\r\n // svehicle2.attr('data-tap-dealer-distance',dealer[0]['DealerDistance']);\r\n // //end \r\n \r\n ///// SIMILAR VEHICLE 3\r\n //LOOP THROUGH DATA, MAKE SURE SIMILAR VEHICLE 3 DOESNT MATCH CURRENT VEHICLE IN VDP\r\n // veh_count = 0;\r\n // for (var vehicle in data[\"Output\"][\"Results\"][\"Models\"][\"Model\"]) {\r\n // var _3similarmodelvin = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"VIN\"]\r\n // var _3similarmodelvehicle_type = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"VehicleType\"]\r\n // var _3similarmodelcpotier = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"CPOTier\"]\r\n // if ((thisModelData.VIN != _3similarmodelvin) && (_3similarmodelvin != _2similarmodelvin) && (_3similarmodelvin != _1similarmodelvin) && (_3similarmodelvehicle_type == vehicleType) && _3similarmodelcpotier == cpoTier) {\r\n // console.clear;\r\n // //console.log('[name=_vin] :', $('[name=_vin]').val());\r\n // //console.log('_1similarmodelvin :', _1similarmodelvin);\r\n // //console.log('_2similarmodelvin :', _2similarmodelvin);\r\n // //console.log('_3similarmodelvin :', _3similarmodelvin);\r\n // var _3similarmodelYear = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelYear\"]\r\n // var _3similarmodelgroup = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelGroupName\"]\r\n // var _3similarmodelpackage = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelMarketingName\"]\r\n // var _3similarmodelprice = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"DSRP\"]\r\n // var _3similarmodelmiles = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Mileage\"]\r\n // var _3similarmodeldealerid = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"@DealerId\"]\r\n // // var _3vehicleamount = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Subscription\"][\"@Amount\"]\r\n // // var _3vehicleurl= data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Subscription\"][\"#text\"]\r\n // var _3similarmodelimage = thisModelData.VehicleImage;\r\n // if (data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Photos\"] != null) {\r\n // //get dealer photos \r\n // if (data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Photos\"][\"Photos\"][\"Photo\"][0][\"#text\"] != null) {\r\n // // console.log('------------------------ getSimilarVehicles get dealer photos ----------------------------------------');\r\n // _3similarmodelimage = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"Photos\"][\"Photos\"][\"Photo\"][0][\"#text\"]\r\n // }\r\n // //get stock photos if dealer photos == null\r\n // } else if (data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"] != null &&\r\n // data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"] != null &&\r\n // data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"][0][\"#text\"] != null) {\r\n // // console.log('------------------------ getSimilarVehicles get dealer photos 3----------------------------------------');\r\n // _3similarmodelimage = _similarveh_url + data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"ModelStockPhotos\"][\"Photos\"][0][\"Photo\"][0][\"#text\"]\r\n // } else {\r\n // //no photos avail. set to no image \r\n // // console.log('------------------------ getSimilarVehicles get dealer photos NULL----------------------------------------');\r\n // _3similarmodelimage = thisModelData.PhotosNoImage;\r\n // }\r\n\r\n // //for tap\r\n // //set vdp wrapper tap data\r\n // svehicle3.attr('data-tap-element-id','similar-vehicle');\r\n // let simvin = data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0]\r\n // let buyOnlineData = (simvin[\"BuyOnline\"] == null || simvin[\"BuyOnline\"] == 'undefined') ? null : simvin[\"BuyOnline\"];\r\n // let simHasBuyOnline;\r\n // if (buyOnlineData != null) { \r\n // simHasBuyOnline = buyOnlineData['@OnlineRetailingPreferredVIN'];\r\n // if (buyOnlineData['@OnlineRetailingPreferredVIN']) {\r\n // svehicle3.attr('data-tap-dealer-options','buyonline'); \r\n // }\r\n // }\r\n // svehicle3.attr('data-tap-model-name',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelGroupName\"]);\r\n // svehicle3.attr('data-tap-model-year',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelYear\"]);\r\n // svehicle3.attr('data-tap-model-trim',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelTrim\"]);\r\n // svehicle3.attr('data-tap-model-mspr',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelVINsOnSite\"][\"VIN\"][0][\"DSRP\"]);\r\n // svehicle3.attr('data-tap-model-exterior-color',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelExteriorColorName\"]);\r\n // svehicle3.attr('data-tap-model-interior-color',data[\"Output\"][\"Results\"][\"Models\"][\"Model\"][veh_count][\"ModelInteriorColorName\"]);\r\n // let ProgramID = (vehicleType != 'U') ? cpoTier === 'BT' ? 'precision_used' : 'precision_certified':'used';\r\n // svehicle3.attr('data-tap-model-program-id',ProgramID);\r\n // // svehicle1.attr('data-tap-offer-type','finance');\r\n // // svehicle1.attr('data-tap-offer-monthly','');\r\n // // svehicle1.attr('data-tap-offer-term',thisModelData.SampleTerm);\r\n // // svehicle1.attr('data-tap-offer-description',thisModelData.Specials.SpecialDescription);\r\n // // svehicle1.attr('data-tap-offer-availability',thisModelData.Specials.EndDate);\r\n // // svehicle1.attr('data-tap-offer-id',thisModelData.Specials.SpecialID);\r\n // //end tap\r\n\r\n // break;\r\n // }\r\n // veh_count = veh_count + 1\r\n // }\r\n // // console.log('getSimilarVehicles - 3...', _3similarmodeldealerid);\r\n // dealer = getDealerObject(data, 'DealerID', _3similarmodeldealerid);\r\n // var _3similarmodeldealername = dealer[0]['DealerName']\r\n // var _3dealerurl = dealer[0]['DealerURL']\r\n\r\n // //tap dealer \r\n // svehicle3.attr('data-tap-dealer-id', dealer[0]['DealerID']);\r\n // svehicle3.attr('data-tap-dealer-name',dealer[0]['DealerName']);\r\n // svehicle3.attr('data-tap-dealer-distance',dealer[0]['DealerDistance']);\r\n // //end\r\n\r\n //console.clear;\r\n\r\n //console.log('_1similarmodelYear: ', _1similarmodelYear);\r\n //console.log('_1similarmodelgroup: ', _1similarmodelgroup);\r\n //console.log('_1similarmodelpackage:', _1similarmodelpackage);\r\n //console.log('_1similarmodelprice: ', _1similarmodelprice);\r\n //console.log('_1similarmodelmiles:', _1similarmodelmiles);\r\n //console.log('_1similarmodeldealerid', _1similarmodeldealerid);\r\n //console.log(' _1similarmodelvin:', _1similarmodelvin);\r\n //console.log(' _3similarmodelimage:', _3similarmodelimage);\r\n //console.log('--------------------------------------------------------------------------'); \r\n //#region hack DOM to show similar vehicles\r\n // $('#similar-vehicles-wrapper-1').removeClass('item similar-vehicle bg-light-grey hidden').addClass('item similar-vehicle bg-light-grey');\r\n // $('#similar-vehicles-wrapper-2').removeClass('item similar-vehicle bg-light-grey hidden').addClass('item similar-vehicle bg-light-grey');\r\n // $('#similar-vehicles-wrapper-3').removeClass('item similar-vehicle bg-light-grey hidden').addClass('item similar-vehicle bg-light-grey');\r\n // Verify type of car\r\n // let type = vehicleType !== 'U' ? cpoTier === 'BT' ? 'precision-used' : 'precision' : 'used';\r\n // $('#vehicle-type-1').removeClass('vehicle-precision-type hidden').addClass(`vehicle-${type}-type`).html(`${_1similarmodelvehicle_type !== 'U' ? _1similarmodelcpotier === 'BT' ? 'Precision Used' : 'Precision Certified' : 'Used Vehicle'}`);\r\n // $('#vehicle-type-2').removeClass('vehicle-precision-type hidden').addClass(`vehicle-${type}-type`).html(`${_2similarmodelvehicle_type !== 'U' ? _2similarmodelcpotier === 'BT' ? 'Precision Used' : 'Precision Certified' : 'Used Vehicle'}`);\r\n // $('#vehicle-type-3').removeClass('vehicle-precision-type hidden').addClass(`vehicle-${type}-type`).html(`${_3similarmodelvehicle_type !== 'U' ? _3similarmodelcpotier === 'BT' ? 'Precision Used' : 'Precision Certified' : 'Used Vehicle'}`);\r\n // // Add fair price if it has\r\n // if(_1vehicleamount !== ''){\r\n // $('#similar-vehicles-wrapper-1').addClass('vehicle-fair');\r\n // $('#btn-detail-vehicle-1').addClass('btn-fair');\r\n // $('#show-fair-vehicle-1').removeClass('hidden');\r\n // $('#url-vehicle-1').attr(\"href\", _1vehicleurl);\r\n // $('#_1vehicle_fair_amount').html(`$${parseInt(_1vehicleamount)}`);\r\n // }\r\n\r\n // if(_2vehicleamount !== ''){\r\n // $('#similar-vehicles-wrapper-2').addClass('vehicle-fair');\r\n // $('#btn-detail-vehicle-2').addClass('btn-fair');\r\n // $('#show-fair-vehicle-2').removeClass('hidden');\r\n // $('#url-vehicle-2').attr(\"href\", _2vehicleurl);\r\n // $('#_2vehicle_fair_amount').html(`$${parseInt(_2vehicleamount)}`);\r\n // }\r\n\r\n // if(_3vehicleamount !== ''){\r\n // $('#similar-vehicles-wrapper-3').addClass('vehicle-fair');\r\n // $('#btn-detail-vehicle-3').addClass('btn-fair');\r\n // $('#show-fair-vehicle-3').removeClass('hidden');\r\n // $('#url-vehicle-3').attr(\"href\", _3vehicleurl);\r\n // $('#_3vehicle_fair_amount').html(`$${parseInt(_3vehicleamount)}`);\r\n // }\r\n //href links\r\n // $('#contact-dealer-button-bottom-left').attr(\"href\", \"/vehicle-details?vin=\" + _1similarmodelvin)\r\n // $('#contact-dealer-button-bottom-middle').attr(\"href\", \"/vehicle-details?vin=\" + _2similarmodelvin)\r\n // $('#contact-dealer-button-bottom-right').attr(\"href\", \"/vehicle-details?vin=\" + _3similarmodelvin)\r\n // //images change\r\n // $('#similar-vehicles-img-1').html(\"\")\r\n // $('#similar-vehicles-img-2').html(\"\")\r\n // $('#similar-vehicles-img-3').html(\"\")\r\n // //copy left change\r\n // $('#similar-vehicles-copyleft-1').html('

' + _1similarmodelYear + ' ' + _1similarmodelgroup + '

' + (_1similarmodelpackage === null ? '

PACKAGE' : _1similarmodelpackage.replace(\"with\", \"\")) + '

' + addCommas(_1similarmodelmiles) + ' miles

'+ _1similarmodeldealername +'

')\r\n // $('#similar-vehicles-copyleft-2').html('

' + _2similarmodelYear + ' ' + _2similarmodelgroup + '

' + (_2similarmodelpackage === null ? '

PACKAGE' : _2similarmodelpackage.replace(\"with\", \"\")) + '

' + addCommas(_2similarmodelmiles) + ' miles

'+ _2similarmodeldealername +'

')\r\n // $('#similar-vehicles-copyleft-3').html('

' + _3similarmodelYear + ' ' + _3similarmodelgroup + '

' + (_3similarmodelpackage === null ? '

PACKAGE' : _3similarmodelpackage.replace(\"with\", \"\")) + '

' + addCommas(_3similarmodelmiles) + ' miles

'+ _3similarmodeldealername +'

')\r\n // //copy right change\r\n // //$('#similar-vehicles-copright-1').html('

' + formatCurrency(_1similarmodelprice) + '

OFFER
AVAILABLE

')\r\n // //$('#similar-vehicles-copright-2').html('

' + formatCurrency(_2similarmodelprice) + '

OFFER
AVAILABLE

')\r\n // //$('#similar-vehicles-copright-3').html('

' + formatCurrency(_3similarmodelprice) + '

OFFER
AVAILABLE

')\r\n // $('#similar-vehicles-copright-1').html('

' + formatCurrency(_1similarmodelprice) + '

')\r\n // $('#similar-vehicles-copright-2').html('

' + formatCurrency(_2similarmodelprice) + '

')\r\n // $('#similar-vehicles-copright-3').html('

' + formatCurrency(_3similarmodelprice) + '

')\r\n\r\n // if((_1similarmodelvehicle_type === '' || _1similarmodelvehicle_type === null) && (_2similarmodelvehicle_type === '' || _2similarmodelvehicle_type === null) && \r\n // (_3similarmodelvehicle_type === '' || _3similarmodelvehicle_type === null)) {\r\n // //$('#similarvehicles').css(\"display\", \"none\");\r\n // }\r\n\r\n //#endregion\r\n } else {\r\n $('#similarvehicles, .similar-vehicles-wrapper').addClass('hidden');\r\n }\r\n //load all Dealer info in the VDP \r\n // console.log('getSimilarVehicles - done...');\r\n\r\n }\r\n catch (err) {\r\n console.log('err similar vehicles:', err)\r\n $('.spinner').hide();\r\n $('#similarvehicles').css(\"display\", \"none\");\r\n }\r\n }\r\n}\r\n\r\n\r\n//#endregion\r\n"]}