{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap fb1fffea17ebbc30ff66","webpack:///./jsSrc/product/gap2/GAP2.js","webpack:///./jsSrc/product/PolicyAdminProduct.js","webpack:///./jsSrc/product/ag3/AG3.js","webpack:///./jsSrc/product/isp/ISP.js","webpack:///./jsSrc/product/lpt/LPT.js","webpack:///./jsSrc/main.js","webpack:///./jsSrc/product/gap2/GAP2EContractViewModel.js","webpack:///./jsSrc/product/gap2/GAP2MenuViewModel.js","webpack:///./jsSrc/QuoteController.js","webpack:///./jsSrc/ConsentRecord.js","webpack:///./jsSrc/ApplicationFormConsentViewModel.js","webpack:///./jsSrc/product/gap2/GAP2CalculatorViewModel.js","webpack:///./jsSrc/product/ag3/AG3EContractViewModel.js","webpack:///./jsSrc/product/ag3/AG3MenuViewModel.js","webpack:///./jsSrc/product/ag3/AG3CalculatorViewModel.js","webpack:///./jsSrc/product/isp/ISPMenuViewModel.js","webpack:///./jsSrc/product/lpt/LPTEContractViewModel.js","webpack:///./jsSrc/AfterLoginPopup.js"],"names":["PolicyAdminProduct","require","GAP2","constructor","name","_FinanceAmount","_InterestRate","_FinanceTerm","_ProductID","getProductID","availablePaymentFrequency","_PaymentIndex","isNewVehicle","ko","observable","coverageVisible","isSameProduct","otherProduct","dataChangeNotice","eventid","invalidatePriceCost","ProductOption","_options","DataSetID","refreshRate","_dealID","_dealProvince","_language","_Vin","_Year","_Maker","_Model","_currentOdometer","_EffectiveDate","_FinanceType","_VehicleType","products","push","jsonString_options","JSON","stringify","_getRate","parseRateData","data","ret","Status","console","log","description","rates","Data","ratingDetails","i","rate","length","hasNoValue","requestID","_SalePrice","parseFloat","termRates","termRate","suggestedRetailCost","toFixed","_Cost","dealerCost","coverageId","_QuoteReffNumber","quoteReffNumber","_ValidPrice","module","exports","ID","populatePriceCost","price","cost","_self","_url","String","format","dave","global","independentroot","ajaxSpinner","ajaxLoader","$","post","dealer","currentdealer","dealerid","options","done","toastmessage","text","type","locale","Description","AG3","coverageTypeId","coverageType","seletedterm","seletedKilometers","termMonthRange","termOdometerRange","apiViewModel","apiRespRates","apiFormName","apiDealerCost","apiSalePrice","dtSelection","dtAmountSelection","lcSelection","observableArray","extraCostSelection","losscodesVisible","losscodesPlusVisible","coverageNameSelected","populateFields","containerId","selectedVal","lossCodes","container","emptycontainer","innerHTML","resArr","removeAll","coverageTypeArr","ul","document","createElement","body","appendChild","map","ct","index","termid","agTermId","termMonths","termname","agTermName","rb","id","value","label","setAttribute","li","localeUI","language","onclick","pricechange","SalePrice","Cost","Number","lossCodesArr","lc","lossCode","selectable","selected","getTotalPrice","disabled","checked","items","toJS","mappedItems","utils","arrayMap","click","docId","indexOf","netCost","splice","term","_termId","_termName","errorDesc","ISP","Kilometers","deductibleType","deductibleAmount","surcharges","surchargeCodes","odometers","planCode","ex_string","productType","LPT","_ProductSubType","coverageName","monthTerm","termOdometer","ProductDescription","_InServiceDate","_ProductId","main","GAP2EContractViewModel","GAP2MenuViewModel","QuoteController","ConsentRecord","ApplicationFormConsentViewModel","GAP2CalculatorViewModel","AG3EContractViewModel","AG3MenuViewModel","AG3CalculatorViewModel","ISPMenuViewModel","LPTEContractViewModel","AfterLoginPopup","init","formtype","ProductID","PreSaleForm","FinanceType","computed","trim","contractViewModel","Type","TaxFree","cancellationURL","parseInt","contractHeaderViewModel","Asset","CurrentKms","baseAmountFinanced","gapTotalAmountFinanced","InterestRate","PerPayment","FinanceTerm","Payment_Frequency","CostFromMenu","SalePriceFromMenu","skipAfterAction","AfterActions","ableGetRate","__PreSaleForm","province","VehicleType","populateProductXML","isnew","isNew","xml","Price","ProductXML","enableGetRate","enabled","isDisabled","prop","addClass","removeClass","validationEngine","country","VIN","Year","Maker","Model","EffectiveDate","keyup","event","KeyupNoAction","DisplayStatusOnShoppingCart","offShoppingCart","target","getGapTotalAmountFinanced","_numberOfPayment","numberOfPaymentCaculator","totalFinanced","base","removeTaxAndInterest","isNaN","parser","_option","parseXML","find","toLowerCase","parseJSON","Body","submit","form","currentuser","admin","grantoverridepermission","save","targetDom","Debtor","Province","FirstBeneficiary","ValidationDuplicateCertificateByVIN","viewModelSave","removeFun","_menuDealViewModel","_cellViewModel","_paymentIndex","_name","MenuDealViewModel","CellViewModel","PaymentIndex","ProductName","refreshFinance","payment_frequency","basePerPayment","Interest","BasePerPayment","PaymentFrequency","Interest2","Term2","uiBasePerPayment2","PaymentFrequency2","numberOfPayments","_purchasePrice","_rate","putUpdateBackMenuDeal","rateslist","k","TemplatedProducts","toUpperCase","Rates","salesprice","salesprice2","cost2","_p1","_p2","uiSalesprice","_c1","_c2","uiCost","_cell","each","menuBody","ControllerInstance","_effectiveDate","_vin","_year","_maker","_model","_financeType","_isNewVehicle","DealerID","DealerProvince","Language","Vin","year","CurrentOdometer","FinaceType","quoteProducts","distinctProducts","clearProduct","addProduct","_product","filterProduct","j","count","distLength","ProductOptions","onQuote","callback","errorMessage","quoteLinks","menuItemId","paymentOption","disti","quotei","rightTopMessage","dataSet","_productName","_documentName","DocumentName","Url","showForm","print","_finalizeCallback","consentFlag","ConsentContent","FinalizeCallback","highlight","finalize","add","record","addAll","records","currentTime","Date","getFullYear","getMonth","getDate","termYear","CalculationCompleted","initilized","BeforeCallAPI","AfterCallAPI","symtechAG3ViewModel","getRadioVal","ag3form","losscodes","getCheckBoxVal","losscodesxml","LosscodesXML","_","escape","losscode","len","GetTermOdometerRange","monthTermSelected","odorange","SelectedIndex","optionParser","_xoptions","_oid","getLossCodes","_xoption","lc_idobject","lc_nameobject","idarray","textContent","namearray","join","unescape","LoadSettings","savedSalePrice","savedCost","split","converageTypeSelected","selectedMonths","selectedOdometer","scodes","ResetDealerCost","AllowToSubscribe","_cost","_saleprice","_item","getPCRSag3cost","saleprice","ValidateAg3Template","_ret","ValidateAG3LossCode","MakeModels","PCRSmakermodels","Models","make","VehicleModelBinderPCRS","models","item","Make","sort","alphabetical","Makers","VehicleMakerBinderPCRS","makes","uniqueMakes","filter","onlyUniqueValue","calculator_viewModel","validVehicleYear","today","input","Product","MenuProductId","_productOptions","isFunction","OptionID","_ovalue","OptionExtra","quotes","quotes2","refNum","templateTerm","templateKilometers","hasOwnProperty","calculateISPCost","totalcost","totalRates","totalSalePrice","ExtraAmount","totalExtraAmount_DealerCost","coverage","val","termRateForExtra","extraCost","ApplyOnRetailCost","Value","ApplyOnDealerCost","includes","toString","forEach","radio","displayCheckBox","symtechLPTViewModel","pid","p","getProductSetting","InServiceDate","startdate","enddate","cookiename","title","message","StartDate","EndDate","CookieName","Title","Message","show","cookie","expiry","toGMTString","closeBtn","dialog","dialogClass","position","width","hide","buttons","beforeClose","ui","open","children","hasClass","prepend","html","parent","animate","top","left","window","Height","maxHeight","height"],"mappings":"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","file":"stClassMain_bundle.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"stClass\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"stClass\"] = factory();\n\telse\n\t\troot[\"stClass\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap fb1fffea17ebbc30ff66","\r\nvar PolicyAdminProduct = require('../PolicyAdminProduct.js');\r\n\r\nclass GAP2 extends PolicyAdminProduct {\r\n constructor() {\r\n\r\n super();\r\n this.name = \"GAP2\";\r\n this._FinanceAmount = 0;\r\n this._InterestRate = 0;\r\n this._FinanceTerm = 0; \r\n this._ProductID = getProductID(\"GAP2\");\r\n this.availablePaymentFrequency = [\"Weekly\", \"Monthly\", \"Bi-Weekly\", \"Semi-Monthly\"];\r\n this._PaymentIndex = 0;\r\n this.isNewVehicle = ko.observable();\r\n this.coverageVisible = ko.observable(false);\r\n }\r\n \r\n isSameProduct(otherProduct) {\r\n if (this._ProductID === otherProduct._ProductID && this._PaymentIndex === otherProduct._PaymentIndex) { \r\n if (this._FinanceAmount !== otherProduct._FinanceAmount \r\n || this._FinanceTerm !== otherProduct._FinanceTerm\r\n || this._InterestRate !== otherProduct._InterestRate\r\n )\r\n return false;\r\n }\r\n else\r\n return false;\r\n\r\n return true;\r\n }\r\n dataChangeNotice(eventid)\r\n {\r\n if (eventid === \"vin\" || eventid === \"year\" || eventid === \"maker\" || eventid === \"model\" || eventid === \"effectiveDate\" ||\r\n eventid === \"basepayment\" || eventid === \"amortizedTerm\" || eventid === \"interest\" || eventid === \"paymentFrequency\" || \r\n eventid === \"basepayment2\" || eventid === \"term2\" || eventid === \"interest2\" || eventid === \"paymentFrequency2\") {\r\n this.invalidatePriceCost();\r\n }\r\n }\r\n get ProductOption() {\r\n var _options = {\r\n \"ProviderId\": 2, //2 - AMT\r\n \"ProductType\": \"GAP\",\r\n \"CoverageMonths\": this._FinanceTerm,\r\n \"CoverageMileage\": 1,\r\n \"DeductibleAmount\": 1,\r\n \"financeAmount\": this._FinanceAmount,\r\n \"financeTerm\": this._FinanceTerm,\r\n \"financeAPR\": this._InterestRate,\r\n \"RequestID\": this.DataSetID\r\n };\r\n return _options;\r\n \r\n }\r\n refreshRate(_dealID, _dealProvince, _language, _Vin, _Year, _Maker, _Model, _currentOdometer, _EffectiveDate, _FinanceAmount, _InterestRate, _FinanceTerm, _FinanceType, _VehicleType) {\r\n this._FinanceAmount = _FinanceAmount;\r\n this._InterestRate = _InterestRate;\r\n this._FinanceTerm = _FinanceTerm;\r\n var _options = {\r\n \"DealerID\": _dealID,\r\n \"DealerProvince\": _dealProvince,\r\n \"Language\": _language,\r\n \"EffectiveDate\": _EffectiveDate,\r\n \"vin\": _Vin,\r\n \"vehicleYear\": _Year,\r\n \"vehicleMake\": _Maker,\r\n \"vehicleModel\": _Model,\r\n \"currentOdometer\": _currentOdometer,\r\n \"financeType\": _FinanceType,\r\n \"type\": _VehicleType,\r\n\r\n \"products\": []\r\n };\r\n _options.products.push(this.ProductOption);\r\n var jsonString_options = JSON.stringify(_options);\r\n this._getRate(jsonString_options);\r\n }\r\n parseRateData(data) {\r\n var ret = \"\";\r\n if (data.Status !== \"OK\")\r\n console.log(data.description);\r\n else {\r\n this.rates(data.Data.ratingDetails);\r\n for (var i = 0; i < data.Data.ratingDetails.rate.length; i++) {\r\n\r\n if ((hasNoValue(data.Data.ratingDetails.rate[i].requestID) && this.DataSetID === 0)\r\n || data.Data.ratingDetails.rate[i].requestID === this.DataSetID\r\n ) {\r\n this._SalePrice = parseFloat(data.Data.ratingDetails.rate[i].termRates.termRate[0].suggestedRetailCost).toFixed(2);\r\n this._Cost = parseFloat(data.Data.ratingDetails.rate[i].termRates.termRate[0].dealerCost).toFixed(2);\r\n this.coverageId = data.Data.ratingDetails.rate[i].coverageId;\r\n this._QuoteReffNumber = data.Data.ratingDetails.rate[i].quoteReffNumber;\r\n this._ValidPrice = true;\r\n ret = \"OK\";\r\n \r\n break;\r\n }\r\n }\r\n }\r\n return ret;\r\n\r\n }\r\n \r\n \r\n\r\n}\r\n\r\nmodule.exports = GAP2;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/gap2/GAP2.js"," \r\n class PolicyAdminProduct {\r\n constructor() {\r\n this.ID = 0;\r\n this._SalePrice = 0;\r\n this._Cost = 0;\r\n this._QuoteReffNumber;\r\n this.rates = ko.observable();\r\n this._ValidPrice = false;\r\n this._ProductID = \"\";\r\n this.DataSetID = 0;\r\n this.coverageId = \"\";\r\n this._PaymentIndex = 0;\r\n }\r\n \r\n isSameProduct(otherProduct)\r\n {\r\n throw \"implement it!\";\r\n }\r\n populatePriceCost(price, cost)\r\n {\r\n this._SalePrice = price; this._Cost = cost; this._ValidPrice = true;\r\n }\r\n invalidatePriceCost()\r\n {\r\n this._ValidPrice = false;\r\n this._Cost = 0;\r\n }\r\n get ProductOption() {\r\n throw \"implement it!\";\r\n }\r\n _getRate( jsonString_options) {\r\n var _self = this;\r\n var _url = String.format(\"{0}/GetiSelectPlusRate\", dave.global.independentroot);\r\n ajaxSpinner = new ajaxLoader($('#main'));\r\n\r\n $.post(_url, { dealer: dave.global.currentdealer().dealerid, options: jsonString_options }).done(function (data) {\r\n if (hasNoValue(data))\r\n $().toastmessage('showToast', { text: \"Data Error occurred\", type: 'error' });\r\n else if (hasNoValue(data.Data) || data.Status === 'Error')\r\n $().toastmessage('showToast', { text: locale(data.Description), type: 'error' });\r\n else {\r\n _self.parseRateData(data);\r\n // this.parseRateDate(_self.rates(data.Data.ratingDetails));\r\n \r\n }\r\n }); \r\n /*\r\n //test\r\n var ResponseData = {\r\n \"status\": \"OK\",\r\n \"description\": \"\",\r\n \"data\": {\r\n \"vehicleInfo\": {\r\n \"make\": \"JEEP\",\r\n \"model\": \"Grand Cherokee Altitude\",\r\n \"year\": \"2012\",\r\n \"color\": \"\",\r\n \"vin\": \"1C4RJFAG5CC351217\"\r\n },\r\n \"ratingDetails\": {\r\n \"quoteReffNumber\": null,\r\n \"rate\": [\r\n {\r\n \"productType\": \"GAP\",\r\n \"productTypeDesc\": \"GAP\",\r\n \"selectedMonths\": 96,\r\n \"selectedOdometer\": 75000,\r\n \"coverageId\": \"GAP125ON\",\r\n \"coverageName\": \"GAP 125K - Ontario\",\r\n \"coverageGroupCode\": \"\",\r\n \"coverageGroupDesc\": \"\",\r\n \"extraCost\": null,\r\n \"termRates\": {\r\n \"termRate\": [\r\n {\r\n \"termMonths\": \"96\",\r\n \"termOdometer\": \"0\",\r\n \"deductibleAmount\": \"\",\r\n \"deductibleType\": null,\r\n \"deductibleDesc\": \"\",\r\n \"netCost\": \"517.0000\",\r\n \"overRemit\": \"0.0000\",\r\n \"dealerRemit\": \"517.0000\",\r\n \"dealerPackAmount\": \"0.0000\",\r\n \"dealerCost\": \"517.0000\",\r\n \"fiMarkup\": null,\r\n \"suggestedRetailCost\": \"517.0000\",\r\n \"customerValue\": \"0\",\r\n \"coverages\": {\r\n \"coverage\": null\r\n }\r\n }\r\n ]\r\n },\r\n \"errorCode\": 0,\r\n \"errorDesc\": null\r\n }\r\n ]\r\n }\r\n }\r\n };\r\n \r\n this.parseRateData(ResponseData);*/\r\n }\r\n\r\n parseRateData(data) {\r\n throw \"implement it!\";\r\n }\r\n}\r\n \r\n module.exports=PolicyAdminProduct;\r\n \n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/PolicyAdminProduct.js","\r\nvar PolicyAdminProduct = require('../PolicyAdminProduct.js');\r\n\r\nclass AG3 extends PolicyAdminProduct {\r\n constructor() {\r\n\r\n super();\r\n this.name = \"AG3\";\r\n this._FinanceAmount = 0;\r\n this._InterestRate = 0;\r\n this._FinanceTerm = 0; \r\n this._ProductID = \"AG3\";\r\n this._PaymentIndex = 0;\r\n\r\n this.coverageTypeId = ko.observable(\"\");\r\n this.coverageType = ko.observable(\"\");\r\n this.seletedterm = ko.observable(0);\r\n this.seletedKilometers = ko.observable(0);\r\n this.quoteReffNumber = ko.observable(\"\");\r\n this.termMonthRange = ko.observable(0);\r\n this.termOdometerRange = ko.observable(999999);\r\n\r\n this.apiViewModel = ko.observable();\r\n this.apiRespRates = ko.observable();\r\n this.apiFormName = ko.observable(\"\");\r\n this.apiDealerCost = ko.observable(0);\r\n this.apiSalePrice = ko.observable(0);\r\n this.dtSelection = ko.observable(\"\");\r\n this.dtAmountSelection = ko.observable(\"\");\r\n this.lcSelection = ko.observableArray();\r\n this.extraCostSelection = ko.observable(\"\");\r\n this.coverageVisible = ko.observable(false);\r\n this.losscodesVisible = ko.observable(false);\r\n this.losscodesPlusVisible = ko.observable(false);\r\n this.coverageNameSelected = ko.observable(\"\");\r\n this.isNewVehicle = ko.observable();\r\n }\r\n\r\n populateFields(containerId, selectedVal, lossCodes) {\r\n let container;\r\n let emptycontainer;\r\n \r\n switch (containerId) {\r\n case \"coverageType\":\r\n container = $(this.apiFormName() + \" .coveragetype\")[0];\r\n break;\r\n case \"lossCodes\":\r\n container = $(this.apiFormName() + \" .losscodes\")[0];\r\n break;\r\n }\r\n\r\n container.innerHTML = '';\r\n let resArr = [];\r\n\r\n if (containerId === 'coverageType') {\r\n let _self = this;\r\n this.apiDealerCost(0);\r\n this.apiSalePrice(0);\r\n this.dtSelection(\"\");\r\n this.extraCostSelection(\"\");\r\n this.dtAmountSelection(\"\");\r\n this.lcSelection.removeAll()\r\n\r\n this.losscodesVisible(false);\r\n this.losscodesPlusVisible(false);\r\n\r\n emptycontainer = $(this.apiFormName() + \" .losscodes\")[0];\r\n emptycontainer.innerHTML = '';\r\n \r\n let coverageTypeArr = this.apiRespRates().termRates.termRate;\r\n let ul = document.createElement(\"ul\");\r\n document.body.appendChild(ul);\r\n\r\n coverageTypeArr.map(function (ct, index) {\r\n let termid = _self.agTermId(ct.termMonths);\r\n let termname = _self.agTermName(ct.termMonths);\r\n let rb = createElement(\"input\", { type: 'radio', name: 'CoverageType', id: termid, value: ct.termMonths})\r\n let label = document.createElement(\"label\");\r\n label.setAttribute(\"for\", termid);\r\n label.setAttribute(\"data-lang\", termname);\r\n label.setAttribute(\"class\", \"lang\");\r\n label.innerHTML = termname;\r\n\r\n let li = document.createElement(\"li\");\r\n li.appendChild(rb);\r\n li.appendChild(label);\r\n ul.appendChild(li);\r\n })\r\n\r\n container.appendChild(ul);\r\n this.coverageVisible(true);\r\n localeUI(dave.global.language(), this.apiFormName());\r\n\r\n coverageTypeArr.map(function (ct, index) {\r\n let rb = $(_self.apiFormName() + \" .\" + _self.agTermId(ct.termMonths))[0];\r\n rb.onclick = function () {\r\n _self.losscodesVisible(true);\r\n _self.apiDealerCost(ct.dealerCost);\r\n _self.apiSalePrice(ct.suggestedRetailCost);\r\n _self.apiViewModel().pricechange();\r\n\r\n if (typeof _self.apiViewModel().SalePrice !== 'undefined') {\r\n _self.apiViewModel().Cost(Number(_self.apiDealerCost()).toFixed(2));\r\n _self.apiViewModel().SalePrice(Number(_self.apiSalePrice()).toFixed(2));\r\n }\r\n\r\n _self.coverageNameSelected(ct.termMonths);\r\n _self.populateFields('lossCodes', ct.termMonths, \"\");\r\n\r\n localeUI(dave.global.language(), _self.apiFormName());\r\n };\r\n })\r\n }\r\n\r\n if (containerId === 'lossCodes') {\r\n let _self = this;\r\n emptycontainer = $(_self.apiFormName() + \" .losscodes\")[0];\r\n emptycontainer.innerHTML = '';\r\n \r\n let ul = document.createElement(\"ul\");\r\n document.body.appendChild(ul);\r\n let lossCodesArr = this.apiRespRates().termRates.termRate;\r\n lossCodesArr.map(function (lc, index) {\r\n if (lc.termMonths === selectedVal) {\r\n if (hasNoValue(lc.lossCodes.lossCode) === false) { \r\n _self.losscodesPlusVisible(true);\r\n if (lc.lossCodes.lossCode[0].selectable || lc.lossCodes.lossCode[0].selected) {\r\n let rb = createElement(\"input\", { type: 'checkbox', name: 'LossCodes', id: 'lc_' + lc.lossCodes.lossCode[0].id, value: lc.lossCodes.lossCode[0].id});\r\n let label = document.createElement(\"label\");\r\n label.setAttribute(\"for\", 'lc_' + lc.lossCodes.lossCode[0].id);\r\n label.setAttribute(\"data-lang\", lc.lossCodes.lossCode[0].name);\r\n label.setAttribute(\"class\", \"lang\");\r\n label.innerHTML = lc.lossCodes.lossCode[0].name;\r\n\r\n let li = document.createElement(\"li\");\r\n li.appendChild(rb);\r\n li.appendChild(label);\r\n ul.appendChild(li);\r\n }\r\n }\r\n } \r\n })\r\n\r\n container.appendChild(ul);\r\n\r\n lossCodesArr.map(function (lc, index) {\r\n if (lc.termMonths === selectedVal) {\r\n if (hasNoValue(lc.lossCodes.lossCode) === false) { \r\n let rb = $(_self.apiFormName() + \" .\" + 'lc_' + lc.lossCodes.lossCode[0].id)[0];\r\n if (lc.lossCodes.lossCode[0].selectable) {\r\n rb.onclick = function () {\r\n _self.apiViewModel().pricechange();\r\n _self.getTotalPrice(lc.lossCodes.lossCode[0]);\r\n };\r\n }\r\n else {\r\n rb.disabled = true;\r\n }\r\n if (lc.lossCodes.lossCode[0].selected === true) {\r\n rb.checked = true;\r\n }\r\n }\r\n }\r\n })\r\n\r\n let items = ko.toJS(_self.lcSelection);\r\n let mappedItems = ko.utils.arrayMap(items, function (lc) {\r\n if ($(_self.apiFormName() + \" .\" + lc)[0])\r\n $(_self.apiFormName() + \" .\" + lc)[0].click();\r\n });\r\n \r\n }\r\n }\r\n \r\n getTotalPrice(lossCode) {\r\n let docId = 'lc_' + lossCode.id;\r\n let checked = $(this.apiFormName() + \" .\" + docId)[0].checked;\r\n let suggestedRetailCost = 0;\r\n if (hasNoValue(lossCode.suggestedRetailCost))\r\n suggestedRetailCost = 0;\r\n else\r\n suggestedRetailCost = lossCode.suggestedRetailCost;\r\n\r\n if (checked) {\r\n if (this.lcSelection.indexOf(docId) === -1)\r\n this.lcSelection.push(docId);\r\n\r\n this.apiSalePrice((Number(this.apiSalePrice()) + Number(suggestedRetailCost)));\r\n this.apiDealerCost((Number(this.apiDealerCost()) + Number(lossCode.netCost)));\r\n\r\n } else {\r\n if (this.lcSelection.indexOf(docId) > -1) {\r\n this.lcSelection.splice(this.lcSelection.indexOf(docId), 1)\r\n }\r\n this.apiSalePrice((Number(this.apiSalePrice()) - Number(suggestedRetailCost)));\r\n this.apiDealerCost((Number(this.apiDealerCost()) - Number(lossCode.netCost)));\r\n\r\n }\r\n //ADD TEXT BOX VALUES HERE\r\n if (typeof this.apiViewModel().SalePrice !== 'undefined') {\r\n this.apiViewModel().Cost(Number(this.apiDealerCost()).toFixed(2));\r\n this.apiViewModel().SalePrice(Number(this.apiSalePrice()).toFixed(2));\r\n }\r\n }\r\n\r\n agTermId(term) {\r\n let _termId;\r\n switch (term) {\r\n case 12:\r\n _termId = \"agterm1\";\r\n break;\r\n case 24:\r\n _termId = \"agterm2\";\r\n break;\r\n case 36:\r\n _termId = \"agterm3\";\r\n break;\r\n case 48:\r\n _termId = \"agterm4\";\r\n break;\r\n case 60:\r\n _termId = \"agterm5\";\r\n break;\r\n case 72:\r\n _termId = \"agterm6\";\r\n break;\r\n }\r\n return _termId;\r\n }\r\n \r\n agTermName(term) {\r\n let _termName;\r\n switch (term) {\r\n case 12:\r\n _termName = locale(\"1 year\");\r\n break;\r\n case 24:\r\n _termName = locale(\"2 years\");\r\n break;\r\n case 36:\r\n _termName = locale(\"3 years\");\r\n break;\r\n case 48:\r\n _termName = locale(\"4 years\");\r\n break;\r\n case 60:\r\n _termName = locale(\"5 years\");\r\n break;\r\n case 72:\r\n _termName = locale(\"6 years\");\r\n break;\r\n }\r\n return _termName;\r\n }\r\n \r\n isSameProduct(otherProduct) {\r\n if (this._ProductID === otherProduct._ProductID && this._PaymentIndex === otherProduct._PaymentIndex) { \r\n return true;\r\n }\r\n else\r\n return false;\r\n\r\n }\r\n dataChangeNotice(eventid)\r\n {\r\n if (eventid === \"vin\" || eventid === \"year\" || eventid === \"maker\" || eventid === \"model\" || eventid === \"effectiveDate\") {\r\n this.invalidatePriceCost();\r\n }\r\n }\r\n get ProductOption() {\r\n let _options = {\r\n \"ProviderId\": 2, //2 - AMT\r\n \"ProductType\": \"AP\",\r\n \"CoverageMonths\": this._FinanceTerm,\r\n \"CoverageMileage\": 100000,\r\n \"DeductibleAmount\": 0,\r\n \"financeAmount\": 0,\r\n \"financeTerm\": 0,\r\n \"financeAPR\": 0,\r\n \"RequestID\": this.DataSetID\r\n };\r\n return _options;\r\n \r\n }\r\n refreshRate(_dealID, _dealProvince, _language, _Vin, _Year, _Maker, _Model, _currentOdometer, _EffectiveDate, _FinanceAmount, _InterestRate, _FinanceTerm, _FinanceType, _VehicleType) {\r\n this._FinanceAmount = _FinanceAmount;\r\n this._InterestRate = _InterestRate;\r\n this._FinanceTerm = _FinanceTerm;\r\n let _options = {\r\n \"DealerID\": _dealID,\r\n \"DealerProvince\": _dealProvince,\r\n \"Language\": _language,\r\n \"EffectiveDate\": _EffectiveDate,\r\n \"vin\": _Vin,\r\n \"vehicleYear\": _Year,\r\n \"vehicleMake\": _Maker,\r\n \"vehicleModel\": _Model,\r\n \"currentOdometer\": _currentOdometer,\r\n \"financeType\": _FinanceType,\r\n \"type\": _VehicleType,\r\n\r\n \"products\": []\r\n };\r\n _options.products.push(this.ProductOption);\r\n let jsonString_options = JSON.stringify(_options);\r\n this._getRate(jsonString_options);\r\n }\r\n parseRateData(data) {\r\n let ret = \"\";\r\n if (data.Status !== \"OK\") {\r\n ret = data.description;\r\n console.log(data.description);\r\n }\r\n else {\r\n this.rates(data.Data.ratingDetails);\r\n for (let i = 0; i < data.Data.ratingDetails.rate.length; i++) {\r\n if ((hasNoValue(data.Data.ratingDetails.rate[i].requestID) && this.DataSetID === 0)\r\n || data.Data.ratingDetails.rate[i].requestID === this.DataSetID\r\n ) {\r\n if (hasNoValue(data.Data.ratingDetails.rate[i].errorDesc)) {\r\n this._ValidPrice = true;\r\n ret = \"OK\";\r\n }\r\n else\r\n {\r\n ret = data.Data.ratingDetails.rate[i].errorDesc;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n return ret;\r\n\r\n }\r\n \r\n}\r\n\r\nmodule.exports = AG3;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/ag3/AG3.js","\r\nvar PolicyAdminProduct = require('../PolicyAdminProduct.js');\r\n\r\nclass ISP extends PolicyAdminProduct {\r\n constructor() {\r\n\r\n super();\r\n this.name = \"ISP\";\r\n this._FinanceAmount = 0;\r\n this._InterestRate = 0;\r\n this._FinanceTerm = 0; \r\n this._ProductID = \"ISP\";\r\n this._PaymentIndex = 0;\r\n\r\n this.coverageTypeId = ko.observable();\r\n this.coverageType = ko.observable();\r\n this.term = ko.observable(0);\r\n this.Kilometers = ko.observable(0);\r\n this.deductibleType = ko.observable(\"\");\r\n this.deductibleAmount = ko.observable(0);\r\n this.surcharges = ko.observableArray();\r\n this.surchargeCodes = ko.observableArray();\r\n this.odometers = ko.observable(0);\r\n this.planCode = ko.observable(0);\r\n this.ex_string = ko.observable(\"\");\r\n this.seletedterm = ko.observable(0);\r\n this.seletedKilometers = ko.observable(0);\r\n this.termMonthRange = ko.observable(0);\r\n this.termOdometerRange = ko.observable(0);\r\n\r\n this.apiViewModel = ko.observable();\r\n this.apiRespRates = ko.observable();\r\n this.apiFormName = ko.observable(\"\");\r\n this.apiDealerCost = ko.observable(0);\r\n this.apiSalePrice = ko.observable(0);\r\n this.dtSelection = ko.observable(\"\");\r\n this.dtAmountSelection = ko.observable(\"\");\r\n this.lcSelection = ko.observableArray();\r\n this.extraCostSelection = ko.observable(\"\");\r\n this.coverageVisible = ko.observable(false);\r\n this.losscodesVisible = ko.observable(false);\r\n this.losscodesPlusVisible = ko.observable(false);\r\n this.coverageNameSelected = ko.observable(\"\");\r\n this.isNewVehicle = ko.observable();\r\n }\r\n\r\n populateFields(containerId, selectedVal, lossCodes) {\r\n let container;\r\n let emptycontainer;\r\n \r\n switch (containerId) {\r\n case \"coverageType\":\r\n container = $(this.apiFormName() + \" .coveragetype\")[0];\r\n break;\r\n case \"lossCodes\":\r\n container = $(this.apiFormName() + \" .losscodes\")[0];\r\n break;\r\n }\r\n }\r\n \r\n getTotalPrice(lossCode) {\r\n \r\n }\r\n\r\n isSameProduct(otherProduct) {\r\n\r\n\t\tif (this._ProductID === otherProduct._ProductID && \r\n\t\t\tthis.term() === otherProduct.term() && this.Kilometers() === otherProduct.Kilometers()\r\n ) { \r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n dataChangeNotice(eventid)\r\n {\r\n if (eventid === \"vin\" || eventid === \"year\" || eventid === \"maker\" || eventid === \"model\" || eventid === \"effectiveDate\") {\r\n this.invalidatePriceCost();\r\n }\r\n }\r\n get ProductOption() {\r\n let _options = {\r\n \"ProviderId\": 2, //2 - AMT\r\n \"ProductType\": \"VSC\",\r\n \"CoverageMonths\": this.term(),\r\n \"CoverageMileage\": this.Kilometers(),\r\n \"DeductibleAmount\": 500,\r\n \"financeAmount\": this.odometers(),\r\n \"financeTerm\": 0,\r\n \"financeAPR\": 0,\r\n \"RequestID\": this.DataSetID\r\n };\r\n return _options;\r\n \r\n }\r\n refreshRate(_dealID, _dealProvince, _language, _Vin, _Year, _Maker, _Model, _currentOdometer, _EffectiveDate, _FinanceAmount, _InterestRate, _FinanceTerm, _FinanceType, _VehicleType) {\r\n this._FinanceAmount = _FinanceAmount;\r\n this._InterestRate = _InterestRate;\r\n this._FinanceTerm = _FinanceTerm;\r\n let _options = {\r\n \"DealerID\": _dealID,\r\n \"DealerProvince\": _dealProvince,\r\n \"Language\": _language,\r\n \"EffectiveDate\": _EffectiveDate,\r\n \"vin\": _Vin,\r\n \"vehicleYear\": _Year,\r\n \"vehicleMake\": _Maker,\r\n \"vehicleModel\": _Model,\r\n \"currentOdometer\": _currentOdometer,\r\n \"financeType\": _FinanceType,\r\n \"type\": _VehicleType,\r\n\r\n \"products\": []\r\n };\r\n _options.products.push(this.ProductOption);\r\n let jsonString_options = JSON.stringify(_options);\r\n this._getRate(jsonString_options);\r\n }\r\n parseRateData(data) {\r\n let ret = \"\";\r\n if (data.Status !== \"OK\") {\r\n ret = data.description;\r\n console.log(data.description);\r\n }\r\n else {\r\n this.rates(data.Data.ratingDetails);\r\n for (let i = 0; i < data.Data.ratingDetails.rate.length; i++) {\r\n if (data.Data.ratingDetails.rate[i].productType === \"VSC\") {\r\n if (hasNoValue(data.Data.ratingDetails.rate[i].errorDesc)) {\r\n this._ValidPrice = true;\r\n ret = \"OK\";\r\n }\r\n else\r\n {\r\n ret = data.Data.ratingDetails.rate[i].errorDesc;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n return ret;\r\n\r\n }\r\n \r\n}\r\n\r\nmodule.exports = ISP;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/isp/ISP.js","\r\nvar PolicyAdminProduct = require('../PolicyAdminProduct.js');\r\n\r\nclass LPT extends PolicyAdminProduct {\r\n constructor() {\r\n\r\n super();\r\n this.name = \"PPP\";\r\n this._FinanceAmount = 0;\r\n this._InterestRate = 0;\r\n this._FinanceTerm = 0; \r\n this._ProductID = \"\";\r\n this._PaymentIndex = 0;\r\n this._ProductSubType = \"LTW\";\r\n\r\n this.coverageTypeId = ko.observable(\"\");\r\n this.coverageType = ko.observable(\"\");\r\n this.seletedterm = ko.observable(0);\r\n this.seletedKilometers = ko.observable(0);\r\n this.quoteReffNumber = ko.observable(\"\");\r\n this.termMonthRange = ko.observable(0);\r\n this.termOdometerRange = ko.observable(999999);\r\n this.deductibleType = ko.observable(\"\");\r\n this.deductibleAmount = ko.observable(0);\r\n this.isNewVehicle = ko.observable(); \r\n\r\n this.dtSelection = ko.observable(\"\");\r\n this.dtAmountSelection = ko.observable(\"\");\r\n this.lcSelection = ko.observableArray();\r\n this.extraCostSelection = ko.observable(\"\");\r\n this.coverageVisible = ko.observable(false);\r\n this.losscodesVisible = ko.observable(false);\r\n this.losscodesPlusVisible = ko.observable(false);\r\n this.coverageNameSelected = ko.observable(\"\");\r\n \r\n this.apiViewModel = ko.observable();\r\n this.apiRespRates = ko.observable();\r\n this.apiFormName = ko.observable(\"\");\r\n this.apiDealerCost = ko.observable(0);\r\n this.apiSalePrice = ko.observable(0);\r\n \r\n }\r\n\r\n populateFields(containerId, selectedVal, lossCodes) {\r\n let container;\r\n let emptycontainer;\r\n\r\n switch (containerId) {\r\n case \"coverageType\":\r\n container = $(this.apiFormName() + \" .coveragetype\")[0];\r\n break;\r\n case \"lossCodes\":\r\n container = $(this.apiFormName() + \" .losscodes\")[0];\r\n break;\r\n }\r\n\r\n container.innerHTML = '';\r\n let resArr = [];\r\n\r\n if (containerId === 'coverageType') {\r\n let _self = this;\r\n this.apiDealerCost(0);\r\n this.apiSalePrice(0);\r\n this.dtSelection(\"\");\r\n this.extraCostSelection(\"\");\r\n this.dtAmountSelection(\"\");\r\n this.lcSelection.removeAll()\r\n\r\n this.losscodesVisible(false);\r\n this.losscodesPlusVisible(false);\r\n\r\n //emptycontainer = $(this.apiFormName() + \" .losscodes\")[0];\r\n //emptycontainer.innerHTML = '';\r\n\r\n let coverageTypeArr = this.apiRespRates().rate;\r\n let ul = document.createElement(\"ul\");\r\n document.body.appendChild(ul);\r\n\r\n coverageTypeArr.map(function (ct, index) {\r\n let termid = ct.coverageId;\r\n let termname = ct.coverageName;\r\n let rb = createElement(\"input\", { type: 'radio', name: 'CoverageType', id: termid, value: termname })\r\n let label = document.createElement(\"label\");\r\n label.setAttribute(\"for\", termid);\r\n label.setAttribute(\"data-lang\", termname);\r\n label.setAttribute(\"class\", \"lang\");\r\n label.innerHTML = termname;\r\n\r\n let li = document.createElement(\"li\");\r\n li.appendChild(rb);\r\n li.appendChild(label);\r\n ul.appendChild(li);\r\n })\r\n\r\n container.appendChild(ul);\r\n this.coverageVisible(true);\r\n localeUI(dave.global.language(), this.apiFormName());\r\n\r\n coverageTypeArr.map(function (ct, index) {\r\n let rb = $(_self.apiFormName() + \" .\" + ct.coverageId)[0];\r\n rb.onclick = function () {\r\n _self.losscodesVisible(true);\r\n _self.apiDealerCost(ct.termRates.termRate[0].dealerCost);\r\n _self.apiSalePrice(ct.termRates.termRate[0].suggestedRetailCost);\r\n _self.apiViewModel().pricechange();\r\n\r\n if (typeof _self.apiViewModel().SalePrice !== 'undefined') {\r\n _self.apiViewModel().Cost(Number(_self.apiDealerCost()).toFixed(2));\r\n _self.apiViewModel().SalePrice(Number(_self.apiSalePrice()).toFixed(2));\r\n }\r\n\r\n _self.coverageTypeId(ct.coverageId);\r\n _self.monthTerm(ct.termRates.termRate[0].termMonths);\r\n _self.Kilometers(ct.termRates.termRate[0].termOdometer);\r\n _self.ProductDescription(ct.coverageName);\r\n _self.quoteReffNumber(ct.quoteReffNumber);\r\n _self.deductibleType(ct.termRates.termRate[0].deductibleType);\r\n _self.deductibleAmount(ct.termRates.termRate[0].deductibleAmount);\r\n \r\n localeUI(dave.global.language(), _self.apiFormName());\r\n };\r\n })\r\n }\r\n }\r\n\r\n getTotalPrice(lossCode) {\r\n let docId = 'lc_' + lossCode.id;\r\n let checked = $(this.apiFormName() + \" .\" + docId)[0].checked;\r\n let suggestedRetailCost = 0;\r\n if (hasNoValue(lossCode.suggestedRetailCost))\r\n suggestedRetailCost = 0;\r\n else\r\n suggestedRetailCost = lossCode.suggestedRetailCost;\r\n\r\n if (checked) {\r\n if (this.lcSelection.indexOf(docId) === -1)\r\n this.lcSelection.push(docId);\r\n\r\n this.apiSalePrice((Number(this.apiSalePrice()) + Number(suggestedRetailCost)));\r\n this.apiDealerCost((Number(this.apiDealerCost()) + Number(lossCode.netCost)));\r\n\r\n } else {\r\n if (this.lcSelection.indexOf(docId) > -1) {\r\n this.lcSelection.splice(this.lcSelection.indexOf(docId), 1)\r\n }\r\n this.apiSalePrice((Number(this.apiSalePrice()) - Number(suggestedRetailCost)));\r\n this.apiDealerCost((Number(this.apiDealerCost()) - Number(lossCode.netCost)));\r\n\r\n }\r\n //ADD TEXT BOX VALUES HERE\r\n if (typeof this.apiViewModel().SalePrice !== 'undefined') {\r\n this.apiViewModel().Cost(Number(this.apiDealerCost()).toFixed(2));\r\n this.apiViewModel().SalePrice(Number(this.apiSalePrice()).toFixed(2));\r\n }\r\n }\r\n\r\n isSameProduct(otherProduct) {\r\n if (this._ProductID === otherProduct._ProductID && this._PaymentIndex === otherProduct._PaymentIndex) { \r\n return true;\r\n }\r\n else\r\n return false;\r\n\r\n }\r\n dataChangeNotice(eventid)\r\n {\r\n if (eventid === \"vin\" || eventid === \"year\" || eventid === \"maker\" || eventid === \"model\" || eventid === \"effectiveDate\") {\r\n this.invalidatePriceCost();\r\n }\r\n }\r\n get ProductOption() {\r\n let _options = {\r\n \"ProviderId\": 2, //2 - AMT\r\n \"ProductType\": \"PPP\",\r\n \"CoverageMonths\": this._FinanceTerm,\r\n \"CoverageMileage\": this._FinanceAmount,\r\n \"DeductibleAmount\": 0,\r\n \"financeAmount\": 0,\r\n \"financeTerm\": 0,\r\n \"financeAPR\": 0,\r\n \"RequestID\": this.DataSetID\r\n };\r\n return _options;\r\n \r\n }\r\n refreshRate(_dealID, _dealProvince, _language, _Vin, _Year, _Maker, _Model, _currentOdometer, _EffectiveDate, _InServiceDate, _FinanceAmount, _InterestRate, _FinanceTerm, _FinanceType, _VehicleType, _ProductId) { \r\n this._ProductID = _ProductId;\r\n this._FinanceAmount = _FinanceAmount;\r\n this._InterestRate = _InterestRate;\r\n this._FinanceTerm = _FinanceTerm;\r\n let _options = {\r\n \"DealerID\": _dealID,\r\n \"DealerProvince\": _dealProvince,\r\n \"Language\": _language,\r\n \"EffectiveDate\": _EffectiveDate,\r\n \"InServiceDate\": _InServiceDate,\r\n \"vin\": _Vin,\r\n \"vehicleYear\": _Year,\r\n \"vehicleMake\": _Maker,\r\n \"vehicleModel\": _Model,\r\n \"currentOdometer\": _currentOdometer,\r\n \"financeType\": _FinanceType,\r\n \"type\": _VehicleType,\r\n\r\n \"products\": []\r\n };\r\n _options.products.push(this.ProductOption);\r\n let jsonString_options = JSON.stringify(_options);\r\n this._getRate(jsonString_options);\r\n }\r\n parseRateData(data) {\r\n let ret = \"\";\r\n if (data.Status !== \"OK\") {\r\n ret = data.description;\r\n console.log(data.description);\r\n }\r\n else {\r\n this.rates(data.Data.ratingDetails);\r\n for (let i = 0; i < data.Data.ratingDetails.rate.length; i++) {\r\n if ((hasNoValue(data.Data.ratingDetails.rate[i].requestID) && this.DataSetID === 0)\r\n || data.Data.ratingDetails.rate[i].requestID === this.DataSetID) {\r\n if (hasNoValue(data.Data.ratingDetails.rate[i].coverageId)) {\r\n ret = data.Data.ratingDetails.rate[i].errorDesc;\r\n }\r\n else { \r\n if (this._ProductSubType === data.Data.ratingDetails.rate[i].productType) { \r\n if (hasNoValue(data.Data.ratingDetails.rate[i].errorDesc)) {\r\n this._ValidPrice = true;\r\n ret = \"OK\";\r\n }\r\n else\r\n {\r\n ret = data.Data.ratingDetails.rate[i].errorDesc;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return ret;\r\n\r\n }\r\n \r\n}\r\n\r\nmodule.exports = LPT;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/lpt/LPT.js","\r\nvar main={};\r\n\r\nvar GAP2 = require('./product/gap2/GAP2.js');\r\nmain.GAP2 = GAP2;\r\n \r\nvar GAP2EContractViewModel = require('./product/gap2/GAP2EContractViewModel.js');\r\nmain.GAP2EContractViewModel = GAP2EContractViewModel;\r\n\r\nvar GAP2MenuViewModel = require('./product/gap2/GAP2MenuViewModel.js');\r\nmain.GAP2MenuViewModel = GAP2MenuViewModel;\r\n\r\nvar QuoteController = require('./QuoteController.js');\r\nmain.QuoteController = QuoteController;\r\n\r\nvar ConsentRecord = require('./ConsentRecord.js');\r\nmain.ConsentRecord = ConsentRecord;\r\n\r\nvar ApplicationFormConsentViewModel = require('./ApplicationFormConsentViewModel.js');\r\nmain.ApplicationFormConsentViewModel = ApplicationFormConsentViewModel;\r\n\r\nvar GAP2CalculatorViewModel = require('./product/gap2/GAP2CalculatorViewModel.js');\r\nmain.GAP2CalculatorViewModel = GAP2CalculatorViewModel;\r\n\r\nvar AG3 = require('./product/ag3/AG3.js');\r\nmain.AG3 = AG3;\r\n\r\nvar AG3EContractViewModel = require('./product/ag3/AG3EContractViewModel.js');\r\nmain.AG3EContractViewModel = AG3EContractViewModel;\r\n\r\nvar AG3MenuViewModel = require('./product/ag3/AG3MenuViewModel.js');\r\nmain.AG3MenuViewModel = AG3MenuViewModel;\r\n\r\nvar AG3CalculatorViewModel = require('./product/ag3/AG3CalculatorViewModel.js');\r\nmain.AG3CalculatorViewModel = AG3CalculatorViewModel;\r\n\r\nvar ISP = require('./product/isp/ISP.js');\r\nmain.ISP = ISP;\r\n\r\nvar ISPMenuViewModel = require('./product/isp/ISPMenuViewModel.js');\r\nmain.ISPMenuViewModel = ISPMenuViewModel;\r\n\r\nvar LPT = require('./product/lpt/LPT.js');\r\nmain.LPT = LPT;\r\n\r\nvar LPTEContractViewModel = require('./product/lpt/LPTEContractViewModel.js');\r\nmain.LPTEContractViewModel = LPTEContractViewModel;\r\n\r\nvar AfterLoginPopup = require('./AfterLoginPopup.js');\r\nmain.AfterLoginPopup = AfterLoginPopup;\r\n\r\nmodule.exports=main;\r\n \n\n\n// WEBPACK FOOTER //\n// ./jsSrc/main.js","var GAP2 = require('./GAP2.js');\r\n\r\nclass GAP2EContractViewModel extends GAP2 {\r\n constructor( ) {\r\n\r\n super( );\r\n \r\n \r\n \r\n }\r\n init(formtype) {\r\n\r\n this.ProductID = ko.observable(this._ProductID);\r\n \r\n this.formtype = formtype;\r\n this.PreSaleForm = null;\r\n this.FinanceType = ko.computed(function () { return $.trim(contractViewModel.Type()); });\r\n this.TaxFree = ko.observable(false);\r\n this.cancellationURL = 'PCMICancellation';\r\n this.Type = ko.observable(\"Ancillary\");\r\n this.odometers = ko.computed(function () { return parseInt($.trim(contractHeaderViewModel.Asset.CurrentKms())); });\r\n\r\n this.apiFormName = ko.observable(\"\");\r\n this.baseAmountFinanced = ko.observable();\r\n this.gapTotalAmountFinanced = ko.observable();\r\n this.InterestRate = ko.observable(); this.PerPayment = ko.observable();\r\n this.FinanceTerm = ko.observable();\r\n this.Payment_Frequency = ko.observable();\r\n this.availablePaymentFrequency = [\"Weekly\", \"Monthly\", \"Bi-Weekly\", \"Semi-Monthly\"];\r\n this.apiViewModel = ko.observable();\r\n this.CostFromMenu = ko.observable(); this.SalePriceFromMenu = ko.observable();\r\n this.skipAfterAction = ko.observable(this.PreSaleForm === null);\r\n this.AfterActions = ko.computed(function () {\r\n return this.skipAfterAction() ? \"SubmitToSymTechAPI\" : \"SubmitToSymTechAPI\";\r\n }, this);\r\n this.quoteReffNumber = ko.observable(\"\");\r\n this.ableGetRate = ko.observable(false);\r\n\r\n this.PreSaleForm = null;\r\n this.__PreSaleForm = ko.computed(function () {\r\n this.PreSaleForm = null;\r\n if (dave.global.currentdealer().province==='NB')\r\n this.PreSaleForm = \"GAP2_ApplicationForm\";\r\n }, this);\r\n this.VehicleType = ko.computed(function () {\r\n if (this.isNewVehicle() === \"1\")\r\n return \"N\";\r\n else\r\n return \"U\";\r\n }, this);\r\n }\r\n \r\n populateProductXML() {\r\n var isnew = \"0\";\r\n if (contractHeaderViewModel.Asset.isNew()) isnew = \"1\";\r\n\r\n var xml = String.format(`
\" + data.Data.ratingDetails.rate[0].errorDesc, type: 'notice' });\r\n }\r\n }\r\n }\r\n keyup(value, event) {\r\n if (KeyupNoAction(this.Status())) return false;\r\n DisplayStatusOnShoppingCart(this);\r\n offShoppingCart(this);\r\n \r\n if (typeof (event) !== 'undefined') {\r\n if (event.target.id === 'payment_Frequency' || event.target.id === 'perPayment' ||\r\n event.target.id === 'financeTerm' || event.target.id === 'interestRate') {\r\n this.getGapTotalAmountFinanced();\r\n this.Cost(0);\r\n this.enableGetRate(true);\r\n this.coverageVisible(false);\r\n }\r\n else if (event.target.id === \"effectiveDate\" || event.target.id === \"vin\" ||\r\n event.target.id === 'baseAmountFinanced' || event.target.id === 'totalAmountFinanced') {\r\n this.Cost(0);\r\n this.enableGetRate(true);\r\n this.coverageVisible(false);\r\n }\r\n }\r\n }\r\n\r\n getGapTotalAmountFinanced() {\r\n var _numberOfPayment=numberOfPaymentCaculator(this.Payment_Frequency(), this.FinanceTerm());\r\n var totalFinanced = _numberOfPayment * this.PerPayment();\r\n \r\n var base = parseFloat(removeTaxAndInterest(totalFinanced, this.InterestRate() / 1200, this.FinanceTerm(), 0));\r\n if (isNaN(base)) base = 0;\r\n this.gapTotalAmountFinanced(base);\r\n this.enableGetRate((this.Cost() === 0));\r\n }\r\n parser() {\r\n\r\n this.getGapTotalAmountFinanced();\r\n\r\n var options = this.ProductXML();\r\n if (hasNoValue(options)) return;\r\n\r\n /* if (hasNoValue(this.TaxFree()) && parseFloat(this.TaxRate()) === 0)\r\n this.TaxFree(true);\r\n else\r\n this.TaxFree(false);*/\r\n \r\n var _option = $($.parseXML(options)).find(\"Option\");\r\n if (_option.find(\"CoverageTypeId\").length > 0)\r\n this.coverageId = _option.find(\"CoverageTypeId\").text();\r\n if (_option.find(\"FinanceAmount\").length > 0)\r\n this.baseAmountFinanced(parseFloat(_option.find(\"FinanceAmount\").text()).toFixed(2));\r\n\r\n if (_option.find(\"TotalAmountFinanced\").length > 0)\r\n this.gapTotalAmountFinanced(_option.find(\"TotalAmountFinanced\").text());\r\n\r\n if (_option.find(\"FinanceAPR\").length > 0)\r\n this.InterestRate(_option.find(\"FinanceAPR\").text());\r\n if (_option.find(\"Payment_Frequency\").length > 0)\r\n this.Payment_Frequency(_option.find(\"Payment_Frequency\").text());\r\n if (_option.find(\"FinanceTerm\").length > 0)\r\n this.FinanceTerm(_option.find(\"FinanceTerm\").text());\r\n if (_option.find(\"PerPayment\").length > 0)\r\n this.PerPayment(_option.find(\"PerPayment\").text());\r\n\r\n if (_option.find(\"QuoteReffNumber\").length > 0)\r\n this.quoteReffNumber(_option.find(\"QuoteReffNumber\").text());\r\n\r\n if ((_option.find(\"TaxFree\").length > 0 && _option.find(\"TaxFree\").text().toLowerCase() === \"true\" ))//|| parseFloat(this.TaxRate()) === 0)\r\n this.TaxFree(true);\r\n else\r\n this.TaxFree(false);\r\n\r\n if (_option.find(\"isNewVehicle\").length > 0) {\r\n if (_option.find(\"isNewVehicle\").text().toLowerCase() == 'undefined')\r\n this.isNewVehicle(\"0\");\r\n else\r\n this.isNewVehicle(_option.find(\"isNewVehicle\").text());\r\n }\r\n else { \r\n if (contractHeaderViewModel.Asset.isNew())\r\n this.isNewVehicle(\"1\");\r\n else\r\n this.isNewVehicle(\"0\");\r\n }\r\n\r\n if (_option.find(\"MenuXML\").length > 0)\r\n {\r\n this.rates(String.format(`{\"rate\":[{0}]}`, this.rates()));\r\n }\r\n\r\n if (!hasNoValue(this.rates())) {\r\n this.rates($.parseJSON(this.rates()));\r\n this.quoteReffNumber(this.rates().rate[0].quoteReffNumber);\r\n this.coverageId = this.rates().rate[0].coverageId;\r\n this.coverageVisible(true);\r\n }\r\n else\r\n this.coverageVisible(false);\r\n\r\n if (this.Status() !== null && this.Status() !== \"\") {\r\n contractViewModel.Body.push(this);\r\n }\r\n\r\n }\r\n submit(form) {\r\n if (dave.global.currentuser().admin && dave.global.currentuser().grantoverridepermission) {\r\n this.save();\r\n return false;\r\n }\r\n\r\n targetDom = $('#province', form);\r\n if (contractHeaderViewModel.Debtor.Province() === 'QC' || contractHeaderViewModel.Debtor.Province() === 'NU') {\r\n if (contractHeaderViewModel.Debtor.Province() !== dave.global.currentdealer().province) {\r\n targetDom.validationEngine('showPrompt', locale(\"Product not eligible in\") + \" \" + contractHeaderViewModel.Debtor.Province(), 'red', 'topRight', true);\r\n return false;\r\n\r\n }\r\n }\r\n \r\n var targetDom = $('#beneficiary', form);\r\n if (hasNoValue(contractViewModel.FirstBeneficiary()) || $.trim(contractViewModel.FirstBeneficiary()).length === 0) {\r\n targetDom.validationEngine('showPrompt', locale(\"Please input the creditor.\"), 'red', 'topRight', true);\r\n\r\n return false;\r\n }\r\n\r\n //targetDom = $('#vehicleyear', form);\r\n //if (isYNew(contractHeaderViewModel.Asset.Year(), 8, contractViewModel.EffectiveDate()) == false) {\r\n // targetDom.validationEngine('showPrompt', locale(\"Vehicle cannot be more than seven (7) years old\"), 'red', 'topRight', true);\r\n // return false;\r\n //}\r\n \r\n targetDom = $('#totalAmountFinanced', form);\r\n if (parseInt(this.baseAmountFinanced()) > parseInt(this.gapTotalAmountFinanced())) {\r\n targetDom.validationEngine('showPrompt', locale(\"Base Amount Financed is higher than Total Amount Financed\"), 'red', 'topRight', true);\r\n return false;\r\n }\r\n\r\n if (form.validationEngine('validate') || $('#noValidation', form).prop('checked')) {\r\n // var options = this.XML();\r\n // this.ProductXML(options);\r\n //\r\n // this.Cost(getGAPPricing(getProductID(this.formtype), parseInt($.trim(this.FinanceTerm())), parseFloat($.trim(this.baseAmountFinanced()))).toFixed(2));\r\n\r\n if (!ValidationDuplicateCertificateByVIN(this, form)) {\r\n return false;\r\n }\r\n else {\r\n this.save();\r\n }\r\n\r\n }\r\n return false;\r\n }\r\n save(form) {\r\n viewModelSave(this, \"Ancillary\", this.ProductID(), this.Cost());\r\n }\r\n removeFun() {\r\n // PCRS Deletion is implemented in Cancellation function\r\n return true;\r\n }\r\n}\r\n\r\nmodule.exports = GAP2EContractViewModel;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/gap2/GAP2EContractViewModel.js","var GAP2 = require('./GAP2.js');\r\n\r\nclass GAP2MenuViewModel extends GAP2 {\r\n constructor(_menuDealViewModel,_cellViewModel ,_paymentIndex, _name) {\r\n\r\n super( );\r\n this.MenuDealViewModel = _menuDealViewModel;\r\n this.CellViewModel = _cellViewModel;\r\n this.PaymentIndex = _paymentIndex;\r\n this.ProductName = _name;\r\n \r\n }\r\n init(formtype) {\r\n super.init(formtype);\r\n }\r\n \r\n \r\n refreshFinance() {\r\n var payment_frequency = 0; var basePerPayment = 0;\r\n if (this.PaymentIndex === 1) {\r\n this._InterestRate = this.MenuDealViewModel.Interest();\r\n this._FinanceTerm = this.MenuDealViewModel.FinanceTerm();\r\n this._PaymentIndex = this.PaymentIndex;\r\n basePerPayment = this.MenuDealViewModel.BasePerPayment();\r\n payment_frequency = this.MenuDealViewModel.PaymentFrequency();\r\n }\r\n else\r\n {\r\n this._InterestRate = this.MenuDealViewModel.Interest2();\r\n this._FinanceTerm = this.MenuDealViewModel.Term2();\r\n this._PaymentIndex = this.PaymentIndex;\r\n basePerPayment = this.MenuDealViewModel.uiBasePerPayment2();\r\n payment_frequency = this.MenuDealViewModel.PaymentFrequency2();\r\n }\r\n var numberOfPayments = numberOfPaymentCaculator(payment_frequency, this._FinanceTerm) ;\r\n \r\n var _purchasePrice = parseFloat(basePerPayment) * numberOfPayments\r\n var _rate = this._InterestRate / 1200;\r\n this._FinanceAmount = parseFloat(removeTaxAndInterest(_purchasePrice, _rate, this._FinanceTerm, 0));\r\n }\r\n putUpdateBackMenuDeal(data)\r\n {\r\n //Populate rate into data Products\r\n let rateslist = [];\r\n for (k = 0; k < this.MenuDealViewModel.TemplatedProducts.length; k++) {\r\n if (this.MenuDealViewModel.TemplatedProducts[k].ProductID.toUpperCase() == 'GAP2') {\r\n if ((this.PaymentIndex == 2) && (hasNoValue(this.MenuDealViewModel.TemplatedProducts[k].Rates) == false)) {\r\n rateslist.push(this.MenuDealViewModel.TemplatedProducts[k].Rates[0]);\r\n break;\r\n }\r\n }\r\n }\r\n for (i = 0; i < data.ratingDetails.rate.length; i++) {\r\n if (data.ratingDetails.rate[i].productType.toUpperCase() == 'GAP') {\r\n if (data.ratingDetails.rate[i].requestID == this.DataSetID) {\r\n let rate = {\r\n \"PaymentOption\": this.PaymentIndex,\r\n \"Quote\": JSON.stringify(data.ratingDetails.rate[i]),\r\n \"ReffNumber\": data.ratingDetails.rate[i].quoteReffNumber\r\n }\r\n rateslist.push(rate);\r\n break;\r\n }\r\n }\r\n }\r\n for (k = 0; k < this.MenuDealViewModel.TemplatedProducts.length; k++) {\r\n if (this.MenuDealViewModel.TemplatedProducts[k].ProductID.toUpperCase() == 'GAP2') { \r\n this.MenuDealViewModel.TemplatedProducts[k].Rates = rateslist;\r\n break;\r\n }\r\n }\r\n\r\n // put the price cost\r\n if (this.PaymentIndex === 1) {\r\n if (this.CellViewModel.salesprice() == 0)\r\n this.CellViewModel.salesprice(this._SalePrice);\r\n\r\n this.CellViewModel.cost(this._Cost);\r\n }\r\n else\r\n {\r\n if (this.CellViewModel.salesprice2() == 0)\r\n this.CellViewModel.salesprice2(this._SalePrice);\r\n\r\n this.CellViewModel.cost2(this._Cost);\r\n }\r\n //\r\n var _p1 = this.CellViewModel.salesprice();\r\n var _p2 = this.CellViewModel.salesprice2();\r\n \r\n //this.CellViewModel.uiSalesprice(_p1 === _p2 ? _p1 : String.format('{0} / {1}', _p1, _p2));\r\n if (this.CellViewModel.salesprice() == 0)\r\n this.CellViewModel.uiSalesprice(_p1);\r\n\r\n var _c1 = this.CellViewModel.cost();\r\n var _c2 = this.CellViewModel.cost2();\r\n\r\n this.CellViewModel.uiCost(_c1 == _c2 ? _c1 : String.format('{0} / {1}', _c1, _c2));\r\n\r\n _cell = this.CellViewModel;\r\n $.each(this.MenuDealViewModel.menuBody().options(), function () {\r\n if (!hasNoValue(this.selected())) {\r\n \r\n //_cell.uiSalesprice(this.selected() == 'term2' ? _p2 == 0 ? _p1 : _p2 : _p1);\r\n _cell.uiSalesprice(_p1);\r\n _cell.uiCost(this.selected() == 'term2' ? _c2 == 0 ? _c1 : _c2 : _c1);\r\n return false;\r\n }\r\n });\r\n\r\n }\r\n parseRateData(data) {\r\n var ret = super.parseRateData(data);\r\n if (this._ValidPrice === true)\r\n this.putUpdateBackMenuDeal(data.Data);\r\n else\r\n {\r\n if (ret !== \"OK\") {\r\n\r\n if (this.PaymentIndex === 2)\r\n ret = locale(\"No Rate Available for\") + \" \" + this.ProductName + \" \" + locale(\"for the Second Payment Option\") + \"
\" + locale(ret);\r\n else\r\n ret = locale(\"No Rate Available for\") + \" \" + this.ProductName + \"
\" + locale(ret);\r\n\r\n }\r\n \r\n }\r\n return ret;\r\n }\r\n \r\n}\r\n\r\nmodule.exports = GAP2MenuViewModel;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/gap2/GAP2MenuViewModel.js","\r\nlet ControllerInstance = null;\r\n\r\nclass QuoteController {\r\n constructor(_dealID, _dealProvince, _language, _effectiveDate, _vin, _year, _maker, _model, _currentOdometer, _financeType, _isNewVehicle) {\r\n\r\n if (!ControllerInstance)\r\n ControllerInstance = this;\r\n\r\n ControllerInstance.DealerID = _dealID;\r\n ControllerInstance.DealerProvince = _dealProvince;\r\n ControllerInstance.Language = _language;\r\n\r\n ControllerInstance.Vin = _vin;\r\n ControllerInstance.year = _year; ControllerInstance.Maker = _maker; ControllerInstance.Model = _model;\r\n ControllerInstance.CurrentOdometer = _currentOdometer;\r\n ControllerInstance.FinaceType = _financeType;\r\n \r\n if (_isNewVehicle === \"1\")\r\n ControllerInstance.VehicleType = \"N\";\r\n else\r\n ControllerInstance.VehicleType = \"U\";\r\n\r\n ControllerInstance.EffectiveDate = _effectiveDate;\r\n ControllerInstance.quoteProducts = [];\r\n ControllerInstance.distinctProducts = [];\r\n \r\n return ControllerInstance;\r\n }\r\n clearProduct() {\r\n this.quoteProducts.length = 0;\r\n }\r\n addProduct(_product) {\r\n this.quoteProducts.push(_product);\r\n }\r\n filterProduct() {\r\n this.distinctProducts = [];\r\n for (var j = 0; j < this.quoteProducts.length; j++)// reset the DataSetID\r\n {\r\n this.quoteProducts[j].DataSetID = 0;\r\n }\r\n for (var count = 0; count < this.quoteProducts.length; count++)// fill distinctProducts with unqiue items.\r\n {\r\n if (this.quoteProducts[count].DataSetID === 0) {\r\n var distLength = this.distinctProducts.length;\r\n this.quoteProducts[count].DataSetID = distLength + 1;\r\n this.distinctProducts.push(this.quoteProducts[count]);\r\n for (var i = 0; i < this.quoteProducts.length; i++)// populate the same product with the same DataSetID.\r\n {\r\n if (this.quoteProducts[i].DataSetID === 0) {\r\n if (this.quoteProducts[count].isSameProduct(this.quoteProducts[i])) {\r\n this.quoteProducts[i].DataSetID = distLength + 1;\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n }\r\n }\r\n get ProductOptions() {\r\n var _self = this;\r\n var _options = {\r\n \"DealerID\": _self.DealerID,\r\n \"DealerProvince\": _self.DealerProvince,\r\n \"Language\": _self.Language,\r\n \"EffectiveDate\": _self.EffectiveDate,\r\n \"vin\": _self.Vin,\r\n \"vehicleYear\": _self.year,\r\n \"vehicleMake\": _self.Maker,\r\n \"vehicleModel\": _self.Model,\r\n \"currentOdometer\": _self.CurrentOdometer,\r\n \"financeType\": _self.FinaceType,\r\n \"type\": _self.VehicleType,\r\n\r\n \"products\": []\r\n };\r\n\r\n for (var i = 0; i < this.distinctProducts.length; i++) {\r\n _options.products.push(this.distinctProducts[i].ProductOption);\r\n }\r\n\r\n return _options;\r\n\r\n }\r\n onQuote(callback) {\r\n\r\n if (this.distinctProducts.length === 0) {\r\n if (callback !== null)\r\n callback(\"ok\", \"dont do anything\");\r\n return;\r\n }\r\n\r\n var _self = this;\r\n\r\n var _url = String.format(\"{0}/GetiSelectPlusRate\", dave.global.independentroot);\r\n ajaxSpinner = new ajaxLoader($('#main'));\r\n $.post(_url, { dealer: dave.global.currentdealer().dealerid, options: JSON.stringify(_self.ProductOptions) }).done(function (data) {\r\n if (hasNoValue(data)) {\r\n if (callback !== null)\r\n callback('er', \"Data Error occurred\");\r\n else\r\n $().toastmessage('showToast', { text: \"Data Error occurred\", type: 'error' });\r\n }\r\n else {\r\n // populate the response into the this.quoteProducts\r\n if (data.Status !== \"OK\") {\r\n\r\n if (callback !== null)\r\n callback(\"er\", locale(data.Description));\r\n return;\r\n }\r\n var errorMessage = \"\";\r\n var quoteLinks = [];\r\n var menuItemId = 0;\r\n var paymentOption = 1;\r\n for (var disti = 0; disti < _self.distinctProducts.length; disti++) {\r\n for (var quotei = 0; quotei < _self.quoteProducts.length; quotei++)// populate the same product with the same DataSetID.\r\n {\r\n if (_self.quoteProducts[quotei].DataSetID === _self.distinctProducts[disti].DataSetID) {\r\n menuItemId = _self.quoteProducts[quotei].CellViewModel.id();\r\n paymentOption = _self.quoteProducts[quotei].PaymentIndex;\r\n\r\n var ret = _self.quoteProducts[quotei].parseRateData(data);\r\n if (ret !== \"OK\") {\r\n errorMessage = locale(ret);\r\n rightTopMessage(locale(ret), 'notice');\r\n // _self.quoteProducts[quotei].CellViewModel.hasError(true);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n var dataSet = {\r\n \"MenuItemId\": menuItemId,\r\n \"PaymentOption\": paymentOption,\r\n \"DataSetID\": _self.distinctProducts[disti].DataSetID,\r\n }\r\n quoteLinks.push(dataSet);\r\n\r\n }\r\n\r\n // make a callback if all rates are good.\r\n if (callback !== null) {\r\n if (errorMessage !== \"\")\r\n callback(\"er\", errorMessage);\r\n else\r\n callback(\"ok\", data, quoteLinks);\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\nmodule.exports = QuoteController;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/QuoteController.js","class ConsentRecord {\r\n constructor(_productName, _documentName, _url) {\r\n this.ProductName = ko.observable(_productName);\r\n this.DocumentName = ko.observable(_documentName);\r\n this.Url = ko.observable(_url);\r\n }\r\n showForm() {\r\n print(this.Url());\r\n }\r\n}\r\n\r\nmodule.exports = ConsentRecord;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/ConsentRecord.js","\r\n\r\nclass ApplicationFormConsentViewModel {\r\n constructor(_finalizeCallback) {\r\n this.consentFlag = ko.observable(false);\r\n this.ConsentContent = ko.observableArray([]);\r\n this.FinalizeCallback = _finalizeCallback;\r\n this.highlight = ko.observable(false);\r\n }\r\n finalize()\r\n {\r\n if (this.consentFlag())\r\n this.FinalizeCallback();\r\n else\r\n {\r\n this.highlight(true);\r\n }\r\n\r\n }\r\n add(_productName, _documentName, _url)\r\n {\r\n var record = new ConsentRecord(_productName, _documentName, _url);\r\n this.ConsentContent.push(record);\r\n }\r\n addAll(records)\r\n {\r\n this.ConsentContent(records);\r\n }\r\n}\r\n\r\n\r\nmodule.exports = ApplicationFormConsentViewModel;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/ApplicationFormConsentViewModel.js","var GAP2 = require('./GAP2.js');\r\n\r\nclass GAP2CalculatorViewModel extends GAP2 {\r\n constructor( ) {\r\n\r\n super( );\r\n \r\n }\r\n init(formtype) {\r\n \r\n this.formtype = formtype;\r\n \r\n this.apiFormName = ko.observable(\"\");\r\n this.VIN = ko.observable(\"\");\r\n this.baseAmountFinanced = ko.observable();\r\n this.gapTotalAmountFinanced = ko.observable();\r\n this.InterestRate = ko.observable();\r\n this.FinanceTerm = ko.observable();\r\n this.SalePrice = ko.observable(0);;\r\n this.Cost = ko.observable(0);\r\n this.quoteReffNumber = ko.observable(\"\");\r\n this.VehicleType = ko.computed(function () {\r\n if (this.isNewVehicle() === \"1\")\r\n return \"N\";\r\n else\r\n return \"U\";\r\n }, this);\r\n this.FinanceType = ko.observable(\"Finance\");\r\n }\r\n \r\n refreshRate() {\r\n var form = $(\"#gap2Caculator\");\r\n var currentTime = new Date();\r\n if (form.validationEngine('validate')) {\r\n super.refreshRate(dave.global.currentdealer().dealerid,\r\n dave.global.currentdealer().province,\r\n dave.global.language() + \"-\" + dave.global.currentdealer().country,\r\n this.VIN(),\r\n \"\",\r\n \"\",\r\n \"\",\r\n 1,\r\n currentTime.getFullYear() + \"-\" + (currentTime.getMonth() + 1) + \"-\" + currentTime.getDate(),\r\n this.baseAmountFinanced(),\r\n this.InterestRate(),\r\n this.FinanceTerm(),\r\n this.FinanceType(),\r\n this.VehicleType()\r\n );\r\n }\r\n }\r\n parseRateData(data) {\r\n var ret = super.parseRateData(data);\r\n if (data.Status === \"OK\" && ret===\"OK\")\r\n {\r\n this.SalePrice(this._SalePrice);\r\n this.Cost(this._Cost);\r\n this.quoteReffNumber(this._QuoteReffNumber);\r\n }\r\n else\r\n {\r\n if (ret !== \"\" && ret !==\"OK\")\r\n $().toastmessage('showToast', { text: locale(ret), type: 'notice' });\r\n }\r\n\r\n }\r\n\r\n getGapTotalAmountFinanced() {\r\n var _numberOfPayment=numberOfPaymentCaculator(this.Payment_Frequency(), this.FinanceTerm());\r\n var totalFinanced = _numberOfPayment * this.PerPayment();\r\n \r\n var base = parseFloat(removeTaxAndInterest(totalFinanced, this.InterestRate() / 1200, this.FinanceTerm(), 0));\r\n if (isNaN(base)) base = 0;\r\n this.gapTotalAmountFinanced(base);\r\n \r\n }\r\n \r\n}\r\n\r\nmodule.exports = GAP2CalculatorViewModel;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/gap2/GAP2CalculatorViewModel.js","var AG3 = require('./AG3.js');\r\n\r\nclass AG3EContractViewModel extends AG3 {\r\n constructor( ) {\r\n\r\n super( );\r\n \r\n }\r\n init(formtype) {\r\n\r\n this.ProductID = ko.observable(this._ProductID);\r\n this.Type = ko.observable(\"Ancillary\");\r\n this.formtype = formtype;\r\n this.cancellationURL = 'PCMICancellation';\r\n this.odometers = ko.computed(function () { return parseInt($.trim(contractHeaderViewModel.Asset.CurrentKms())); });\r\n this.Kilometers = ko.observable(0);\r\n\r\n this.monthTerm = ko.observable(12);\r\n this.CostFromMenu = ko.observable(0);\r\n this.SalePriceFromMenu = ko.observable(0);\r\n this.AfterActions = ko.computed(function () {\r\n return \"SubmitToSymTechAPI\";\r\n }, this);\r\n \r\n this.ableGetRate = ko.observable(false);\r\n this.termYear = ko.observable(1);\r\n this.surcharges = ko.observableArray();\r\n this.surchargeCodes = ko.observable(\"\");\r\n this.deductibleType = ko.observable(\"\");\r\n this.deductibleAmount = ko.observable(0);\r\n this.termMonthRange(0);\r\n this.termOdometerRange(999999);\r\n this.CalculationCompleted = ko.observable(true);\r\n this.initilized = ko.observable(false);\r\n this.VehicleType = ko.computed(function () {\r\n if (this.isNewVehicle() === \"1\")\r\n return \"N\";\r\n else\r\n return \"U\";\r\n }, this);\r\n this.FinanceType = ko.computed(function () { return $.trim(contractViewModel.Type()); });\r\n }\r\n BeforeCallAPI() {\r\n this.coverageVisible(false);\r\n this.losscodesVisible(false);\r\n }\r\n\r\n AfterCallAPI(rate) {\r\n this.apiRespRates(rate);\r\n this.apiViewModel(symtechAG3ViewModel);\r\n this.populateFields(\"coverageType\", \"\", \"\");\r\n }\r\n \r\n populateProductXML() {\r\n //save option selection:\r\n let value;\r\n value = getRadioVal(ag3form[0], \"CoverageType\");\r\n this.monthTerm(value);\r\n this.termMonthRange(value);\r\n // value = this.GetTermOdometerRange(value);\r\n // this.termOdometerRange(value);\r\n\r\n let losscodes = getCheckBoxVal(ag3form[0], \"LossCodes\");\r\n let losscodesxml = this.LosscodesXML(losscodes);\r\n let _options = String.format(\"\",\r\n this.coverageTypeId(), this.coverageType(), this.monthTerm(), this.Kilometers(), this.deductibleType(), this.deductibleAmount(), _.escape(contractViewModel.FirstBeneficiary()), this.seletedterm(), this.odometers(), this.quoteReffNumber(), this.termMonthRange(), this.termOdometerRange(), this.isNewVehicle(), losscodesxml);\r\n let xml = String.format(\"
Incapable de prix:
- Alloy Wheel Coverage\";\r\n else\r\n ret = \"No Rate Available for \" + this.CellViewModel.name() + \" for the Second Payment Option
Unable to price:
- Alloy Wheel Coverage\";\r\n }\r\n }\r\n else {\r\n if (ret !== \"OK\")\r\n ret = locale(\"No Rate Available for\") + \" \" + this.CellViewModel.name() + \"
\" + locale(ret);\r\n }\r\n return ret;\r\n }\r\n \r\n}\r\n\r\nmodule.exports = AG3MenuViewModel;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/ag3/AG3MenuViewModel.js","let AG3 = require('./AG3.js');\r\n\r\nclass AG3CalculatorViewModel extends AG3 {\r\n constructor( ) {\r\n\r\n super( );\r\n \r\n }\r\n init(formtype) {\r\n this.formtype = formtype;\r\n \r\n this.apiFormName = ko.observable(\"\");\r\n this.VIN = ko.observable(\"\");\r\n this.Year = ko.observable(new Date().getFullYear());\r\n this.Maker = ko.observable(\"\");\r\n this.Model = ko.observable(\"\");\r\n this.MakeModels = ko.observable(dave.global.PCRSmakermodels);\r\n this.Models = ko.computed(function () {\r\n let make = this.Maker();\r\n if (hasNoValue(this.MakeModels())) {\r\n VehicleModelBinderPCRS(this, null);\r\n return null;\r\n }\r\n var models = $.map(this.MakeModels(), function (item) {\r\n return item.Make == make ? item.Model : null;\r\n });\r\n VehicleModelBinderPCRS(this, models);\r\n return models.sort(alphabetical);\r\n }, this);\r\n this.Makers = ko.computed(function () {\r\n if (hasNoValue(this.MakeModels())) {\r\n VehicleMakerBinderPCRS(this, null);\r\n return null;\r\n }\r\n var makes = $.map(this.MakeModels(), function (item) {\r\n return item.Make;\r\n });\r\n var uniqueMakes = makes.filter(onlyUniqueValue);\r\n VehicleMakerBinderPCRS(this, uniqueMakes);\r\n return uniqueMakes.sort(alphabetical);\r\n }, this);\r\n this.InterestRate = ko.observable();\r\n this.FinanceTerm = ko.observable(60);\r\n this.SalePrice = ko.observable(0);;\r\n this.Cost = ko.observable(0);\r\n this.quoteReffNumber = ko.observable(\"\");\r\n this.VehicleType = ko.computed(function () {\r\n if (this.isNewVehicle() === \"1\")\r\n return \"N\";\r\n else\r\n return \"U\";\r\n }, this);\r\n this.FinanceType = ko.observable(\"Finance\");\r\n }\r\n pricechange() {\r\n }\r\n refreshRate() {\r\n let form = $(\"#ag3Caculator\");\r\n let currentTime = new Date();\r\n\r\n this.BeforeCallAPI();\r\n\r\n if (form.validationEngine('validate')) {\r\n super.refreshRate(dave.global.currentdealer().dealerid,\r\n dave.global.currentdealer().province,\r\n dave.global.language() + \"-\" + dave.global.currentdealer().country,\r\n this.VIN(),\r\n this.Year(),\r\n this.Maker(),\r\n this.Model(),\r\n 1,\r\n currentTime.getFullYear() + \"-\" + (currentTime.getMonth() + 1) + \"-\" + currentTime.getDate(),\r\n 0,\r\n 0,\r\n this.FinanceTerm(),\r\n this.FinanceType(),\r\n this.VehicleType());\r\n }\r\n\r\n }\r\n parseRateData(data) {\r\n let ret = super.parseRateData(data);\r\n if (data.Status === \"OK\" && ret === \"OK\") {\r\n \r\n this.AfterCallAPI(this.rates().rate[0]);\r\n }\r\n else {\r\n if (ret !== \"\" && ret !== \"OK\")\r\n $().toastmessage('showToast', { text: locale(\"No Rate Available for Selected Coverage\"), type: 'notice' });\r\n\r\n this.BeforeCallAPI();\r\n }\r\n\r\n }\r\n\r\n BeforeCallAPI() {\r\n this.coverageVisible(false);\r\n this.losscodesVisible(false);\r\n }\r\n\r\n AfterCallAPI(rate) {\r\n this.apiRespRates(rate);\r\n this.apiViewModel(calculator_viewModel);\r\n this.populateFields(\"coverageType\", \"\", \"\");\r\n }\r\n\r\n getGapTotalAmountFinanced() {\r\n let _numberOfPayment=numberOfPaymentCaculator(this.Payment_Frequency(), this.FinanceTerm());\r\n let totalFinanced = _numberOfPayment * this.PerPayment();\r\n \r\n let base = parseFloat(removeTaxAndInterest(totalFinanced, this.InterestRate() / 1200, this.FinanceTerm(), 0));\r\n if (isNaN(base)) base = 0;\r\n this.gapTotalAmountFinanced(base);\r\n \r\n }\r\n validVehicleYear(){\r\n if (hasNoValue(this.Year())) return false;\r\n var today = new Date().getFullYear();\r\n var input = parseInt(this.Year());\r\n if (today + 2 < input || input < 1970) {\r\n return false\r\n }\r\n return true;\r\n }\r\n keyup(value, event) {\r\n let _self = this;\r\n if (event.target.id == 'vin') {\r\n _self.MakeModels(null);\r\n _self.Year(\"\");\r\n _self.Maker(\"\");\r\n _self.Model(\"\");\r\n }\r\n else if (event.target.id == 'year') {\r\n _self.MakeModels(null);\r\n _self.Maker(\"\");\r\n _self.Model(\"\");\r\n if (hasNoValue(_self.VIN()) && _self.validVehicleYear()) {\r\n var _url = String.format(\"{0}/GetPCRSMakerModels\", dave.global.independentroot);\r\n ajaxSpinner = new ajaxLoader($(\"#iselectPlusCaculator\"));\r\n $.post(_url, { Year: _self.Year() }).done(function (data) {\r\n if (hasNoValue(data))\r\n $().toastmessage('showToast', { text: \"Data Error occurred\", type: 'error' });\r\n else if (hasNoValue(data.Data) || data.Status === 'Error')\r\n $().toastmessage('showToast', { text: data.Description, type: 'error' });\r\n else {\r\n _self.MakeModels(data.Data);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\nmodule.exports = AG3CalculatorViewModel;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/ag3/AG3CalculatorViewModel.js","var ISP = require('./ISP.js');\r\n\r\nclass ISPMenuViewModel extends ISP {\r\n constructor(_menuDealViewModel, _cellViewModel, _paymentIndex, _product) {\r\n\r\n super( );\r\n this.MenuDealViewModel = _menuDealViewModel;\r\n this.CellViewModel = _cellViewModel;\r\n this.PaymentIndex = _paymentIndex;\r\n this.ProductName = _product.ProductName;\r\n this.Product = _product;\r\n this.MenuProductId = _product.ID;\r\n\r\n this.quoteReffNumber = ko.observable(\"\");\r\n this.FinanceTerm = ko.observable(60);\r\n\r\n }\r\n init(formtype) {\r\n \r\n super.init(formtype);\r\n\r\n }\r\n\r\n\trefreshFinance() {\r\n\t\tlet _self = this;\r\n\t\tlet options = this.CellViewModel._productOptions;\r\n $.each(options, function () {\r\n var _oid = $.isFunction(this.OptionID) ? this.OptionID() : this.OptionID;\r\n var _ovalue = $.isFunction(this.OptionExtra) ? this.OptionExtra() : this.OptionExtra;\r\n switch (_oid) {\r\n case \"CoverageTypeId\":\r\n _self.coverageTypeId(_ovalue);\r\n break;\r\n case \"CoverageType\":\r\n _self.coverageType(_ovalue);\r\n break;\r\n case \"Term\":\r\n _self.term(_ovalue);\r\n break;\r\n case \"Kilometers\":\r\n _self.Kilometers(_ovalue);\r\n break;\r\n case \"DeductibleType\":\r\n _self.deductibleType(_ovalue);\r\n break;\r\n case \"DeductibleAmount\":\r\n _self.deductibleAmount(_ovalue);\r\n break;\r\n case \"SurchargeNames\":\r\n _self.surcharges(_ovalue.split(','));\r\n break;\r\n case \"Surcharges\":\r\n _self.surchargeCodes(_ovalue.split(','));\r\n break;\r\n case \"CurrentOdometer\":\r\n _self.odometers(_ovalue);\r\n break;\r\n case \"PlanCode\":\r\n _self.planCode(_ovalue);\r\n break;\r\n case \"ExtraCost\":\r\n _self.ex_string(_ovalue);\r\n break;\r\n case \"CoverageTypeId\":\r\n _self.coverageTypeId(_ovalue);\r\n break;\r\n case \"Seletedterm\":\r\n _self.seletedterm(_ovalue);\r\n break;\r\n case \"SeletedKilometers\":\r\n _self.seletedKilometers(_ovalue);\r\n break;\r\n case \"QuoteReffNumber\":\r\n _self.quoteReffNumber(_ovalue);\r\n break;\r\n case \"TermMonthRange\":\r\n _self.termMonthRange(_ovalue);\r\n break;\r\n case \"TermOdometerRange\":\r\n _self.termOdometerRange(_ovalue);\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n\r\n }\r\n pricechange() {\r\n\r\n }\r\n putUpdateBackMenuDeal(data) {\r\n let _self = this;\r\n let rateslist = [];\r\n let quotes = [];\r\n let quotes2 = [];\r\n let refNum = \"\";\r\n //Populate rate into Templated Products\r\n for (i = 0; i < data.ratingDetails.rate.length; i++) {\r\n if (data.ratingDetails.rate[i].productType === \"VSC\" &&\r\n\t\t\t\tdata.ratingDetails.rate[i].selectedMonths == this.term() &&\r\n\t\t\t\tdata.ratingDetails.rate[i].selectedOdometer == this.Kilometers()) {\r\n refNum = data.ratingDetails.rate[i].quoteReffNumber;\r\n quotes.push(JSON.stringify(data.ratingDetails.rate[i]));\r\n quotes2.push(data.ratingDetails.rate[i]);\r\n _self.quoteReffNumber(refNum);\r\n }\r\n }\r\n \r\n let rate = {\r\n \"PaymentOption\": 1,\r\n \"Quote\": String.format(\"{\\\"rate\\\":[{0}]}\", quotes.join(\",\")) ,\r\n \"ReffNumber\": refNum\r\n }\r\n \r\n rateslist.push(rate);\r\n\r\n for (k = 0; k < this.MenuDealViewModel.TemplatedProducts.length; k++) {\r\n\t\t\tlet templateTerm = 0;\r\n\t\t\tlet templateKilometers = 0;\r\n\t\t\tlet options = this.MenuDealViewModel.TemplatedProducts[k].ProductOptions;\r\n\t\t\t$.each(options, function () {\r\n\t\t\t\tvar _oid = $.isFunction(this.OptionID) ? this.OptionID() : this.OptionID;\r\n\t\t\t\tvar _ovalue = $.isFunction(this.OptionExtra) ? this.OptionExtra() : this.OptionExtra;\r\n\t\t\t\tswitch (_oid) {\r\n\t\t\t\t\tcase \"Term\":\r\n\t\t\t\t\t\ttemplateTerm = parseInt(_ovalue);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"Kilometers\":\r\n\t\t\t\t\t\ttemplateKilometers = parseInt(_ovalue);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (templateTerm == this.term() && templateKilometers == this.Kilometers()) {\r\n this.MenuDealViewModel.TemplatedProducts[k].Rates = rateslist;\r\n $.each(this.MenuDealViewModel.TemplatedProducts[k].ProductOptions, function () {\r\n if (this.hasOwnProperty('OptionID') && (this.OptionID == 'QuoteReffNumber')) {\r\n this.OptionExtra = refNum;\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // Populate the price cost into cell\r\n let _cost = this.calculateISPCost(quotes2);\r\n\r\n this.CellViewModel.cost(_cost);\r\n this.CellViewModel.uiCost(_cost);\r\n\r\n }\r\n\r\n calculateISPCost(quotes) {\r\n let totalcost = 0;\r\n let totalRates = 0;\r\n let saleprice = 0;\r\n let totalSalePrice = 0;\r\n let ExtraAmount = 0;\r\n let totalExtraAmount_DealerCost = 0;\r\n\r\n if (quotes.length == 0) return totalcost;\r\n\r\n let coverage = quotes.filter((val) => (val.coverageName == this.coverageType() && val.selectedMonths == this.term() && val.selectedOdometer == this.Kilometers()));\r\n\r\n if (coverage.length == 0) return totalcost;\r\n\r\n\t\tlet termRateForExtra = coverage[0].termRates.termRate.filter((val) => (val.deductibleType == this.deductibleType() && val.deductibleAmount == this.deductibleAmount()));\r\n\r\n // 1. Extra cost\r\n if (coverage[0].extraCost.length > 0) {\r\n if (parseFloat(this._SalePrice) === 0) {\r\n\t\t\t\tif (coverage[0].termRates.termRate.length > 0) {\r\n\t\t\t\t\ttotalSalePrice = parseFloat(termRateForExtra[0].suggestedRetailCost);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n totalSalePrice = parseFloat(this._SalePrice);\r\n\t\t\t}\r\n\t\t\r\n $.each(coverage[0].extraCost, function () {\r\n if (this.ApplyOnRetailCost == true) {\r\n totalRates = Number(totalRates) + Number(this.Value);\r\n }\r\n });\r\n\r\n saleprice = Number(totalSalePrice) / (1 + (Number(totalRates) / 100));\r\n\r\n $.each(coverage[0].extraCost, function () {\r\n if (this.ApplyOnDealerCost == true) {\r\n ExtraAmount = (Number(saleprice.toFixed(2)) * Number(this.Value) / 100);\r\n totalExtraAmount_DealerCost = Number(totalExtraAmount_DealerCost) + Number(ExtraAmount.toFixed(2));\r\n }\r\n });\r\n\r\n }\r\n\r\n // 2. API Dealer cost\r\n if (coverage[0].termRates.termRate.length > 0) {\r\n var termRate = coverage[0].termRates.termRate.filter((val) => (val.deductibleType == this.deductibleType() && val.deductibleAmount == this.deductibleAmount()));\r\n totalcost = parseFloat(totalcost) + parseFloat(termRate[0].dealerCost);\r\n }\r\n \r\n let _self = this;\r\n if ((termRate[0].lossCodes.lossCode.length > 0) && (_self.surchargeCodes().length > 0)) { \r\n let losscodes = termRate[0].lossCodes.lossCode.filter(function (val) {\r\n return _self.surchargeCodes().includes((val.id).toString());\r\n });\r\n \r\n if (losscodes.length > 0) { \r\n losscodes.forEach(function (val) {\r\n if (val.selectable)\r\n totalcost = parseFloat(totalcost) + parseFloat(val.netCost);\r\n });\r\n }\r\n } \r\n \r\n // 3. Total dealer cost\r\n totalcost = parseFloat(totalcost) + parseFloat(totalExtraAmount_DealerCost);\r\n\r\n return parseFloat(totalcost).toFixed(2);\r\n }\r\n \r\n parseRateData(data) {\r\n let ret = super.parseRateData(data);\r\n if (this._ValidPrice === true) {\r\n this.putUpdateBackMenuDeal(data.Data);\r\n }\r\n else {\r\n if (ret !== \"OK\")\r\n ret = locale(\"No Rate Available for\") + \" \" + this.ProductName + \"
\" + locale(ret);\r\n }\r\n return ret;\r\n }\r\n \r\n}\r\n\r\nmodule.exports = ISPMenuViewModel;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/isp/ISPMenuViewModel.js","var LPT = require('./LPT.js');\r\n\r\nclass LPTEContractViewModel extends LPT {\r\n constructor( ) {\r\n\r\n super( );\r\n \r\n }\r\n init(formtype) {\r\n\r\n this.ProductID = ko.observable(this._ProductID);\r\n this.Type = ko.observable(\"Ancillary\");\r\n this.formtype = formtype;\r\n this.cancellationURL = 'PCMICancellation';\r\n this.odometers = ko.computed(function () { return parseInt($.trim(contractHeaderViewModel.Asset.CurrentKms())); });\r\n\r\n this.Kilometers = ko.observable(0);\r\n this.monthTerm = ko.observable(0);\r\n\r\n this.CostFromMenu = ko.observable(0);\r\n this.SalePriceFromMenu = ko.observable(0);\r\n this.AfterActions = ko.computed(function () {\r\n return \"SubmitToSymTechAPI\";\r\n }, this);\r\n \r\n this.ableGetRate = ko.observable(false);\r\n this.CalculationCompleted = ko.observable(true);\r\n this.initilized = ko.observable(false);\r\n this.VehicleType = ko.computed(function () {\r\n if (this.isNewVehicle() === \"1\")\r\n return \"N\";\r\n else\r\n return \"U\";\r\n }, this);\r\n this.FinanceType = ko.computed(function () { return $.trim(contractViewModel.Type()); });\r\n\r\n this.radio = ko.observable(true);\r\n this.ProductDescription = ko.observable(\"\");\r\n this.displayCheckBox = ko.observable(true);\r\n\r\n //$('#inServiceDate').datepicker({\r\n //$('.inservdate').datepicker({\r\n // dateFormat: \"yy-mm-dd\",\r\n // minDate: \"-90Y\", changeMonth: true,\r\n // changeYear: true, yearRange: \"-90:+0\"\r\n //});\r\n }\r\n \r\n BeforeCallAPI() {\r\n this.coverageVisible(false);\r\n //this.losscodesVisible(false);\r\n }\r\n\r\n AfterCallAPI(rate) {\r\n this.apiRespRates(rate);\r\n this.apiViewModel(symtechLPTViewModel);\r\n this.populateFields(\"coverageType\", \"\", \"\");\r\n }\r\n\r\n populateProductXML() {\r\n //save option selection:\r\n let _options = String.format(\"
\" + ret, type: 'notice' });\r\n\r\n this.enableGetRate(true);\r\n this.initilized(false);\r\n }\r\n }\r\n \r\n keyup(value, event) {\r\n if (KeyupNoAction(this.Status())) return false;\r\n let _self = this;\r\n if (typeof (event) !== 'undefined') {\r\n if (event.target.id === \"effectiveDate\" || event.target.id === \"vin\" || event.target.id === \"Odometer\" ||\r\n event.target.id === \"vehicleyear\" || event.target.id === \"maker\" || event.target.id === \"model\") {\r\n _self.ResetDealerCost();\r\n }\r\n }\r\n\r\n DisplayStatusOnShoppingCart(this);\r\n offShoppingCart(this);\r\n\r\n }\r\n pricechange() {\r\n if (this.initilized() === false) return;\r\n if (!AllowToSubscribe(this)) return;\r\n offShoppingCart(this);\r\n }\r\n ResetDealerCost() {\r\n this.Cost(0);\r\n this.SalePrice(0);\r\n this.coverageVisible(false);\r\n this.CalculationCompleted(false);\r\n this.enableGetRate(true);\r\n }\r\n submit(form) {\r\n if (form.validationEngine('validate') || $('#noValidation', form).prop('checked')) {\r\n if (!ValidationDuplicateCertificateByVIN(this, form, this.ProductID())) {\r\n return false;\r\n }\r\n else {\r\n this.save(form);\r\n }\r\n }\r\n return false;\r\n }\r\n save(form) {\r\n viewModelSave(this, \"Ancillary\", this.ProductID(), this.Cost());\r\n }\r\n removeFun() {\r\n\t\t// PCRS Deletion is implemented in Cancellation function\r\n return true;\r\n }\r\n}\r\n\r\nmodule.exports = LPTEContractViewModel;\n\n\n// WEBPACK FOOTER //\n// ./jsSrc/product/lpt/LPTEContractViewModel.js","class AfterLoginPopup\r\n{\r\n\r\n constructor(startdate,enddate,cookiename,title,message)\r\n {\r\n this.StartDate = startdate;\r\n this.EndDate = enddate;\r\n this.CookieName = cookiename;\r\n this.Title = title;\r\n this.Message = message;\r\n }\r\n show()\r\n {\r\n if (document.cookie.indexOf(this.CookieName) >= 0) {\r\n // They've seen the price change pop-up before.\r\n }\r\n else {\r\n // set a new cookie\r\n var today = new Date();\r\n if (today < new Date(this.EndDate) && today > new Date(this.StartDate)) {\r\n var expiry = new Date(this.EndDate).toGMTString();\r\n document.cookie = this.CookieName+\"=yes; expires=\" + expiry;\r\n\r\n var closeBtn = 'Close';\r\n if (dave.global.language() && dave.global.language() == 'fr') {\r\n\r\n closeBtn = 'Fermer';\r\n }\r\n $('#logonDiv')\r\n .dialog({\r\n\t\t\t\t\t\tdialogClass: 'dialog-style',\r\n position: ['right', 'top'], width: \"10px\", hide: 'clip', title: this.Title,\r\n buttons: [\r\n {\r\n text: closeBtn,\r\n click: function () {\r\n $(this).dialog(\"close\");\r\n }\r\n }\r\n ],\r\n beforeClose: function (event, ui) {\r\n //showNotificationPDF();\r\n },\r\n open: function () {\r\n $('.ui-button-text').addClass('dialog-text');\r\n $('.ui-dialog-buttonpane').find('button:contains(\"Change Password\")').removeClass('ui-button-text-only').addClass('ui-button-text-icon').each(\r\n function () { if (!$(this).children().hasClass(\"dialog-ui-button\")) { $(this).prepend('') } }\r\n );\r\n }\r\n })\r\n\t\t\t\t\t.html(\"