var hexcase = 0;
var b64pad = "";
function rstr2hex(input) {
"use strict";
try {
hexcase;
}
catch (e) {
hexcase = 0;
}
var hexTab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var output = "";
var x;
for (var i = 0; i < input.length; i++) {
x = input.charCodeAt(i);
output += hexTab.charAt((x >>> 4) & 0x0F)
+ hexTab.charAt(x & 0x0F);
}
return output;
}
function rstr2b64(input) {
try {
b64pad;
}
catch (e) {
b64pad = '';
}
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var output = "";
var len = input.length;
for (var i = 0; i < len; i += 3) {
var triplet = (input.charCodeAt(i) << 16)
| (i + 1 < len ? input.charCodeAt(i + 1) << 8 : 0)
| (i + 2 < len ? input.charCodeAt(i + 2) : 0);
for (var j = 0; j < 4; j++) {
if (i * 8 + j * 6 > input.length * 8)
output += b64pad;
else
output += tab.charAt((triplet >>> 6 * (3 - j)) & 0x3F);
}
}
return output;
}
function rstr2any(input, encoding) {
var divisor = encoding.length;
var i, j, q, x, quotient;
var dividend = Array(Math.ceil(input.length / 2));
for (i = 0; i < dividend.length; i++) {
dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1);
}
var full_length = Math.ceil(input.length * 8 /
(Math.log(encoding.length) / Math.log(2)));
var remainders = Array(full_length);
for (j = 0; j < full_length; j++) {
quotient = Array();
x = 0;
for (i = 0; i < dividend.length; i++) {
x = (x << 16) + dividend[i];
q = Math.floor(x / divisor);
x -= q * divisor;
if (quotient.length > 0 || q > 0)
quotient[quotient.length] = q;
}
remainders[j] = x;
dividend = quotient;
}
var output = "";
for (i = remainders.length - 1; i >= 0; i--)
output += encoding.charAt(remainders[i]);
return output;
}
function str2rstr_utf8(input) {
var output = "";
var i = -1;
var x, y;
while (++i < input.length) {
x = input.charCodeAt(i);
y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0;
if (0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) {
x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF);
i++;
}
if (x <= 0x7F)
output += String.fromCharCode(x);
else if (x <= 0x7FF)
output += String.fromCharCode(0xC0 | ((x >>> 6) & 0x1F), 0x80 | (x & 0x3F));
else if (x <= 0xFFFF)
output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), 0x80 | ((x >>> 6) & 0x3F), 0x80 | (x & 0x3F));
else if (x <= 0x1FFFFF)
output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), 0x80 | ((x >>> 12) & 0x3F), 0x80 | ((x >>> 6) & 0x3F), 0x80 | (x & 0x3F));
}
return output;
}
function str2rstr_utf16le(input) {
var output = "";
for (var i = 0; i < input.length; i++)
output += String.fromCharCode(input.charCodeAt(i) & 0xFF, (input.charCodeAt(i) >>> 8) & 0xFF);
return output;
}
function str2rstr_utf16be(input) {
var output = "";
for (var i = 0; i < input.length; i++)
output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, input.charCodeAt(i) & 0xFF);
return output;
}
function rstr2binl(input) {
var output = Array(input.length >> 2);
for (var i = 0; i < output.length; i++)
output[i] = 0;
for (var i = 0; i < input.length * 8; i += 8)
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32);
return output;
}
function rstr_hmac_md5(key, data) {
"use strict";
var bkey = rstr2binl(key);
if (bkey.length > 16)
bkey = binl_md5(bkey, key.length * 8);
var ipad = Array(16), opad = Array(16);
for (var i = 0; i < 16; i++) {
ipad[i] = bkey[i] ^ 0x36363636;
opad[i] = bkey[i] ^ 0x5C5C5C5C;
}
var hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
return binl2rstr(binl_md5(opad.concat(hash), 512 + 128));
}
function binl2rstr(input) {
var output = "";
for (var i = 0; i < input.length * 32; i += 8)
output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF);
return output;
}
function binl_md5(x, len) {
x[len >> 5] |= 0x80 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for (var i = 0; i < x.length; i += 16) {
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936);
d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);
b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);
a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);
c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);
b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);
a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);
c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);
b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);
d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);
c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302);
a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);
d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);
b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);
a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);
c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);
b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);
d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);
c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);
d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);
c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);
b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);
a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);
d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);
c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);
b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);
a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);
d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222);
c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);
b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);
a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);
d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);
c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);
b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844);
d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);
c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);
b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);
a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);
d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);
c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);
b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);
a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);
d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);
c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);
b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);
a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);
d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);
c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);
b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);
a = safeAdd(a, olda);
b = safeAdd(b, oldb);
c = safeAdd(c, oldc);
d = safeAdd(d, oldd);
}
return Array(a, b, c, d);
}
function md5_cmn(q, a, b, x, s, t) {
return safeAdd(bitRol(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
}
function md5_ff(a, b, c, d, x, s, t) {
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t) {
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t) {
return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t) {
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}
function safeAdd(x, y) {
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
function bitRol(num, cnt) {
return (num << cnt) | (num >>> (32 - cnt));
}
function hex_md5(s) {
"use strict";
return rstr2hex(rstr_md5(str2rstr_utf8(s)));
}
function b64_md5(s) {
"use strict";
return rstr2b64(rstr_md5(str2rstr_utf8(s)));
}
function any_md5(s, e) {
"use strict";
return rstr2any(rstr_md5(str2rstr_utf8(s)), e);
}
function hex_hmac_md5(k, d) {
"use strict";
return rstr2hex(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d)));
}
function b64_hmac_md5(k, d) {
"use strict";
return rstr2b64(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d)));
}
function any_hmac_md5(k, d, e) {
"use strict";
return rstr2any(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d)), e);
}
function md5_vm_test() {
"use strict";
return hex_md5("abc").toLowerCase() === "900150983cd24fb0d6963f7d28e17f72";
}
function rstr_md5(s) {
"use strict";
return binl2rstr(binl_md5(rstr2binl(s), s.length * 8));
}
function GetPurchaseOdometer() {
var odometer = parseInt($('#_purchaseOdometer').val());
if (isNaN(odometer)) {
odometer = 0;
}
return odometer;
}
function GetPurchaseVin() {
var vin = $('#_purchaseVin').val();
if (vin == null) {
vin = '';
}
return vin;
}
function GetPurchaseYear() {
var year = parseInt($('#_purchaseYear').val());
if (isNaN(year)) {
year = 0;
}
return year;
}
function GetPurchaseMake() {
var make = $('#_purchaseMake').val();
if (make == null) {
make = '';
}
return make;
}
function GetPurchaseModel() {
var model = $('#_purchaseModel').val();
if (model == null) {
model = '';
}
return model;
}
function CalculateDeskingPageWithObj(pageContainer) {
UpdateNetTradeUi(pageContainer);
$('#' + PrefixString(Prefixes.DlrStrctr_) + TotalPaidToPublicOfficialsDocCalc).val(pageContainer.titleLicenceDocFee.totalPaidToPublicOfficials.toString());
UpdateStructureUi(Prefixes.DlrStrctr_, pageContainer);
var gapDealerProfit = pageContainer.approvalGap.dealerProfit;
if (isNaN(gapDealerProfit)) {
gapDealerProfit = 0;
}
var serviceContractDealerProfit = parseInt($('#_approvalServiceContractDealerProfit').val());
if (isNaN(serviceContractDealerProfit)) {
serviceContractDealerProfit = 0;
}
pageContainer = ValidateStructure(pageContainer);
UpdateSubmitButtonsUi(pageContainer);
if (pageContainer.initializeJs) {
$('#' + PrefixString(Prefixes.Quick_) + AmountFinanced).val(pageContainer.approval.maxFinancedOtd.toString());
$('#' + PrefixString(Prefixes.Quick_) + LoanTerm).val(pageContainer.approval.loanTerm.toString());
$('#' + PrefixString(Prefixes.Quick_) + SaleRate).val(pageContainer.approval.contractRate.toString());
$('#' + PrefixString(Prefixes.Quick_) + MonthlyPayment).val(pageContainer.approval.currentMonthlyPayment.toString());
CalculatorQuickLoan();
}
CalculateAdjustedAuctionValue(pageContainer);
UpdateApprovalUi(pageContainer);
if (pageContainer.webSiteMode === WebSiteMode.uw) {
var estimatedMarkup = CalculateEstimatedMarkup();
SetTradeRequirement(pageContainer);
pageContainer = LoadDealerProfit(pageContainer);
$('#Apprvl_EstimatedNetCheck').val(pageContainer.dealerProfit.netCheckToDealer.toString());
var totalNetCheck = pageContainer.dealerProfit.netCheckToDealer + gapDealerProfit + serviceContractDealerProfit;
$('#_dealerProfit').text(gapDealerProfit + serviceContractDealerProfit);
$('#_totalNetCheck').text(totalNetCheck);
var netCheckOverAuction = calculateNetCheckOverAuction();
$('#_netCheckOverAuction').val(netCheckOverAuction.toString());
var maxNetCheckToDealer = Math.round(parseInt($('#_maxNetCheckToDealer').attr('maxAdvanceOverACV')) + parseInt($('#_adjustedAuctionValue').val()));
var dealerType = new DealerType();
if (pageContainer.dealerType === dealerType.Franchise) {
var serviceContractCost = parseInt($('#Apprvl_ServiceContract').val());
var gapCost = parseInt($('#Apprvl_GapFee').val());
if (isNaN(serviceContractCost)) {
serviceContractCost = 0;
}
if (isNaN(gapCost)) {
gapCost = 0;
}
maxNetCheckToDealer += serviceContractCost + gapCost;
}
$('#_maxNetCheckToDealer').text(maxNetCheckToDealer);
var currentAdvance = Math.round(totalNetCheck - maxNetCheckToDealer);
if (currentAdvance > 0) {
$('#_currentAdvanceOverACV').text(currentAdvance);
}
else {
$('#_currentAdvanceOverACV').text('0');
}
var netCheckToDealer = totalNetCheck;
var downPayment = parseFloat($('#Apprvl_DownPayment').val());
var netTrade = parseFloat($('#_approvalNetTrade').val());
var totalDown = downPayment + netTrade;
var dealerRevenue = netCheckToDealer + totalDown;
var adjustedAuctionValue = $('#_adjustedAuctionValue').val();
var salesTax = parseFloat($('#_approvalSalesTax').val());
if (isNaN(salesTax)) {
salesTax = 0;
}
var titleAndLicense = parseFloat($('#_approvalTitleAndLicenseFees').val());
if (isNaN(titleAndLicense)) {
titleAndLicense = 0;
}
var taxTitleAndLicenseFees = salesTax + titleAndLicense;
var serviceContractCost = parseFloat($('#_approvalServiceContractCost').val());
if (isNaN(serviceContractCost) || $('#_approvalSellPrimeServiceContract').is(':checked')) {
serviceContractCost = 0;
}
var gapCost = parseFloat($('#_approvalGapCost').val());
if (isNaN(gapCost) || $('#_approvalSellPrimeGap').is(':checked')) {
gapCost = 0;
}
var backEndCost = (serviceContractCost + gapCost) / 2;
backEndCost = Math.round(backEndCost);
var dealerProfit = dealerRevenue - adjustedAuctionValue - taxTitleAndLicenseFees - backEndCost;
netCheckToDealer = Math.round(netCheckToDealer);
totalDown = Math.round(totalDown);
dealerRevenue = Math.round(dealerRevenue);
adjustedAuctionValue = Math.round(adjustedAuctionValue);
taxTitleAndLicenseFees = Math.round(taxTitleAndLicenseFees);
dealerProfit = Math.round(dealerProfit);
if (dealerProfit < 0) {
$('#DMT_dealerProfit').css({ 'color': 'red' });
}
else {
$('#DMT_dealerProfit').css({ 'color': '#585858' });
}
$('#DMT_netCheckToDealer').val(netCheckToDealer.toString());
$('#DMT_downPayment').val(totalDown.toString());
$('#DMT_dealerRevenue').val(dealerRevenue.toString());
$('#DMT_adjustedAuctionValue').val(adjustedAuctionValue.toString());
$('#DMT_titleLicenseAndDocFees').val(taxTitleAndLicenseFees.toString());
$('#DMT_backEndCost').val(backEndCost.toString());
$('#DMT_dealerProfit').val(dealerProfit.toString());
CalculateEstimatedDown(estimatedMarkup, downPayment, netTrade);
GetRequiredDown(false);
CalculateSuggestedDown();
CalculateRisk(pageContainer);
ValidateApproval(pageContainer);
ValidateRelationshipManagerMode(pageContainer);
}
AnalyzeRiskFactors();
return pageContainer;
}
function hideShowApplyMaxMarkupRow() {
var maxMarkup = parseInt($('#_maxVehicleMarkup').val());
var estimatedMarkup = parseInt($('#_estimatedMarkup').val());
if (estimatedMarkup < maxMarkup) {
$('#_applyMaxMarkupRow').hide();
}
else {
$('#_applyMaxMarkupRow').show();
}
}
function ChangeAcquisitionFee() {
$('#_dealerProfitTax').val('0');
$('#DMT_dealerProfitTax').val('0');
CalculateDeskingPage();
}
function calculateTax(dealStructure) {
if (dealStructure == 'structure') {
var taxableAmount = parseFloat($('#DlrStrctr_SalePrice').val());
if ($('#_structureTaxServiceContract').val() == 'True' && !isNaN(parseFloat($('#DlrStrctr_ServiceContract').val()))) {
taxableAmount += parseFloat($('#DlrStrctr_ServiceContract').val());
}
if ($('#_structureTaxGap').val() == 'True' && !isNaN(parseFloat($('#DlrStrctr_GapFee').val()))) {
taxableAmount += parseFloat($('#DlrStrctr_GapFee').val());
}
if ($('#_enableEForms').val() == 'True') {
if ($('#_structureTaxDocumentFee').val() == 'True' && !isNaN(parseFloat($('#DlrStrctr_DocumentFeeDocCalc').val()))) {
taxableAmount += parseFloat($('#DlrStrctr_DocumentFeeDocCalc').val());
}
if ($('#_structureTaxFrontEndFees').val() == 'True' && !isNaN(parseFloat($('#DlrStrctr_OtherFrontEndFeesDocCalc').val()))) {
taxableAmount += parseFloat($('#DlrStrctr_OtherFrontEndFeesDocCalc').val());
}
}
else {
if ($('#_structureTaxDocumentFee').val() == 'True' || $('#_structureTaxFrontEndFees').val() == 'True') {
taxableAmount += parseFloat($('#DlrStrctr_BankOrFrontEndFees').val());
}
}
if ($('#_structureTaxDeductTrade').val() == 'True' && !isNaN(parseFloat($('#DlrStrctr_TradeAcvNearTrade').val()))) {
taxableAmount -= parseFloat($('#DlrStrctr_TradeAcvNearTrade').val());
}
var totalSalesTax = (Math.round(taxableAmount * parseFloat($('#_taxRateHidden').val()) * Math.pow(10, 2)) / Math.pow(10, 2)).toFixed(2);
var structureSalesTax = (parseFloat(totalSalesTax)) >= 0 ? parseFloat(totalSalesTax).toFixed(2) : 0;
if ($('#DlrStrctr_SalesTax').val() != structureSalesTax) {
SaveStructureValueAjax('SalesTax', structureSalesTax);
}
$('#DlrStrctr_SalesTax').val(structureSalesTax.toString());
$('#DlrStrctr_SalesTaxDocCalc').val(structureSalesTax.toString());
return parseFloat(structureSalesTax.toString());
}
else {
var taxableAmount = parseFloat($('#_approvalSalePrice').val());
if ($('#_structureTaxServiceContract').val() == 'True' && !isNaN(parseFloat($('#Apprvl_ServiceContract').val()))) {
taxableAmount += parseFloat($('#Apprvl_ServiceContract').val());
}
if ($('#_structureTaxGap').val() == 'True' && !isNaN(parseFloat($('#Apprvl_GapFee').val()))) {
taxableAmount += parseFloat($('#Apprvl_GapFee').val());
}
if ($('#_enableEForms').val() == 'True') {
if ($('#_structureTaxDocumentFee').val() == 'True' && !isNaN(parseFloat($('#DlrStrctr_DocumentFeeDocCalc').val()))) {
taxableAmount += parseFloat($('#DlrStrctr_DocumentFeeDocCalc').val());
}
if ($('#_structureTaxFrontEndFees').val() == 'True' && !isNaN(parseFloat($('#DlrStrctr_OtherFrontEndFeesDocCalc').val()))) {
taxableAmount += parseFloat($('#DlrStrctr_OtherFrontEndFeesDocCalc').val());
}
}
else {
if (($('#_structureTaxDocumentFee').val() == 'True' || $('#_structureTaxFrontEndFees').val() == 'True') && !isNaN(parseFloat($('#_approvalFrontEndFees').val()))) {
taxableAmount += parseFloat($('#_approvalFrontEndFees').val());
}
}
if ($('#_structureTaxDeductTrade').val() == 'True' && !isNaN(parseFloat($('#DlrStrctr_TradeAcvNearTrade').val()))) {
taxableAmount -= parseFloat($('#DlrStrctr_TradeAcvNearTrade').val());
}
var totalSalesTax = (Math.round(taxableAmount * parseFloat($('#_taxRateHidden').val()) * Math.pow(10, 2)) / Math.pow(10, 2)).toFixed(2);
var approvalSalesTax = (parseFloat(totalSalesTax)) >= 0 ? parseFloat(totalSalesTax).toFixed(2) : 0;
$('#_approvalSalesTax').val(approvalSalesTax.toString());
return parseFloat(approvalSalesTax.toString());
}
}
function CalculateEstimatedMarkup() {
var sellingPrice = parseFloat($('#_approvalSalePrice').val());
var markup = 0;
if (sellingPrice > 0) {
var adjustedAuctionValue = parseInt($('#_adjustedAuctionValue').val());
var frontEndFeesMarkup = (+$('#_approvalFrontEndFees').val() > 300 ? +$('#_approvalFrontEndFees').val() - 300 : 0);
var titleAndLicenseMarkup = (+$('#_approvalTitleAndLicenseFees').val() > 500 ? +$('#_approvalTitleAndLicenseFees').val() - 500 : 0);
var markup = sellingPrice - adjustedAuctionValue + frontEndFeesMarkup + titleAndLicenseMarkup;
$('#_estimatedMarkup').val(markup.toString());
}
return markup;
}
function CalculateEstimatedDown(estimatedMarkup, downPayment, netTrade) {
var maxVehicleMarkup = parseInt($('#_estimatedMarkup').attr('maxVehicleMarkup'));
var totalDown = downPayment + netTrade;
var estimatedDown = totalDown - (estimatedMarkup - maxVehicleMarkup);
if (estimatedDown > totalDown) {
estimatedDown = totalDown;
}
$('#_estimatedDown').val(estimatedDown.toString());
return estimatedDown;
}
function contractRateChanged() {
$('#Apprvl_ContractRate').attr('hasManuallyChanged', 'true');
EditApprovalValueWithQuickCalculator();
}
function UndoOverrideTaxCalculator() {
if ($('#_overrideTaxCalculator').val() == 'True') {
OverrideTaxCalculator();
}
}
function OverrideTaxCalculator() {
if ($('#_overrideTaxCalculator').val() == 'False') {
$('#_overrideTaxCalculatorClosedLock').hide();
$('#_overrideTaxCalculatorOpenLock').show();
$('#DlrStrctr_SalesTaxDocCalc').css('background-color', 'Silver');
$('#_overrideSalesTaxDocCalc').show();
$('#_overrideSalesTaxDocCalcLabel').show();
$('#_overrideTaxCalculator').val('True');
$('#DlrStrctr_SalesTaxDocCalc').attr('readonly', 'readonly');
SaveStructureValueAjax("OverrideTaxCalculator", "1");
}
else {
$('#_overrideTaxCalculatorOpenLock').hide();
$('#_overrideTaxCalculatorClosedLock').show();
$('#DlrStrctr_SalesTaxDocCalc').css('background-color', '');
$('#_overrideSalesTaxDocCalc').hide();
$('#_overrideSalesTaxDocCalcLabel').hide();
$('#_overrideTaxCalculator').val('False');
$('#DlrStrctr_SalesTaxDocCalc').removeAttr('readonly');
SaveStructureValueAjax("OverrideTaxCalculator", "0");
}
}
;
function OverrideTaxRate() {
$('#_overrideTaxRateClosedLock').hide();
$('#_overrideTaxRateOpenLock').show();
$('#_structureTaxRate').css('background-color', '');
$('#_structureTaxRate').prop('readonly', '');
}
;
function SaveTaxRateOverride() {
MakeTaxRateReadonly();
$('#_taxRateHidden').val(($('#_structureTaxRate').val() / 100).toString());
$.ajax({
type: 'POST',
url: '../../api/dealerships/SaveTaxSettings?dealershipId=' + $('#DealershipId').val() + '&taxRateOverride=' + $('#_structureTaxRate').val() / 100,
dataType: 'json',
contentType: 'application/json; charset=utf-8'
});
CloseAllCalculators();
CalculateDeskingPage();
}
;
function CancelTaxRateOverride(closeAllCalculators) {
MakeTaxRateReadonly();
$('#_structureTaxRate').val(($('#_taxRateHidden').val() * 100).toString());
if (closeAllCalculators) {
CloseAllCalculators();
}
}
;
function MakeTaxRateReadonly() {
$('#_overrideTaxRateClosedLock').show();
$('#_overrideTaxRateOpenLock').hide();
$('#_structureTaxRate').prop('readonly', 'readonly');
$('#_structureTaxRate').css('background-color', 'Silver');
}
function CalculateRisk(pageContainer) {
CalculateYield(pageContainer);
CalculateRequiredRateOfReturn(pageContainer);
var requiredRateOfReturn = parseFloat($('#Apprvl_RequiredRateOfReturn').attr('requiredRateOfReturn'));
var yield = parseFloat($('#Apprvl_CalculatedYield').attr('yield'));
var difference = yield - requiredRateOfReturn;
difference = Math.round(difference * 100) / 100;
var requiredRateOfReturnMessage = $('#Apprvl_RequiredRateOfReturn').val();
if (requiredRateOfReturnMessage == 'TD') {
$('#_yieldRRRdifference').text('Turn Down');
$('#_yieldRRRdifference').css('color', 'red');
}
else if (requiredRateOfReturnMessage == 'CLTV') {
$('#_yieldRRRdifference').text('CLTV too high');
$('#_yieldRRRdifference').css('color', 'red');
}
else if (difference < 0) {
if (requiredRateOfReturn >= 100) {
$('#_yieldRRRdifference').text('Turn Down');
$('#_yieldRRRdifference').css('color', 'red');
}
else {
$('#_yieldRRRdifference').text(difference + '% below RRR');
$('#_yieldRRRdifference').css('color', 'red');
}
}
else {
$('#_yieldRRRdifference').text('RRR met');
$('#_yieldRRRdifference').css('color', 'green');
}
}
function GetRequiredRiskFee() {
var minRequiredDown = parseInt($('#_requiredDown').val());
if (isNaN(minRequiredDown)) {
minRequiredDown = 0;
}
var estimatedDown = parseInt($('#_estimatedDown').val());
if (isNaN(estimatedDown)) {
estimatedDown = 0;
}
var suggestedRiskFee = parseInt($('#Apprvl_AcquisitionFee').attr('StandardRiskFee'));
if (isNaN(suggestedRiskFee)) {
suggestedRiskFee = 0;
}
return suggestedRiskFee;
}
function IsTrueDownDeal() {
var excessDown = CalculateExcessDownPayment(), trueDownFlagAmount = parseInt($('#_estimatedDown').attr('truedownflagamount'));
if (isNaN(excessDown) == false
&& isNaN(trueDownFlagAmount) == false
&& excessDown >= trueDownFlagAmount) {
return true;
}
return false;
}
function CalculateSuggestedRequiredRateOfReturn(pageContainer, yield) {
var requiredRateOfReturn = parseFloat($('#_RRR').attr('minRRR')) * 100, minRequiredRateOfReturn = requiredRateOfReturn, stateAdjustment = parseFloat($('#_stateAdjustment').val()), vehicleMileageAdjustment = 0;
if (pageContainer.purchase.kelleyAuction <= 0) {
return 100;
}
requiredRateOfReturn += parseFloat($('#_dealerAdjustment').val());
var adjustedAuctionValue = parseInt($('#_adjustedAuctionValue').val());
var cltv = CalculateCltv();
var maxCustomerLoanToValue = parseFloat($('#_usedCustomerScore').attr('maxCLTV'));
if (isNaN(maxCustomerLoanToValue)) {
maxCustomerLoanToValue = 0;
}
if (cltv > maxCustomerLoanToValue) {
requiredRateOfReturn = 1;
}
vehicleMileageAdjustment = GetVehicleMileageAdjustment(pageContainer.approval.loanTerm);
requiredRateOfReturn += vehicleMileageAdjustment;
requiredRateOfReturn += parseFloat($('#_downPaymentScore').val());
requiredRateOfReturn += stateAdjustment;
if (requiredRateOfReturn < minRequiredRateOfReturn) {
requiredRateOfReturn = minRequiredRateOfReturn;
}
requiredRateOfReturn += CalculatePostRRRAdjustments();
requiredRateOfReturn = Math.round(requiredRateOfReturn * 100) / 100;
return requiredRateOfReturn;
}
function GetTermForDesiredAdjustment(desiredAdjustment) {
var sellPrimeServiceContract = false, baseTerm = 0, requiredRateOfReturnAdjustmentBelowBaseTerm = 0, requiredRateOfReturnAdjustment = 0, adjustment = 0;
sellPrimeServiceContract = $('#_approvalSellPrimeServiceContract').is(':checked');
var mileageLimits;
if ($('#_vehicleMileageAdjustment').attr('vehiclemileageriskfactor') != undefined) {
mileageLimits = JSON.parse($('#_vehicleMileageAdjustment').attr('vehiclemileageriskfactor'));
baseTerm = parseInt(mileageLimits.BaseTerm);
requiredRateOfReturnAdjustment = parseFloat(mileageLimits.RequiredRateOfReturnAdjustment);
requiredRateOfReturnAdjustmentBelowBaseTerm = parseFloat(mileageLimits.RequiredRateOfReturnAdjustmentBelowBaseTerm);
}
var stateAdjustment = parseInt($('#_vehicleMileageAdjustment').attr('termAdjustmentForState'));
if (isNaN(stateAdjustment)) {
stateAdjustment = 0;
}
baseTerm += stateAdjustment;
if (sellPrimeServiceContract) {
baseTerm += 6;
}
if ($('#_vehicleMileageAdjustment').attr('vehiclemake') != undefined) {
var makeAdjustmentSetting = JSON.parse($('#_vehicleMileageAdjustment').attr('vehiclemake'));
var makeAdjustment = parseInt(makeAdjustmentSetting.TermAdjustment);
if (isNaN(makeAdjustment)) {
makeAdjustment = 0;
}
baseTerm += makeAdjustment;
baseTerm += parseInt($('#_vehicleMileageAdjustment').attr('modelTermAdjustment') || '0');
baseTerm += parseInt($('#_vehicleMileageAdjustment').attr('vehicleTypeTermAdjustment') || '0');
}
var loanTerm = 0;
if (desiredAdjustment >= 0) {
if (requiredRateOfReturnAdjustment != 0) {
loanTerm = (desiredAdjustment + baseTerm * requiredRateOfReturnAdjustment) / requiredRateOfReturnAdjustment;
}
}
else {
if (requiredRateOfReturnAdjustmentBelowBaseTerm != 0) {
loanTerm = (desiredAdjustment + baseTerm * requiredRateOfReturnAdjustmentBelowBaseTerm) / requiredRateOfReturnAdjustmentBelowBaseTerm;
}
}
if (loanTerm < 0) {
loanTerm = 1;
}
return Math.round(loanTerm);
}
function GetVehicleMileageAdjustment(loanTerm) {
var sellPrimeServiceContract = false, baseTerm = 0, maxTerm = 60, requiredRateOfReturnAdjustmentBelowBaseTerm = 0, maxRequiredRateOfReturnReductionForTerm = 0, requiredRateOfReturnAdjustment = 0, maxRequiredRateOfReturnAdjustment = 0, adjustment = 0;
sellPrimeServiceContract = $('#_approvalSellPrimeServiceContract').is(':checked');
var mileageLimits;
if ($('#_vehicleMileageAdjustment').attr('vehiclemileageriskfactor') != undefined) {
mileageLimits = JSON.parse($('#_vehicleMileageAdjustment').attr('vehiclemileageriskfactor'));
baseTerm = parseInt(mileageLimits.BaseTerm);
maxTerm = parseInt(mileageLimits.MaxTerm);
maxRequiredRateOfReturnAdjustment = parseFloat(mileageLimits.MaxRequiredRateOfReturnAdjustment);
requiredRateOfReturnAdjustment = parseFloat(mileageLimits.RequiredRateOfReturnAdjustment);
requiredRateOfReturnAdjustmentBelowBaseTerm = parseFloat(mileageLimits.RequiredRateOfReturnAdjustmentBelowBaseTerm);
maxRequiredRateOfReturnReductionForTerm = parseFloat(mileageLimits.MaxRequiredRateOfReturnReductionForTerm);
}
var stateAdjustment = parseInt($('#_vehicleMileageAdjustment').attr('termAdjustmentForState'));
if (isNaN(stateAdjustment)) {
stateAdjustment = 0;
}
baseTerm += stateAdjustment;
if (sellPrimeServiceContract) {
baseTerm += 6;
}
if ($('#_vehicleMileageAdjustment').attr('vehiclemake') != undefined) {
var makeAdjustmentSetting = JSON.parse($('#_vehicleMileageAdjustment').attr('vehiclemake'));
var makeAdjustment = parseInt(makeAdjustmentSetting.TermAdjustment);
if (isNaN(makeAdjustment)) {
makeAdjustment = 0;
}
baseTerm += makeAdjustment;
baseTerm += parseInt($('#_vehicleMileageAdjustment').attr('modelTermAdjustment') || '0');
baseTerm += parseInt($('#_vehicleMileageAdjustment').attr('vehicleTypeTermAdjustment') || '0');
}
if (loanTerm > baseTerm) {
adjustment += (loanTerm - baseTerm) * requiredRateOfReturnAdjustment;
}
else if (loanTerm < baseTerm) {
adjustment += (loanTerm - baseTerm) * requiredRateOfReturnAdjustmentBelowBaseTerm;
if (adjustment < maxRequiredRateOfReturnReductionForTerm) {
adjustment = maxRequiredRateOfReturnReductionForTerm;
}
}
adjustment = parseFloat(adjustment.toFixed(2));
if (maxRequiredRateOfReturnAdjustment > 0) {
if (adjustment > maxRequiredRateOfReturnAdjustment) {
adjustment = 1;
}
}
adjustment *= 100;
adjustment = Math.round(adjustment);
return adjustment;
}
function CalculateDownPaymentScore() {
if ($('#_salvageFlag').is(':checked')) {
return 0;
}
var requiredRateOfReturnAdjustment = 0;
var excessDownPayment = CalculateExcessDownPayment();
var jsonSettings = $('#_downPaymentScore').attr('downpaymentriskfactors');
var downPaymentRiskFactors = JSON.parse(jsonSettings);
var auctionValue = parseInt($('#_nadaAuctionValue').attr('auctionvalue'));
if (isNaN(auctionValue)) {
auctionValue = 0;
}
$.each(downPaymentRiskFactors, function (index, riskFactor) {
if (riskFactor.MinDown <= excessDownPayment && (isNaN(riskFactor.MaxDown) || excessDownPayment <= riskFactor.MaxDown)) {
if (auctionValue) {
requiredRateOfReturnAdjustment = riskFactor.RequiredRateOfReturnAdjustmentForKnownAuctionValue * 100;
}
else {
requiredRateOfReturnAdjustment = riskFactor.RequiredRateOfReturnAdjustment * 100;
}
$('#_downPaymentScore').val(requiredRateOfReturnAdjustment.toString());
}
});
return requiredRateOfReturnAdjustment;
}
function CalculateCltv() {
var maxFinancedOtd = +$('#Apprvl_MaxFinancedOtd').val() > 0 ? +$('#Apprvl_MaxFinancedOtd').val() : +$('#DlrStrctr_AmountFinanced').val();
var adjustedAuctionValue = parseInt($('#_adjustedAuctionValue').val());
var cltv = Math.round((maxFinancedOtd / adjustedAuctionValue) * 100) / 100;
return cltv;
}
function CalculateCltvWithoutGapOrServiceContract() {
var maxFinancedTop = +$('#Apprvl_AmountFinanced').val() > 0 ? +$('#Apprvl_AmountFinanced').val() : +$('#DlrStrctr_UnPaidBalance').val();
var adjustedAuctionValue = parseInt($('#_adjustedAuctionValue').val());
var cltv = Math.round((maxFinancedTop / adjustedAuctionValue) * 100) / 100;
return cltv;
}
function CalculateExcessDownPayment() {
var estimatedDownPayment = parseInt($('#_estimatedDown').val());
var minimumDownRequired = parseInt($('#_requiredDown').val());
var excessDownPayment = estimatedDownPayment - minimumDownRequired;
return excessDownPayment;
}
function CalculateRequiredRateOfReturn(pageContainer) {
var requiredRateOfReturn = parseFloat($('#_RRR').attr('minRRR')) * 100, minRequiredRateOfReturn = requiredRateOfReturn, stateAdjustment = parseFloat($('#_stateAdjustment').val()), vehicleMileageAdjustment = 0, netAdjustment = 0, maxCustomerLoanToValue = parseFloat($('#_usedCustomerScore').attr('maxCLTV'));
if (isNaN(maxCustomerLoanToValue)) {
maxCustomerLoanToValue = 0;
}
var cltv = CalculateCltv();
$('#_customerLtv').text(cltv);
$('#_RRR').val(requiredRateOfReturn.toString());
if (pageContainer.purchase.kelleyAuction <= 0) {
$('#Apprvl_RequiredRateOfReturn').val('auc');
$('#_requiredRateOfReturnHidden').val('100');
return;
}
var dealerAdjustment = parseFloat($('#_dealerAdjustment').val());
requiredRateOfReturn += dealerAdjustment;
var adjustedAuctionValue = parseInt($('#_adjustedAuctionValue').val());
SetTradeRequirement(pageContainer);
var paymentToIncomeAdjustment = 0;
if (maxCustomerLoanToValue > 0 && cltv > maxCustomerLoanToValue) {
$('#_customerLTVAdjustment').val('100');
requiredRateOfReturn += 100;
}
else {
$('#_customerLTVAdjustment').val('0');
}
var jsonSettings = $('#_customerLTVAdjustment').attr('rrradjustments');
if (typeof jsonSettings !== 'undefined') {
var cltvAdjustments = JSON.parse(jsonSettings);
$.each(cltvAdjustments, function (index, adjustment) {
if (adjustment.MinLoanToValue <= cltv && cltv <= adjustment.MaxLoanToValue) {
paymentToIncomeAdjustment = adjustment.PaymentToIncomeAdjustment;
}
});
}
CalculateMaxPayments();
vehicleMileageAdjustment = GetVehicleMileageAdjustment(pageContainer.approval.loanTerm);
if (vehicleMileageAdjustment >= 100) {
$('#_vehicleMileageAdjustment').val('TD');
$('#_netAdjustment').val('TD');
$('#Apprvl_RequiredRateOfReturn').val('TD');
return 100;
}
else {
$('#_vehicleMileageAdjustment').val(vehicleMileageAdjustment.toString());
}
requiredRateOfReturn += vehicleMileageAdjustment;
var downPayment = parseFloat($('#Apprvl_DownPayment').val());
var netTrade = parseFloat($('#_approvalNetTrade').val());
var estimatedMarkup = CalculateEstimatedMarkup();
CalculateEstimatedDown(estimatedMarkup, downPayment, netTrade);
CalculateSuggestedDown();
var customerDownPaymentScore = CalculateDownPaymentScore();
$('#_downPaymentScore').val(customerDownPaymentScore.toString());
requiredRateOfReturn += customerDownPaymentScore;
requiredRateOfReturn += stateAdjustment;
if (requiredRateOfReturn < minRequiredRateOfReturn) {
requiredRateOfReturn = minRequiredRateOfReturn;
}
requiredRateOfReturn += CalculatePostRRRAdjustments();
requiredRateOfReturn = Math.round(requiredRateOfReturn * 100) / 100;
netAdjustment = requiredRateOfReturn - parseFloat($('#_RRR').val());
$('#_netAdjustment').val(netAdjustment.toString());
if (maxCustomerLoanToValue > 0 && cltv > maxCustomerLoanToValue) {
$('#Apprvl_RequiredRateOfReturn').attr('requiredRateOfReturn', 100);
$('#_requiredRateOfReturnHidden').val('100');
if (maxCustomerLoanToValue > 0 && cltv > maxCustomerLoanToValue) {
$('#Apprvl_RequiredRateOfReturn').val('CLTV');
$('#_customerLTVAdjustment').val('100');
}
else {
$('#Apprvl_RequiredRateOfReturn').val('TD');
}
}
else {
var calculatedYield = parseFloat($('#Apprvl_CalculatedYield').attr('yield'));
if (calculatedYield < requiredRateOfReturn) {
$('#Apprvl_CalculatedYield').css('background-color', '#FA8072');
}
else {
$('#Apprvl_CalculatedYield').css('background-color', 'lightGreen');
}
$('#Apprvl_RequiredRateOfReturn').attr('requiredRateOfReturn', requiredRateOfReturn);
$('#Apprvl_RequiredRateOfReturn').val(requiredRateOfReturn.toString() + '%');
$('#_requiredRateOfReturnHidden').val(requiredRateOfReturn.toString());
}
return requiredRateOfReturn;
}
function CalculateMaxPayments() {
var maxPaymentLimitText = '';
var maxPaymentLimitTextForOpenAuto = '';
var maxPaymentLimit = +$('#_maxPayment').attr('maxPaymentLimit');
var maxPayment = parseInt($('#_maxPayment').attr('maxPayment')) || 0;
if (maxPaymentLimit > 0 && maxPayment > maxPaymentLimit) {
maxPayment = maxPaymentLimit;
maxPaymentLimitText = 'Ceiling applied for high customer score: ' + maxPaymentLimit;
}
var maxPaymentText = '$' + maxPayment + '.00';
var calculationDescription = $('#_maxPayment').attr('calculationDescription');
var calculationDescriptionForModal = calculationDescription.replace(/\n/g, ' ');
$('#_maxPayment').prop('title', calculationDescription + '\n\n' + maxPaymentLimitText);
$('#maxPaymentData').html(' ' + calculationDescriptionForModal + ' ' + maxPaymentLimitText);
var openAutoPayment = parseInt($('#_maxPayment').attr('openAutoPayment')) || 0;
if (openAutoPayment > 0) {
var maxPaymentWithOpenAuto = parseFloat($('#_maxPaymentWithOpenAuto').attr('maxPaymentWithOpenAuto')) || 0;
if (maxPaymentLimit > 0 && maxPaymentWithOpenAuto > maxPaymentLimit) {
maxPaymentWithOpenAuto = maxPaymentLimit;
maxPaymentLimitTextForOpenAuto = 'Ceiling applied for high customer score: ' + maxPaymentLimit;
}
var maxPaymentWithOpenAutoText = '$' + maxPaymentWithOpenAuto + '.00';
$('#_maxPaymentWithOpenAuto').attr('maxPaymentWithOpenAuto', maxPaymentWithOpenAuto);
$('#_maxPaymentWithOpenAuto').text(maxPaymentWithOpenAutoText);
var calculationDescriptionForOpenAuto = $('#_maxPaymentWithOpenAuto').attr('calculationDescriptionForOpenAuto');
var calculationDescriptionForOpenAutoForModal = calculationDescriptionForOpenAuto.replace(/\n/g, ' ');
$('#_maxPaymentWithOpenAuto').prop('title', calculationDescriptionForOpenAuto + '\n\n' + maxPaymentLimitTextForOpenAuto);
$('#maxPaymentWithOpenAutoData').html(' ' + calculationDescriptionForOpenAutoForModal + ' ' + maxPaymentLimitTextForOpenAuto);
}
}
function CalculatePostRRRAdjustments() {
var adjustment = 0;
if ($('#_proofOfIncomeWaived').is(':checked')) {
adjustment += parseFloat($('#_proofOfIncomeWaived').attr("RequiredRateOfReturnAdjustment")) * 100;
}
if ($('#_salvageFlag').is(':checked')) {
adjustment += parseFloat($('#_salvageFlag').attr("RequiredRateOfReturnAdjustment")) * 100;
}
if ($('#_tmuFlag').is(':checked')) {
adjustment += parseFloat($('#_tmuFlag').attr("RequiredRateOfReturnAdjustment")) * 100;
}
return adjustment;
}
function CalculateYieldPercentage(loanAmount, monthlyPayment, loanTerm) {
var rate = .5, previousRate = 0;
var calculatedPayment = 0;
var tries = 1;
while (calculatedPayment != monthlyPayment && tries < 50) {
calculatedPayment = (rate * loanAmount) / (1 - Math.pow(1 + rate, loanTerm * -1));
if (calculatedPayment == monthlyPayment) {
return rate * 1200;
}
else {
var difference = Math.abs((rate - previousRate) / 2);
previousRate = rate;
if (calculatedPayment < monthlyPayment) {
rate = rate + difference;
}
else {
rate = rate - difference;
}
}
tries++;
}
return rate * 1200;
}
function CalculateYield(pageContainer) {
var netCheckToDealer = parseFloat($('#_totalNetCheck').text());
var monthlyPayment = parseFloat($('#_approvalMonthlyPayment').val());
var loanTerm = parseInt($('#_approvalLoanTerm').val());
var calculatedYield = 0, standardYield = 0;
var standardRiskFee = parseInt($('#Apprvl_AcquisitionFee').attr('standardriskfee'));
var actualRiskFee = parseInt($('#Apprvl_AcquisitionFee').val());
if (monthlyPayment > 0 && loanTerm > 0 && netCheckToDealer > 0) {
calculatedYield = CalculateYieldPercentage(netCheckToDealer, monthlyPayment, loanTerm);
if (actualRiskFee < standardRiskFee) {
netCheckToDealer = netCheckToDealer - (standardRiskFee - actualRiskFee);
standardYield = CalculateYieldPercentage(netCheckToDealer, monthlyPayment, loanTerm);
standardYield = Math.round(standardYield * 100) / 100;
}
else {
standardYield = calculatedYield;
}
}
$('#Apprvl_CalculatedYield').attr('standardYield', standardYield);
calculatedYield = Math.round(calculatedYield * 100) / 100;
$('#Apprvl_CalculatedYield').attr('yield', calculatedYield);
$('#Apprvl_CalculatedYield').val(calculatedYield.toString() + '%');
$('#_yieldHidden').val(calculatedYield.toString());
return calculatedYield;
}
function CalculateAdjustedAuctionValue(pageContainer) {
var adjustedAuctionValue = 0;
var averageAuctionValue = pageContainer.purchase.kelleyAuction;
var minExpectedMarkup = parseInt($('#_estimatedMarkup').attr('minvehiclemarkup'));
var $adjustedAuctionValueElement = $('#_adjustedAuctionValue');
var adjustedDealerCollateralIndexScore = parseFloat($adjustedAuctionValueElement.attr('adjustedDealerCollateralIndexScore'));
var knownAuctionPack = parseFloat($adjustedAuctionValueElement.attr('knownAuctionPack'));
var dealerCollateralIndexPack = parseFloat($adjustedAuctionValueElement.attr('dealerCollateralIndexPack'));
var unknownAuctionPack = parseFloat($adjustedAuctionValueElement.attr('unknownAuctionPack'));
var auctionValue = 0;
var actualAuctionMileage = 0;
var $actualAuctionValueElement = $('#_nadaAuctionValue');
var actualAuctionValueAgeInDays = 0;
var $flooredAmountElement = $('#_flooredAmount');
if ($flooredAmountElement.attr('amount')) {
auctionValue = +$flooredAmountElement.attr('amount');
var $flooredOdometerElement = $('#_flooredOdometer');
actualAuctionMileage = +$flooredOdometerElement.attr('odometer');
}
else {
auctionValue = parseInt($actualAuctionValueElement.attr('auctionvalue'));
if (isNaN(auctionValue)) {
auctionValue = 0;
}
actualAuctionMileage = parseInt($actualAuctionValueElement.attr('auctionMileage'));
actualAuctionValueAgeInDays = parseInt($actualAuctionValueElement.attr('actualAuctionValueAgeInDays'));
if (actualAuctionValueAgeInDays > 365) {
actualAuctionValueAgeInDays = 0;
auctionValue = 0;
actualAuctionMileage = 0;
}
}
var dealerVsAuctionMileageDiscrepancyThreshold = parseInt($actualAuctionValueElement.attr('dealerVsAuctionMileageDiscrepancyThreshold'));
var $DCIAdjustedElement = $('#_DCIAdjusted');
var minDealCountForDCI = parseInt($DCIAdjustedElement.attr('minDealCountForDCI'));
var dealerCollateralIndexCount = parseInt($DCIAdjustedElement.attr('dealerCollateralIndexCount'));
var DCIThresholdToOverrideKnownAuction = parseFloat($DCIAdjustedElement.attr('DCIThresholdToOverrideKnownAuction'));
var currentMileage = parseInt($('#_purchaseOdometer').val());
var mileageDiscrepancy = 0;
if (currentMileage > 0 && actualAuctionMileage > 1) {
mileageDiscrepancy = currentMileage - actualAuctionMileage;
}
var dealerHasValidDCIScore = adjustedDealerCollateralIndexScore > 0 && dealerCollateralIndexCount >= minDealCountForDCI;
var actualAuctionIsAboveAverage = auctionValue > averageAuctionValue;
var actualAuctionIsOverMileageThreshold = mileageDiscrepancy >= dealerVsAuctionMileageDiscrepancyThreshold;
var reasonActualAuctionValueNotUsed = '';
$DCIAdjustedElement.val('');
var adjustedAuctionTooltipTextLine1 = '';
var adjustedDealerCollateralIndexScoreRounded = Math.round(adjustedDealerCollateralIndexScore * 100) / 100;
var DCIAdjustedAuctionValue = averageAuctionValue * adjustedDealerCollateralIndexScore;
if (auctionValue > 0) {
var currentDealerType = GetDealerType();
var dealerType = new DealerType();
var maxOverAverageWholesale = parseInt($actualAuctionValueElement.attr('MaxOverAverageWholesale'));
var adjustedActualAuctionValue = auctionValue;
var ageAdjustment = actualAuctionValueAgeInDays >= 60 ? Math.floor((actualAuctionValueAgeInDays - 30) / 30) * .02 : 0;
var actualAuctionValueReducedByAge = auctionValue;
if (actualAuctionValueAgeInDays >= 60) {
actualAuctionValueReducedByAge = auctionValue * (1 - ageAdjustment);
}
if (mileageDiscrepancy >= dealerVsAuctionMileageDiscrepancyThreshold) {
var auctionValueIsHigherThanAverage = auctionValue > averageAuctionValue;
if (auctionValueIsHigherThanAverage || (dealerHasValidDCIScore && adjustedDealerCollateralIndexScore >= DCIThresholdToOverrideKnownAuction)) {
auctionValue = 0;
reasonActualAuctionValueNotUsed = 'mileage discrepancy is above threshold and'
+ (auctionValueIsHigherThanAverage ? ' actual auction is greater than average auction' : ' adjusted DCI is above the ' + DCIThresholdToOverrideKnownAuction + ' threshold');
$actualAuctionValueElement.css('color', 'red');
}
else {
var mileageAdjustment = mileageDiscrepancy >= 5000 ? Math.floor(mileageDiscrepancy / 5000) * .02 : 0;
var actualAuctionValueReducedByMileage = auctionValue;
if (mileageDiscrepancy >= 5000) {
actualAuctionValueReducedByMileage = auctionValue * (1 - mileageAdjustment);
}
adjustedActualAuctionValue = actualAuctionValueReducedByMileage;
adjustedAuctionTooltipTextLine1 = '= actual auction [' + auctionValue + ']' + (mileageAdjustment > 0 ? ' - mileage [' + (mileageAdjustment * 100) + '%]' : '');
if (actualAuctionValueReducedByAge < actualAuctionValueReducedByMileage) {
adjustedActualAuctionValue = actualAuctionValueReducedByAge;
adjustedAuctionTooltipTextLine1 = '= actual auction [' + auctionValue + ']' + (ageAdjustment > 0 ? ' - age [' + (ageAdjustment * 100) + '%]' : '');
}
adjustedAuctionValue = adjustedActualAuctionValue + knownAuctionPack;
adjustedAuctionTooltipTextLine1 = adjustedAuctionTooltipTextLine1 + ' + auction-hit pack [' + knownAuctionPack + ']';
if (dealerHasValidDCIScore && DCIAdjustedAuctionValue < adjustedActualAuctionValue) {
auctionValue = 0;
reasonActualAuctionValueNotUsed = 'mileage discrepancy is above threshold and average auction * adjusted DCI\n is lower than actual auction reduced by mileage or age adjustment';
$actualAuctionValueElement.css('color', 'red');
}
}
}
else {
adjustedActualAuctionValue = actualAuctionValueReducedByAge;
adjustedAuctionValue = adjustedActualAuctionValue + knownAuctionPack;
adjustedAuctionTooltipTextLine1 = '= actual auction [' + auctionValue + ']' + (ageAdjustment > 0 ? ' - age [' + (ageAdjustment * 100) + '%]' : '') + ' + auction-hit pack [' + knownAuctionPack + ']';
}
if (auctionValue > 0 && averageAuctionValue > 0) {
var auctionMax = averageAuctionValue + maxOverAverageWholesale;
if (auctionMax < adjustedAuctionValue) {
adjustedAuctionValue = auctionMax;
adjustedAuctionTooltipTextLine1 = '= average auction [' + averageAuctionValue + '] + max over average wholesale setting [' + maxOverAverageWholesale + ']';
reasonActualAuctionValueNotUsed = 'hit the ceiling at average auction + MaxOverAverageWholesale setting';
$DCIAdjustedElement.val('');
$actualAuctionValueElement.css('color', 'red');
}
}
}
if (auctionValue <= 0) {
if (dealerHasValidDCIScore) {
adjustedAuctionValue = DCIAdjustedAuctionValue + dealerCollateralIndexPack;
adjustedAuctionTooltipTextLine1 = '= average auction [' + averageAuctionValue + '] * adjusted DCI score [' + adjustedDealerCollateralIndexScoreRounded + '] + DCI pack [' + dealerCollateralIndexPack + ']';
$DCIAdjustedElement.val(Math.round(DCIAdjustedAuctionValue).toString());
}
else {
adjustedAuctionValue = averageAuctionValue + unknownAuctionPack;
adjustedAuctionTooltipTextLine1 = '= average auction [' + averageAuctionValue + '] + no-hit pack [' + unknownAuctionPack + ']';
}
var sellingPrice = parseFloat($('#_approvalSalePrice').val());
if (isNaN(minExpectedMarkup) == false && minExpectedMarkup > 0 && sellingPrice > 0) {
$adjustedAuctionValueElement.val(Math.round(adjustedAuctionValue).toString());
var estimatedMarkup = CalculateEstimatedMarkup();
if (estimatedMarkup < minExpectedMarkup) {
var difference = minExpectedMarkup - estimatedMarkup;
adjustedAuctionValue -= difference;
adjustedAuctionTooltipTextLine1 = adjustedAuctionTooltipTextLine1 + ' - markup difference [' + difference + ']';
}
}
}
var adjustedAuctionValueRounded = Math.round(adjustedAuctionValue).toString();
$adjustedAuctionValueElement.val(adjustedAuctionValueRounded);
var tooltipLine1 = adjustedAuctionValueRounded + ' ' + adjustedAuctionTooltipTextLine1;
var tooltipLine2 = 'adjusted DCI Score: ' + (dealerHasValidDCIScore ? adjustedDealerCollateralIndexScoreRounded : '--');
var tooltipLine3 = 'mileage discrepancy: ' + (actualAuctionMileage > 0 ? mileageDiscrepancy : '--');
var tooltipLine4 = (reasonActualAuctionValueNotUsed != '' ? 'not using actual auction: ' + reasonActualAuctionValueNotUsed : '');
var adjustedAuctionTooltipText = tooltipLine1 + '\n\n' + tooltipLine2 + '\n' + tooltipLine3 + '\n' + tooltipLine4;
if ($('#_saveApprovalHidden').attr('userIsRelationshipManager') == 'false') {
$adjustedAuctionValueElement.prop('title', adjustedAuctionTooltipText);
}
$adjustedAuctionValueElement.attr('tooltipLine1', tooltipLine1);
$adjustedAuctionValueElement.attr('tooltipLine2', tooltipLine2);
$adjustedAuctionValueElement.attr('tooltipLine3', tooltipLine3);
$adjustedAuctionValueElement.attr('tooltipLine4', tooltipLine4);
$('#adjustedAuctionValueData').html(tooltipLine1 + ' ' + tooltipLine2 + ' ' + tooltipLine3 + ' ' + tooltipLine4);
}
function ShowAdjustedAuctionValueDataModal() {
$('#showAdjustedAuctionValueDataModal').click();
}
function ShowMaxPaymentDataModal() {
$('#showMaxPaymentDataModal').click();
}
function ShowMaxPaymentWithOpenAutoDataModal() {
$('#showMaxPaymentWithOpenAutoDataModal').click();
}
function ClearVehicleValues() {
$('#_purchaseYear').val('');
$('#_purchaseMake').val('');
$('#_purchaseModel').val('');
$('#_vehicleTrimDropDown').empty();
$('#_nadaAuctionOdometer').val('');
$('#_nadaAuctionValue').val('');
$('#_DCIAdjusted').val('');
$('#_wholesaleAverageAdjusted').val('');
$('#_bookValue').val('');
$('#_adjustedAuctionValue').val('');
$('#_mileageAdjustment').val('');
$('#_historyAdjustment').val('');
$('#_addDeductAdjustment').val('');
$('#_regionalAdjustment').val('');
}
function ChangeVin() {
var vin = $('#_purchaseVin').val();
if (vin == null) {
vin = '';
}
vin = vin.toUpperCase();
$('#_purchaseVin').val(vin);
$('#_purchaseOdometer').val("");
var primaryKey = getPrimaryKey();
ClearVehicleValues();
$('#_nadaAuctionOdometer').val('');
$('#_nadaAuctionValue').val('');
$('#_DCIAdjusted').val('');
$('#_flooredOdometer').val('');
$('#_flooredAmount').val('');
var pageContainer = LoadPageContainer();
$('#_savePdsApproval').hide();
$('#Apprvl_AddPlFndLst').hide();
$('#_dealStatusLabel').text('This deal needs to be re-submitted');
AutoCheckPalAjax();
$.ajax({
type: 'POST',
url: '../../api/Deals/ChangeVin?dealId=' + primaryKey + '&newVin=' + vin,
});
EnableFormCheckBoxes(null);
ClearGap('approval');
ClearGap('structure');
ClearServiceContract('approval');
ClearServiceContract('structure');
ClearStructureAndApproval(pageContainer);
}
function ClearStructureAndApproval(pageContainer) {
$('#DlrStrctr_SalePrice').val('0');
$('#DlrStrctr_SalesTax').val('0');
$('#DlrStrctr_DownPayment').val('0');
$('#DlrStrctr_BankOrFrontEndFees').val('0');
$('#DlrStrctr_LoanTerm').val('0');
$('#DlrStrctr_DocumentFeeDocCalc').val(pageContainer.titleLicenceDocFee.defaultDocFee);
$('#DlrStrctr_InventoryFeeDocCalc').val('0');
$('#DlrStrctr_TitleFeeDocCalc').val(pageContainer.titleLicenceDocFee.defaultTitleFee);
$('#DlrStrctr_LicenseFeeDocCalc').val(pageContainer.titleLicenceDocFee.defaultLicenseFee);
$('#DlrStrctr_RegistrationFeeDocCalc').val(pageContainer.titleLicenceDocFee.defaultRegistrationFee);
$('#DlrStrctr_AgeBasedFeeDocCalc').val('0');
$('#DlrStrctr_StateInspectionDocCalc').val(pageContainer.titleLicenceDocFee.defaultStateIm);
$('#DlrStrctr_StateInspectionCertificateFeeDocCalc').val('0');
$('#DlrStrctr_TempRegFeeDocCalc').val(pageContainer.titleLicenceDocFee.defaultTempRegistration);
LoadTitleLicenseDoc(pageContainer);
SaveTitleAndDocFeeCalculator(1, false);
CalculateDeskingPageWithObj(pageContainer);
$('#_isTruck').attr('checked', 'false');
$('#_isSuv').attr('checked', 'false');
if (pageContainer.webSiteMode === WebSiteMode.uw) {
$('#Apprvl_SelectedPacTierDrpDwn').val('');
TierDropDownChange();
if ($('#_isTruck').is(':checked')) {
$('#_isTruck').click();
}
else if ($('#_isSuv').is(':checked')) {
$('#_isSuv').click();
}
if ($('#_salvageFlag').is(':checked')) {
$('#_salvageFlag').click();
}
ClearApproval();
}
}
function ChangeAuction() {
var auc = $('#_wholesaleAverageAdjusted').val();
SaveStructureValueAjax('WholesaleAverageAdjusted', auc);
}
function ChangeOdometer() {
var primaryKey = getPrimaryKey();
var vin = $('#_purchaseVin').val();
if (vin == null) {
vin = '';
}
var odom = parseFloat($('#_purchaseOdometer').val());
if (isNaN(odom)) {
odom = 0;
}
$('#_savePdsApproval').hide();
$('#_dealStatusLabel').text('ODO has been changed, deal must be resubmitted');
if (odom > 0 && vin.length === 17) {
var state = GetDealershipState();
$.ajax({
type: 'POST',
url: '../../api/Deals/ChangeOdometer?dealId=' + primaryKey + '&newOdometer=' + odom + '&dealershipState=' + state,
success: function (blackBookResult) {
if (blackBookResult) {
$('#_vehicleTrimDropDown').empty();
var option = "Select Trim ";
$('#_vehicleTrimDropDown').append(option);
$.each(blackBookResult.BlackBookVehicles, function (index, vehicle) {
if (vehicle.IsSelected) {
$('#_wholesaleAverageAdjusted').val(vehicle.WholesaleAverageAdjusted);
$('#_bookValue').val(vehicle.WholesaleAverageAdjusted);
$('#_mileageAdjustment').val(vehicle.WholesaleAverageMileageAdjustment);
$('#_historyAdjustment').val(vehicle.WholesaleAverageHistoryAdjustment);
$('#_addDeductAdjustment').val(vehicle.WholesaleAverageAddDeductAdjustment);
$('#_regionalAdjustment').val(vehicle.WholesaleAverageRegionalAdjustment);
option = "" + vehicle.Series + ' ' + vehicle.Style + " ";
}
else {
option = "" + vehicle.Series + ' ' + vehicle.Style + " ";
}
$('#_purchaseYear').val(vehicle.ModelYear);
$('#_purchaseMake').val(vehicle.Make);
$('#_purchaseModel').val(vehicle.Model);
$('#_vehicleTrimDropDown').append(option);
});
$('#_savePdsApproval').hide();
$('#Apprvl_AddPlFndLst').hide();
$('#_dealStatusLabel').text('This deal needs to be re-submitted');
var pageContainer = LoadPageContainer();
ClearStructureAndApproval(pageContainer);
ClearGap('approval');
ClearGap('structure');
ClearServiceContract('approval');
ClearServiceContract('structure');
}
}
});
}
}
function GetDealershipState() {
return $('#DlrStrctr_SaleRate').attr('dealershipState');
}
function CalculateIowaRate() {
var odometer = +$('#_purchaseOdometer').val();
var vehicleYear = +$('#_purchaseYear').val();
var currentYear = (new Date()).getFullYear();
var apr;
var vehicleAge = currentYear - vehicleYear;
if (vehicleAge < 0
|| (vehicleAge == 0 && odometer < 1000)) {
apr = .21;
}
else if ((vehicleAge == 0 && odometer >= 1000)
|| (vehicleAge > 0 && vehicleAge <= 2)) {
apr = .24;
}
else {
apr = .27;
}
apr = (apr * 100).toString();
var $saleRateStructureInput = $('#DlrStrctr_SaleRate');
$saleRateStructureInput.val(apr);
CalculateDeskingPage();
SaveStructureFieldAjax('DlrStrctr_SaleRate', true);
var $saleRateApprovalInput = $('#Apprvl_ContractRate');
if ($saleRateApprovalInput) {
var pageContainer = LoadPageContainer();
$saleRateApprovalInput.val(apr);
EditApprovalValueWithQuickCalculator();
$saleRateApprovalInput.attr('hasmanuallychanged', 'false');
pageContainer.approval.contractRate = +apr;
}
}
function CalculateDeskingPage() {
var pageContainer;
pageContainer = LoadPageContainer();
if ($('#Apprvl_SelectedPacTierDrpDwn').attr('triggerTierChange') == 'true') {
$('#Apprvl_SelectedPacTierDrpDwn').removeAttr('triggerTierChange');
$("#Apprvl_SelectedPacTierDrpDwn option:selected").removeAttr("selected");
var tier = $('#Apprvl_SelectedPacTierDrpDwn').attr('suggestedtier');
$("#Apprvl_SelectedPacTierDrpDwn").val(tier);
pageContainer.approval.selectedTier = parseInt(tier);
TierDropDownChange();
CopyStructureToApproval();
UpdateAmountFinancedTop();
SolveApproval();
}
else {
CalculateDeskingPageWithObj(pageContainer);
}
var removeGap = RecalculateGapFees();
if (removeGap) {
pageContainer = LoadPageContainer();
CalculateDeskingPageWithObj(pageContainer);
}
RefreshDealSaveButtons();
$('#_saveApprovalHidden').attr('initialDeskingCalculationsComplete', 'true');
}
function SolveApproval() {
var dealId = getPrimaryKey();
$('#_savePdsApproval').hide();
$('#_solveApproval').hide();
$('#_solvingApproval').show();
var tierId = GetSelectedTierIdentifier(false);
$.ajax({
type: 'POST',
url: '/api/deals/' + dealId + '/SolveApproval?tierId=' + tierId,
contentType: 'application/json',
success: function (approval) {
if (approval.TierId == 1006) {
$('#Apprvl_SelectedPacTierDrpDwn').val(approval.TierId);
TierDropDownChange();
}
else {
$('#_approvalSalePrice').val(approval.SalePrice);
$('#_approvalSalesTax').val(approval.SalesTax);
$('#_approvalTitleAndLicenseFees').val(approval.TitleAndLicenseFees);
$('#Apprvl_DownPayment').val(approval.DownPayment);
$('#_approvalFrontEndFees').val(approval.FrontEndFees);
$('#_approvalLoanTerm').val(approval.LoanTerm);
$('#_approvalDaysToFirstPayment').val(approval.DaysToFirstPayment);
var apr = parseFloat(approval.SaleRate);
if (isNaN(apr)) {
apr = 0;
}
apr = apr * 100;
if (GetDealershipState() == 'ia') {
CalculateIowaRate();
}
else {
$('#Apprvl_ContractRate').val(apr.toFixed(2));
}
var netTrade = parseInt(approval.NetTrade);
if (isNaN(netTrade)) {
netTrade = 0;
}
$('#_approvalNetTrade').val(netTrade.toString());
$('#_decisionLogicFlagged').prop('checked', approval.DecisionLogicFlagged);
$('#Apprvl_AcquisitionFee').val(approval.AcquisitionFee);
$('#_acquisitionFeeException').val(approval.AcquisitionFeeException);
$('#Apprvl_AcquisitionFee').attr('DealerProfitTax', approval.DealerProfitTax);
$('#_dealerProfitTax').val(approval.DealerProfitTax);
$('#DMT_dealerProfitTax').val(approval.DealerProfitTax);
$('#_approvalSellPrimeServiceContract').prop('checked', approval.SellPrimeWarranty);
$('#_approvalServiceContractMonths').val(approval.ServiceContractMonths);
$('#_approvalServiceContractCost').val(approval.ServiceContractCost);
$('#Apprvl_ServiceContract').val(approval.ServiceContractCost);
$('#_approvalServiceContractDealerProfit').val(approval.ServiceContractDealerProfit);
$('#_approvalAWD').prop('checked', approval.PurchaseIsFourWheel);
$('#_approvalDiesel').prop('checked', approval.PurchaseIsDiesel);
$('#_approvalTurbo').prop('checked', approval.PurchaseIsTurbo);
$('#_approvalVehicleAge').prop('checked', approval.PurchaseisOldVehicle);
$('#_approvalSellPrimeGap').prop('checked', approval.SellPrimeGap);
$('#_approvalGapCost').val(approval.GapCost);
$('#Apprvl_GapFee').val(approval.GapCost);
$('#_approvalGapDealerProfit').val(approval.GapDealerProfit);
$('#Apprvl_RequireGpsDevice').prop('checked', approval.RequireGps);
$('#Apprvl_RequireGpsManuallyBy').val('');
$('#Apprvl_RequireGpsWaived').prop('checked', approval.RequireGpsWaived);
$('#Apprvl_RequireGpsWaivedManuallyBy').val('');
$('#Apprvl_RequiresTrade').prop('checked', approval.RequireTrade);
$('#Apprvl_RequireTradeSetManually').val('false');
$('#Apprvl_RequireTradeWaived').prop('checked', approval.RequireTradeWaived);
$('#Apprvl_RequireTradeWaivedManuallyBy').val('');
$('#_proofOfIncomeWaived').prop('checked', approval.ProofOfIncomeWaived);
$('#_proofOfIncomeWaivedManuallyBy').val('');
$('#_verificationOfEmploymentWaived').prop('checked', approval.VerificationOfEmploymentWaived);
$('#_verificationOfEmploymentWaivedManuallyBy').val('');
}
$('#Apprvl_PacStructureNotes').text(approval.StructureNotes);
UpdateAmountFinancedTop();
CalculateDeskingPage();
$('#_savePdsApproval').show();
$('#_solveApproval').show();
$('#_solvingApproval').hide();
EvaluateGapAndServiceContractForDocuSign();
}
});
}
function calculateNetCheckOverAuction() {
var netCheckOverAuction = 0;
var auctionValue = parseInt($('#_adjustedAuctionValue').val());
if (isNaN(auctionValue) || auctionValue <= 0) {
auctionValue = 0;
}
if (auctionValue > 0) {
netCheckOverAuction = +($('#_totalNetCheck').text() || '0') / auctionValue;
netCheckOverAuction *= 100;
netCheckOverAuction = Math.round(netCheckOverAuction * 100) / 100;
}
return netCheckOverAuction;
}
function UpdateApprovalUi(pageContainer) {
var adjustedAuctionValue = parseInt($('#_adjustedAuctionValue').val());
var buyerRepoCount = parseInt($('#_buyerCreditRepoAdjustment').attr('buyerRepoCount') || '0');
var coBuyerRepoCount = parseInt($('#_buyerCreditRepoAdjustment').attr('coBuyerRepoCount') || '0');
var hasSCNLTradeLine = ($('#_buyerCreditRepoAdjustment').attr('hasSCNLTradeLine') || 'false') == 'true';
var hasHighPercentageAutoChargeOff = ($('#_buyerCreditRepoAdjustment').attr('hasHighPercentageAutoChargeOff') || 'false') == 'true';
var buyerCreditRepoAdjustment = parseFloat($('#_buyerCreditRepoAdjustment').val());
var coBuyerCreditRepoAdjustment = parseFloat($('#_cobuyerCreditRepoAdjustment').val() || '0');
var tier = parseInt($('#Apprvl_SelectedPacTierDrpDwn').val() || '0');
if ($('#_saveApprovalHidden').attr('initialDeskingCalculationsComplete') == 'true' && $('#Apprvl_RequireGpsManuallyBy').val() == '') {
if (hasHighPercentageAutoChargeOff
|| tier == 4 || tier == 5 || tier == 6 || tier == 7
|| pageContainer.approval.maxFinancedOtd > 18000
|| (adjustedAuctionValue > 18000 && pageContainer.approval.maxFinancedOtd > 12500)
|| ((tier >= 2) &&
(buyerRepoCount > 1
|| coBuyerRepoCount > 1
|| hasSCNLTradeLine
|| buyerCreditRepoAdjustment >= 9
|| coBuyerCreditRepoAdjustment >= 9))) {
$('#Apprvl_RequireGpsDevice').prop('checked', true);
if ($('#Apprvl_RequireGpsWaivedManuallyBy').val() == '') {
$('#Apprvl_RequireGpsWaived').prop('checked', pageContainer.approval.maxFinancedOtd < 5500 || +$('#_wholesaleAverageAdjusted').val() < 5000 || ($('#_buyerState').val() == 'NV' && adjustedAuctionValue < 18000));
}
}
else {
$('#Apprvl_RequireGpsDevice').prop('checked', false);
if ($('#Apprvl_RequireGpsWaived').is(':checked')) {
$('#Apprvl_RequireGpsWaived').prop('checked', false);
$('#Apprvl_RequireGpsWaivedManuallyBy').val('');
}
}
SetGpsAddendumFormCheckBoxEnabled(pageContainer);
GetAdditionalApprovalNotes();
}
$('#' + PrefixString(Prefixes.Apprvl_) + 'NetAcquisitionFee').val(pageContainer.approval.netAcquisitionFee.toString());
if (pageContainer.approval.maxFinancedTop > 0) {
var currentAmountFinanced = parseFloat($('#Apprvl_AmountFinanced').val());
if (currentAmountFinanced != pageContainer.approval.maxFinancedTop) {
$('#Apprvl_AmountFinanced').val(pageContainer.approval.maxFinancedTop.toString());
}
$('#' + PrefixString(Prefixes.Apprvl_) + MaxFinancedOtd).val(pageContainer.approval.maxFinancedOtd.toString());
$('#Apprvl_MaxLtvFrontWholesale').val(pageContainer.approval.maxLtvFrontWholesale.toString());
$('#Apprvl_MaxLtvOtdWholesale').val(pageContainer.approval.maxLtvOtdWholesale.toString());
$('#_approvalMonthlyPayment').val(pageContainer.approval.currentMonthlyPayment.toString());
}
else {
$('#' + PrefixString(Prefixes.Apprvl_) + MaxFinancedOtd).val('0');
$('#Apprvl_MaxLtvFrontWholesale').val('0');
$('#Apprvl_MaxLtvOtdWholesale').val('0');
$('#_approvalMonthlyPayment').val('0');
}
$('#' + PrefixString(Prefixes.Apprvl_) + CurrentPti).text(pageContainer.approval.currentPti.toString());
pageContainer = LoadDealerProfit(pageContainer);
$('#Apprvl_EstimatedNetCheck').val(pageContainer.dealerProfit.netCheckToDealer.toString());
var gapDealerProfit = pageContainer.approvalGap.dealerProfit;
if (isNaN(gapDealerProfit)) {
gapDealerProfit = 0;
}
var serviceContractDealerProfit = parseInt($('#_approvalServiceContractDealerProfit').val());
if (isNaN(serviceContractDealerProfit)) {
serviceContractDealerProfit = 0;
}
var totalNetCheck = pageContainer.dealerProfit.netCheckToDealer + gapDealerProfit + serviceContractDealerProfit;
var monthlyPayment = parseFloat($('#_approvalMonthlyPayment').val());
$('#_dealerProfit').text(gapDealerProfit + serviceContractDealerProfit);
totalNetCheck = Math.round(totalNetCheck * 100) / 100;
$('#_totalNetCheck').text(totalNetCheck);
var netCheckOverACV = calculateNetCheckOverAuction();
$('#_netCheckOverAuction').val(netCheckOverACV.toString());
netCheckOverACV /= 100;
var roi = 0;
if (monthlyPayment > 0) {
roi = Math.round(totalNetCheck / monthlyPayment);
}
$('#_roi').text(roi);
if ($('#_saveApprovalHidden').attr('approvalAlreadySubmitted') == 'false' || $('#_saveApprovalHidden').attr('initialDeskingCalculationsComplete') == 'true') {
var trueDown = parseInt($('#_estimatedDown').val());
if (isNaN(trueDown)) {
trueDown = 0;
}
var cltvWithoutGapOrServiceContract = CalculateCltvWithoutGapOrServiceContract();
var cltvThresholdForPacGapAndServiceContract = +$('#Apprvl_ServiceContract').attr('cltvThresholdForPacGapAndServiceContract') || 0;
var downPayment = parseFloat($('#Apprvl_DownPayment').val());
var netTrade = parseFloat($('#_approvalNetTrade').val());
var estimatedMarkup = CalculateEstimatedMarkup();
CalculateEstimatedDown(estimatedMarkup, downPayment, netTrade);
if ($('#_approvalSellPrimeServiceContract').is(':checked') && (cltvWithoutGapOrServiceContract >= cltvThresholdForPacGapAndServiceContract || CalculateExcessDownPayment() < 750)) {
ClearServiceContract('approval');
}
if ($('#_approvalSellPrimeGap').is(':checked') && cltvWithoutGapOrServiceContract >= cltvThresholdForPacGapAndServiceContract) {
ClearGap('approval');
}
}
}
function UpdateNetTradeUi(pageContainer) {
var netTradeInStrtr = $('#DlrStrctr_NetTradeInStrtr');
if (pageContainer.structure.hasTrade) {
netTradeInStrtr.val(pageContainer.trade.netTrade.toString());
$('#DlrStrctr_NetTradeNearTrade').val(pageContainer.trade.netTrade.toString());
if (pageContainer.trade.netTrade < 0) {
netTradeInStrtr.css('color', 'red');
}
else {
netTradeInStrtr.css('color', 'white');
}
}
else {
netTradeInStrtr.css('color', 'white');
netTradeInStrtr.val('0');
$('#DlrStrctr_NetTradeNearTrade').val('0');
}
}
function UpdateStructureUi(idPrefix, pageContainer) {
var structure = pageContainer.structure;
$('#' + PrefixString(idPrefix) + UnPaidBalance).val(structure.unpaidBalance.toString());
var amountFinancedBx = $('#' + PrefixString(idPrefix) + AmountFinanced);
amountFinancedBx.val(structure.amountFinanced.toString());
if (structure.amountFinanced <= 0) {
amountFinancedBx.css('background-color', badBackgroundColor);
$('#' + PrefixString(Prefixes.Print_) + AmountFinanced).css('background-color', badBackgroundColor);
amountFinancedBx.val('0');
}
else {
amountFinancedBx.css('background-color', 'WhiteSmoke');
$('#' + PrefixString(Prefixes.Print_) + AmountFinanced).css('background-color', 'WhiteSmoke');
}
var monthlyPaymentBx = $('#' + PrefixString(idPrefix) + MonthlyPayment);
monthlyPaymentBx.val(structure.monthlyPayment.toString());
if (structure.monthlyPayment <= 0) {
monthlyPaymentBx.css('background-color', badBackgroundColor);
monthlyPaymentBx.val('0');
}
else {
monthlyPaymentBx.css('background-color', 'WhiteSmoke');
}
$('#' + PrefixString(idPrefix) + LoanToValueWholesaleFront).val(structure.loanToValueWholesaleFront.toString());
$('#' + PrefixString(idPrefix) + LoanToValueWholesaleOtd).val(structure.loanToValueWholesaleOtd.toString());
$('#' + PrefixString(idPrefix) + CurrentPti).val(structure.currentPti.toString());
if (pageContainer.webSiteMode === WebSiteMode.uw) {
var suggestedRate = parseFloat($('#_SuggestedRate').val());
if (suggestedRate > 0) {
UpdateRate(pageContainer);
UpdateApprovalRate(pageContainer);
}
}
else if (pageContainer.webSiteMode === WebSiteMode.dealers) {
var suggestedRate = parseFloat($('#_SuggestedRate').val());
if (suggestedRate > 0) {
UpdateRate(pageContainer);
}
}
}
function GetTexasRates(term, successFunction) {
$.ajax({
type: 'GET',
url: '../../api/States/GetTexasRate?term=' + term,
dataType: "json",
success: successFunction,
cache: false
});
}
function GetTexasRate(texasRateModel, vehicleYear) {
var vehicleAge = (new Date()).getFullYear() - vehicleYear;
if (texasRateModel) {
if (vehicleAge <= 2) {
return texasRateModel.TwoYearsOrLess * 100;
}
if (vehicleAge >= 3 && vehicleAge <= 4) {
return texasRateModel.ThreeToFourYears * 100;
}
if (vehicleAge >= 5) {
return texasRateModel.FiveOrMoreYears * 100;
}
}
return 0;
}
function UpdateApprovedRate(pageContainer) {
var structure = pageContainer.approval;
var vehicleYear = pageContainer.purchase.year;
if (structure.loanTerm > 0 && vehicleYear > 0) {
var jsonSettings = $('#Apprvl_ContractRate').attr('texasrates');
if (typeof jsonSettings !== 'undefined') {
var texasRates = JSON.parse(jsonSettings);
var rate = 0;
$.each(texasRates, function (index, texasRate) {
if (texasRate.Term == structure.loanTerm) {
rate = GetTexasRate(texasRate, vehicleYear);
return false;
}
});
var texasRate = rate;
if ($('#Apprvl_ContractRate').attr('hasManuallyChanged') == 'true' && $('#Apprvl_ContractRate').val() <= texasRate) {
rate = $('#Apprvl_ContractRate').val();
}
else if (texasRate < $('#Apprvl_ContractRate').val()) {
$('#Apprvl_ContractRate').attr('hasManuallyChanged', 'false');
}
rate = Math.round(rate * 100) / 100;
texasRate = Math.round(texasRate * 100) / 100;
$('#Apprvl_ContractRate').val(rate.toString());
$('#Apprvl_ContractRate').attr('originalValue', $('#Apprvl_ContractRate').val());
$('#Apprvl_ContractRate').attr('MinApr', $('#Apprvl_ContractRate').val());
pageContainer.approval.contractRate = rate;
ValidateSuggestedRate(pageContainer, Prefixes.Apprvl_);
$('#_approvalLoanTerm').val(pageContainer.approval.loanTerm.toString());
$('#' + PrefixString(Prefixes.Quick_) + AmountFinanced).val(pageContainer.approval.maxFinancedOtd.toString());
$('#' + PrefixString(Prefixes.Quick_) + LoanTerm).val(structure.loanTerm.toString());
$('#' + PrefixString(Prefixes.Quick_) + SaleRate).val(pageContainer.approval.contractRate.toString());
CalculatorQuickLoan();
CalculateDeskingPage();
}
}
}
function UpdateApprovalRate(pageContainer) {
var structure = pageContainer.approval;
var vehicleYear = pageContainer.purchase.year;
if (structure.loanTerm > 0 && vehicleYear > 0) {
var oldTerm = parseInt($('#_SuggestedRate').attr('term'));
var oldYear = parseInt($('#_SuggestedRate').attr('vehicleYear'));
if (structure.loanTerm != oldTerm || vehicleYear != oldYear) {
$('#_SuggestedRate').attr('term', structure.loanTerm);
$('#_SuggestedRate').attr('vehicleYear', vehicleYear);
GetTexasRates(structure.loanTerm, function (model) {
var rate = GetTexasRate(model, vehicleYear);
if ($('#Apprvl_ContractRate').attr('hasManuallyChanged') == 'true' && $('#Apprvl_ContractRate').val() <= rate) {
rate = $('#Apprvl_ContractRate').val();
}
else if (rate < $('#Apprvl_ContractRate').val()) {
$('#Apprvl_ContractRate').attr('hasManuallyChanged', 'false');
}
rate = Math.round(rate * 100) / 100;
$('#_SuggestedRate').val(rate.toString());
if (pageContainer.approval.serviceContractInStr > 0) {
pageContainer.approval.contractRate = rate;
}
ValidateSuggestedRate(pageContainer, Prefixes.Apprvl_);
});
}
}
}
function UpdateRate(pageContainer) {
var structure = pageContainer.structure;
var vehicleYear = pageContainer.purchase.year;
if (structure.loanTerm > 0 && vehicleYear > 0) {
var oldTerm = parseInt($('#DlrStrctr_SaleRate').attr('term'));
var oldYear = parseInt($('#DlrStrctr_SaleRate').attr('vehicleYear'));
if (structure.loanTerm != oldTerm || vehicleYear != oldYear) {
$('#DlrStrctr_SaleRate').attr('term', structure.loanTerm);
$('#DlrStrctr_SaleRate').attr('vehicleYear', vehicleYear);
GetTexasRates(structure.loanTerm, function (model) {
var rate = GetTexasRate(model, vehicleYear);
var texasRate = rate;
if ($('#Apprvl_ContractRate').attr('hasManuallyChanged') == 'true' && $('#Apprvl_ContractRate').val() <= texasRate) {
rate = $('#Apprvl_ContractRate').val();
}
else if (texasRate < $('#Apprvl_ContractRate').val()) {
$('#Apprvl_ContractRate').attr('hasManuallyChanged', 'false');
}
rate = Math.round(rate * 100) / 100;
$('#DlrStrctr_SaleRate').val(rate.toString());
$('#DlrStrctr_SaleRate').attr('originalValue', $('#DlrStrctr_SaleRate').val());
SaveStructureFieldAjax('DlrStrctr_SaleRate', true);
pageContainer.structure.saleRate = rate;
ValidateSuggestedRate(pageContainer, Prefixes.DlrStrctr_);
});
}
}
}
function ValidateSuggestedRate(pageContainer, idPrefix) {
var suggestedRate = parseFloat($('#_SuggestedRate').val());
if (suggestedRate > 0) {
if (idPrefix === Prefixes.DlrStrctr_) {
var $saleRateHelp = $('#DlrStrctr_SaleRateHelp');
var structure = pageContainer.structure;
if (structure.saleRate > suggestedRate) {
$('#_SuggestedRate').css('background-color', badBackgroundColor);
$('#' + PrefixString(idPrefix) + 'SaleRate').css('background-color', badBackgroundColor);
$saleRateHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
}
else {
$('#_SuggestedRate').css('background-color', 'white');
$('#' + PrefixString(idPrefix) + 'SaleRate').css('background-color', 'white');
$saleRateHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
}
$saleRateHelp.attr('HelpHeight', '130');
$saleRateHelp.attr('HelpTxt', 'APR (Interest Rate).' + EncodedBreak + EncodedBreak +
'The APR must be lower than ' + suggestedRate + ' for this deal.');
}
else if (idPrefix === Prefixes.Apprvl_) {
if (pageContainer.approval.contractRate > suggestedRate) {
$('#_saveApprovalHidden').attr('validSuggestedRate', 'false');
$('#Apprvl_ContractRate').css('background-color', badBackgroundColor);
}
else {
$('#_saveApprovalHidden').attr('validSuggestedRate', 'true');
$('#Apprvl_ContractRate').css('background-color', 'white');
}
RefreshDealSaveButtons();
}
}
}
function DealerTypeLoanTermLimitExceeded(dealerTypeLoanTermLimit) {
var approvalLoanTerm = parseInt($('#_approvalLoanTerm').val() || '0');
if (dealerTypeLoanTermLimit > 0 && approvalLoanTerm > 0 && approvalLoanTerm > dealerTypeLoanTermLimit) {
return true;
}
return false;
}
function ApplyVehicleTypeAdjustments() {
var $vehicleMileageAdjustment = $('#_vehicleMileageAdjustment');
var makeTermAdjustment = 0;
if ($vehicleMileageAdjustment.attr('vehiclemake')) {
var makeAdjustmentSetting = JSON.parse($('#_vehicleMileageAdjustment').attr('vehiclemake'));
makeTermAdjustment = parseInt(makeAdjustmentSetting.TermAdjustment);
}
var modelTermAdjustment = parseInt($vehicleMileageAdjustment.attr('modelTermAdjustment') || '0');
var dieselTermAdjustment = 0;
if ($('#_isDiesel').is(':checked')) {
dieselTermAdjustment = parseInt($vehicleMileageAdjustment.attr('dieselTermAdjustment') || '0');
}
var truckTermAdjustment = 0;
if ($('#_isTruck').is(':checked')) {
truckTermAdjustment = parseInt($vehicleMileageAdjustment.attr('truckTermAdjustment') || '0');
}
var SUVTermAdjustment = 0;
if ($('#_isSuv').is(':checked')) {
SUVTermAdjustment = parseInt($vehicleMileageAdjustment.attr('SUVTermAdjustment') || '0');
}
var vehicleTypeTermAdjustment = dieselTermAdjustment + truckTermAdjustment + SUVTermAdjustment;
$vehicleMileageAdjustment.attr('vehicleTypeTermAdjustment', vehicleTypeTermAdjustment.toString());
SetRiskFactorColor($vehicleMileageAdjustment);
var pageContainer;
pageContainer = LoadPageContainer();
CalculateRequiredRateOfReturn(pageContainer);
}
function UpdateSubmitButtonsUi(pageContainer) {
var submitDealToPac = $('#' + PrefixString(Prefixes.DlrStrctr_) + 'SubmitDealToPac');
var applctnSbmtBtn = $('#ApplctnSbmtBtn');
var applctnAddStrctr = $('#ApplctnAddStrctr');
if (pageContainer.isStructureValidForSubmission === true) {
EnableFormCheckBoxes(pageContainer);
try {
submitDealToPac.removeAttr("disabled");
submitDealToPac.css('font-size', 'Larger');
submitDealToPac.css('font-weight', 'Bold');
submitDealToPac.attr('value', 'Pull Credit / Submit');
if (pageContainer.isResubmit) {
submitDealToPac.attr('value', 'Re-Submit Deal');
}
}
catch (e) {
}
}
else {
DisableFormCheckBoxes();
$('#PrintWarningGapFee').text('');
$('#PrintWarningAmountFinanced').text('');
$('#PrintWarningSalePrice').text('');
$('#PrintWarningMonthlyPayment').text('');
$('#PrintWarningLoanTerm').text('');
$('#PrintWarningSaleRate').text('');
$('#PrintWarningDown').text('');
try {
submitDealToPac.prop('disabled', true);
submitDealToPac.css('font-size', 'medium');
submitDealToPac.css('font-weight', 'normal');
if (pageContainer.applicationStatus === 2 &&
pageContainer.isResubmit === false) {
applctnAddStrctr.removeAttr("disabled");
applctnAddStrctr.css('font-size', 'Larger');
applctnAddStrctr.css('font-weight', 'Bold');
applctnSbmtBtn.removeAttr("disabled");
applctnSbmtBtn.css('font-size', 'Larger');
applctnSbmtBtn.css('font-weight', 'Bold');
applctnSbmtBtn.attr('value', 'Submit Payment Call');
}
else {
applctnAddStrctr.prop('disabled', 'disabled');
applctnAddStrctr.css('font-size', 'medium');
applctnAddStrctr.css('font-weight', 'normal');
applctnSbmtBtn.prop('disabled', 'disabled');
applctnSbmtBtn.css('font-size', 'medium');
applctnSbmtBtn.css('font-weight', 'normal');
}
}
catch (e) {
}
}
}
function RefreshDealSaveButtons() {
if (DealIsSavable()) {
EnableAllSaveDealButtons();
}
else {
DisableAllSaveDealButtons();
}
}
function ValidateRelationshipManagerApproval() {
if ($('#_saveApprovalHidden').attr('userIsRelationshipManager') == 'true') {
var pageContainer = LoadPageContainer();
CalculateDeskingPageWithObj(pageContainer);
if (DealIsSavable() == false) {
$('#_dealStatusLabel').text('The deal did not pass final validation checks and can not be saved as is, refresh the page and try again');
return false;
}
}
return true;
}
function DealIsSavable() {
var currentTier = CheckNumber(GetSelectedTierIdentifier(false));
if (currentTier == 1006 || currentTier == 1000) {
return true;
}
if (currentTier == 1002 || currentTier == 1001) {
var turnDownReasonIsSelected = $('#Apprvl_PacTdReasonIncome').is(':checked') || $('#Apprvl_PacTdReasonJobTime').is(':checked')
|| $('#Apprvl_PacTdReasonDerog').is(':checked') || $('#Apprvl_PacTdReasonTerms').is(':checked');
if (turnDownReasonIsSelected) {
return true;
}
else {
return false;
}
}
var riskFee = +($('#Apprvl_AcquisitionFee').val());
var minRiskFee = +($('#Apprvl_AcquisitionFee').attr('MinRiskFee'));
if (riskFee <= 0) {
return false;
}
var standardYield = parseFloat($('#Apprvl_CalculatedYield').attr('standardyield'));
var allowedRrrDiscrepancy = +($('#Apprvl_RequiredRateOfReturn').attr('allowedRrrDiscrepancy'));
var requiredRateOfReturn = parseFloat($('#Apprvl_RequiredRateOfReturn').attr('requiredrateofreturn'));
if (standardYield < requiredRateOfReturn + allowedRrrDiscrepancy) {
return false;
}
var estimatedDown = parseInt($('#_estimatedDown').val());
var enforceMinimumDownPayment = $('#Apprvl_RequiredRateOfReturn').attr('enforceMinimumDownPayment');
var requiredDown = GetRequiredDown(true);
if (enforceMinimumDownPayment == 'True' && estimatedDown < requiredDown) {
return false;
}
if ($('#_saveApprovalHidden').attr('userIsRelationshipManager') == 'true' && SaveApprovalHiddenHasAttribute('disabledByRMValidation') && $('#_saveApprovalHidden').attr('disabledByRMValidation') == 'true') {
return false;
}
if (SaveApprovalHiddenHasAttribute('validSuggestedRate') && $('#_saveApprovalHidden').attr('validSuggestedRate') == 'false') {
return false;
}
var dealerTypeLoanTermLimit = parseInt($('#_saveApprovalHidden').attr('dealerTypeLoanTermLimit') || '0');
if (DealerTypeLoanTermLimitExceeded(dealerTypeLoanTermLimit)) {
return false;
}
if (!$('#_purchaseVin').val()) {
return false;
}
if (!$('#_purchaseOdometer').val()) {
return false;
}
return true;
}
function SaveApprovalHiddenHasAttribute(attributeName) {
var attr = $('#_saveApprovalHidden').attr(attributeName);
if (typeof attr !== typeof undefined) {
return true;
}
return false;
}
function EnableAllSaveDealButtons() {
$('#_savePdsApproval').removeAttr('disabled');
$('#_savePdsAndReturnToWorkList').removeAttr('disabled');
$('#_savePdsAndGetNextTop').removeAttr('disabled');
$('#_savePdsAndGetNextBottom').removeAttr('disabled');
}
function DisableAllSaveDealButtons() {
$('#_savePdsApproval').attr('disabled', 'disabled');
$('#_savePdsAndReturnToWorkList').attr('disabled', 'disabled');
$('#_savePdsAndGetNextTop').attr('disabled', 'disabled');
$('#_savePdsAndGetNextBottom').attr('disabled', 'disabled');
}
function AutoCheckPalAjax() {
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'AutoCheckTitleWarningImage').css('display', 'none');
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'AutocheckScore').html('');
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'AutoCheckImage img').attr('src', BlobImagePrefix + 'autocheckfaded.png');
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'PullAutoCheck').html('');
var vin = $('#_purchaseVin').val();
if (vin != null && vin.length === 17) {
var ajaxUrl = '../../api/Deals/GetAutoCheckReport?vin=' + vin + '&dealId=' + getPrimaryKey();
$.get(ajaxUrl, function (data) {
AutoCheckPurchaseSuccess(data);
CalculateDeskingPage();
});
}
}
function LoadAutoCheck(pageContainer) {
try {
pageContainer.purchase.autocheckScore = CheckNumber(parseFloat($('#' + PrefixString(Prefixes.DlrStrctr_) + 'AutocheckScore').html()));
}
catch (e) {
pageContainer.purchase.autocheckScore = 0;
}
return pageContainer;
}
function UpdateAutoCheckUi() {
}
function PullAutoCheckOnLoad() {
}
function AutoCheckPurchaseSuccess(data) {
var score = 0;
var titleWarning = false;
try {
score = data.Score;
var tempWarning = data.HasTitleWarning;
if (tempWarning === 'true') {
titleWarning = true;
}
}
catch (err) {
score = -1;
titleWarning = false;
}
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'AutocheckScore').html(score.toString());
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'AutoCheckImage img').attr('src', BlobImagePrefix + 'autocheck.png');
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'PullAutoCheck').html('Repull AutoCheck');
if (titleWarning === true) {
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'AutoCheckTitleWarningImage').css('display', 'inline');
}
}
function ViewDocuSignDocument() {
alert("We are retrieving your documents, this may take a few seconds");
}
function SubmitSignedDocuments(envelopeId, submitButton) {
$(submitButton).hide();
var url = '../../api/DocuSign/' + envelopeId + '/SubmitSignedDocuments';
$.ajax({
url: url,
type: 'POST'
});
alert('The signed documents have been submitted to PAC`s loan verification department');
}
function SendDocuSignReminder(envelopeId, reminderButton) {
$(reminderButton).hide();
var url = '../../api/DocuSign/' + envelopeId + '/SendReminder';
$.ajax({
url: url,
type: 'POST'
});
alert("A reminder has been sent to all signers who have not yet signed the documents");
}
function SelectDealershipUser(dealId) {
var selectedUser = $('#_dealershipUsers option:selected');
$('#_dealerFirstNameConfirmation').val(selectedUser.attr('firstName'));
$('#_dealerFirstNameConfirmation').attr('userId', selectedUser.attr('userId'));
$('#_dealerLastNameConfirmation').val(selectedUser.attr('lastName'));
$('#_dealerLastNameConfirmation').attr('userId', selectedUser.attr('userId'));
$('#_dealerEmailConfirmation').val(selectedUser.attr('email'));
$('#_dealerEmailConfirmation').attr('userId', selectedUser.attr('userId'));
var url = '../../api/Deals/' + dealId + '/AssignDealerUser';
$.ajax({
url: url,
type: 'PUT',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(selectedUser.attr('userId'))
});
}
function ClosePrintModal(selectedNode, uncheckAllPrintDocOptions) {
if (uncheckAllPrintDocOptions === void 0) { uncheckAllPrintDocOptions = true; }
$('#' + selectedNode).css("display", "none");
if (uncheckAllPrintDocOptions) {
SelectPrintDocs('uncheck');
}
}
function GetDocuSignFormElementIdsToSend() {
var selectedForms = [];
$('[id^="_docuSign"]').each(function (i, elem) {
if ($(elem).is(':checked')) {
selectedForms.push($(elem).attr('id'));
}
});
return selectedForms;
}
function GetFormElementIdsToPrint() {
var selectedForms = [];
$('[id^="_printDocument"]').each(function (i, elem) {
if ($(elem).is(':checked')) {
selectedForms.push($(elem).attr('id'));
}
});
return selectedForms;
}
function DisplayFormsToPrint(getDownload) {
var formIds = GetFormElementIdsToPrint().join();
var dealId = $('#DealReference').html().match(/\d+/);
var url = '../../api/deals/' + dealId + '/GetFormsToPrint';
var target = getDownload ? '' : 'target = "_blank"';
var includeUpsShippingLabel = $('#PrintUpsShippingLabel').is(':checked');
var form = $('
');
$('body').append(form);
form.submit();
}
function RequestSignature(dealId) {
var selectedUser = $('#_dealershipUsers option:selected');
if (selectedUser.val() == '0') {
alert('Please select a dealership user');
return;
}
var dealerFirstName = $('#_dealerFirstNameConfirmation').val(), dealerLastName = $('#_dealerLastNameConfirmation').val(), dealerEmail = $('#_dealerEmailConfirmation').val();
if (dealerFirstName.length < 1 || dealerLastName.length < 1 || dealerEmail.length < 5) {
alert('Please fill out the dealer contact information');
return;
}
var buyerEmail = $('#_buyerEmailConfirmation').val(), buyerPhoneNumber = $('#_buyerCellConfirmation').val();
if (buyerEmail.length < 1 || buyerPhoneNumber.length < 1) {
alert('Buyer is missing the phone number or email address');
return;
}
if ($('#_coBuyerNameConfirmation').length) {
var coBuyerEmail = $('#_coBuyerEmailConfirmation').val(), coBuyerPhoneNumber = $('#_coBuyerCellConfirmation').val();
if (coBuyerEmail.length < 1 || coBuyerPhoneNumber.length < 1) {
alert('Co-Buyer is missing the phone number or email address');
return;
}
}
var url = '../../api/DocuSign/' + dealId + '/RequestSignature';
$('#_sendToDocuSign').val('Sent');
$('#_sendToDocuSign').prop('disabled', true);
$('#_sendToDocuSign').attr('disabledBecauseOfInstallmentContract', 'false');
$.post(url, JSON.stringify(GetDocuSignFormElementIdsToSend()), function () { })
.done(function () {
alert('Document(s) successfully sent for digital signature. All signers will receive an e-mail from DocuSign to complete the signing process.');
})
.fail(function () {
alert("Failed to send documents. Please notify development.");
});
HideElectronicSignatureConfirmation();
}
function ShowElectronicSignatureConfirmation() {
$('#DlrStrctr_DocumentCalcApproval').hide();
PopulateElectronicSignatureConfirmationFields();
$('#Mask').addClass("pageMask");
$('#Mask').show();
$('#_electronicSignatureConfirmation').show();
}
function HideElectronicSignatureConfirmation() {
$('#Mask').removeClass("pageMask");
$('#Mask').hide();
$('#_electronicSignatureConfirmation').hide();
}
function PopulateElectronicSignatureConfirmationFields() {
$("#_buyerNameConfirmation").val($('#ByrfirstNameBx').val() + ' ' + $('#ByrlastNameBx').val());
$("#_buyerEmailConfirmation").val($('#ByrEml1Bx').val());
$("#_buyerCellConfirmation").val('(' + $('#ByrmobilePhoneBoxes_ArCd').val() + ') ' + $('#ByrmobilePhoneBoxes_PrFxBx').val() + ' - ' + $('#ByrmobilePhoneBoxes_SffxBx').val());
$("#_coBuyerNameConfirmation").val($('#CbyrfirstNameBx').val() + ' ' + $('#CbyrlastNameBx').val());
$("#_coBuyerEmailConfirmation").val($('#CbyrEml1Bx').val());
$("#_coBuyerCellConfirmation").val('(' + $('#CbyrmobilePhoneBoxes_ArCd').val() + ') ' + $('#CbyrmobilePhoneBoxes_PrFxBx').val() + ' - ' + $('#CbyrmobilePhoneBoxes_SffxBx').val());
}
function AcceptDocValues(printMode) {
CloseAllCalculators();
$('#DlrStrctr_ContinueDocApproval').attr('printMode', printMode);
var structureRate = parseFloat($('#DlrStrctr_SaleRate').val());
var approvalRate = parseFloat($('#Apprvl_ContractRate').val());
if (structureRate != approvalRate) {
alert("The approval APR does not match the structure APR. Please copy the approval to the top structure to before sending or viewing documents");
return;
}
var verifyInstallmentContract = false;
if (printMode == 'eSignature') {
if (SellingFranchiseGapOrServiceContract()) {
alert('cannot send documents because the dealership is selling their own gap and/or service contract');
return;
}
if (GetDocuSignFormElementIdsToSend().length <= 0) {
alert('No forms selected. Please select one or more forms to send.');
return;
}
if ($('[id^="_docuSignInstallmentContract"]').is(':checked')) {
verifyInstallmentContract = true;
}
}
else if ($('[id^="_printDocumentInstallmentContract"]').is(':checked')) {
verifyInstallmentContract = true;
}
if (verifyInstallmentContract) {
if ($('#DlrStrctr_DocumentFeeDocCalc').val() != '' &&
$('#DlrStrctr_OtherFrontEndFeesDocCalc').val() != '' &&
$('#DlrStrctr_InventoryFeeDocCalc').val() != '' &&
$('#DlrStrctr_SalesTaxDocCalc').val() != '' &&
$('#DlrStrctr_AgeBasedFeeDocCalc').val() != '' &&
$('#DlrStrctr_StateInspectionDocCalc').val() != '' &&
$('#DlrStrctr_StateInspectionCertificateFeeDocCalc').val() != '' &&
$('#DlrStrctr_TempRegFeeDocCalc').val() != '') {
$('#_cashPriceApproval').val($('#DlrStrctr_SalePrice').val());
$('#_salesTaxApproval').val($('#DlrStrctr_SalesTax').val());
$('#_salesTaxRateApproval').val(+$('#_structureTaxRate').val() + '%');
$('#_documentFeeApproval').val($('#DlrStrctr_DocumentFeeDocCalc').val());
$('#_inventoryFeeApproval').val($('#DlrStrctr_InventoryFeeDocCalc').val());
$('#_titleFeeApproval').val($('#DlrStrctr_TitleFeeDocCalc').val());
$('#_licenseFeeApproval').val($('#DlrStrctr_LicenseFeeDocCalc').val());
$('#_registrationFeeApproval').val($('#DlrStrctr_RegistrationFeeDocCalc').val());
$('#_ageBasedFeeApproval').val($('#DlrStrctr_AgeBasedFeeDocCalc').val());
$('#_stateIMApproval').val($('#DlrStrctr_StateInspectionDocCalc').val());
$('#_stateInspectionCertificateFeeApproval').val($('#DlrStrctr_StateInspectionCertificateFeeDocCalc').val());
$('#_tempRegistrationFeeApproval').val($('#DlrStrctr_TempRegFeeDocCalc').val());
$('#_otherFrontEndFeesApproval').val($('#DlrStrctr_OtherFrontEndFeesDocCalc').val());
$('#_cashDownApproval').val($('#DlrStrctr_DownPayment').val());
$('#_tradeAllowanceApproval').val(($('#DlrStrctr_TradeAcvNearTrade').val()) ? $('#DlrStrctr_TradeAcvNearTrade').val() : 0);
$('#_tradeOwedApproval').val(($('#DlrStrctr_TradePayoff').val()) ? $('#DlrStrctr_TradePayoff').val() : 0);
$('#_gapApproval').val($('#DlrStrctr_GapFee').val());
$('#_serviceContractApproval').val($('#DlrStrctr_ServiceContract').val());
$('#_financedAmountApproval').val($('#DlrStrctr_AmountFinanced').val());
$('#Mask').addClass("pageMask");
$('#Mask').show();
$('#DlrStrctr_DocumentCalcApproval').show();
$('#DlrStrctr_ContinueDocApproval').hide();
$('#DlrStrctr_ContinueDownloadDocApproval').hide();
$('#DlrStrctr_ContinueSendDocuSign').hide();
if (printMode == 'download') {
$('#DlrStrctr_ContinueDownloadDocApproval').show();
}
else if (printMode == 'eSignature') {
$('#DlrStrctr_ContinueSendDocuSign').show();
}
else {
$('#DlrStrctr_ContinueDocApproval').show();
}
}
else {
$('#DlrStrctr_DocumentCalcDivId').show();
$('#CompleteMessage').show();
scroll(0, 300);
}
}
else {
if (printMode == 'download') {
$('#DlrStrctr_ContinueDownloadDocApproval').trigger('click');
}
else if (printMode == 'eSignature') {
$('#DlrStrctr_ContinueSendDocuSign').click();
}
else {
$('#DlrStrctr_ContinueDocApproval').trigger('click');
}
}
}
function CancelAcceptDocValues() {
$('#Mask').removeClass("pageMask");
$('#Mask').hide();
$('#DlrStrctr_DocumentCalcApproval').hide();
}
function OpenPrintModal(dealerState, printMode) {
CancelAcceptDocValues();
var printModeAttribute = $('#DlrStrctr_ContinueDocApproval').attr('printMode');
if (printModeAttribute !== undefined && (printModeAttribute == 'print' || printModeAttribute == 'download' || printModeAttribute == 'eSignature')) {
printMode = printModeAttribute;
}
var documents = '';
SaveContractDate();
var validationRequired = false;
var formsToPrint;
if (printMode == 'eSignature') {
formsToPrint = GetDocuSignFormElementIdsToSend();
}
else {
formsToPrint = GetFormElementIdsToPrint();
}
$(formsToPrint).each(function (i, elem) {
var $formCheckBox = $('#' + elem);
if ($formCheckBox && $formCheckBox.parent().attr('RequiresValidation') == 'true') {
validationRequired = true;
return false;
}
});
if (validationRequired && HasPrintWarning) {
document.getElementById('DskCntrctCnfrmtnMdlDspl_content').style.display = 'block';
if (printMode === 'download') {
document.getElementById('Print_ContinuePrintingDocs').style.display = 'none';
document.getElementById('Print_DownloadPrintingDocs').style.display = '';
}
else {
document.getElementById('Print_ContinuePrintingDocs').style.display = '';
document.getElementById('Print_DownloadPrintingDocs').style.display = 'none';
}
scroll(0, 0);
}
else {
PrintModalContinue(dealerState, printMode);
}
}
function OpenPrintModalFunding(dealerState, printMode) {
OpenPrintModal(dealerState, printMode);
}
function PrintModalContinue(dealerState, printMode) {
var printModeAttribute = $('#DlrStrctr_ContinueDocApproval').attr('printMode');
if (printModeAttribute !== undefined && (printModeAttribute == 'print' || printModeAttribute == 'download' || printModeAttribute == 'eSignature')) {
printMode = printModeAttribute;
}
SaveContractDate();
$InitializeJs.val('true');
if (printMode === 'download') {
DisplayFormsToPrint(true);
ClosePrintModal('DskCntrctCnfrmtnMdlDspl_content');
}
else if (printMode === 'print') {
DisplayFormsToPrint(false);
ClosePrintModal('DskCntrctCnfrmtnMdlDspl_content');
}
else if (printMode === 'eSignature') {
ClosePrintModal('DskCntrctCnfrmtnMdlDspl_content', false);
ShowElectronicSignatureConfirmation();
}
}
function SelectPrintDocs(action) {
$('[id^="_printDocument"]').each(function (i, elem) {
if (action === 'check') {
if (!$(elem).prop('disabled')) {
$(elem).prop('checked', true);
}
}
else {
$(elem).prop('checked', false);
}
});
}
function DisableFormCheckBoxes() {
$('[id^="_printDocument"], [id^="_docuSign"]').each(function (i, elem) {
var $parentSpan = $(elem).closest('span');
if ($parentSpan && $parentSpan.attr('requiresValidation') == 'true') {
SetFormCheckBoxEnabled($(elem), false);
if ($(elem).attr('id').indexOf('docuSignInstallmentContract') >= 0) {
$('#_sendToDocuSign').prop('disabled', true);
$('#_sendToDocuSign').attr('disabledBecauseOfInstallmentContract', 'true');
}
}
});
}
function PrintingIsDefaultEnabled(pageContainer) {
if (pageContainer === null) {
pageContainer = LoadPageContainer();
ValidateStructure(pageContainer);
}
var $printDocumentApprovalNoticeCheckbox = $('[id^="_printDocumentApprovalNotice"]');
var hasValidTierForPrinting = $printDocumentApprovalNoticeCheckbox.closest('span').attr('hasValidTierForPrinting') == 'true';
var defaultEnabled = (pageContainer.isStructureValidForSubmission && hasValidTierForPrinting) || $('#_saveApprovalHidden').attr('userIsExecutiveOrITAdmin') == 'true';
return defaultEnabled;
}
function EnableFormCheckBoxes(pageContainer) {
if (pageContainer === null) {
pageContainer = LoadPageContainer();
ValidateStructure(pageContainer);
}
var defaultEnabled = PrintingIsDefaultEnabled(pageContainer);
$('[id^="_printDocument"], [id^="_docuSign"]').each(function (i, elem) {
if ($(elem).attr('id').indexOf('CustomerInterview') >= 0 || $(elem).attr('id').indexOf('DealComments') >= 0) {
return true;
}
var $parentSpan = $(elem).closest('span');
if ($parentSpan && $parentSpan.attr('requiresValidation') == 'false' || defaultEnabled) {
SetFormCheckBoxEnabled($(elem), true);
if ($(elem).attr('id').indexOf('docuSignInstallmentContract') >= 0 && $('#_sendToDocuSign').attr('disabledBecauseOfInstallmentContract') == 'true') {
$('#_sendToDocuSign').prop('disabled', false);
$('#_sendToDocuSign').attr('disabledBecauseOfInstallmentContract', 'false');
}
}
});
EvaluateGapAndServiceContractForDocuSign();
SetGpsAddendumFormCheckBoxEnabled(pageContainer);
SetGapContractFormCheckBoxEnabled(pageContainer);
SetServiceContractFormCheckBoxEnabled(pageContainer);
var hasCoBuyer = +$('#CbyrlastNameBx').attr('key') > 0;
var noticeToCosignerEnabled = defaultEnabled && hasCoBuyer;
var $docuSignNoticeToCosignerCheckbox = $('[id^="_docuSignNoticeToCosigner"]');
var $printDocumentNoticeToCosignerCheckbox = $('[id^="_printDocumentNoticeToCosigner"]');
SetFormCheckBoxEnabled($docuSignNoticeToCosignerCheckbox, noticeToCosignerEnabled);
SetFormCheckBoxEnabled($printDocumentNoticeToCosignerCheckbox, noticeToCosignerEnabled);
var $printDocumentFundingNotificationCheckbox = $('[id^="_printDocumentFundingNotification"]');
var hasValidFinanceStatusForPrinting = $printDocumentFundingNotificationCheckbox.closest('span').attr('hasValidFinanceStatusForPrinting') == 'true';
var fundingNotificationEnabled = defaultEnabled && hasValidFinanceStatusForPrinting;
SetFormCheckBoxEnabled($printDocumentFundingNotificationCheckbox, fundingNotificationEnabled);
}
function SetGpsAddendumFormCheckBoxEnabled(pageContainer) {
var defaultEnabled = PrintingIsDefaultEnabled(pageContainer);
var gpsEnabled = defaultEnabled && $('#Apprvl_RequireGpsDevice').is(':checked') && !$('#Apprvl_RequireGpsWaived').is(':checked');
var gpsFee = parseInt($('#_approvalTerms_GPSFee').attr('value'));
if (isNaN(gpsFee) == false && gpsFee > 0) {
gpsEnabled = true;
}
var $docuSignGpsAddendumCheckbox = $('[id^="_docuSignGpsAddendum"]');
var $printDocumentGpsAddendumCheckbox = $('[id^="_printDocumentGpsAddendum"]');
SetFormCheckBoxEnabled($docuSignGpsAddendumCheckbox, gpsEnabled);
SetFormCheckBoxEnabled($printDocumentGpsAddendumCheckbox, gpsEnabled);
}
function SetGapContractFormCheckBoxEnabled(pageContainer) {
var defaultEnabled = PrintingIsDefaultEnabled(pageContainer);
var gapEnabled = defaultEnabled && $('#_structureSellPrimeGap').is(':checked') && +$('#_structureGapCost').val() > 0;
var $docuSignGapContractCheckbox = $('[id^="_docuSignGapContract"]');
var $printDocumentGapContractCheckbox = $('[id^="_printDocumentGapContract"]');
SetFormCheckBoxEnabled($docuSignGapContractCheckbox, gapEnabled);
SetFormCheckBoxEnabled($printDocumentGapContractCheckbox, gapEnabled);
$docuSignGapContractCheckbox.prop('checked', gapEnabled);
$printDocumentGapContractCheckbox.prop('checked', gapEnabled);
}
function SetServiceContractFormCheckBoxEnabled(pageContainer) {
var defaultEnabled = PrintingIsDefaultEnabled(pageContainer);
var serviceContractEnabled = defaultEnabled && $('#_structureSellPrimeServiceContract').is(':checked') && +$('#_structureServiceContractCost').val() > 0;
var $docuSignServiceContractCheckbox = $('[id^="_docuSignServiceContract"]');
var $printDocumentServiceContractCheckbox = $('[id^="_printDocumentServiceContract"]');
SetFormCheckBoxEnabled($docuSignServiceContractCheckbox, serviceContractEnabled);
SetFormCheckBoxEnabled($printDocumentServiceContractCheckbox, serviceContractEnabled);
$docuSignServiceContractCheckbox.prop('checked', serviceContractEnabled);
$printDocumentServiceContractCheckbox.prop('checked', serviceContractEnabled);
}
function SetFormCheckBoxEnabled($element, enabled) {
$element.prop('checked', enabled);
var $checkBoxElementParentRow = $element.closest('tr');
$checkBoxElementParentRow.css('color', enabled ? 'black' : 'gray');
}
function EvaluateGapAndServiceContractForDocuSign() {
if (SellingFranchiseGapOrServiceContract()) {
$('#_sendToDocuSign').prop('disabled', true);
$('#_docuSignDisabledMessage').text('cannot send, dealership is selling their own gap and/or service contract');
}
else {
if ($('#_sendToDocuSign').attr('disabledBecauseOfInstallmentContract') == 'false') {
$('#_sendToDocuSign').prop('disabled', false);
}
$('#_docuSignDisabledMessage').text('');
}
}
function SellingFranchiseGapOrServiceContract() {
var dealerType = GetDealerType();
var dealer = new DealerType();
if (dealerType === dealer.Franchise) {
var structureSellingPacServiceContract = $('#_structureSellPrimeServiceContract').is(':checked');
var structureServiceContractCost = +$('#_structureServiceContractCost').val();
var structureSellingPacGap = $('#_structureSellPrimeGap').is(':checked');
var structureGapCost = +$('#_structureGapCost').val();
var approvalSellingPacServiceContract = $('#_approvalSellPrimeServiceContract').is(':checked');
var approvalServiceContractCost = +$('#_approvalServiceContractCost').val();
var approvalSellingPacGap = $('#_approvalSellPrimeGap').is(':checked');
var approvalGapCost = +$('#_approvalGapCost').val();
var structureSellingGapOrServiceContract = (structureServiceContractCost > 0 && !structureSellingPacServiceContract) || (structureGapCost > 0 && !structureSellingPacGap);
var approvalSellingGapOrServiceContract = (approvalServiceContractCost > 0 && !approvalSellingPacServiceContract) || (approvalGapCost > 0 && !approvalSellingPacGap);
return structureSellingGapOrServiceContract || approvalSellingGapOrServiceContract;
}
return false;
}
function RequestDecisionLogicReport(customerId, isCoBuyer) {
var overrideCheckForFullyVerifiedRequest = false;
var isFullyVerified = false;
if (isCoBuyer) {
isFullyVerified = $('#CoBuyerSendDecisionLogicRequest').attr('isFullyVerified') == 'true';
}
else {
isFullyVerified = $('#BuyerSendDecisionLogicRequest').attr('isFullyVerified') == 'true';
}
if ($('#_saveApprovalHidden').attr('userIsExecutiveOrITAdmin') == 'true' && isFullyVerified) {
if (confirm('We already have a report for this customer. Do you still want to send a new request to the customer?')) {
overrideCheckForFullyVerifiedRequest = true;
}
else {
return;
}
}
$('#DecisionLogicRequestResult').text('processing...');
$.post("../../api/DecisionLogic/RequestReport?customerId=" + customerId + '&overrideCheckForFullyVerifiedRequest=' + overrideCheckForFullyVerifiedRequest + '&killUnfinalizedRequests=false')
.then(function success(response) {
var decisionLogicLog = response;
if (isCoBuyer) {
$('#CoBuyerDecisionLogicRequestResult').text(decisionLogicLog.LogStatus);
}
else {
$('#BuyerDecisionLogicRequestResult').text(decisionLogicLog.LogStatus);
}
location.reload(true);
}, function error(response) {
alert('Unexpected error encountered while sending the DecisionLogic request, please notify development');
});
}
function UpdateDealerBookValue(primaryKey) {
var newValue = $('#_bookValue').val();
var ajaxUrl = '../../api/deals/UpdateDealerBookValue?primaryKey=' + primaryKey + '&wholesaleValue=' + newValue;
$.post(ajaxUrl);
}
function UpdateDealerUserInformation() {
var userId = $('#_dealerFirstNameConfirmation').attr('userId');
var firstName = $('#_dealerFirstNameConfirmation').val();
var lastName = $('#_dealerLastNameConfirmation').val();
var email = $('#_dealerEmailConfirmation').val();
var user = {
UserId: userId,
FirstName: firstName,
LastName: lastName,
Email: email
};
$.post('../../api/Users/UpdateUserInfo', user);
}
function CalculatorQuickLoan() {
var amountFinanced = GetStructureFloatValue(Prefixes.Quick_, AmountFinanced);
var loanTerm = GetStructureFloatValue(Prefixes.Quick_, LoanTerm);
var saleRate = GetStructureFloatValue(Prefixes.Quick_, SaleRate);
var monthlyPayment = GetStructureFloatValue(Prefixes.Quick_, MonthlyPayment);
var $monthlyPaymentBx = $('#' + PrefixString(Prefixes.Quick_) + MonthlyPayment);
var $saleRateBx = $('#' + PrefixString(Prefixes.Quick_) + SaleRate);
var $loanTermBx = $('#' + PrefixString(Prefixes.Quick_) + LoanTerm);
var $amountFinancedBx = $('#' + PrefixString(Prefixes.Quick_) + AmountFinanced);
if (amountFinanced > 0 && loanTerm > 0 && saleRate > 0) {
monthlyPayment = Math.round(MathGetMonthlyPayment(amountFinanced, saleRate, loanTerm, 45, 0));
$monthlyPaymentBx.val(monthlyPayment);
$amountFinancedBx.css('color', 'black');
$saleRateBx.css('color', 'black');
$loanTermBx.css('color', 'black');
$monthlyPaymentBx.css('color', 'blue');
}
else if (amountFinanced > 0 && loanTerm > 0 && monthlyPayment > 0) {
saleRate = Math.round(MathAnnualInterestRate(amountFinanced, monthlyPayment, loanTerm, 45, 0));
$saleRateBx.val(saleRate);
$amountFinancedBx.css('color', 'black');
$saleRateBx.css('color', 'blue');
$loanTermBx.css('color', 'black');
$monthlyPaymentBx.css('color', 'black');
}
else if (amountFinanced > 0 && monthlyPayment > 0 && saleRate > 0) {
loanTerm = MathGetNumberOfPayments(amountFinanced, saleRate, monthlyPayment, 45, 0);
$loanTermBx.val(loanTerm);
$amountFinancedBx.css('color', 'black');
$saleRateBx.css('color', 'black');
$loanTermBx.css('color', 'blue');
$monthlyPaymentBx.css('color', 'black');
}
else if (monthlyPayment > 0 && loanTerm > 0 && saleRate > 0) {
amountFinanced = Math.round(MathGetPrinciple(monthlyPayment, saleRate, loanTerm, 45, 0));
$amountFinancedBx.val(amountFinanced);
$amountFinancedBx.css('color', 'blue');
$saleRateBx.css('color', 'black');
$loanTermBx.css('color', 'black');
$monthlyPaymentBx.css('color', 'black');
}
}
function CloseAllCalculators() {
try {
$('#' + PrefixString(Prefixes.DlrStrctr_) + DocumentCalcDivId).css("display", "none");
}
catch (e) {
}
try {
$('#' + PrefixString(Prefixes.DlrStrctr_) + ServContractCalcDivId).css("display", "none");
$('#' + PrefixString(Prefixes.DlrStrctr_) + GapFeeCalcDiv).css("display", "none");
$('#_structureGapFeeCalcDiv').css("display", "none");
}
catch (e) {
}
try {
$('#' + PrefixString(Prefixes.Apprvl_) + ServContractCalcDivId).css("display", "none");
$('#' + PrefixString(Prefixes.Apprvl_) + GapFeeCalcDiv).css("display", "none");
$('#_approvalGapFeeCalcDiv').css("display", "none");
}
catch (e) {
}
$('#_structureTaxCalcDivId').css("display", "none");
$('#_approveTaxRateChangeDiv').css("display", "none");
}
function CloseAllCalculatorsAndCalculate() {
try {
$('#' + PrefixString(Prefixes.DlrStrctr_) + DocumentCalcDivId).css("display", "none");
}
catch (e) {
}
try {
$('#' + PrefixString(Prefixes.DlrStrctr_) + ServContractCalcDivId).css("display", "none");
$('#' + PrefixString(Prefixes.DlrStrctr_) + GapFeeCalcDiv).css("display", "none");
}
catch (e) {
}
try {
$('#' + PrefixString(Prefixes.Apprvl_) + ServContractCalcDivId).css("display", "none");
$('#' + PrefixString(Prefixes.Apprvl_) + GapFeeCalcDiv).css("display", "none");
}
catch (e) {
}
CalculateDeskingPage();
}
function CloseDocCalculator(idPrefix) {
var $documentCalcDivIdBx = $('#' + PrefixString(idPrefix) + DocumentCalcDivId);
$documentCalcDivIdBx.css("display", "none");
$('#' + PrefixString(idPrefix) + ServContractCalcDivId).css("display", "none");
$('#' + PrefixString(idPrefix) + DocFeeSettingsDivId).css("display", "none");
$('#' + PrefixString(idPrefix) + ViewDocCalcSettingsBtnId).css("display", "inline");
$('#_structureTaxCalcDivId').css("display", "none");
$('#_approvalTaxCalcDivId').css("display", "none");
return false;
}
function CloseHelpModal(modalId) {
$('#' + modalId + 'Bkgrnd').css('display', 'none');
var $messageBx = $('#' + modalId + 'Message');
$messageBx.css('Height', '25px');
$messageBx.css('display', 'none');
$messageBx.css('top', '66px');
$messageBx.css('left', '0');
$messageBx.html('');
}
function DetectProposedStructure() {
return !!$('#' + PrefixString(Prefixes.DlrStrctr_) + '' + SalePrice).length;
}
function OpenHelpModal(sender, modalId) {
var txt = $(sender).attr('HelpTxt');
txt = ReplaceAll(txt, '%3C', '<');
txt = ReplaceAll(txt, '%3E', '>');
var left = parseFloat($(sender).attr('HelpLeft'));
var height = parseFloat($(sender).attr('HelpHeight'));
var offset = parseFloat($(sender).attr('HelpVerticalOffset'));
var top = (height + offset) * (-1);
$('#' + modalId + 'Bkgrnd').css('display', 'block');
var $messageBx = $('#' + modalId + 'Message');
$messageBx.css('display', 'block');
$messageBx.css('height', String(height) + 'px');
$messageBx.css('top', String(top) + 'px');
$messageBx.css('left', String(left) + 'px');
$messageBx.html(txt);
}
function OpenTitleDocFeeCalculator(idPrefix) {
CloseAllCalculators();
$('#' + PrefixString(idPrefix) + DocumentCalcDivId).css("display", "inline");
$('#' + PrefixString(idPrefix) + ServContractCalcDivId).css("display", "none");
CalculateDeskingPage();
}
function OpenTaxCalculator() {
CloseAllCalculators();
$('#_structureTaxCalcDivId').show();
CalculateDeskingPage();
}
function OpenTitleDocFeeSettings(idPrefix) {
$('#' + PrefixString(idPrefix) + DocumentCalcDivId).css("display", "inline").css("height", "430px");
$('#' + PrefixString(idPrefix) + ServContractCalcDivId).css("display", "none");
$('#' + PrefixString(idPrefix) + DocFeeSettingsDivId).css("display", "inline");
$('#' + PrefixString(idPrefix) + ViewDocCalcSettingsBtnId).css("display", "none");
CalculateDeskingPage();
}
function ApplyDocumentFeeCeiling() {
var $documentFee = $('#DlrStrctr_DocumentFeeDocCalc');
var maxDocumentFee = +$documentFee.attr('maxValue') || 0;
if (maxDocumentFee > 0 && +$documentFee.val() > maxDocumentFee) {
$documentFee.val(maxDocumentFee.toString());
}
}
function SaveTitleAndDocFeeCalculator(idPrefix, saveFeesAsNewDealershipDefaults) {
if (saveFeesAsNewDealershipDefaults === void 0) { saveFeesAsNewDealershipDefaults = true; }
$('#CompleteMessage').hide();
if ($('#_overrideTaxCalculator').val() == 'True') {
$('#DlrStrctr_SalesTax').val($('#_overrideSalesTaxDocCalc').val());
}
else {
$('#DlrStrctr_SalesTax').val($('#DlrStrctr_SalesTaxDocCalc').val());
}
$('#DlrStrctr_BankOrFrontEndFees').val(String(+$('#DlrStrctr_DocumentFeeDocCalc').val() + +$('#DlrStrctr_OtherFrontEndFeesDocCalc').val() + +(($('#DlrStrctr_InventoryFeeDocCalc').val()) ? $('#DlrStrctr_InventoryFeeDocCalc').val() : 0)));
var totalPublicOfficialsFees = +$('#DlrStrctr_TitleFeeDocCalc').val()
+ +$('#DlrStrctr_LicenseFeeDocCalc').val()
+ +$('#DlrStrctr_RegistrationFeeDocCalc').val()
+ (+$('#DlrStrctr_AgeBasedFeeDocCalc').val() || 0)
+ (+$('#DlrStrctr_StateInspectionDocCalc').val() || 0)
+ (+$('#DlrStrctr_StateInspectionCertificateFeeDocCalc').val() || 0)
+ (+$('#DlrStrctr_TempRegFeeDocCalc').val() || 0);
$('#DlrStrctr_TitleLicenseDocTotalInStrctr').val(totalPublicOfficialsFees.toString());
$('#DlrStrctr_TitleLicenceDocCalc').val($('#DlrStrctr_TitleLicenseDocTotalInStrctr').val());
var pageContainer = LoadPageContainer();
$('#' + PrefixString(Prefixes.DlrStrctr_) + TotalPaidToPublicOfficialsDocCalc).val(pageContainer.titleLicenceDocFee.totalPaidToPublicOfficials.toString());
SaveStructureValueAjax('AgeBasedFee', pageContainer.titleLicenceDocFee.propertyTaxAndAgedBasedFee);
SaveStructureValueAjax('InventoryFee', pageContainer.titleLicenceDocFee.inventoryFee);
SaveStructureValueAjax('TitleFee', pageContainer.titleLicenceDocFee.titleFee);
SaveStructureValueAjax('LicenseFee', pageContainer.titleLicenceDocFee.licenseFee);
SaveStructureValueAjax('RegistrationFee', pageContainer.titleLicenceDocFee.registrationFee);
SaveStructureValueAjax('StateInspection', pageContainer.titleLicenceDocFee.stateIm);
SaveStructureValueAjax('StateInspectionCertificateFee', pageContainer.titleLicenceDocFee.stateInspectionCertificateFee);
SaveStructureValueAjax('TempRegistrationFee', pageContainer.titleLicenceDocFee.tempRegistration);
SaveStructureValueAjax('DocumentFee', pageContainer.titleLicenceDocFee.docFee);
SaveStructureValueAjax('SalesTax', $('#DlrStrctr_SalesTax').val());
SaveStructureValueAjax('BankOrFrontEndFees', $('#DlrStrctr_OtherFrontEndFeesDocCalc').val());
SaveStructureValueAjax('SavedDocumentCalc', 'true');
if (saveFeesAsNewDealershipDefaults) {
SaveDefaultDocFee($('#DealReference').html().match(/\d+/)[0], pageContainer.titleLicenceDocFee.docFee, pageContainer.titleLicenceDocFee.titleFee, pageContainer.titleLicenceDocFee.licenseFee, pageContainer.titleLicenceDocFee.registrationFee, pageContainer.titleLicenceDocFee.stateIm, pageContainer.titleLicenceDocFee.tempRegistration);
}
CloseAllCalculators();
CalculateDeskingPageWithObj(pageContainer);
}
function SaveDefaultDocFee(dealId, defaultDocFee, defaultTitleFee, defaultLicenseFee, defaultRegistrationFee, stateInspection, tempRegistrationFee) {
$.ajax({
url: '../../api/dealerships/SaveDefaultDocFee?dealId=' + dealId
+ '&defaultDocumentFee=' + defaultDocFee
+ '&defaultTitleFee=' + defaultTitleFee
+ '&defaultLicenseFee=' + defaultLicenseFee
+ '&defaultRegistrationFee=' + defaultRegistrationFee
+ '&stateInspection=' + stateInspection
+ '&tempRegistrationFee=' + tempRegistrationFee,
type: 'POST',
dataType: 'json',
data: {}
});
}
function SubmitDealToPac(idPrefix) {
var pageContainer = LoadPageContainer();
var structureStatus = ValidateStructure(pageContainer);
$('#ApprovalDiv').css('display', 'none');
$('#WaitingApprovalDiv').css('display', 'Block');
if (pageContainer.applicationStatus === 2) {
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'SavingGiff').css('display', 'block');
$('#ApplicationSavingGiff').css('display', 'inline');
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'SubmitDealToPac').css('display', 'none');
$('#AtSvApplctn').css('display', 'none');
$('#ApplctnSbmtBtn').css('display', 'none');
$('#ApplctnAddStrctr').css('display', 'none');
var $saveDealToPac = $('#' + PrefixString(Prefixes.DlrStrctr_) + 'SaveDealToPac');
var saveVisible = $saveDealToPac.css('display');
if (saveVisible === 'inline' || saveVisible === 'inline - block' || saveVisible === 'inline-block') {
$saveDealToPac.css('display', 'none');
}
var currentDate = new Date();
var datetime = currentDate.getMonth() + "/"
+ currentDate.getDay() + "/"
+ currentDate.getHours() + ":"
+ currentDate.getMinutes() + ":"
+ currentDate.getSeconds();
datetime = encodeURIComponent(datetime);
try {
var settingsUrl = "../../webServices/SubmitDeal.aspx?date=" + datetime;
$.get(settingsUrl, {
'engineGrease': GetEngineGrease(),
primaryKey: getPrimaryKey()
});
}
catch (e) {
}
setTimeout(function () {
$('#ApplicationSavingGiff').css('display', 'none');
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'SavingGiff').css('display', 'none');
var $submitDealToPac = $('#' + PrefixString(Prefixes.DlrStrctr_) + 'SubmitDealToPac');
$submitDealToPac.css('display', 'inline');
$submitDealToPac.attr('value', 'Re-Submit Deal');
$('#ApplctnSbmtBtn').css('display', 'inline');
$('#ApplctnAddStrctr').css('display', 'inline');
$('#AtSvApplctn').css('display', 'inline');
$('#' + Apprvl_IsSubmitted).attr('value', 'true');
if (saveVisible === 'inline' || saveVisible === 'inline - block' || saveVisible === 'inline-block') {
$saveDealToPac.css('display', 'inline');
}
alert('Thank you for your application. Processing Credit');
}, 1000);
}
else {
alert('Please check the application and the deal pageContainer.structure.');
}
}
function ToggleStructureArea(saveChanges) {
var $structureAreaDivId = $('#' + PrefixString(Prefixes.DlrStrctr_) + StructureAreaDivId);
if ($structureAreaDivId.css('display') === 'block') {
$structureAreaDivId.css('display', 'none');
$structureAreaDivId.css('display', 'block');
}
CalculateDeskingPage();
}
function ToggleTradeVehicle(saveChange) {
var $tradeDivId = $('#' + PrefixString(Prefixes.DlrStrctr_) + TradeDivId);
if ($tradeDivId.css('display') === 'block') {
$tradeDivId.css('display', 'none');
$('#' + PrefixString(Prefixes.Print_) + TradeDivId + '1').css('display', 'none');
$('#' + PrefixString(Prefixes.Print_) + TradeDivId + '2').css('display', 'none');
$('#' + PrefixString(Prefixes.DlrStrctr_) + HasTradeChkBx).prop('checked', false);
$('#' + PrefixString(Prefixes.Print_) + HasTradeChkBx).prop('checked', false);
if (saveChange) {
SaveStructureValueAjax('HasTrade', '0');
$('#DlrStrctr_TradeAcvNearTrade').val('0');
$('#DlrStrctr_TradeLeinHolder').val('');
$('#DlrStrctr_TradeMake').val('');
$('#DlrStrctr_TradeModel').val('');
$('#DlrStrctr_TradeMonthlyPayment').val('0');
$('#DlrStrctr_TradeOdom').val('0');
$('#DlrStrctr_TradePayoff').val('0');
$('#DlrStrctr_TradeVin').val('');
$('#DlrStrctr_TradeYear').val('0');
SaveStructureValueAjax('TradeACV', '0');
SaveStructureValueAjax('TradeLeinHolder', '');
SaveStructureValueAjax('TradeMake', '');
SaveStructureValueAjax('TradeModel', '');
SaveStructureValueAjax('TradeMonthlyPayment', '0');
SaveStructureValueAjax('TradeOdometer', '0');
SaveStructureValueAjax('TradePayoff', '0');
SaveStructureValueAjax('TradeVin', '');
SaveStructureValueAjax('TradeYear', '0');
}
}
else {
$tradeDivId.css('display', 'block');
$('#' + PrefixString(Prefixes.Print_) + TradeDivId + '1').css('display', 'table-row');
$('#' + PrefixString(Prefixes.Print_) + TradeDivId + '2').css('display', 'table-row');
$('#' + PrefixString(Prefixes.DlrStrctr_) + HasTradeChkBx).prop('checked', true);
$('#' + PrefixString(Prefixes.Print_) + HasTradeChkBx).prop('checked', true);
if (saveChange) {
SaveStructureValueAjax('HasTrade', '1');
}
}
CalculateDeskingPage();
}
function ValidateStructure(pageContainer) {
var returnValue = false;
var structureDisplay = $DealStructureArea.css('display');
pageContainer.structure.isValid = false;
if (pageContainer.purchase != null && pageContainer.purchase != undefined) {
if (pageContainer.applicationStatus === 2 || pageContainer.purchase.vin.length > 8 || pageContainer.isDealerTrackApp || pageContainer.isRouteOneApp) {
if (structureDisplay === 'none') {
$DealStructureArea.css('display', 'block');
$DealStructureAreaAlt.css('display', 'none');
}
}
else {
if (structureDisplay === 'block') {
$DealStructureArea.css('display', 'none');
$DealStructureAreaAlt.css('display', 'block');
}
}
}
pageContainer.structure.isValid = true;
if (pageContainer.purchase != null && pageContainer.purchase != undefined) {
ValidateStructurePurchaseVin(pageContainer);
ValidateStructurePurchaseYear(pageContainer);
var backgroundColor = 'white';
var darkBackgroundColor = '#CCCCCC';
ValidateStructureSalePrice(Prefixes.DlrStrctr_, backgroundColor, pageContainer);
ValidateStructureSalesTax(Prefixes.DlrStrctr_, backgroundColor, pageContainer);
ValidateStructureTitleLicenseDocTotal(Prefixes.DlrStrctr_, backgroundColor, pageContainer);
ValidateStructureDownPayment(Prefixes.DlrStrctr_, backgroundColor, pageContainer);
ValidateStructureNetTrade(Prefixes.DlrStrctr_, backgroundColor, pageContainer);
ValidateStructureUnpaidBalance(Prefixes.DlrStrctr_, darkBackgroundColor, pageContainer);
ValidateStructureLtvKelleyWholesaleFront(Prefixes.DlrStrctr_, darkBackgroundColor, pageContainer);
ValidateStructureDaysToFirstPayment(Prefixes.DlrStrctr_, backgroundColor, pageContainer);
ValidateStructureSaleRate(Prefixes.DlrStrctr_, backgroundColor, pageContainer);
ValidateStructureAmountFinanced(Prefixes.DlrStrctr_, darkBackgroundColor, pageContainer);
ValidateStructureBackOrFrontEndFees(Prefixes.DlrStrctr_, backgroundColor, pageContainer);
var $resubmitToPac = $('#' + PrefixString(Prefixes.DlrStrctr_) + '' + 'ResubmitToPac');
if (pageContainer.structure.isValid) {
$('#' + PrefixString(Prefixes.DlrStrctr_) + '' + StructureApprovalWarningId).css('display', 'none');
$resubmitToPac.css('color', 'black');
$resubmitToPac.css('font-weight', 'normal');
$resubmitToPac.css('font-size', 'small');
}
else {
$('#' + PrefixString(Prefixes.DlrStrctr_) + '' + StructureApprovalWarningId).css('display', 'table-cell');
$resubmitToPac.css('color', 'Red');
$resubmitToPac.css('font-weight', 'bolder');
$resubmitToPac.css('font-size', 'larger');
}
if (pageContainer.applicationStatus === 2 &&
pageContainer.purchase.vin.length > 8 &&
pageContainer.structure.salePrice > 99 &&
pageContainer.structure.loanTerm > 0 &&
pageContainer.structure.saleRate > 0 &&
pageContainer.structure.unpaidBalance > 0 &&
pageContainer.purchase.odometer > 0 &&
+$('#_bookValue').val() > 99) {
pageContainer.isStructureValidForSubmission = true;
}
}
return pageContainer;
}
function ValidateStructureAmountFinanced(idPrefix, backgroundColor, pageContainer) {
var $amountFinancedHelp = $('#' + PrefixString(idPrefix) + '' + AmountFinanced + 'Help');
var $amountFinanced = $('#' + PrefixString(idPrefix) + '' + AmountFinanced);
var amountFinanced = pageContainer.structure.amountFinanced;
if (pageContainer.approval.maxFinancedOtd > 0) {
if (amountFinanced > (pageContainer.approval.maxFinancedOtd * ApprovalMissmatchWindow)) {
$amountFinanced.css('background-color', badBackgroundColor);
$amountFinanced.css('color', 'Black');
$('#' + PrefixString(Prefixes.Print_) + AmountFinanced).css('background-color', badBackgroundColor);
$('#PrintWarningAmountFinanced').text('Amount financed is above approval.');
document.getElementById('rowPrintWarningAmountFinanced').style.display = 'block';
HasPrintWarning = true;
pageContainer.structure.isValid = false;
$amountFinancedHelp.attr('HelpHeight', '130');
$amountFinancedHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$amountFinancedHelp.attr('HelpTxt', 'Amount Financed.' + EncodedBreak + EncodedBreak +
'The amount financed exceeds the approval of ' + pageContainer.approval.maxFinancedOtd + '.');
}
else {
$amountFinanced.css('background-color', backgroundColor);
if (pageContainer.webSiteMode === WebSiteMode.dealers) {
$amountFinanced.css('color', 'Black');
}
else {
$amountFinanced.css('color', 'White');
}
$('#' + PrefixString(Prefixes.Print_) + AmountFinanced).css('background-color', backgroundColor);
$('#PrintWarningAmountFinanced').text('');
document.getElementById('rowPrintWarningAmountFinanced').style.display = 'none';
HasPrintWarning = false;
$amountFinancedHelp.attr('HelpHeight', '130');
$amountFinancedHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$amountFinancedHelp.attr('HelpTxt', 'Amount Financed.' + EncodedBreak + EncodedBreak +
'The amount financed fits the approved ' + pageContainer.approval.maxFinancedOtd + '.');
}
}
else {
$amountFinanced.css('background-color', backgroundColor);
if (pageContainer.webSiteMode === WebSiteMode.dealers) {
$amountFinanced.css('color', 'Black');
}
else {
$amountFinanced.css('color', 'White');
}
$('#' + PrefixString(Prefixes.Print_) + AmountFinanced).css('background-color', backgroundColor);
$('#PrintWarningAmountFinanced').text('');
document.getElementById('rowPrintWarningAmountFinanced').style.display = 'none';
HasPrintWarning = false;
$amountFinancedHelp.attr('HelpHeight', '130');
$amountFinancedHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$amountFinancedHelp.attr('HelpTxt', 'Amount Financed.' + EncodedBreak + EncodedBreak +
'The amount financed, out the door.');
}
}
function ValidateStructureBackOrFrontEndFees(idPrefix, backgroundColor, pageContainer) {
var $backOrFrontEndFees = $('#' + PrefixString(idPrefix) + '' + BankOrFrontEndFees);
var $backOrFrontEndFeesHelp = $('#' + PrefixString(idPrefix) + '' + BankOrFrontEndFees + 'Help');
$backOrFrontEndFeesHelp.attr('HelpHeight', '90');
$backOrFrontEndFeesHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$backOrFrontEndFeesHelp.attr('HelpTxt', 'Front-end Fees.' + EncodedBreak + EncodedBreak +
'Any front-end fee not included under T&L(with Doc) should be listed here.');
$backOrFrontEndFees.css('background-color', backgroundColor);
}
function ValidateStructureDaysToFirstPayment(idPrefix, backgroundColor, pageContainer) {
var $daysToFirstPaymentHelp = $('#' + PrefixString(idPrefix) + '' + DaysToFirstPayment + 'Help');
var daysToFirstPayment = pageContainer.structure.daysToFirstPayment;
if (daysToFirstPayment > 60) {
$('#' + PrefixString(idPrefix) + '' + DaysToFirstPayment).css('background-color', badBackgroundColor);
$('#' + PrefixString(Prefixes.Print_) + DaysToFirstPayment).css('background-color', badBackgroundColor);
pageContainer.structure.isValid = false;
$daysToFirstPaymentHelp.attr('HelpHeight', '110');
$daysToFirstPaymentHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$daysToFirstPaymentHelp.attr('HelpTxt', 'Days to First Payment.' + EncodedBreak + EncodedBreak +
'Lower this value to less than 46 days.');
}
else {
$('#' + PrefixString(idPrefix) + '' + DaysToFirstPayment).css('background-color', backgroundColor);
$('#' + PrefixString(Prefixes.Print_) + DaysToFirstPayment).css('background-color', backgroundColor);
$daysToFirstPaymentHelp.attr('HelpHeight', '110');
$daysToFirstPaymentHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$daysToFirstPaymentHelp.attr('HelpTxt', 'Days to First Payment.' + EncodedBreak + EncodedBreak +
'Do not exceed 45 days.');
}
}
function ValidateStructureDownPayment(idPrefix, backgroundColor, pageContainer) {
var $downPaymentHelp = $('#' + PrefixString(idPrefix) + '' + DownPayment + 'Help');
var equityDown = pageContainer.structure.equityDown;
if (CheckNumber(pageContainer.approval.requiredDownPayment) > 0) {
if (equityDown < (pageContainer.approval.requiredDownPayment * (2 - ApprovalMissmatchWindow))) {
$('#' + PrefixString(idPrefix) + '' + DownPayment).css('background-color', badBackgroundColor);
$('#' + PrefixString(Prefixes.Print_) + DownPayment).css('background-color', badBackgroundColor);
$('#PrintWarningDown').text('Down is less than approval');
document.getElementById('rowPrintWarningDown').style.display = 'block';
HasPrintWarning = true;
pageContainer.structure.isValid = false;
$downPaymentHelp.attr('HelpHeight', '150');
$downPaymentHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$downPaymentHelp.attr('HelpTxt', 'Cash Down.' + EncodedBreak + EncodedBreak +
'You have less total down(cash down + net trade) than is required by your approval of ' + pageContainer.approval.requiredDownPayment + '.');
}
else {
$('#' + PrefixString(idPrefix) + '' + DownPayment).css('background-color', backgroundColor);
$('#' + PrefixString(Prefixes.Print_) + DownPayment).css('background-color', backgroundColor);
$('#PrintWarningDown').text('');
document.getElementById('rowPrintWarningDown').style.display = 'none';
HasPrintWarning = false;
$downPaymentHelp.attr('HelpHeight', '110');
$downPaymentHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$downPaymentHelp.attr('HelpTxt', 'Cash Down.' + EncodedBreak + EncodedBreak +
'You have met the min down requirement of your approval, ' + pageContainer.approval.requiredDownPayment + '.');
}
}
else {
$('#' + PrefixString(idPrefix) + '' + DownPayment).css('background-color', backgroundColor);
$('#' + PrefixString(Prefixes.Print_) + DownPayment).css('background-color', backgroundColor);
$('#PrintWarningDown').text('');
document.getElementById('rowPrintWarningDown').style.display = 'none';
HasPrintWarning = false;
$downPaymentHelp.attr('HelpHeight', '110');
$downPaymentHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$downPaymentHelp.attr('HelpTxt', 'Cash Down.' + EncodedBreak + EncodedBreak +
'Most approvals will require at least $1K - $2K in cash down. We typically include trade equity in the cash down requirement.');
}
}
function ValidateStructureGapFee(idPrefix, backgroundColor, pageContainer, basicLimitMaxGap) {
var maxGapFee = GetSettingValue('StructureGapMaxSalePrice', 0);
if (pageContainer.approval.selectedTier > 0 && pageContainer.approval.selectedTier < 999) {
maxGapFee = GetSettingValue('StructureGapMaxSalePrice', pageContainer.approval.selectedTier);
}
var gapFee = pageContainer.structure.gapFee;
var dealerType = new DealerType();
if (pageContainer.dealerType === dealerType.Independent) {
var gapPrice = GetSettingValue('StructureGapMaxSalePrice', 70);
var gapCost = GetSettingValue('StructureGapDealerCost', 70);
$('#' + PrefixString(idPrefix) + '' + GapFee).css('background-color', backgroundColor);
$('#' + PrefixString(Prefixes.Print_) + GapFee).css('background-color', backgroundColor);
$('#PrintWarningGapFee').text('');
document.getElementById('rowPrintWarningGapFee').style.display = 'none';
HasPrintWarning = false;
}
else {
if (maxGapFee > 0) {
if (gapFee > (maxGapFee * ApprovalMissmatchWindow)) {
$('#' + PrefixString(idPrefix) + '' + GapFee).css('background-color', badBackgroundColor);
$('#' + PrefixString(Prefixes.Print_) + GapFee).css('background-color', badBackgroundColor);
$('#PrintWarningGapFee').text('GAP fee is above approval');
document.getElementById('rowPrintWarningGapFee').style.display = 'block';
HasPrintWarning = true;
pageContainer.structure.isValid = false;
}
else {
$('#' + PrefixString(idPrefix) + '' + GapFee).css('background-color', backgroundColor);
$('#' + PrefixString(Prefixes.Print_) + GapFee).css('background-color', backgroundColor);
$('#PrintWarningGapFee').text('');
document.getElementById('rowPrintWarningGapFee').style.display = 'none';
HasPrintWarning = false;
}
}
else {
$('#' + PrefixString(idPrefix) + '' + GapFee).css('background-color', backgroundColor);
$('#' + PrefixString(Prefixes.Print_) + GapFee).css('background-color', backgroundColor);
$('#PrintWarningGapFee').text('');
document.getElementById('rowPrintWarningGapFee').style.display = 'none';
HasPrintWarning = false;
}
}
}
function ValidateStructureLtvKelleyWholesaleFront(idPrefix, backgroundColor, pageContainer) {
var basicLimitMaxLtvFront = GetSettingValue('BasicLimitMaxLtvFront', 0) * 100;
var $loanToValueWholesaleFrontBx = $('#' + PrefixString(idPrefix) + '' + LoanToValueWholesaleFront);
var $loanToValueWholesaleFrontHelp = $('#' + PrefixString(idPrefix) + '' + LoanToValueWholesaleFront + 'Help');
var loanToValueWholesaleFront = pageContainer.structure.loanToValueWholesaleFront;
if (pageContainer.approval.maxLtvFrontWholesale > 0) {
if (loanToValueWholesaleFront > (pageContainer.approval.maxLtvFrontWholesale * ApprovalMissmatchWindow)) {
$loanToValueWholesaleFrontBx.css('background-color', badBackgroundColor);
$loanToValueWholesaleFrontBx.css('color', 'Black');
$('#' + PrefixString(Prefixes.Print_) + LoanToValueWholesaleFront).css('background-color', badBackgroundColor);
pageContainer.structure.isValid = false;
$loanToValueWholesaleFrontHelp.attr('HelpHeight', '110');
$loanToValueWholesaleFrontHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$loanToValueWholesaleFrontHelp.attr('HelpTxt', 'Loan to Value (Top Line).' +
EncodedBreak + EncodedBreak +
'Your LTV(Top) exceeds the approved max LTV of ' + pageContainer.approval.maxLtvFrontWholesale + '.');
}
else {
$loanToValueWholesaleFrontBx.css('background-color', backgroundColor);
if (pageContainer.webSiteMode === WebSiteMode.dealers) {
$loanToValueWholesaleFrontBx.css('color', 'Black');
}
else {
$loanToValueWholesaleFrontBx.css('color', 'White');
}
$('#' + PrefixString(Prefixes.Print_) + LoanToValueWholesaleFront).css('background-color', backgroundColor);
$loanToValueWholesaleFrontHelp.attr('HelpHeight', '90');
$loanToValueWholesaleFrontHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$loanToValueWholesaleFrontHelp.attr('HelpTxt', 'Loan to Value (Top Line).' +
EncodedBreak + EncodedBreak +
'The LTV(Top) is within the approved LTV of ' + pageContainer.approval.maxLtvFrontWholesale + '.');
}
}
else {
if (loanToValueWholesaleFront > (basicLimitMaxLtvFront * ApprovalMissmatchWindow)) {
$loanToValueWholesaleFrontBx.css('background-color', badBackgroundColor);
$loanToValueWholesaleFrontBx.css('color', 'Black');
$('#' + PrefixString(Prefixes.Print_) + LoanToValueWholesaleFront).css('background-color', badBackgroundColor);
pageContainer.structure.isValid = false;
$loanToValueWholesaleFrontHelp.attr('HelpHeight', '110');
$loanToValueWholesaleFrontHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$loanToValueWholesaleFrontHelp.attr('HelpTxt', 'Loan to Value (Top Line).' +
EncodedBreak + EncodedBreak +
'Typically we do not approve any deal with an LTV(Top) greater than ' + basicLimitMaxLtvFront + '.');
}
else {
$loanToValueWholesaleFrontBx.css('background-color', backgroundColor);
if (pageContainer.webSiteMode === WebSiteMode.dealers) {
$loanToValueWholesaleFrontBx.css('color', 'Black');
}
else {
$loanToValueWholesaleFrontBx.css('color', 'White');
}
$('#' + PrefixString(Prefixes.Print_) + LoanToValueWholesaleFront).css('background-color', backgroundColor);
$loanToValueWholesaleFrontHelp.attr('HelpHeight', '90');
$loanToValueWholesaleFrontHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$loanToValueWholesaleFrontHelp.attr('HelpTxt', 'Loan to Value (Top Line).' +
EncodedBreak + EncodedBreak +
'Typically we do not approve any deal with an LTV(Top) greater than ' + basicLimitMaxLtvFront + '.');
}
}
}
function ValidateStructureNetTrade(idPrefix, backgroundColor, pageContainer) {
var $netTradeInStrBxPrint = $('#' + PrefixString(Prefixes.Print_) + NetTradeInStrtr);
var $netTradeInStrBx = $('#' + PrefixString(idPrefix) + '' + NetTradeInStrtr);
var $netTradeInStrHelp = $('#' + PrefixString(idPrefix) + '' + NetTradeInStrtr + 'Help');
var netTradeInStrtr = pageContainer.purchase.netTrade * (-1);
if (netTradeInStrtr > 0) {
if (pageContainer.structure.down < netTradeInStrtr) {
$netTradeInStrBx.css('background-color', badBackgroundColor);
$netTradeInStrBx.css('color', 'Black');
$netTradeInStrBxPrint.css('background-color', badBackgroundColor);
$netTradeInStrBxPrint.css('color', 'Black');
$netTradeInStrHelp.attr('HelpHeight', '250');
$netTradeInStrHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$netTradeInStrHelp.attr('HelpTxt', 'Net Trade.' + EncodedBreak + EncodedBreak +
'We do not approve deals with negative equity. If the customer owes more on the trade than it is worth, ' +
'the difference must be covered by the cash down amount. In addition, there should be enough down left to meet the pageContainer.approval.');
}
else {
$netTradeInStrBx.css('background-color', '#CCCCCC');
$netTradeInStrBxPrint.css('background-color', backgroundColor);
$netTradeInStrHelp.attr('HelpHeight', '210');
$netTradeInStrHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$netTradeInStrHelp.attr('HelpTxt', 'Net Trade.' + EncodedBreak + EncodedBreak +
'You show a negative trade amount but have listed cash down that compensates, your total down(cash down + net trade) must still meet the pageContainer.approval.');
}
}
else {
$netTradeInStrBx.css('background-color', '#CCCCCC');
$netTradeInStrBxPrint.css('background-color', backgroundColor);
$netTradeInStrHelp.attr('HelpHeight', '230');
$netTradeInStrHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$netTradeInStrHelp.attr('HelpTxt', 'Net Trade.' + EncodedBreak + EncodedBreak +
'We do not approve deals with negative equity. If the customer owes more on the trade than it is worth, ' +
'the difference must be covered by the cash down amount. In addition, there should be enough down left to meet the pageContainer.approval.');
}
}
function ValidateStructurePurchaseYear(pageContainer) {
var maxVehicleAge = parseInt($('#_purchaseYear').attr('MaxVehicleAge'));
var today = new Date();
var modelYear = today.getFullYear() - maxVehicleAge;
if (pageContainer.purchase.year < modelYear && pageContainer.purchase.year > 100) {
$('#_purchaseYear').css('background-color', badBackgroundColor);
$('#PrintWarningSalePrice').text('Purchase Vehicle Year');
document.getElementById('rowPrintWarningSalePrice').style.display = 'block';
HasPrintWarning = true;
if (pageContainer.userRole != 'Executive' && pageContainer.userRole != 'ItAdmin') {
pageContainer.structure.isValid = false;
}
}
else {
$('#_purchaseYear').css('background-color', 'White');
}
}
function ValidateStructureSalePrice(idPrefix, backgroundColor, pageContainer) {
var $salePriceHelp = $('#' + PrefixString(idPrefix) + '' + SalePrice + 'Help');
var salePrice = pageContainer.structure.salePrice;
if (salePrice < 99) {
$('#' + PrefixString(idPrefix) + '' + SalePrice).css('background-color', badBackgroundColor);
$('#' + PrefixString(Prefixes.Print_) + SalePrice).css('background-color', badBackgroundColor);
$('#PrintWarningSalePrice').text('Please enter a valid sale price.');
document.getElementById('rowPrintWarningSalePrice').style.display = 'block';
HasPrintWarning = true;
pageContainer.structure.isValid = false;
$salePriceHelp.attr('HelpHeight', '150');
$salePriceHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$salePriceHelp.attr('HelpTxt', 'Cash Sale Price.' + EncodedBreak + EncodedBreak +
'You have not entered a valid sale price, please enter the cash sale price here.');
}
else {
$('#' + PrefixString(idPrefix) + '' + SalePrice).css('background-color', backgroundColor);
$('#' + PrefixString(Prefixes.Print_) + SalePrice).css('background-color', backgroundColor);
$('#PrintWarningSalePrice').text('');
document.getElementById('rowPrintWarningSalePrice').style.display = 'none';
HasPrintWarning = false;
$salePriceHelp.attr('HelpHeight', '90');
$salePriceHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$salePriceHelp.attr('HelpTxt', 'Cash Sale Price.' + EncodedBreak + EncodedBreak + 'You have entered a valid sale price.');
}
}
function ValidateStructureSalesTax(idPrefix, backgroundColor, pageContainer) {
var $salesTaxHelp = $('#' + PrefixString(idPrefix) + '' + SalesTax + 'Help');
if (pageContainer.structure.salesTax < 1) {
$('#' + PrefixString(idPrefix) + '' + SalesTax).css('background-color', badBackgroundColor);
$('#' + PrefixString(Prefixes.Print_) + SalesTax).css('background-color', badBackgroundColor);
$salesTaxHelp.attr('HelpHeight', '130');
$salesTaxHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$salesTaxHelp.attr('HelpTxt', 'Sales Tax.' + EncodedBreak + EncodedBreak +
'Please enter the sales tax amount.');
pageContainer.structure.isValid = false;
}
else {
$('#' + PrefixString(idPrefix) + '' + SalesTax).css('background-color', backgroundColor);
$('#' + PrefixString(Prefixes.Print_) + SalesTax).css('background-color', backgroundColor);
$salesTaxHelp.attr('HelpHeight', '130');
$salesTaxHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$salesTaxHelp.attr('HelpTxt', 'Sales Tax.' + EncodedBreak + EncodedBreak +
'Please enter the sales tax amount.');
}
}
function ValidateStructureTitleLicenseDocTotal(idPrefix, backgroundColor, pageContainer) {
var $titleLicenseDocTotalInStrctrHelp = $('#' + PrefixString(idPrefix) + '' + TitleLicenseDocTotalInStrctr + 'Help');
if (pageContainer.structure.titleLicenseDocTotalInStructure < 1) {
$('#' + PrefixString(idPrefix) + '' + TitleLicenseDocTotalInStrctr).css('background-color', badBackgroundColor);
$('#' + PrefixString(Prefixes.Print_) + TitleLicenseDocTotalInStrctr).css('background-color', badBackgroundColor);
pageContainer.structure.isValid = false;
$titleLicenseDocTotalInStrctrHelp.attr('HelpHeight', '150');
$titleLicenseDocTotalInStrctrHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$titleLicenseDocTotalInStrctrHelp.attr('HelpTxt', 'Title and License Fees with DOC Fee.' +
EncodedBreak + EncodedBreak +
'You have not entered the fees, please enter the total fees with doc fee here.');
}
else {
$('#' + PrefixString(idPrefix) + '' + TitleLicenseDocTotalInStrctr).css('background-color', backgroundColor);
$('#' + PrefixString(Prefixes.Print_) + TitleLicenseDocTotalInStrctr).css('background-color', backgroundColor);
$titleLicenseDocTotalInStrctrHelp.attr('HelpHeight', '90');
$titleLicenseDocTotalInStrctrHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$titleLicenseDocTotalInStrctrHelp.attr('HelpTxt', 'Title and License Fees with DOC Fee.' +
EncodedBreak + EncodedBreak + '');
}
}
function ValidateStructureUnpaidBalance(idPrefix, backgroundColor, pageContainer) {
var $unPaidBalanceHelp = $('#' + PrefixString(idPrefix) + '' + UnPaidBalance + 'Help');
var $unPaidBalance = $('#' + PrefixString(idPrefix) + '' + UnPaidBalance);
var unpaidBalance = pageContainer.structure.unpaidBalance;
if (unpaidBalance < 1) {
$unPaidBalance.css('background-color', badBackgroundColor);
$unPaidBalance.css('color', 'Black');
$unPaidBalanceHelp.attr('HelpHeight', '110');
$unPaidBalanceHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$unPaidBalanceHelp.attr('HelpTxt', 'Unpaid Balance.' + EncodedBreak + EncodedBreak +
'There is no unpaid balance, please complete the deal structure.');
}
else {
$unPaidBalance.css('background-color', backgroundColor);
if (pageContainer.webSiteMode === WebSiteMode.dealers) {
$unPaidBalance.css('color', 'Black');
}
else {
$unPaidBalance.css('color', 'White');
}
$unPaidBalanceHelp.attr('HelpHeight', '110');
$unPaidBalanceHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$unPaidBalanceHelp.attr('HelpTxt', 'Unpaid Balance.' + EncodedBreak + EncodedBreak +
'This will be the amount financed after back end fees/products are added in.');
}
}
function ValidateStructureSaleRate(idPrefix, backgroundColor, pageContainer) {
var $saleRateHelp = $('#' + PrefixString(idPrefix) + '' + SaleRate + 'Help');
var saleRate = pageContainer.structure.saleRate;
if (pageContainer.approval.contractRate > 0) {
if (saleRate < (pageContainer.approval.contractRate * (2 - ApprovalMissmatchWindowRestricted)) || saleRate >
(pageContainer.approval.contractRate * ApprovalMissmatchWindowRestricted)) {
$('#' + PrefixString(idPrefix) + '' + SaleRate).css('background-color', badBackgroundColor);
$('#' + PrefixString(Prefixes.Print_) + SaleRate).css('background-color', badBackgroundColor);
$('#PrintWarningSaleRate').text('APR is less than approval.');
document.getElementById('rowPrintWarningSaleRate').style.display = 'block';
HasPrintWarning = true;
pageContainer.structure.isValid = false;
$saleRateHelp.attr('HelpHeight', '130');
$saleRateHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$saleRateHelp.attr('HelpTxt', 'APR (Interest Rate).' + EncodedBreak + EncodedBreak +
'The APR does not match the approved rate of ' + pageContainer.approval.contractRate + '.');
}
else {
$('#' + PrefixString(idPrefix) + '' + SaleRate).css('background-color', backgroundColor);
$('#' + PrefixString(Prefixes.Print_) + SaleRate).css('background-color', backgroundColor);
$('#PrintWarningSaleRate').text('');
document.getElementById('rowPrintWarningSaleRate').style.display = 'none';
HasPrintWarning = false;
$saleRateHelp.attr('HelpHeight', '130');
$saleRateHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$saleRateHelp.attr('HelpTxt', 'APR (Interest Rate).' + EncodedBreak + EncodedBreak +
'The APR matches the approval rate of ' + pageContainer.approval.contractRate + '.');
}
}
ValidateSuggestedRate(pageContainer, idPrefix);
}
function ValidateStructureMonthlyPayment(idPrefix, backgroundColor, pageContainer, basicLimitMinMonthly, basicLimitMaxMonthly) {
var $monthlyPaymentHelp = $('#' + PrefixString(idPrefix) + '' + MonthlyPayment + 'Help');
var $monthlyPayment = $('#' + PrefixString(idPrefix) + '' + MonthlyPayment);
var monthlyPayment = pageContainer.structure.monthlyPayment;
if (pageContainer.approval.maxMonthlyPayment > 0 &&
monthlyPayment > 0) {
if (monthlyPayment > (pageContainer.approval.maxMonthlyPayment * ApprovalMissmatchWindow)) {
$monthlyPayment.css('background-color', badBackgroundColor);
$('#' + PrefixString(Prefixes.Print_) + MonthlyPayment).css('background-color', badBackgroundColor);
$('#PrintWarningMonthlyPayment').text('Monthly payment is above approval');
document.getElementById('rowPrintWarningMonthlyPayment').style.display = 'block';
HasPrintWarning = true;
$monthlyPayment.css('color', 'Black');
$monthlyPaymentHelp.attr('HelpHeight', '150');
$monthlyPaymentHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$monthlyPaymentHelp.attr('HelpTxt', 'Monthly Payment.' + EncodedBreak + EncodedBreak +
'The monthly payment exceeds the approved amount of ' + pageContainer.approval.maxMonthlyPayment + '.');
}
else {
$monthlyPayment.css('background-color', backgroundColor);
if (pageContainer.webSiteMode === WebSiteMode.dealers) {
$monthlyPayment.css('color', 'Black');
}
else {
$monthlyPayment.css('color', 'White');
}
$('#' + PrefixString(Prefixes.Print_) + MonthlyPayment).css('background-color', backgroundColor);
$('#PrintWarningMonthlyPayment').text('');
document.getElementById('rowPrintWarningMonthlyPayment').style.display = 'none';
HasPrintWarning = false;
$monthlyPaymentHelp.attr('HelpHeight', '150');
$monthlyPaymentHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$monthlyPaymentHelp.attr('HelpTxt', 'Monthly Payment.' + EncodedBreak + EncodedBreak +
'The monthly payment does not exceed the approved max of ' + pageContainer.approval.maxMonthlyPayment + '.');
}
}
else if (monthlyPayment < (basicLimitMinMonthly * (2 - ApprovalMissmatchWindow))) {
$monthlyPayment.css('background-color', badBackgroundColor);
$('#' + PrefixString(Prefixes.Print_) + MonthlyPayment).css('background-color', badBackgroundColor);
$('#PrintWarningMonthlyPayment').text('Monthly payment is too low');
document.getElementById('rowPrintWarningMonthlyPayment').style.display = 'block';
HasPrintWarning = true;
$monthlyPayment.css('color', 'Black');
$monthlyPaymentHelp.attr('HelpHeight', '190');
$monthlyPaymentHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$monthlyPaymentHelp.attr('HelpTxt', 'Monthly Payment.' + EncodedBreak + EncodedBreak +
'The monthly payment is lower than required for any approval, please increase to ' + basicLimitMinMonthly +
'. This can be accomplished by adding back-end or by decreasing the term.');
}
else if (monthlyPayment > (basicLimitMaxMonthly * ApprovalMissmatchWindow)) {
$monthlyPayment.css('background-color', badBackgroundColor);
$monthlyPayment.css('color', 'Black');
$('#' + PrefixString(Prefixes.Print_) + MonthlyPayment).css('background-color', badBackgroundColor);
$('#PrintWarningMonthlyPayment').text('Monthly payment is too high');
document.getElementById('rowPrintWarningMonthlyPayment').style.display = 'block';
HasPrintWarning = true;
$monthlyPaymentHelp.attr('HelpHeight', '150');
$monthlyPaymentHelp.attr('src', BlobImagePrefix + 'ActiveQuestionMark.gif');
$monthlyPaymentHelp.attr('HelpTxt', 'Monthly Payment.' + EncodedBreak + EncodedBreak +
'The monthly payment is higher than any approval, please lower to ' + basicLimitMaxMonthly + '.');
}
else {
$monthlyPayment.css('background-color', backgroundColor);
if (pageContainer.webSiteMode === WebSiteMode.dealers) {
$monthlyPayment.css('color', 'Black');
}
else {
$monthlyPayment.css('color', 'White');
}
$('#PrintWarningMonthlyPayment').text('');
document.getElementById('rowPrintWarningMonthlyPayment').style.display = 'none';
HasPrintWarning = false;
$monthlyPaymentHelp.attr('HelpHeight', '150');
$monthlyPaymentHelp.attr('src', BlobImagePrefix + 'InactiveQuestionMark.gif');
$monthlyPaymentHelp.attr('HelpTxt', 'Monthly Payment.' + EncodedBreak + EncodedBreak +
'The monthly payment should be higher than ' + basicLimitMinMonthly + ' and lower than ' +
basicLimitMaxMonthly + ' for any approval.');
}
}
function ValidateStructurePurchaseVin(pageContainer) {
var $autoCheckImage = $('#' + PrefixString(Prefixes.DlrStrctr_) + 'AutoCheckImage');
if (pageContainer.purchase.vin.length > 8) {
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'AutoCheckImage img').attr('src', BlobImagePrefix + 'autocheck.png');
$autoCheckImage.attr('href', '/Deals/AutoCheckReport?vin=' + pageContainer.purchase.vin + '&dealId=' + getPrimaryKey());
$autoCheckImage.attr('Enabled', 'true');
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'PullAutoCheck').attr('Enabled', 'true');
if (pageContainer.purchase.odometer < 1) {
$('#_purchaseOdometer').css('background-color', badBackgroundColor);
}
}
else {
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'AutoCheckImage img').attr('src', BlobImagePrefix + 'autocheckfaded.png');
$autoCheckImage.attr('href', '../../auth/sales/desk.aspx?');
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'PullAutoCheck').attr('Enabled', 'false');
}
}
function ApplyArchivedStructure() {
var applicationIsDisabled = $('#EdtDlExpnd_contentBlock').attr('applicationDisabled') == 'True';
if (applicationIsDisabled) {
return;
}
var currentArchiveGroup = $('#_dealStructureArchivesTable').attr('currentArchiveGroup');
if (currentArchiveGroup) {
var dlrStrctr = PrefixString(Prefixes.DlrStrctr_);
var structure = '_structure';
var $salePrice = $('#' + dlrStrctr + 'SalePrice');
var $downPayment = $('#' + dlrStrctr + 'DownPayment');
var $loanTerm = $('#' + dlrStrctr + 'LoanTerm');
var $saleRate = $('#' + dlrStrctr + 'SaleRate');
$salePrice.val($('#' + dlrStrctr + 'SalePrice' + '_' + currentArchiveGroup).val());
$salePrice.change();
$downPayment.val($('#' + dlrStrctr + 'DownPayment' + '_' + currentArchiveGroup).val());
$downPayment.change();
$loanTerm.val($('#' + dlrStrctr + 'LoanTerm' + '_' + currentArchiveGroup).val());
$loanTerm.change();
$saleRate.val($('#' + dlrStrctr + 'SaleRate' + '_' + currentArchiveGroup).val());
$saleRate.change();
$('#' + dlrStrctr + 'TitleLicenseDocTotalInStrctr').click();
var $documentFeeDocCalc = $('#' + dlrStrctr + 'DocumentFeeDocCalc');
var $otherFrontEndFeesDocCalc = $('#' + dlrStrctr + 'OtherFrontEndFeesDocCalc');
var $inventoryFeeDocCalc = $('#' + dlrStrctr + 'InventoryFeeDocCalc');
var $titleFeeDocCalc = $('#' + dlrStrctr + 'TitleFeeDocCalc');
var $licenseFeeDocCalc = $('#' + dlrStrctr + 'LicenseFeeDocCalc');
var $registrationFeeDocCalc = $('#' + dlrStrctr + 'RegistrationFeeDocCalc');
var $ageBasedFeeDocCalc = $('#' + dlrStrctr + 'AgeBasedFeeDocCalc');
var $stateInspectionDocCalc = $('#' + dlrStrctr + 'StateInspectionDocCalc');
var $stateInspectionCertificateFeeDocCalc = $('#' + dlrStrctr + 'StateInspectionCertificateFeeDocCalc');
var $tempRegFeeDocCalc = $('#' + dlrStrctr + 'TempRegFeeDocCalc');
var $titleLicenseDocTotalInStrctrArchived = $('#' + dlrStrctr + 'TitleLicenseDocTotalInStrctr' + '_' + currentArchiveGroup);
$documentFeeDocCalc.val($titleLicenseDocTotalInStrctrArchived.attr('DocumentFeeDocCalc'));
$documentFeeDocCalc.change();
$otherFrontEndFeesDocCalc.val($titleLicenseDocTotalInStrctrArchived.attr('OtherFrontEndFeesDocCalc'));
$otherFrontEndFeesDocCalc.change();
$inventoryFeeDocCalc.val($titleLicenseDocTotalInStrctrArchived.attr('InventoryFeeDocCalc'));
$inventoryFeeDocCalc.change();
$titleFeeDocCalc.val($titleLicenseDocTotalInStrctrArchived.attr('TitleFeeDocCalc'));
$titleFeeDocCalc.change();
$licenseFeeDocCalc.val($titleLicenseDocTotalInStrctrArchived.attr('LicenseFeeDocCalc'));
$licenseFeeDocCalc.change();
$registrationFeeDocCalc.val($titleLicenseDocTotalInStrctrArchived.attr('RegistrationFeeDocCalc'));
$registrationFeeDocCalc.change();
$ageBasedFeeDocCalc.val($titleLicenseDocTotalInStrctrArchived.attr('AgeBasedFeeDocCalc'));
$ageBasedFeeDocCalc.change();
$stateInspectionDocCalc.val($titleLicenseDocTotalInStrctrArchived.attr('StateInspectionDocCalc'));
$stateInspectionDocCalc.change();
$stateInspectionCertificateFeeDocCalc.val($titleLicenseDocTotalInStrctrArchived.attr('StateInspectionCertificateFeeDocCalc'));
$stateInspectionCertificateFeeDocCalc.change();
$tempRegFeeDocCalc.val($titleLicenseDocTotalInStrctrArchived.attr('TempRegFeeDocCalc'));
$tempRegFeeDocCalc.change();
$('#' + dlrStrctr + 'SaveDocumentValueDocCalc').click();
var $serviceContractCheckBox = $('#' + structure + 'SellPrimeServiceContract');
if ($serviceContractCheckBox) {
var $serviceContractArchived = $('#' + dlrStrctr + 'ServiceContract' + '_' + currentArchiveGroup);
var checkSellServiceContract = $serviceContractArchived.attr('SellPrimeServiceContract') == 'True';
$('#' + dlrStrctr + 'ServiceContract').click();
EvaluateCheckBox($serviceContractCheckBox, checkSellServiceContract);
EvaluateCheckBox($('#' + structure + 'AWD'), $serviceContractArchived.attr('AWD') == 'True');
EvaluateCheckBox($('#' + structure + 'Diesel'), $serviceContractArchived.attr('Diesel') == 'True');
EvaluateCheckBox($('#' + structure + 'Turbo'), $serviceContractArchived.attr('Turbo') == 'True');
EvaluateCheckBox($('#' + structure + 'VehicleAge'), $serviceContractArchived.attr('VehicleAge') == 'True');
if (checkSellServiceContract) {
var serviceContractMonths = $serviceContractArchived.attr('ServiceContractMonths');
$('#_structureServiceContractPlanOptions option').each(function () {
if (($(this).attr('coveredmonths') || '0') == serviceContractMonths) {
$('#_structureServiceContractPlanOptions').val($(this).val());
SelectServiceContract('structure');
return false;
}
});
}
$('#_structureApplyServiceContract').click();
}
var $sellPrimeGapCheckBox = $('#' + structure + 'SellPrimeGap');
if ($sellPrimeGapCheckBox) {
$('#' + dlrStrctr + 'GapFee').click();
var $gapFeeArchived = $('#' + dlrStrctr + 'GapFee' + '_' + currentArchiveGroup);
var checkGapFee = $gapFeeArchived.attr('SellPrimeGap') == 'True';
EvaluateCheckBox($sellPrimeGapCheckBox, checkGapFee);
$('#_structureApplyGap').click();
}
var $tradeInCheckBox = $('#' + dlrStrctr + 'HasTradeChkBx');
var $netTradeArchived = $('#' + dlrStrctr + 'NetTradeInStrtr' + '_' + currentArchiveGroup);
var hasTrade = $netTradeArchived.attr('HasTrade') == 'True';
EvaluateCheckBox($tradeInCheckBox, hasTrade);
if (hasTrade) {
var $tradeVin = $('#' + dlrStrctr + 'TradeVin');
var $tradeOdom = $('#' + dlrStrctr + 'TradeOdom');
var $tradeYear = $('#' + dlrStrctr + 'TradeYear');
var $tradeMake = $('#' + dlrStrctr + 'TradeMake');
var $tradeModel = $('#' + dlrStrctr + 'TradeModel');
var $tradeLeinHolder = $('#' + dlrStrctr + 'TradeLeinHolder');
var $tradeMonthlyPayment = $('#' + dlrStrctr + 'TradeMonthlyPayment');
var $tradePayoff = $('#' + dlrStrctr + 'TradePayoff');
var $tradeAcvNearTrade = $('#' + dlrStrctr + 'TradeAcvNearTrade');
$tradeVin.val($netTradeArchived.attr('TradeVin'));
$tradeVin.change();
$tradeOdom.val($netTradeArchived.attr('TradeOdom'));
$tradeOdom.change();
$tradeOdom.blur();
$tradeYear.val($netTradeArchived.attr('TradeYear'));
$tradeYear.change();
$tradeMake.val($netTradeArchived.attr('TradeMake'));
$tradeMake.change();
$tradeModel.val($netTradeArchived.attr('TradeModel'));
$tradeModel.change();
$tradeLeinHolder.val($netTradeArchived.attr('TradeLeinHolder'));
$tradeLeinHolder.change();
$tradeLeinHolder.blur();
$tradeMonthlyPayment.val($netTradeArchived.attr('TradeMonthlyPayment'));
$tradeMonthlyPayment.change();
$tradeMonthlyPayment.blur();
$tradePayoff.val($netTradeArchived.attr('TradePayoff'));
$tradePayoff.change();
$tradePayoff.blur();
$tradeAcvNearTrade.val($netTradeArchived.attr('TradeAcvNearTrade'));
$tradeAcvNearTrade.change();
$tradeAcvNearTrade.blur();
$tradeAcvNearTrade.keyup();
}
}
}
function EvaluateCheckBox($checkbox, shouldBeChecked) {
if ($checkbox.is(':checked')) {
if (!shouldBeChecked) {
$checkbox.click();
}
}
else if (shouldBeChecked) {
$checkbox.click();
}
}
function DisplayPreviousArchivedStructure() {
var maxArchiveGroup = $('#_dealStructureArchivesTable').attr('maxArchiveGroup');
if (parseInt(maxArchiveGroup) > 1) {
var currentArchiveGroup = $('#_dealStructureArchivesTable').attr('currentArchiveGroup');
$('#_dealStructureArchivesTable tr[archiveGroup=' + currentArchiveGroup + ']').toggle();
var decrementedArchiveGroup = currentArchiveGroup == '1' ? maxArchiveGroup : parseInt(currentArchiveGroup) - 1;
$('#_dealStructureArchivesTable').attr('currentArchiveGroup', decrementedArchiveGroup);
$("[name='structureArchiveCountTextBox']").val(decrementedArchiveGroup + ' of ' + maxArchiveGroup);
$('#_dealStructureArchivesTable tr[archiveGroup=' + decrementedArchiveGroup + ']').toggle();
}
}
function DisplayNextArchivedStructure() {
var maxArchiveGroup = $('#_dealStructureArchivesTable').attr('maxArchiveGroup');
if (parseInt(maxArchiveGroup) > 1) {
var currentArchiveGroup = $('#_dealStructureArchivesTable').attr('currentArchiveGroup');
$('#_dealStructureArchivesTable tr[archiveGroup=' + currentArchiveGroup + ']').toggle();
var incrementedArchiveGroup = currentArchiveGroup == maxArchiveGroup ? '1' : parseInt(currentArchiveGroup) + 1;
$('#_dealStructureArchivesTable').attr('currentArchiveGroup', incrementedArchiveGroup);
$("[name='structureArchiveCountTextBox']").val(incrementedArchiveGroup + ' of ' + maxArchiveGroup);
$('#_dealStructureArchivesTable tr[archiveGroup=' + incrementedArchiveGroup + ']').toggle();
}
}
$(function () {
var dlrStrctr = PrefixString(Prefixes.DlrStrctr_);
var inputIds = ['SalePrice', 'SalesTax', 'TitleLicenseDocTotalInStrctr', 'DownPayment', 'BankOrFrontEndFees', 'NetTradeInStrtr', 'LoanTerm', 'ServiceContract', 'GapFee', 'SaleRate', 'MonthlyPayment', 'AmountFinanced'];
for (var i = 0; i < inputIds.length; i++) {
$('[id*="' + dlrStrctr + inputIds[i] + '_"]').hover(function () {
var archiveIdComponents = $(this).attr('id').split('_');
var structureId = dlrStrctr + archiveIdComponents[1];
$('#' + structureId).attr('previousBackgroundColor', $('#' + structureId).css('backgroundColor'));
$('#' + structureId).css('background-color', 'orange');
$(this).css('background-color', 'orange');
}, function () {
var archiveIdComponents = $(this).attr('id').split('_');
var structureId = dlrStrctr + archiveIdComponents[1];
$('#' + structureId).css('background-color', $('#' + structureId).attr('previousBackgroundColor'));
$(this).css('background-color', 'white');
});
}
});
function GetSelectedTierIdentifier(useDefaultIfNoneSelected) {
var returnValue;
try {
returnValue = parseFloat($('#' + PrefixString(Prefixes.Apprvl_) + SelectedPacTierDrpDwn + ' option:selected').val());
}
catch (e) {
returnValue = 0;
}
if (returnValue === null ||
isNaN(returnValue)) {
returnValue = 0.0;
}
if (useDefaultIfNoneSelected) {
if (returnValue === 0) {
try {
returnValue = parseFloat($('#' + SelectedTierIdentifier).val());
}
catch (e) {
returnValue = 0.0;
}
returnValue = CheckNumber(returnValue);
}
if (returnValue === 0) {
returnValue = 70;
}
}
return returnValue;
}
function GetStructureBoolValue(idPrefix, fieldName) {
var returnValue;
try {
if (idPrefix === Prefixes.none) {
returnValue = $('#' + fieldName).is(':checked');
}
else {
returnValue = $('#' + PrefixString(idPrefix) + fieldName).is(':checked');
}
}
catch (e) {
returnValue = false;
}
return returnValue;
}
function GetStructureFloatValue(idPrefix, fieldName) {
var returnValue;
try {
if (idPrefix === Prefixes.none) {
returnValue = parseFloat($('#' + fieldName).val());
}
else {
returnValue = parseFloat($('#' + PrefixString(idPrefix) + fieldName).val());
}
}
catch (e) {
returnValue = 0.0;
}
returnValue = CheckNumber(returnValue);
return returnValue;
}
function GetStructureValue(idPrefix, fieldName) {
var returnValue;
try {
if (idPrefix === Prefixes.none) {
returnValue = $('#' + fieldName).val();
}
else {
returnValue = $('#' + PrefixString(idPrefix) + fieldName).val();
}
}
catch (e) {
returnValue = '';
}
if (returnValue === null) {
returnValue = '';
}
return returnValue;
}
function GetDealerType() {
var dealerType = new DealerType();
try {
if ($('#_dealerType').val() == dealerType.Franchise) {
return dealerType.Franchise;
}
else if ($('#_dealerType').val() == dealerType.Independent) {
return dealerType.Independent;
}
else {
return dealerType.LowBook;
}
}
catch (e) {
}
return dealerType.Independent;
}
function SaveDealerRep(idPrefix) {
var field = 'SalesRep1';
var value = GetStructureValue(idPrefix, LocationUsers);
if (value === null) {
value = '';
}
SaveDealValueAjax(field, value);
}
function SaveDealFieldAjax(elementId) {
var txtBx = $('#' + elementId);
var field = txtBx.attr('Field');
if (field === null) {
field = '';
}
var value = txtBx.val();
if (value === null) {
value = '';
}
if (value != value.toUpperCase()) {
value = value.toUpperCase();
try {
txtBx.val(value);
}
catch (e) {
}
}
SaveDealValueAjax(field, value);
CalculateDeskingPage();
}
function SaveDealComment() {
var nwCmnts = $('#NwCmnts');
var comments = nwCmnts.val();
if (comments === null) {
comments = '';
}
if (comments === 'undefined') {
comments = '';
}
if (comments.length > 1) {
var d = new Date();
var month = d.getMonth() + 1;
var start = '' + month + '/' + d.getDate() + ' Me: ';
$('#OldCmntsDv').prepend(start + comments + ' ');
try {
var saveDealUrl = "../../webServices/SaveDealComment.aspx?";
$.get(saveDealUrl, {
'engineGrease': GetEngineGrease(),
Value: comments,
primaryKey: getPrimaryKey()
});
}
catch (e) {
}
}
nwCmnts.val('');
}
function SaveDealFieldCoBuyerRelationshipAjax(elementId) {
var txtBx = $('#' + elementId);
var field = txtBx.attr('Field');
if (field === null) {
field = '';
}
var value = txtBx.val();
if (value === null) {
value = '';
}
if (value != value.toUpperCase()) {
value = value.toUpperCase();
try {
txtBx.val(value);
}
catch (e) {
}
}
try {
var saveDealUrl = "../../webServices/SaveDealValue.aspx?";
$.get(saveDealUrl, {
'engineGrease': GetEngineGrease(),
Field: field,
Value: value,
primaryKey: getPrimaryKey()
});
}
catch (e) {
}
ValidateApplication();
}
function SaveDealRadioButton(elementId) {
var txtBx = $('#' + elementId);
var field = txtBx.attr('Field');
if (field === null) {
field = '';
}
var value = txtBx.filter(':checked').val();
if (value === null) {
value = '1';
}
SaveDealValueAjax(field, value);
}
function SaveDealValueAjax(field, value) {
try {
var currentDate = new Date();
var datetime = currentDate.getMonth() + "/"
+ currentDate.getDay() + "/"
+ currentDate.getHours() + ":"
+ currentDate.getMinutes() + ":"
+ currentDate.getSeconds();
var saveDealUrl = "../../webServices/SaveDealValue.aspx?" + datetime;
$.get(saveDealUrl, {
'engineGrease': GetEngineGrease(),
Field: field,
Value: value,
primaryKey: getPrimaryKey()
});
}
catch (e) {
}
}
function SaveDownPayment(elementId) {
var txtBx = $('#' + elementId);
var field = txtBx.attr('Field');
if (field === null) {
field = '';
}
var value = txtBx.val();
if (isNaN(value)) {
value = '';
}
value = value.replace(',', '');
value = value.replace('$', '');
var temp = 0;
temp = parseFloat(value);
temp = CheckNumber(temp);
value = temp;
value = Math.abs(value);
if (temp === 0) {
txtBx.val(value);
}
SaveStructureValueAjax(field, value);
}
function SaveStructureFieldAjax(elementId, isNumber) {
var txtBx = $('#' + elementId);
var field = txtBx.attr('Field');
if (field === null) {
field = '';
}
var value = txtBx.val();
if (value === null) {
value = '';
}
if (value != value.toUpperCase()) {
value = value.toUpperCase();
try {
txtBx.val(value);
}
catch (e) {
}
}
if (isNumber) {
value = value.replace(',', '');
value = value.replace('$', '');
var temp = 0;
temp = parseFloat(value);
temp = CheckNumber(temp);
value = temp;
if (temp === 0) {
txtBx.val(value);
}
}
SaveStructureValueAjax(field, value);
}
function SaveStructureValueAjax(field, value) {
var saveDealUrl;
var currentDate = new Date();
var datetime = currentDate.getMonth() + "/"
+ currentDate.getDay() + "/"
+ currentDate.getHours() + ":"
+ currentDate.getMinutes() + ":"
+ currentDate.getSeconds();
if (GetWebSiteMode() === WebSiteMode.dealers) {
saveDealUrl = "../../webServices/SaveStructureValue.aspx?" + datetime;
}
else {
saveDealUrl = "../../webServices/SaveStructurePrimeDealerValue.aspx?" + datetime;
}
if (field === 'SaleRate') {
value = +((value / 100).toFixed(4));
}
try {
$.get(saveDealUrl, {
'engineGrease': GetEngineGrease(),
Field: field,
Value: value,
primaryKey: getPrimaryKey()
});
}
catch (e) {
}
}
function AutoSaveApplicationBtn() {
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'SavingGiff').css('display', 'block');
$('#ApplicationSavingGiff').css('display', 'inline');
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'SubmitDealToPac').css('display', 'none');
$('#AtSvApplctn').css('display', 'none');
$('#ApplctnSbmtBtn').css('display', 'none');
$('#ApplctnAddStrctr').css('display', 'none');
$('#AddCbyerLwrBtn').css('display', 'none');
setTimeout(function () {
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'SavingGiff').css('display', 'none');
$('#ApplicationSavingGiff').css('display', 'none');
$('#' + PrefixString(Prefixes.DlrStrctr_) + 'SubmitDealToPac').css('display', 'inline');
$('#AtSvApplctn').css('display', 'inline');
$('#ApplctnSbmtBtn').css('display', 'inline');
$('#ApplctnAddStrctr').css('display', 'inline');
$('#AddCbyerLwrBtn').css('display', 'inline');
}, 1000);
}
function CopyBuyerAddressToCoBuyer() {
var cbyrCrrHsStrt = $('#CbyrhomeStatusDrpDwn');
var key = '-1';
try {
key = cbyrCrrHsStrt.attr('Key');
}
catch (e) {
key = '-1';
}
if (key === null) {
key = '-1';
}
var streetAddress = $('#ByrhomeStreetAddressBx').val();
$('#CbyrhomeStreetAddressBx').val(streetAddress);
SaveCustomerValueAjax('homeStreetAddress', streetAddress, key);
var apartment = $('#ByrhomeAppartmentNumberBx').val();
$('#CbyrhomeAppartmentNumberBx').val(apartment);
SaveCustomerValueAjax('homeAppartmentNumber', apartment, key);
var city = $('#ByrhomeCityBx').val();
$('#CbyrhomeCityBx').val(city);
SaveCustomerValueAjax('homeCity', city, key);
var byrCrrHsStOption = $('#ByrhomeStateDrpDwn option:selected');
try {
var stateIndx = $('#ByrhomeStateDrpDwn')[0].selectedIndex;
$('#CbyrhomeStateDrpDwn')[0].selectedIndex = stateIndx;
}
catch (e) {
}
var hsState = '';
try {
hsState = byrCrrHsStOption.val();
}
catch (e) {
hsState = '';
}
SaveCustomerValueAjax('homeState', hsState, key);
var zip = $('#ByrhomeZipBx').val();
$('#CbyrhomeZipBx').val(zip);
SaveCustomerValueAjax('homeZip', zip, key);
try {
var statusIndx = $('#ByrhomeStatusDrpDwn')[0].selectedIndex;
$('#CbyrhomeStatusDrpDwn')[0].selectedIndex = statusIndx;
}
catch (e) {
}
var hsStatus = '';
try {
hsStatus = $('#ByrhomeStatusDrpDwn option:selected').val();
}
catch (e) {
hsStatus = '';
}
SaveCustomerValueAjax('homeStatus', hsStatus, key);
var years = $('#ByrhomeMonthsAtAddressYearsBx').val();
$('#CbyrhomeMonthsAtAddressYearsBx').val(years);
var months = $('#ByrhomeMonthsAtAddressMonthsBx').val();
$('#CbyrhomeMonthsAtAddressMonthsBx').val(months);
SaveCustomerFieldAjaxYearsMonths('CbyrhomeMonthsAtAddressMonthsBx', 'CbyrhomeMonthsAtAddressYearsBx', 'CbyrhomeMonthsAtAddressMonthsBx');
var rent = $('#ByrhomeRentBx').val();
$('#CbyrhomeRentBx').val(rent);
rent = rent.replace('$', '');
rent = rent.replace(',', '');
SaveCustomerValueAjax('homeRent', rent, key);
ValidateApplication();
}
function CopyBuyerOldAddressToCoBuyer() {
var cbyrOldHsStrtAddr = $('#CbyrOldHsStrtAddr');
var key = '-1';
try {
key = cbyrOldHsStrtAddr.attr('Key');
}
catch (e) {
key = '-1';
}
if (key === null) {
key = '-1';
}
var streetAddress = $('#ByroldHomeStreetAddressBx').val();
$('#CbyroldHomeStreetAddressBx').val(streetAddress);
SaveCustomerValueAjax('oldHomeStreetAddress', streetAddress, key);
var apartment = $('#ByroldHomeAppartmentNumberBx').val();
$('#CbyroldHomeAppartmentNumberBx').val(apartment);
SaveCustomerValueAjax('oldHomeAppartmentNumber', apartment, key);
var city = $('#ByroldHomeCityBx').val();
$('#CbyroldHomeCityBx').val(city);
SaveCustomerValueAjax('oldHomeCity', city, key);
try {
var stateIndx = $('#ByroldHomeStateDrpDwn')[0].selectedIndex;
$('#CbyroldHomeStateDrpDwn')[0].selectedIndex = stateIndx;
}
catch (e) {
}
var hsState = '';
try {
hsState = $('#ByroldHomeStateDrpDwn option:selected').val();
}
catch (e) {
hsState = '';
}
SaveCustomerValueAjax('oldHomeState', hsState, key);
var zip = $('#ByroldHomeZipBx').val();
$('#CbyroldHomeZipBx').val(zip);
SaveCustomerValueAjax('oldHomeZip', zip, key);
var years = $('#ByroldHomeMonthsAtAddressYearsBx').val();
$('#CbyroldHomeMonthsAtAddressYearsBx').val(years);
var months = $('#ByroldHomeMonthsAtAddressMonthsBx').val();
$('#CbyroldHomeMonthsAtAddressMonthsBx').val(months);
SaveCustomerFieldAjaxYearsMonths('CbyroldHomeMonthsAtAddressMonthsBx', 'CbyroldHomeMonthsAtAddressYearsBx', 'CbyroldHomeMonthsAtAddressMonthsBx');
}
function GetApplicationDropDownValue(prefix, name) {
if (name.indexOf('DrpDwn')) {
name = name + 'DrpDwn';
}
var returnValue = '';
try {
returnValue = CheckString($('#' + prefix + name + ' option:selected').val());
}
catch (e) {
returnValue = '';
}
return returnValue;
}
function DoesApplicationHaveCoBuyer() {
var returnValue = 0;
try {
returnValue = parseFloat($('#ByrCrdtApplTp option:selected').val());
}
catch (e) {
returnValue = 0;
}
if (returnValue === null || isNaN(returnValue)) {
returnValue = 0;
}
if (returnValue > 1) {
return true;
}
return false;
}
function GetApplicationDob(prefix) {
var missingStuff = false;
var monthPrt = $('#' + prefix + 'SecDoBBxs_Prt1M').val();
if (monthPrt === 'undefined' || monthPrt === null) {
missingStuff = true;
}
var dayPrt = $('#' + prefix + 'SecDoBBxs_Prt2D').val();
if (dayPrt === 'undefined' || dayPrt === null) {
missingStuff = true;
}
var yearPrt = $('#' + prefix + 'SecDoBBxs_Prt3Y').val();
if (yearPrt === 'undefined' || yearPrt === null) {
missingStuff = true;
}
var returnValue = new Date(1753, 1, 1);
if (missingStuff === false) {
try {
returnValue = new Date(parseInt(yearPrt), parseInt(monthPrt), parseInt(dayPrt));
}
catch (e) {
}
}
return returnValue;
}
function GetApplicationFloatValue(prefix, name, negOneWhenEmpty) {
if (negOneWhenEmpty === true) {
negOneWhenEmpty = true;
}
else {
negOneWhenEmpty = false;
}
if (name.indexOf('Bx')) {
name = name + 'Bx';
}
var returnValue = $('#' + prefix + name).val();
if (returnValue === 'undefined' || returnValue === null) {
if (negOneWhenEmpty) {
return -1;
}
return 0;
}
if (returnValue) {
returnValue = returnValue.replace('$', '');
returnValue = returnValue.replace(',', '');
returnValue = returnValue.replace(' ', '');
returnValue = $.trim(returnValue);
}
if (returnValue === '') {
if (negOneWhenEmpty) {
return -1;
}
return 0;
}
try {
return CheckNumber(parseFloat(returnValue));
}
catch (e) {
if (negOneWhenEmpty) {
return -1;
}
return 0;
}
}
function GetApplicationPhoneNumber(prefix, name) {
var mbleArea = $('#' + prefix + name + 'Boxes_ArCd').val();
if (mbleArea === 'undefined' || mbleArea === null) {
mbleArea = '';
}
var mblePrefix = $('#' + prefix + name + 'Boxes_PrFxBx').val();
if (mblePrefix === 'undefined' || mblePrefix === null) {
mblePrefix = '';
}
var mbleSuffix = $('#' + prefix + name + 'Boxes_SffxBx').val();
if (mbleSuffix === 'undefined' || mbleSuffix === null) {
mbleSuffix = '';
}
var returnValue = mbleArea + mblePrefix + mbleSuffix;
returnValue = returnValue.replace(' ', '');
returnValue = $.trim(returnValue);
return returnValue;
}
function GetApplicationSsn(prefix) {
var prt1 = $('#' + prefix + 'SecSSNBxs_Prt1Bx').val();
if (prt1 === 'undefined' || prt1 === null) {
prt1 = '';
}
var prt2 = $('#' + prefix + 'SecSSNBxs_Prt2Bx').val();
if (prt2 === 'undefined' || prt2 === null) {
prt2 = '';
}
var prt3 = $('#' + prefix + 'SecSSNBxs_Prt3Bx').val();
if (prt3 === 'undefined' || prt3 === null) {
prt3 = '';
}
var returnValue = prt1 + prt2 + prt3;
returnValue = returnValue.replace(' ', '');
returnValue = $.trim(returnValue);
return returnValue;
}
function GetApplicationTotalMonths(prefix, name) {
var tyears = $('#' + prefix + name + 'YearsBx').val();
if (tyears === 'undefined' || tyears === null) {
tyears = '0';
}
if (tyears === '') {
tyears = '0';
}
var years = CheckNumber(parseInt(tyears));
var tmonths = $('#' + prefix + name + 'MonthsBx').val();
if (tmonths === 'undefined' || tmonths === null) {
tmonths = '0';
}
if (tmonths === '') {
tmonths = '0';
}
var months = CheckNumber(parseInt(tmonths));
return months + (years * 12);
}
function GetApplicationValue(prefix, name) {
if (name.indexOf('Bx')) {
name = name + 'Bx';
}
var returnValue = $('#' + prefix + name).val();
if (returnValue === undefined || returnValue === null) {
returnValue = '';
}
else {
returnValue = returnValue.replace('$', '');
returnValue = returnValue.replace(',', '');
returnValue = returnValue.replace(' ', '');
returnValue = $.trim(returnValue);
}
return returnValue;
}
function HasCoBuyer() {
var applicationType = CheckNumber(parseFloat($ApplicationType.val()));
return applicationType === 2;
}
function SaveCoBuyerRelationship() {
var coBuyerRelation;
try {
coBuyerRelation = parseFloat($('#CbyrRltnshp option:selected').val());
}
catch (e) {
coBuyerRelation = 0;
}
if (coBuyerRelation.isNaN) {
coBuyerRelation = 0;
}
SaveDealValueAjax('coBuyerRelation', coBuyerRelation);
ValidateApplication();
}
function SaveContractDate() {
try {
var contrDt = $('#Print_ContractDateDtBx').val();
var settingsUrl = "../../webServices/SaveDealValue.aspx";
$.get(settingsUrl, {
'engineGrease': GetEngineGrease(),
Value: contrDt,
Field: 'contractDate',
primaryKey: getPrimaryKey()
});
}
catch (e) {
}
}
function SaveCustomerFieldAjax(elementId) {
var txtBx = $('#' + elementId);
var field = txtBx.attr('Field');
if (field === null) {
field = '';
}
var key = '0';
try {
key = txtBx.attr('Key');
}
catch (e) {
key = '0';
}
if (key === null) {
key = '0';
}
var value = txtBx.val();
if (value === null) {
value = '';
}
if (value === 'undefined') {
value = '';
}
if (value != value.toUpperCase()) {
value = value.toUpperCase();
try {
txtBx.val(value);
}
catch (e) {
}
}
if (field === 'homeRent' ||
field === 'employmentMonthlyGross' ||
field === 'oldEmploymentMonthlyGross' ||
field === 'otherIncomeAmount' ||
field === 'monthlyGarnishmentAmount') {
value = value.replace(',', '');
value = value.replace('$', '');
try {
var valu = parseFloat(value);
if (typeof valu === 'undefined' || valu === null) {
value = -1;
valu = -1;
}
if (isNaN(valu)) {
value = -1;
valu = -1;
}
if (value < 0) {
value = -1;
valu = -1;
txtBx.val('');
}
else {
txtBx.val(FormatDollar(valu, false));
}
}
catch (e) {
}
}
if (field === 'homeStreetAddress' ||
field === 'oldHomeStreetAddress') {
value = value.replace(/\./g, '');
try {
txtBx.val(value);
}
catch (e) {
}
}
SaveCustomerValueAjax(field, value, key);
ValidateApplication();
if (field === 'homeStreetAddress') {
if (value.indexOf('PO BOX') > -1 || value.indexOf('P.O. BOX') > -1) {
var poBox = $('#PoBoxWarningId');
poBox.css('display', 'table-cell');
poBox.css('color', 'red');
poBox.html('PO BOX cannot be used to pull credit.');
}
else {
$('#PoBoxWarningId').css('display', 'none');
}
}
}
function SaveCustomerRadioButton(elementId) {
var txtBx = $('#' + elementId);
var field = txtBx.attr('Field');
if (field === null) {
field = '';
}
var key = '0';
try {
key = txtBx.attr('Key');
}
catch (e) {
key = '0';
}
if (key === null) {
key = '0';
}
var value = txtBx.filter(":checked").val();
if (value === null) {
value = '1';
}
SaveCustomerValueAjax(field, value, key);
}
function UpdateBuyerInformation(control, field, customerId) {
var value = $(control).val();
if (field == 'mobilePhone') {
value = value.replace(/\D/g, '');
}
SaveCustomerValueAjax(field, value, customerId);
}
function SaveCustomerValueAjax(field, value, key) {
try {
var currentDate = new Date();
var datetime = currentDate.getMonth() + "/"
+ currentDate.getDay() + "/"
+ currentDate.getHours() + ":"
+ currentDate.getMinutes() + ":"
+ currentDate.getSeconds();
var saveCustomerUrl = "../../webServices/SaveCustomerValue.aspx?" + datetime;
$.get(saveCustomerUrl, {
'engineGrease': GetEngineGrease(),
Field: field,
Value: value,
Key: key,
primaryKey: getPrimaryKey()
}, function (data) {
if (field == 'employmentMonthsOnJob' || field == 'employmentMonthlyGross' || field == 'otherIncomeAmount') {
RecalculateCustomerScore(key);
}
});
if (field != 'eMail' && field != 'DLNumber' && field != 'DLState' && $('#_saveApprovalHidden').attr('approvalAlreadySubmitted') == 'true') {
ClearApproval();
$('#_saveApprovalHidden').attr('approvalAlreadySubmitted', 'false');
}
}
catch (e) {
}
}
function RecalculateCustomerScore(customerId) {
$.post('../../api/customer/RecalculateCustomerScore?customerId=' + customerId, function (data) {
$('#_saveApprovalHidden').attr('customerIncomeDataIsDirty', 'true');
ValidateRelationshipManagerMode(LoadPageContainer());
})
.fail(function (data) {
});
}
function SaveCustomerFieldAjaxDate(elementId) {
var txtBx = $('#' + elementId);
var field = txtBx.attr('Field');
if (field === null) {
field = '';
}
var key = '0';
try {
key = txtBx.attr('Key');
}
catch (e) {
key = '0';
}
if (key === null) {
key = '0';
}
var month = '';
var day = '';
var year = '';
try {
month = $('#' + elementId + '_Prt1M').val();
day = $('#' + elementId + '_Prt2D').val();
year = $('#' + elementId + '_Prt3Y').val();
}
catch (e) {
}
if (month === null) {
month = '';
}
if (day === null) {
day = '';
}
if (year === null) {
year = '';
}
var value = new Date(1800, 1, 1, 1, 1, 1, 1);
try {
value = new Date(parseInt(year), parseInt(month), parseInt(day), 6, 1, 0, 0);
}
catch (e) {
}
if (value > new Date(1900, 1, 1, 6, 1, 1, 1)) {
var tempDate = month + '/' + day + '/' + year;
SaveCustomerValueAjax(field, tempDate, key);
}
ValidateApplication();
}
function SaveCustomerFieldAjaxPhone(elementId) {
var txtBx = $('#' + elementId);
var field = txtBx.attr('Field');
if (field === null) {
field = '';
}
var key = '0';
try {
key = txtBx.attr('Key');
}
catch (e) {
key = '0';
}
if (key === null) {
key = '0';
}
var area = '';
var prefix = '';
var suffix = '';
try {
area = $('#' + elementId + '_ArCd').val();
prefix = $('#' + elementId + '_PrFxBx').val();
suffix = $('#' + elementId + '_SffxBx').val();
}
catch (e) {
}
if (area === null) {
area = '';
}
if (prefix === null) {
prefix = '';
}
if (suffix === null) {
suffix = '';
}
var iEversion = GetInternetExplorerVersion();
var value = area.toString() + prefix.toString() + suffix.toString();
value = value.replace(' ', '');
value = $.trim(value);
if (iEversion === -1) {
if (value.length === 10) {
SaveCustomerValueAjax(field, value, key);
}
}
else {
SaveCustomerValueAjax(field, value, key);
}
ValidateApplication();
}
function SaveCustomerFieldAjaxSsn(elementId) {
var txtBx = $('#' + elementId);
var field = txtBx.attr('Field');
if (field === null) {
field = '';
}
var key = '0';
try {
key = txtBx.attr('Key');
}
catch (e) {
key = '0';
}
if (key === null) {
key = '0';
}
var first = '';
var middle = '';
var last = '';
try {
first = $('#' + elementId + '_Prt1Bx').val();
middle = $('#' + elementId + '_Prt2Bx').val();
last = $('#' + elementId + '_Prt3Bx').val();
}
catch (e) {
}
if (first === null) {
first = '';
}
if (middle === null) {
middle = '';
}
if (last === null) {
last = '';
}
var iEversion = GetInternetExplorerVersion();
var value = first.toString() + middle.toString() + last.toString();
value = value.replace(' ', '');
value = $.trim(value);
var nineDigitPattern = /^\d{9}$/;
if (!nineDigitPattern.test(value))
return;
if (iEversion === -1) {
if (value.length === 9) {
SaveCustomerValueAjax(field, value, key);
}
}
else {
SaveCustomerValueAjax(field, value, key);
}
ValidateApplication();
}
function SaveCustomerFieldAjaxYearsMonths(elementId, yearsId, monthsId) {
var txtBx = $('#' + elementId);
var field = txtBx.attr('Field');
if (field === null) {
field = '';
}
var key = '0';
try {
key = txtBx.attr('Key');
}
catch (e) {
key = '0';
}
if (key === null) {
key = '0';
}
var timeMode = '0';
try {
timeMode = txtBx.attr('TimeMode');
}
catch (e) {
timeMode = '0';
}
if (timeMode === null) {
timeMode = '0';
}
var years = 0;
try {
years = parseInt($('#' + yearsId).val());
if (years === null) {
years = 0;
}
if (isNaN(years)) {
years = 0;
}
}
catch (e) {
}
var months = 0;
try {
months = parseInt($('#' + monthsId).val());
if (months === null) {
months = 0;
}
if (isNaN(months)) {
months = 0;
}
}
catch (e) {
}
if (parseInt(timeMode) === 1) {
$('#' + monthsId).val('0');
months = 0;
}
var value = (12 * years) + months;
try {
var tempYears = value / 12;
tempYears = parseInt(String(tempYears));
$('#' + yearsId).val(tempYears.toString());
var tempMonths = value - (tempYears * 12);
if (tempMonths >= 0) {
$('#' + monthsId).val(tempMonths.toString());
}
}
catch (e) {
}
SaveCustomerValueAjax(field, value, key);
ValidateApplication();
}
function ReadCurrentApplicationStatus() {
if (HasCoBuyer()) {
var buyerStatus = CheckNumber(parseFloat($BuyerApplicationStatus.attr('AppStatus')));
var coBuyerStatus = CheckNumber(parseFloat($CoBuyerApplicationStatus.attr('AppStatus')));
if (buyerStatus === 0 || coBuyerStatus === 0) {
return 0;
}
if (buyerStatus === 1 || coBuyerStatus === 1) {
return 1;
}
if (buyerStatus === 2 && coBuyerStatus === 2) {
return 2;
}
return 0;
}
else {
return CheckNumber(parseFloat($BuyerApplicationStatus.attr('AppStatus')));
}
}
function ReadIncome() {
var buyerIncome = GetApplicationFloatValue('Byr', 'employmentMonthlyGross', false);
var buyerOtherIncome = GetApplicationFloatValue('Byr', 'otherIncomeAmount', false);
var buyerGarnishment = GetApplicationFloatValue('Byr', 'monthlyGarnishmentAmount', false);
var coBuyerIncome = GetApplicationFloatValue('Cbyr', 'employmentMonthlyGross', false);
var coBuyerOtherIncome = GetApplicationFloatValue('Cbyr', 'otherIncomeAmount', false);
var coBuyerGarnishment = GetApplicationFloatValue('Cbyr', 'monthlyGarnishmentAmount', false);
return buyerIncome + buyerOtherIncome + coBuyerIncome + coBuyerOtherIncome - buyerGarnishment - coBuyerGarnishment;
}
function ToggleApplicationType(applicationType) {
if (applicationType < 1) {
try {
applicationType = parseFloat($('#ByrCrdtApplTp option:selected').val());
}
catch (e) {
applicationType = 1;
}
}
if (applicationType === 1) {
SaveDealValueAjax('coBuyerCustomerKey', 0);
$('#CbyrApplicationSection').css('display', 'none');
$('#CbyrDeleteRow').css('display', 'none');
$('#CbyrAddBtnRow').css('display', 'table-row');
$ApplicationType[0].selectedIndex = 1;
document.location.reload(true);
}
else if (applicationType === 2) {
$('#CbyrApplicationSection').css('display', 'table-row');
$('#CbyrDeleteRow').css('display', 'table-row');
$('#CbyrAddBtnRow').css('display', 'none');
$ApplicationType[0].selectedIndex = 2;
}
ValidateApplication();
return false;
}
function ToggleGarnishmentRB(boolValue, applicantNumber) {
if (boolValue) {
if (applicantNumber === 1) {
$('#CbyrGarnishmentAmountDiv').css('display', 'Block');
}
else {
$('#ByrGarnishmentAmountDiv').css('display', 'Block');
}
}
else {
if (applicantNumber === 1) {
SaveCustomerValueAjax('monthlyGarnishmentAmount', 0, -1);
$('#CbyrGrnshmntAmnt').val('0');
$('#CbyrGarnishmentAmountDiv').css('display', 'none');
}
else {
SaveCustomerValueAjax('monthlyGarnishmentAmount', 0, 0);
$('#ByrGrnshmntAmnt').val('0');
$('#ByrGarnishmentAmountDiv').css('display', 'none');
}
}
}
function ValidateApplicant(applicant) {
var status = 2;
var ntChnged = 'NOTCHANGED';
var errors = '';
var customer = LoadCustomerObj(applicant);
if (customer.firstName === null || customer.firstName.length < 2 || customer.firstName === ntChnged) {
status = 0;
errors = errors + 'First Name is Required:';
}
if (customer.lastName === null || customer.lastName.length < 2 || customer.lastName === ntChnged) {
status = 0;
errors = errors + 'Last Name is Required:';
}
if (customer.ssn === null || customer.ssn.length < 2 || customer.ssn === ntChnged) {
status = 0;
errors = errors + 'SSN is Required:';
}
var curDate = new Date();
var minDate = new Date(curDate.getFullYear() - 17, curDate.getMonth(), curDate.getDate());
var maxDate = new Date(curDate.getFullYear() - 100, curDate.getMonth(), curDate.getDate());
if (customer.dob === null || customer.dob > minDate || customer.dob < maxDate) {
status = 0;
errors = errors + 'Valid Date of Birth is Required:';
}
if (customer.mobilePhone.length != 10) {
status = 0;
errors = errors + 'Main/Mobile Phone is Required:';
}
if (customer.homeStreetAddress === null || customer.homeStreetAddress.length < 4 || customer.homeStreetAddress === ntChnged) {
if (status === 2) {
status = 1;
}
errors = errors + 'Residence Street Address is Required:';
}
if (customer.homeCity === null || customer.homeCity.length < 2 || customer.homeCity === ntChnged) {
if (status === 2) {
status = 1;
}
errors = errors + 'Residence City is Required:';
}
if (customer.homeState === null || customer.homeState.length < 2 || customer.homeState === ntChnged) {
if (status === 2) {
status = 1;
}
errors = errors + 'Residence State is Required:';
}
if (customer.homeZip === null || customer.homeZip.length < 5 || customer.homeZip === ntChnged) {
if (status === 2) {
status = 1;
}
errors = errors + 'Residence Zip Code is Required:';
}
if (customer.homeStatus < 1) {
if (status === 2) {
status = 1;
}
errors = errors + 'Residence Status(Rent or Own) is Required:';
}
if (customer.homeMonthsAtAddress < 1) {
if (status === 2) {
status = 1;
}
errors = errors + 'Time at Residence Address is Required:';
if (applicant === Applicant.coBuyer) {
$CoBuyerPrevResidenceDiv.css('display', 'none');
}
else {
$BuyerPrevResidenceDiv.css('display', 'none');
}
}
else if (customer.homeMonthsAtAddress < 24) {
if (applicant === Applicant.coBuyer) {
$CoBuyerPrevResidenceDiv.css('display', 'Block');
}
else {
$BuyerPrevResidenceDiv.css('display', 'Block');
}
}
else {
if (applicant === Applicant.coBuyer) {
$CoBuyerPrevResidenceDiv.css('display', 'none');
}
else {
$BuyerPrevResidenceDiv.css('display', 'none');
}
}
if (customer.employmentStatus < 1) {
if (status === 2) {
status = 1;
}
errors = errors + 'Employment Status is Required:';
}
if (customer.employmentStatus != 2 && customer.employmentStatus != 6 && customer.employmentStatus != 7 && customer.employmentStatus != 8) {
if (customer.employmentCompanyName === null || customer.employmentCompanyName.length < 2 || customer.employmentCompanyName === ntChnged) {
if (status === 2) {
status = 1;
}
errors = errors + 'Employer Name is Required:';
}
if (customer.dealerTrackLenderAppId.length < 2 && customer.r1ConversationId.length < 2) {
if (customer.employmentJobTitle === null || customer.employmentJobTitle.length < 2 || customer.employmentJobTitle === ntChnged) {
if (status === 2) {
status = 1;
}
errors = errors + 'Employment Job Title is Required:';
}
}
if (customer.employmentPhone.length != 10) {
status = 0;
errors = errors + 'Employment Phone Number is Required:';
}
if (customer.employmentMonthlyGross < 0) {
if (status === 2) {
status = 1;
}
errors = errors + 'Employment Gross Monthly Income is Required:';
}
if (customer.employmentMonthsOnJob < 1) {
if (status === 2) {
status = 1;
}
errors = errors + 'Employment Time on Job is Required:';
if (applicant === Applicant.coBuyer) {
$CoBuyerPrevEmploymentDiv.css('display', 'none');
}
else {
$BuyerPrevEmploymentDiv.css('display', 'none');
}
}
else if (customer.employmentMonthsOnJob < 24) {
if (applicant === Applicant.coBuyer) {
$CoBuyerPrevEmploymentDiv.css('display', 'Block');
}
else {
$BuyerPrevEmploymentDiv.css('display', 'Block');
}
}
else {
if (applicant === Applicant.coBuyer) {
$CoBuyerPrevEmploymentDiv.css('display', 'none');
}
else {
$BuyerPrevEmploymentDiv.css('display', 'none');
}
}
}
if (applicant === Applicant.coBuyer) {
var coBuyerRelation;
try {
coBuyerRelation = GetDropDownFloatValue($('#CbyrRltnshp'));
}
catch (e) {
coBuyerRelation = 0;
}
if (coBuyerRelation < 1) {
if (status === 2) {
status = 1;
}
errors = errors + 'Co-Buyer Relationship to Buyer is required:';
}
}
buyerApplicationErrors = errors;
if (buyerApplicationErrors.length > 3) {
if (applicant === Applicant.coBuyer) {
errors = ReplaceAll(errors, ':', ' ');
$CoBuyerApplicationErrors.html('Applicant B Errors : ' + errors);
$CoBuyerApplicationSummaryErrors.html('Applicant B Errors : ' + errors);
}
else {
errors = ReplaceAll(errors, ':', ' ');
$BuyerApplicationErrors.html('Applicant A Errors : ' + errors);
$BuyerApplicationSummaryErrors.html('Applicant A Errors : ' + errors);
}
}
else {
if (applicant === Applicant.coBuyer) {
$CoBuyerApplicationErrors.html('');
$CoBuyerApplicationSummaryErrors.html('');
}
else {
$BuyerApplicationErrors.html('');
$BuyerApplicationSummaryErrors.html('');
}
}
if (status === 1) {
status = 0;
}
return status;
}
function ValidateApplication() {
var applicationStatus = 0;
var buyerStatus = 2;
var coBuyerStatus = 2;
var applicationType = $ApplicationType.val();
if (applicationType === '1') {
buyerStatus = ValidateApplicant(Applicant.buyer);
if (buyerStatus === 2) {
$BuyerApplicationStatus.attr('AppStatus', '2');
$BuyerApplicationStatus.css('background-color', goodBackgroundColor);
$BuyerApplicationSummaryStatus.css('background-color', goodBackgroundColor);
EnableFormCheckBoxes(null);
}
else if (buyerStatus === 1) {
$BuyerApplicationStatus.attr('AppStatus', '1');
$BuyerApplicationStatus.css('background-color', 'Yellow');
$BuyerApplicationSummaryStatus.css('background-color', 'Yellow');
EnableFormCheckBoxes(null);
}
else {
$BuyerApplicationStatus.attr('AppStatus', '0');
$BuyerApplicationStatus.css('background-color', 'OrangeRed');
$BuyerApplicationSummaryStatus.css('background-color', 'OrangeRed');
DisableFormCheckBoxes();
}
}
else {
buyerStatus = ValidateApplicant(Applicant.buyer);
if (buyerStatus === 2) {
$BuyerApplicationStatus.attr('AppStatus', '2');
$BuyerApplicationStatus.css('background-color', goodBackgroundColor);
$BuyerApplicationSummaryStatus.css('background-color', goodBackgroundColor);
EnableFormCheckBoxes(null);
}
else if (buyerStatus === 1) {
$BuyerApplicationStatus.attr('AppStatus', '1');
$BuyerApplicationStatus.css('background-color', 'Yellow');
$BuyerApplicationSummaryStatus.css('background-color', 'Yellow');
EnableFormCheckBoxes(null);
}
else {
$BuyerApplicationStatus.attr('AppStatus', '0');
$BuyerApplicationStatus.css('background-color', 'OrangeRed');
$BuyerApplicationSummaryStatus.css('background-color', 'OrangeRed');
DisableFormCheckBoxes();
}
coBuyerStatus = ValidateApplicant(Applicant.coBuyer);
if (coBuyerStatus === 2) {
$CoBuyerApplicationStatus.attr('AppStatus', '2');
$CoBuyerApplicationStatus.css('background-color', goodBackgroundColor);
$CoBuyerApplicationSummaryStatus.css('background-color', goodBackgroundColor);
EnableFormCheckBoxes(null);
}
else if (coBuyerStatus === 1) {
$CoBuyerApplicationStatus.attr('AppStatus', '1');
$CoBuyerApplicationStatus.css('background-color', 'Yellow');
$CoBuyerApplicationSummaryStatus.css('background-color', 'Yellow');
EnableFormCheckBoxes(null);
}
else {
$CoBuyerApplicationStatus.attr('AppStatus', '0');
$CoBuyerApplicationStatus.css('background-color', 'OrangeRed');
$CoBuyerApplicationSummaryStatus.css('background-color', 'OrangeRed');
DisableFormCheckBoxes();
}
}
if (buyerStatus > 1 && coBuyerStatus > 1) {
applicationStatus = 2;
$ApplicationValidationErrors.html('');
$ApplicationSummaryValidationErrors.html('');
$DealStructureAreaAlt.css('display', 'none');
$DealStructureArea.css('display', 'block');
}
else if (buyerStatus > 0 && coBuyerStatus > 0) {
applicationStatus = 1;
$ApplicationValidationErrors.html('Please correct the following application errors ');
$ApplicationSummaryValidationErrors.html('Please correct the following application errors ');
}
else {
applicationStatus = 0;
$ApplicationValidationErrors.html('Please correct the following application errors ');
$ApplicationSummaryValidationErrors.html('Please correct the following application errors ');
}
return applicationStatus;
}
function GetSmartyStreetsCustomerAddress(customerId) {
var spanId = '#CustomerAddressVerificationSpan_' + customerId;
if (SmartyStreetsApiCallInProgress(customerId)) {
return;
}
var modalId = '#showSmartyStreetsCustomerAddressModal_' + customerId;
var divId = '#SmartyStreetsCustomerAddressDiv_' + customerId;
var addressVerificationIsLoaded = $(spanId).attr('addressVerificationIsLoaded');
var customerAddressesAreDirty = ($('#_saveApprovalHidden').attr('customerAddressesAreDirty') || 'false') == 'true';
if (addressVerificationIsLoaded === 'false' || customerAddressesAreDirty) {
SetSmartyStreetsApiCallInProgress(customerId, true);
$.get('../../SmartyStreets/SmartyStreetsCustomerAddress?customerId=' + customerId, function (data) {
$(divId).html(data);
$(spanId).attr('addressVerificationIsLoaded', 'true');
SetSmartyStreetsApiCallInProgress(customerId, false);
$(modalId).click();
})
.fail(function (data) {
alert('Failed to get address verification data. Please notify development.');
SetSmartyStreetsApiCallInProgress(customerId, false);
});
}
$(modalId).click();
}
function ReloadPageAfterSmartyStreetsAttempt() {
if ($('#showSmartyStreetsResultModal').attr('reloadPageAfterSmartyStreetsAttempt') == 'true') {
$('[name="CustomerAddressVerificationDismissModalButton"]').each(function (i, elem) {
$(elem).click();
});
location.reload(true);
}
}
function VerifySmartyStreetsCustomerAddress(customerId) {
if (SmartyStreetsApiCallInProgress(customerId)) {
return;
}
SetSmartyStreetsApiCallInProgress(customerId, true);
$('#showSmartyStreetsInProgressModal').click();
$.get('../../api/SmartyStreets/VerifyCustomerAddress?customerId=' + customerId + '&userId=' + GetCurrentUserId(), function success(data) {
$('#closeSmartyStreetsInProgressModal').click();
if (data.StatusIsNonError) {
var smartyStreetsResultMessage = '';
var reloadPageAfterSmartyStreetsAttempt = false;
if (data.Status == 'Success') {
smartyStreetsResultMessage = 'Potential matching address(es) found.';
reloadPageAfterSmartyStreetsAttempt = true;
}
else if (data.Status == 'Invalid Address') {
smartyStreetsResultMessage = 'No results found.';
reloadPageAfterSmartyStreetsAttempt = true;
}
else if (data.Status == 'Incomplete Request') {
smartyStreetsResultMessage = 'Cannot verify an incomplete address.';
}
else if (data.Status == 'Address Already Requested') {
smartyStreetsResultMessage = 'We have already requested verification of the current address.';
}
if (reloadPageAfterSmartyStreetsAttempt) {
smartyStreetsResultMessage = smartyStreetsResultMessage + ' The page will refresh when you close this message.';
}
$('#showSmartyStreetsResultModal').attr('reloadPageAfterSmartyStreetsAttempt', reloadPageAfterSmartyStreetsAttempt.toString());
$('#smartyStreetsResultMessage').html(smartyStreetsResultMessage);
$('#showSmartyStreetsResultModal').click();
SetSmartyStreetsApiCallInProgress(customerId, false);
}
else {
$('#showSmartyStreetsResultModal').attr('reloadPageAfterSmartyStreetsAttempt', 'false');
$('#smartyStreetsResultMessage').html('Failed to verify address. Development has been notified. Sorry for the inconvenience');
$('#showSmartyStreetsResultModal').click();
SetSmartyStreetsApiCallInProgress(customerId, false);
}
}).fail(function () {
$('#closeSmartyStreetsInProgressModal').click();
alert('An unexpected error was encountered while verifying the address. Please notify development.');
SetSmartyStreetsApiCallInProgress(customerId, false);
});
}
function SelectSmartyStreetsCustomerAddressCandidate(candidateId, customerId) {
if (SmartyStreetsApiCallInProgress(customerId)) {
return;
}
SetSmartyStreetsApiCallInProgress(customerId, true);
var userId = GetCurrentUserId();
$.post('../../api/SmartyStreets/SelectCustomerAddressCandidate?candidateId=' + candidateId + '&customerId=' + customerId + '&userId=' + userId, function success() {
location.reload(true);
SetSmartyStreetsApiCallInProgress(customerId, false);
}).fail(function () {
alert('Failed to select address. Please notify development.');
SetSmartyStreetsApiCallInProgress(customerId, false);
});
}
function OverrideCustomerAddressVerification(customerId) {
if (SmartyStreetsApiCallInProgress(customerId)) {
return;
}
SetSmartyStreetsApiCallInProgress(customerId, true);
$.post('../../api/SmartyStreets/OverrideCustomerAddressVerification?customerId=' + customerId + '&userId=' + GetCurrentUserId(), function success(data) {
location.reload(true);
SetSmartyStreetsApiCallInProgress(customerId, false);
}).fail(function () {
alert('Failed to override address verification. Please notify development.');
SetSmartyStreetsApiCallInProgress(customerId, false);
});
}
$(function () {
var buyerId = +$('#_saveApprovalHidden').attr('buyerId');
var coBuyerId = +$('#_saveApprovalHidden').attr('buyerId');
$('#ByrhomeStreetAddressBx').change(function () { SetCustomerAddressDirty(buyerId); });
$('#ByrhomeAppartmentNumberBx').change(function () { SetCustomerAddressDirty(buyerId); });
$('#ByrhomeCityBx').change(function () { SetCustomerAddressDirty(buyerId); });
$('#ByrhomeStateDrpDwn').change(function () { SetCustomerAddressDirty(buyerId); });
$('#ByrhomeZipBx').change(function () { SetCustomerAddressDirty(buyerId); });
$('#CbyrhomeStreetAddressBx').change(function () { SetCustomerAddressDirty(coBuyerId); });
$('#CbyrhomeAppartmentNumberBx').change(function () { SetCustomerAddressDirty(buyerId); });
$('#CbyrhomeCityBx').change(function () { SetCustomerAddressDirty(coBuyerId); });
$('#CbyrhomeStateDrpDwn').change(function () { SetCustomerAddressDirty(coBuyerId); });
$('#CbyrhomeZipBx').change(function () { SetCustomerAddressDirty(coBuyerId); });
});
function SetCustomerAddressDirty(customerId) {
$('#_saveApprovalHidden').attr('customerAddressesAreDirty', 'true');
var spanId = '#CustomerAddressVerificationSpan_' + customerId;
if ($(spanId).attr('candidatesSetUnselected') == 'false') {
$.post('../../api/SmartyStreets/SetCustomerAddressCandidatesUnselected?customerId=' + customerId, function success() {
$(spanId).attr('candidatesSetUnselected', 'true');
}).fail(function () {
});
}
ValidateRelationshipManagerMode(LoadPageContainer());
}
function SmartyStreetsApiCallInProgress(customerId) {
var spanId = '#CustomerAddressVerificationSpan_' + customerId;
return $(spanId).attr('smartyStreetsApiCallInProgress') == 'true';
}
function SetSmartyStreetsApiCallInProgress(customerId, value) {
var spanId = '#CustomerAddressVerificationSpan_' + customerId;
$(spanId).attr('smartyStreetsApiCallInProgress', value ? 'true' : 'false');
}
function SellPrimeGapClick(dealStructure) {
if (dealStructure == 'approval') {
var sellPrimeGap = $('#_approvalSellPrimeGap');
var mainCostControl = $('#Apprvl_GapFee');
var costControl = $('#_approvalGapCost');
var dealerType = $('#Apprvl_GapFee').attr('DealerType');
var gapDealerProfitControl = $('#_approvalGapDealerProfit');
}
else {
var sellPrimeGap = $('#_structureSellPrimeGap');
var mainCostControl = $('#DlrStrctr_GapFee');
var costControl = $('#_structureGapCost');
var dealerType = $('#DlrStrctr_GapFee').attr('DealerType');
var gapDealerProfitControl = $('#_structureGapDealerProfit');
}
var gapCost = parseInt(mainCostControl.attr('gapCost'));
var gapDealerProfit = parseInt(mainCostControl.attr('defaultgapdealerprofit'));
if (sellPrimeGap.is(':checked')) {
ToggleSellPacGap(dealStructure);
costControl.val(gapCost.toString());
mainCostControl.val(gapCost.toString());
if (isNaN(parseInt(gapDealerProfitControl.val())) || parseInt(gapDealerProfitControl.val()) <= 0) {
gapDealerProfitControl.val(gapDealerProfit.toString());
}
}
else {
ClearGap(dealStructure);
ToggleSellPacGap(dealStructure);
}
if (dealStructure == 'structure') {
SetGapContractFormCheckBoxEnabled(null);
}
}
function DisablePacGap(dealStructure, message) {
if (dealStructure == 'approval') {
$('#Apprvl_SellPrimeGapLabel').text(message);
$('#_approvalGapCalculatorTable').hide();
$('#_approvalSellPrimeGap').hide();
}
else {
$('#DlrStrctr_SellPrimeGapLabel').text(message);
$('#_structureGapCalculatorTable').hide();
$('#_structureSellPrimeGap').hide();
}
ClearGap(dealStructure);
}
function EnablePacGap(dealStructure) {
if (dealStructure == 'approval') {
$('#Apprvl_SellPrimeGapLabel').text('Sell PAC Gap');
$('#_approvalGapCalculatorTable').show();
$('#_approvalSellPrimeGap').show();
}
else {
$('#DlrStrctr_SellPrimeGapLabel').text('Sell PAC Gap');
$('#_structureGapCalculatorTable').show();
$('#_structureSellPrimeGap').show();
}
}
function OpenGapFeeCalc(dealStructure) {
CloseAllCalculators();
var IsStateGapAllowed = $('#DlrStrctr_StateGapAllowed').val();
if (dealStructure == 'approval') {
var isDealershipGapEnabled = $('#Apprvl_GapFee').attr('IsDealershipGapEnabled');
var gapMaxMarkupPercentage = parseFloat($('#Apprvl_GapFee').attr('gapMaxMarkupPercentage'));
var dealerType = $('#Apprvl_GapFee').attr('DealerType');
}
else {
var isDealershipGapEnabled = $('#DlrStrctr_GapFee').attr('IsDealershipGapEnabled');
var gapMaxMarkupPercentage = parseFloat($('#DlrStrctr_GapFee').attr('gapMaxMarkupPercentage'));
var dealerType = $('#DlrStrctr_GapFee').attr('DealerType');
}
if (dealerType == 'Franchise') {
gapMaxMarkupPercentage = 0;
}
if ((isDealershipGapEnabled == 'True' && IsStateGapAllowed == 'True') || dealerType == 'Franchise') {
ToggleSellPacGap(dealStructure);
var cltvThresholdForPacGapAndServiceContract = +$('#Apprvl_ServiceContract').attr('cltvThresholdForPacGapAndServiceContract') || 0;
if (dealStructure == 'approval' && dealerType != 'Franchise' && CalculateCltvWithoutGapOrServiceContract() >= cltvThresholdForPacGapAndServiceContract) {
DisablePacGap(dealStructure, 'Ineligible for Gap. CLTV must be below ' + cltvThresholdForPacGapAndServiceContract * 100 + '%');
}
else if (gapMaxMarkupPercentage > 0) {
var maxGap = CalculateMaxGap(dealStructure, gapMaxMarkupPercentage);
if (maxGap < 595) {
DisablePacGap(dealStructure, 'Gap fees are limited to ' + gapMaxMarkupPercentage * 100 + '% of the amount financed. This deal does not qualify for GAP');
}
else {
EnablePacGap(dealStructure);
}
}
else {
EnablePacGap(dealStructure);
}
}
else {
DisablePacGap(dealStructure, "This Dealer is not enabled for PAC GAP");
}
}
function RecalculateGapFees() {
var IsStateGapAllowed = $('#DlrStrctr_StateGapAllowed').val();
var isDealershipGapEnabled = $('#DlrStrctr_GapFee').attr('IsDealershipGapEnabled');
var gapMaxMarkupPercentage = parseFloat($('#DlrStrctr_GapFee').attr('gapMaxMarkupPercentage'));
var dealerType = $('#DlrStrctr_GapFee').attr('DealerType');
var gapPrice = parseInt($('#DlrStrctr_GapFee').attr('gapCost'));
var maxEffectiveRateWithGap = parseFloat($('#DlrStrctr_GapFee').attr('MaxEffectiveRateWithGap'));
if (isNaN(maxEffectiveRateWithGap) || maxEffectiveRateWithGap < 0) {
maxEffectiveRateWithGap = 0;
}
if (dealerType == 'Franchise') {
gapMaxMarkupPercentage = 0;
}
var removeGap = false;
if (isDealershipGapEnabled == 'True' && IsStateGapAllowed == 'True' || dealerType == 'Franchise') {
if (dealerType == 'Franchise') {
var franchiseGap = parseInt($('#DlrStrctr_GapFee').val());
if (isNaN(franchiseGap) == false && franchiseGap > 0) {
gapPrice = franchiseGap;
}
}
var maxGap = 0;
if (gapMaxMarkupPercentage > 0) {
maxGap = CalculateMaxGap('structure', gapMaxMarkupPercentage);
if (maxGap < gapPrice) {
removeGap = true;
}
}
else if (maxEffectiveRateWithGap > 0) {
var effectiveRateWithGap = CalculateEffectiveRateWithGap('structure');
if (effectiveRateWithGap > maxEffectiveRateWithGap) {
removeGap = true;
}
}
if (removeGap == true) {
$('#_structureSellPrimeGap').prop('checked', false);
$('#_structureGapCost').val('0');
$('#_structureGapDealerProfit').val('0');
$('#DlrStrctr_GapFee').val('0');
SaveStructureValueAjax('SellPrimeGap', 0);
SaveStructureValueAjax('GapCost', 0);
SaveStructureValueAjax('GapDealerProfit', 0);
}
}
isDealershipGapEnabled = $('#Apprvl_GapFee').attr('IsDealershipGapEnabled');
gapMaxMarkupPercentage = parseFloat($('#Apprvl_GapFee').attr('gapMaxMarkupPercentage'));
dealerType = $('#Apprvl_GapFee').attr('DealerType');
gapPrice = parseInt($('#Apprvl_GapFee').attr('gapCost'));
if (dealerType == 'Franchise') {
gapMaxMarkupPercentage = 0;
}
if (isDealershipGapEnabled == 'True' && IsStateGapAllowed == 'True' || dealerType == 'Franchise') {
removeGap = false;
if (dealerType == 'Franchise') {
var franchiseGap = parseInt($('#Apprvl_GapFee').val());
if (isNaN(franchiseGap) == false && franchiseGap > 0) {
gapPrice = franchiseGap;
}
}
var maxGap = 0;
if (gapMaxMarkupPercentage > 0) {
maxGap = CalculateMaxGap('approval', gapMaxMarkupPercentage);
if (maxGap < gapPrice) {
removeGap = true;
}
}
else if (maxEffectiveRateWithGap > 0) {
var effectiveRateWithGap = CalculateEffectiveRateWithGap('approval');
if (effectiveRateWithGap > maxEffectiveRateWithGap) {
removeGap = true;
}
}
if (removeGap == true) {
$('#_approvalSellPrimeGap').prop('checked', false);
$('#_approvalGapCost').val('0');
$('#_approvalGapDealerProfit').val('0');
$('#Apprvl_GapFee').val('0');
}
}
return removeGap;
}
function CalculateEffectiveRateWithGap(dealStructure) {
var amountFinanced = 0;
var monthlyPayment = 0;
var effectiveRate = 0;
var term = 0;
var daysToFirstPayment = 0;
var gapPrice = 0;
if (dealStructure == 'approval') {
amountFinanced = parseInt($('#Apprvl_MaxFinancedOtd').val());
monthlyPayment = parseFloat($('#_approvalMonthlyPayment').val());
term = parseInt($('#_approvalLoanTerm').val());
daysToFirstPayment = parseInt($('#_approvalDaysToFirstPayment').val());
gapPrice = parseInt($('#Apprvl_GapFee').val());
}
else {
amountFinanced = parseInt($('#DlrStrctr_AmountFinanced').val());
monthlyPayment = parseFloat($('#DlrStrctr_MonthlyPayment').val());
term = parseInt($('#DlrStrctr_LoanTerm').val());
daysToFirstPayment = parseInt($('#DlrStrctr_DaysToFirstPayment').val());
gapPrice = parseInt($('#DlrStrctr_GapFee').val());
}
if (amountFinanced > 0 && gapPrice > 0 && term > 0 && monthlyPayment > 0) {
amountFinanced = amountFinanced - gapPrice;
effectiveRate = MathAnnualInterestRate(amountFinanced, monthlyPayment, term, daysToFirstPayment);
effectiveRate = effectiveRate / 100;
}
return effectiveRate;
}
function CalculateMaxGap(dealStructure, gapMaxMarkupPercentage) {
if (dealStructure == 'approval') {
var maxFinancedTop = parseInt($('#Apprvl_AmountFinanced').val());
var serviceContractPrice = parseInt($('#Apprvl_ServiceContract').val());
}
else {
var maxFinancedTop = parseInt($('#DlrStrctr_UnPaidBalance').val());
var serviceContractPrice = parseInt($('#DlrStrctr_ServiceContract').val());
}
var maxGap = (maxFinancedTop + serviceContractPrice) * gapMaxMarkupPercentage;
return maxGap;
}
function ClearGap(dealStructure) {
if (dealStructure == 'approval') {
$('#_approvalSellPrimeGap').prop('checked', false);
$('#_approvalGapCost').val('0');
var dealerProfit = parseInt($('#_approvalGapDealerProfit').val());
if (isNaN(dealerProfit) == false || dealerProfit > 0) {
$('#_dealerProfit').text(parseInt($('#_dealerProfit').text()) - dealerProfit);
}
$('#_approvalGapDealerProfit').val('0');
$('#Apprvl_GapFee').val('0');
}
else {
$('#_structureSellPrimeGap').prop('checked', false);
$('#_structureGapCost').val('0');
$('#_structureGapDealerProfit').val('0');
$('#DlrStrctr_GapFee').val('0');
SaveStructureValueAjax('GapCost', 0);
SaveStructureValueAjax('GapDealerProfit', 0);
SaveStructureValueAjax('SellPrimeGap', 0);
}
EvaluateGapAndServiceContractForDocuSign();
}
function ToggleSellPacGap(dealStructure) {
if (dealStructure == 'approval') {
var dealerType = $('#Apprvl_GapFee').attr('DealerType');
var sellPrimeGap = $('#_approvalSellPrimeGap');
var gapFeeCalcDiv = $('#_approvalGapFeeCalcDiv');
var isDealershipGapEnabled = $('#Apprvl_GapFee').attr('IsDealershipGapEnabled');
var sellPrimeGapLabel = $('#Apprvl_SellPrimeGapLabel');
var gapCostLabel = $('#_approvalGapCostLabel');
var gapCost = $('#_approvalGapCost');
var gapDealerProfitLabel = $('#_approvalDealerProfitLabel');
var gapDealerProfit = $('#_approvalGapDealerProfit');
}
else {
var dealerType = $('#DlrStrctr_GapFee').attr('DealerType');
var sellPrimeGap = $('#_structureSellPrimeGap');
var gapFeeCalcDiv = $('#_structureGapFeeCalcDiv');
var isDealershipGapEnabled = $('#DlrStrctr_GapFee').attr('IsDealershipGapEnabled');
var sellPrimeGapLabel = $('#DlrStrctr_SellPrimeGapLabel');
var gapCostLabel = $('#_structureGapCostLabel');
var gapCost = $('#_structureGapCost');
var gapDealerProfitLabel = $('#_structureDealerProfitLabel');
var gapDealerProfit = $('#_structureGapDealerProfit');
}
sellPrimeGapLabel.text("Sell PAC Gap");
sellPrimeGap.show();
gapFeeCalcDiv.css("display", "inline");
if (dealerType == 'Franchise' && sellPrimeGap.is(':checked') == false) {
gapCostLabel.text('Dealer`s Gap Price');
gapDealerProfitLabel.hide();
gapDealerProfit.hide();
gapCost.removeAttr('readonly');
}
else {
gapCostLabel.text('Gap Price');
gapDealerProfitLabel.show();
gapDealerProfit.show();
gapCost.attr('readonly', 'readonly');
}
if (isDealershipGapEnabled == 'False' && dealerType == 'Franchise') {
sellPrimeGap.hide();
}
}
function closeGapCalculator(dealStructure) {
if (dealStructure == 'approval') {
$('#Apprvl_GapFee').val($('#_approvalGapCost').val());
$('#_approvalGapFeeCalcDiv').css('display', 'none');
}
else {
$('#DlrStrctr_GapFee').val($('#_structureGapCost').val());
$('#_structureGapFeeCalcDiv').css('display', 'none');
SaveStructureValueAjax('SellPrimeGap', $('#_structureSellPrimeGap').is(':checked'));
SaveStructureValueAjax('GapCost', $('#_structureGapCost').val());
SaveStructureValueAjax('GapDealerProfit', $('#_structureGapDealerProfit').val());
}
UpdateAmountFinancedTop();
EvaluateGapAndServiceContractForDocuSign();
}
function copyGapStructureToApproval() {
$('#_approvalSellPrimeGap').prop('checked', $('#_structureSellPrimeGap').is(':checked'));
$('#_approvalGapCost').val($('#_structureGapCost').val());
$('#_approvalGapDealerProfit').val($('#_structureGapDealerProfit').val());
$('#Apprvl_GapFee').val($('#DlrStrctr_GapFee').val());
}
function copyGapApprovalToStructure() {
$('#_structureSellPrimeGap').prop('checked', $('#_approvalSellPrimeGap').is(':checked'));
$('#_structureGapCost').val($('#_approvalGapCost').val());
$('#_structureGapDealerProfit').val($('#_approvalGapDealerProfit').val());
$('#DlrStrctr_GapFee').val($('#Apprvl_GapFee').val());
SaveStructureValueAjax('SellPrimeGap', $('#_structureSellPrimeGap').is(':checked'));
SaveStructureValueAjax('GapCost', $('#_structureGapCost').val());
SaveStructureValueAjax('GapDealerProfit', $('#_structureGapDealerProfit').val());
}
function copyGapApprovalTermsToStructure() {
$('#_structureSellPrimeGap').attr('checked', $('#_approvalTerms_GapCost').attr('sellprimegap'));
$('#_structureGapCost').val($('#_approvalTerms_GapCost').attr('gapcost'));
$('#_structureGapDealerProfit').val($('#_approvalTerms_GapCost').attr('gapdealerprofit'));
$('#DlrStrctr_GapFee').val($('#_approvalTerms_GapCost').attr('gapcost'));
SaveStructureValueAjax('SellPrimeGap', $('#_structureSellPrimeGap').is(':checked'));
SaveStructureValueAjax('GapCost', $('#_structureGapCost').val());
SaveStructureValueAjax('GapDealerProfit', $('#_structureGapDealerProfit').val());
}
var ServiceContractModel = (function () {
function ServiceContractModel() {
this.SellPrimeServiceContract = false;
this.PurchaseIsDiesel = false;
this.PurchaseIsFourWheel = false;
this.PurchaseisOldVehicle = false;
this.PurchaseIsTurbo = false;
this.ServiceContractCost = 0;
this.ServiceContractDealerProfit = 0;
this.ServiceContractMonths = 0;
}
return ServiceContractModel;
}());
function getApprovalServiceContract() {
var serviceContractModel;
serviceContractModel = new ServiceContractModel();
if ($('#_approvalSellPrimeServiceContract').is(':checked')) {
serviceContractModel.SellPrimeServiceContract = true;
}
if ($('#_approvalAWD').is(':checked')) {
serviceContractModel.PurchaseIsFourWheel = true;
}
if ($('#_approvalDiesel').is(':checked')) {
serviceContractModel.PurchaseIsDiesel = true;
}
if ($('#_approvalTurbo').is(':checked')) {
serviceContractModel.PurchaseIsTurbo = true;
}
if ($('#_approvalVehicleAge').is(':checked')) {
serviceContractModel.PurchaseisOldVehicle = true;
}
serviceContractModel.ServiceContractMonths = $('#_approvalServiceContractMonths').val();
if (isNaN(serviceContractModel.ServiceContractMonths)) {
serviceContractModel.ServiceContractMonths = 0;
}
serviceContractModel.ServiceContractCost = parseInt($('#_approvalServiceContractCost').val());
if (isNaN(serviceContractModel.ServiceContractCost)) {
serviceContractModel.ServiceContractCost = 0;
}
serviceContractModel.ServiceContractDealerProfit = parseInt($('#_approvalServiceDealerProfit').val());
if (isNaN(serviceContractModel.ServiceContractDealerProfit)) {
serviceContractModel.ServiceContractDealerProfit = 0;
}
return serviceContractModel;
}
function getStructureServiceContract() {
var serviceContractModel;
serviceContractModel = new ServiceContractModel();
if ($('#_structureSellPrimeServiceContract').is(':checked')) {
serviceContractModel.SellPrimeServiceContract = true;
}
if ($('#_structureAWD').is(':checked')) {
serviceContractModel.PurchaseIsFourWheel = true;
}
if ($('#_structureDiesel').is(':checked')) {
serviceContractModel.PurchaseIsDiesel = true;
}
if ($('#_structureTurbo').is(':checked')) {
serviceContractModel.PurchaseIsTurbo = true;
}
if ($('#_structureVehicleAge').is(':checked')) {
serviceContractModel.PurchaseisOldVehicle = true;
}
serviceContractModel.ServiceContractMonths = $('#_structureServiceContractMonths').val();
if (isNaN(serviceContractModel.ServiceContractMonths)) {
serviceContractModel.ServiceContractMonths = 0;
}
serviceContractModel.ServiceContractCost = parseInt($('#_structureServiceContractCost').val());
if (isNaN(serviceContractModel.ServiceContractCost)) {
serviceContractModel.ServiceContractCost = 0;
}
serviceContractModel.ServiceContractDealerProfit = parseInt($('#_structureServiceContractDealerProfit').val());
if (isNaN(serviceContractModel.ServiceContractDealerProfit)) {
serviceContractModel.ServiceContractDealerProfit = 0;
}
return serviceContractModel;
}
function ClearServiceContract(dealStructure) {
if (dealStructure == 'approval') {
var jsonServiceContractSettings = ($('#_approvalServiceContractPlanOptions').attr('ServiceContractSettings'));
$('#_approvalServiceContractPlanOptions').empty();
var serviceContractCost = $('#_approvalServiceContractCost');
var serviceContract = $('#Apprvl_ServiceContract');
$('#_approvalAWD').prop('checked', false);
$('#_approvalDiesel').prop('checked', false);
$('#_approvalTurbo').prop('checked', false);
$('#_approvalVehicleAge').prop('checked', false);
$('#_approvalSellPrimeServiceContract').prop('checked', false);
$('#_approvalServiceContractMonths').val('0');
$('#_approvalServiceContractDealerProfit').val('0');
}
else {
var jsonServiceContractSettings = ($('#_structureServiceContractPlanOptions').attr('ServiceContractSettings'));
$('#_structureServiceContractPlanOptions').empty();
var serviceContractCost = $('#_structureServiceContractCost');
var serviceContract = $('#DlrStrctr_ServiceContract');
$('#_structureAWD').prop('checked', false);
$('#_structureDiesel').prop('checked', false);
$('#_structureTurbo').prop('checked', false);
$('#_structureVehicleAge').prop('checked', false);
$('#_structureSellPrimeServiceContract').prop('checked', false);
$('#_structureServiceContractMonths').val('0');
$('#_structureServiceContractDealerProfit').val('0');
SaveStructureValueAjax('SellPrimeWarranty', 0);
SaveStructureValueAjax('ServiceContractCost', 0);
SaveStructureValueAjax('ServiceContractDealerProfit', 0);
SaveStructureValueAjax('ServiceContractMonths', 0);
SaveStructureValueAjax('PurchaseIsDiesel', 0);
SaveStructureValueAjax('PurchaseIsFourWheel', 0);
SaveStructureValueAjax('PurchaseIsOldVehicle', 0);
SaveStructureValueAjax('PurchaseIsTurbo', 0);
}
serviceContractCost.val('0');
serviceContract.val('0');
$('#_' + dealStructure + 'ServiceContractDealerProfit').empty();
EvaluateGapAndServiceContractForDocuSign();
}
function adjustServiceContractSurchargeTotal(dealStructure, controlId, amount) {
var cost = 0;
if (controlId == '_approvalDiesel') {
$('#_isDiesel').prop('checked', $('#' + controlId).is(':checked'));
ApplyVehicleTypeAdjustments();
}
if (dealStructure == 'approval') {
var serviceContract = $('#Apprvl_ServiceContract');
var serviceContractCost = $('#_approvalServiceContractCost');
cost = parseInt($('#_approvalServiceContractCost').val());
}
else {
var serviceContract = $('#DlrStrctr_ServiceContract');
var serviceContractCost = $('#_structureServiceContractCost');
cost = parseInt($('#_structureServiceContractCost').val());
}
if (isNaN(cost)) {
cost = 0;
}
if ($('#' + controlId).is(':checked')) {
cost += parseInt(amount);
}
else {
cost -= parseInt(amount);
}
serviceContractCost.val(cost.toString());
serviceContract.val(cost.toString());
}
function calculateSurcharges(dealStructure) {
var surchargeAmount = 0, surcharge = 0;
if (dealStructure == 'approval') {
if ($('#_approvalAWD').is(':checked')) {
surcharge = parseInt($('#_approvalAWD').attr('amount'));
if (isNaN(surcharge)) {
surcharge = 0;
}
surchargeAmount += surcharge;
}
if ($('#_approvalDiesel').is(':checked')) {
surcharge = parseInt($('#_approvalDiesel').attr('amount'));
if (isNaN(surcharge)) {
surcharge = 0;
}
surchargeAmount += surcharge;
}
if ($('#_approvalTurbo').is(':checked')) {
surcharge = parseInt($('#_approvalTurbo').attr('amount'));
if (isNaN(surcharge)) {
surcharge = 0;
}
surchargeAmount += surcharge;
}
if ($('#_approvalVehicleAge').is(':checked')) {
surcharge = parseInt($('#_approvalVehicleAge').attr('amount'));
if (isNaN(surcharge)) {
surcharge = 0;
}
surchargeAmount += surcharge;
}
}
else {
if ($('#_structureAWD').is(':checked')) {
surcharge = parseInt($('#_structureAWD').attr('amount'));
if (isNaN(surcharge)) {
surcharge = 0;
}
surchargeAmount += surcharge;
}
if ($('#_structureDiesel').is(':checked')) {
surcharge = parseInt($('#_structureDiesel').attr('amount'));
if (isNaN(surcharge)) {
surcharge = 0;
}
surchargeAmount += surcharge;
}
if ($('#_structureTurbo').is(':checked')) {
surcharge = parseInt($('#_structureTurbo').attr('amount'));
if (isNaN(surcharge)) {
surcharge = 0;
}
surchargeAmount += surcharge;
}
if ($('#_structureVehicleAge').is(':checked')) {
surcharge = parseInt($('#_structureVehicleAge').attr('amount'));
if (isNaN(surcharge)) {
surcharge = 0;
}
surchargeAmount += surcharge;
}
}
return surchargeAmount;
}
function SelectServiceContract(dealStructure) {
if (dealStructure == 'approval') {
var planCost = parseInt($('#_approvalServiceContractPlanOptions option:selected').attr('cost'));
var dealerProfit = parseInt($('#_approvalServiceContractPlanOptions option:selected').attr('dealerProfit'));
var costControl = $('#_approvalServiceContractCost');
var dealerProfitControl = $('#_approvalServiceContractDealerProfit');
var structureCostControl = $('#Apprvl_ServiceContract');
$('#_approvalServiceContractMonths').val($('#_approvalServiceContractPlanOptions option:selected').attr('coveredMonths'));
$('#_dealerProfit').text(dealerProfit.toString());
}
else {
var planCost = parseInt($('#_structureServiceContractPlanOptions option:selected').attr('cost'));
var dealerProfit = parseInt($('#_structureServiceContractPlanOptions option:selected').attr('DealerProfit'));
var costControl = $('#_structureServiceContractCost');
var dealerProfitControl = $('#_structureServiceContractDealerProfit');
var structureCostControl = $('#DlrStrctr_ServiceContract');
$('#_structureServiceContractMonths').val($('#_structureServiceContractPlanOptions option:selected').attr('coveredMonths'));
}
if (planCost == 0) {
if (dealStructure == 'approval') {
$('#_approvalAWD').prop('checked', false);
$('#_approvalDiesel').prop('checked', false);
$('#_approvalTurbo').prop('checked', false);
}
else {
$('#_structureAWD').prop('checked', false);
$('#_structureDiesel').prop('checked', false);
$('#_structureTurbo').prop('checked', false);
}
}
var surchargeAmount = calculateSurcharges(dealStructure);
planCost += surchargeAmount;
costControl.val(planCost.toString());
structureCostControl.val(planCost.toString());
dealerProfitControl.val(dealerProfit.toString());
SetServiceContractFormCheckBoxEnabled(null);
}
function BuildServiceContractOptions(dealStructure) {
var purchaseOdometer = $('#_purchaseOdometer').val();
if (dealStructure == 'approval') {
var jsonServiceContractTerms = $('#_approvalServiceContractPlanOptions').attr('ServiceContractTerms');
var servicePlanDropDown = $('#_approvalServiceContractPlanOptions');
var ServiceContractMonths = $('#_approvalServiceContractMonths');
}
else {
var jsonServiceContractTerms = $('#_structureServiceContractPlanOptions').attr('ServiceContractTerms');
var servicePlanDropDown = $('#_structureServiceContractPlanOptions');
var ServiceContractMonths = $('#_structureServiceContractMonths');
}
if (typeof jsonServiceContractTerms !== 'undefined') {
var serviceContractTerms = JSON.parse(jsonServiceContractTerms);
var applicableServiceContracts = serviceContractTerms.filter(function (contract) {
return contract.MinMiles <= purchaseOdometer &&
contract.MaxMiles >= purchaseOdometer &&
contract.ServiceContractCosts.length > 0 &&
contract.ServiceContractCosts[0].Cost > 0;
});
servicePlanDropDown.empty();
servicePlanDropDown.append(" ");
$.each(applicableServiceContracts, function (index, serviceContract) {
var selected = '';
if (serviceContract.CoveredMonths == ServiceContractMonths.val()) {
selected = "selected = 'selected'";
}
servicePlanDropDown.append(""
+ serviceContract.CoveredMonths + " months / " + serviceContract.CoveredMiles + " miles ");
});
}
}
function IsVehicleQualified() {
var vehicleYear = parseInt($('#_purchaseYear').val());
var isDealershipServiceContractEnabled = $('#DlrStrctr_ServiceContract').attr('isdealershipservicecontractenabled');
var currentYear = new Date().getFullYear();
if (currentYear - vehicleYear < parseInt($('#_purchaseYear').attr('MaxVehicleAgeForServiceContract')) && isDealershipServiceContractEnabled == 'True') {
var jsonServiceContractTerms = ($('#_structureServiceContractPlanOptions').attr('ServiceContractTerms'));
if (typeof jsonServiceContractTerms !== 'undefined') {
var serviceContractTerms = JSON.parse(jsonServiceContractTerms);
var applicableServiceContracts = serviceContractTerms.filter(function (contract) {
return contract.MinMiles <= $('#_purchaseOdometer').val() &&
contract.MaxMiles >= $('#_purchaseOdometer').val() &&
contract.ServiceContractCosts.length > 0 &&
contract.ServiceContractCosts[0].Cost > 0;
});
if (applicableServiceContracts.length > 0) {
return true;
}
}
}
return false;
}
function toggleFranchiseAndPacServiceContractCalculator(dealStructure) {
var dealerType = new DealerType();
var sellPrimeServiceContract = false;
var groupType = GetDealerType();
if (dealStructure == 'approval') {
sellPrimeServiceContract = $('#_approvalSellPrimeServiceContract').is(':checked');
var serviceContractOptions = $('#_approvalServiceContractOptionsRow');
var serviceContractSurcharges = $('#_approvalServiceContractVehicleSurchargesRow');
var dealerProfit = $('#_approvalServiceContractDealerProfitRow');
var serviceContractPrice = $('#_approvalServiceContractCost');
}
else {
sellPrimeServiceContract = $('#_structureSellPrimeServiceContract').is(':checked');
var serviceContractOptions = $('#_structureServiceContractOptionsRow');
var serviceContractSurcharges = $('#_structureServiceContractVehicleSurchargesRow');
var dealerProfit = $('#_structureServiceContractDealerProfitRow');
var serviceContractPrice = $('#_structureServiceContractCost');
var $docuSignServiceContractCheckbox = $('[id^="_docuSignServiceContract"]');
SetFormCheckBoxEnabled($docuSignServiceContractCheckbox, sellPrimeServiceContract);
}
if ((groupType == dealerType.Franchise || groupType == dealerType.LowBook) && sellPrimeServiceContract == false) {
serviceContractOptions.hide();
serviceContractSurcharges.hide();
dealerProfit.hide();
serviceContractPrice.removeAttr('readonly');
}
else {
serviceContractOptions.show();
serviceContractSurcharges.show();
dealerProfit.show();
serviceContractPrice.attr('readonly', 'readonly');
}
if (sellPrimeServiceContract == false) {
ClearServiceContract(dealStructure);
}
else {
BuildServiceContractOptions(dealStructure);
serviceContractPrice.val('0');
}
}
function calculateVehicleAgeSurcharge(dealStructure) {
var vehicleAge = 0, surchargeAmount = 0;
var vehicleAgeSurchargeCheckBox;
if (dealStructure == 'approval') {
vehicleAge = parseInt($('#_approvalVehicleAge').attr('vehicleage'));
surchargeAmount = parseInt($('#_approvalVehicleAge').attr('amount'));
vehicleAgeSurchargeCheckBox = $('#_approvalVehicleAge');
}
else {
vehicleAge = parseInt($('#_structureVehicleAge').attr('vehicleage'));
surchargeAmount = parseInt($('#_structureVehicleAge').attr('amount'));
vehicleAgeSurchargeCheckBox = $('#_structureVehicleAge');
}
if (vehicleAge > 0 && surchargeAmount > 0) {
var vehicleYear = parseInt($('#_purchaseYear').val());
var currentYear = new Date().getFullYear();
if (currentYear - vehicleYear > vehicleAge) {
vehicleAgeSurchargeCheckBox.prop('checked', true);
}
else {
vehicleAgeSurchargeCheckBox.prop('checked', false);
}
}
}
function showServiceContractCalculator(dealStructure) {
var dealerType = new DealerType();
var groupType = GetDealerType();
CloseAllCalculators();
if (dealStructure == 'approval') {
$('#Apprvl_ServContractCalcDivId').css('display', 'inline');
var sellPrimeServiceContract = $('#_approvalSellPrimeServiceContract');
var serviceContract = $('#Apprvl_ServiceContract');
var serviceContractTotal = parseInt($('#Apprvl_ServiceContract').val());
var serviceContractOptions = $('#_approvalServiceContractOptionsRow');
var serviceContractSurcharges = $('#_approvalServiceContractVehicleSurchargesRow');
var dealerProfit = $('#_approvalServiceContractDealerProfitRow');
var serviceContractPrice = $('#_approvalServiceContractCost');
}
else {
$('#DlrStrctr_ServContractCalcDivId').css('display', 'inline');
var sellPrimeServiceContract = $('#_structureSellPrimeServiceContract');
var serviceContract = $('#DlrStrctr_ServiceContract');
var serviceContractTotal = parseInt($('#DlrStrctr_ServiceContract').val());
var serviceContractOptions = $('#_structureServiceContractOptionsRow');
var serviceContractSurcharges = $('#_structureServiceContractVehicleSurchargesRow');
var dealerProfit = $('#_structureServiceContractDealerProfitRow');
var serviceContractPrice = $('#_structureServiceContractCost');
}
sellPrimeServiceContract.show();
if (isNaN(serviceContractTotal)) {
serviceContractTotal = 0;
}
var isDealershipServiceContractEnabled = $('#DlrStrctr_ServiceContract').attr('isdealershipservicecontractenabled');
var cltvThresholdForPacGapAndServiceContract = +$('#Apprvl_ServiceContract').attr('cltvThresholdForPacGapAndServiceContract') || 0;
var excessDownPaymentThresholdForPacServiceContract = 750;
if (dealStructure == 'approval' && groupType != dealerType.Franchise && CalculateCltvWithoutGapOrServiceContract() >= cltvThresholdForPacGapAndServiceContract) {
showServiceContractIneligibilityMessage(dealStructure, 'Ineligible for service contract. CLTV must be below ' + cltvThresholdForPacGapAndServiceContract * 100 + '%');
}
else if (dealStructure == 'approval' && groupType != dealerType.Franchise && CalculateExcessDownPayment() <= excessDownPaymentThresholdForPacServiceContract) {
showServiceContractIneligibilityMessage(dealStructure, 'Ineligible for service contract. Excess down payment must be above $' + excessDownPaymentThresholdForPacServiceContract);
}
else if ((groupType == dealerType.Franchise || groupType == dealerType.LowBook) && sellPrimeServiceContract.is(':checked') == false) {
showServiceContractDefaultContent(dealStructure);
serviceContractOptions.hide();
serviceContractSurcharges.hide();
dealerProfit.hide();
serviceContractPrice.removeAttr('readonly');
}
else if (IsVehicleQualified()) {
showServiceContractDefaultContent(dealStructure);
if (sellPrimeServiceContract.is(':checked')) {
BuildServiceContractOptions(dealStructure);
}
serviceContractOptions.show();
serviceContractSurcharges.show();
dealerProfit.show();
serviceContractPrice.attr('readonly', 'readonly');
calculateVehicleAgeSurcharge(dealStructure);
$('#VehicleNotEligableForServContrWarning').css('display', 'none');
sellPrimeServiceContract.prop('disabled', false);
sellPrimeServiceContract.css('display', 'inline');
}
else {
var messageText = $('#DlrStrctr_ServiceContract').attr('isDealershipServiceContractEnabled') == 'False'
? 'This Dealer is not enabled for PAC service Contract'
: 'Vehicle is not eligible for a PAC service Contract';
showServiceContractIneligibilityMessage(dealStructure, messageText);
}
}
function showServiceContractIneligibilityMessage(dealStructure, messageText) {
ClearServiceContract(dealStructure);
if (dealStructure == 'approval') {
$('#_approvalServiceContractIneligibilityMessage').text(messageText);
$('#_approvalServiceContractIneligibilityDiv').css('display', 'inline');
$('#_approvalServiceContractDefaultDiv').css('display', 'none');
}
else {
$('#_structureServiceContractIneligibilityMessage').text(messageText);
$('#_structureServiceContractIneligibilityDiv').css('display', 'inline');
$('#_structureServiceContractDefaultDiv').css('display', 'none');
}
}
function showServiceContractDefaultContent(dealStructure) {
if (dealStructure == 'approval') {
$('#_approvalServiceContractIneligibilityMessage').text('');
$('#_approvalServiceContractIneligibilityDiv').css('display', 'none');
$('#_approvalServiceContractDefaultDiv').css('display', 'inline');
}
else {
$('#_structureServiceContractIneligibilityMessage').text('');
$('#_structureServiceContractIneligibilityDiv').css('display', 'none');
$('#_structureServiceContractDefaultDiv').css('display', 'inline');
}
}
function editFranchiseServiceContract(dealStructure) {
if (dealStructure == 'approval') {
$('#Apprvl_ServiceContract').val($('#_structureServiceContractTotal').val());
}
else {
$('#DlrStrctr_ServiceContract').val($('#_structureServiceContractTotal').val());
}
}
function applyServiceContract(dealStructure) {
var serviceContractModel;
var dealerType = new DealerType();
var groupType = GetDealerType();
if (dealStructure == 'approval') {
$('#Apprvl_ServContractCalcDivId').css('display', 'none');
serviceContractModel = getApprovalServiceContract();
if (serviceContractModel.SellPrimeServiceContract == false) {
serviceContractModel.ServiceContractCost = serviceContractModel.ServiceContractCost;
serviceContractModel.ServiceContractDealerProfit = 0;
$('#Apprvl_ServiceContract').val(serviceContractModel.ServiceContractCost.toString());
$('#_approvalServiceContractCost').val(serviceContractModel.ServiceContractCost.toString());
$('#_approvalServiceContractDealerProfit').val(serviceContractModel.ServiceContractDealerProfit.toString());
}
if (serviceContractModel.SellPrimeServiceContract == true && serviceContractModel.ServiceContractMonths <= 0) {
ClearServiceContract(dealStructure);
}
}
else {
$('#DlrStrctr_ServContractCalcDivId').css('display', 'none');
$('#DlrStrctr_ServiceContract').val($('#_structureServiceContractCost').val());
serviceContractModel = getStructureServiceContract();
if (serviceContractModel.SellPrimeServiceContract == true && serviceContractModel.ServiceContractMonths > 0) {
SaveStructureValueAjax('SellPrimeWarranty', serviceContractModel.SellPrimeServiceContract);
SaveStructureValueAjax('ServiceContractCost', serviceContractModel.ServiceContractCost);
SaveStructureValueAjax('ServiceContractDealerProfit', serviceContractModel.ServiceContractDealerProfit);
SaveStructureValueAjax('serviceContractMonths', serviceContractModel.ServiceContractMonths);
SaveStructureValueAjax('PurchaseIsDiesel', serviceContractModel.PurchaseIsDiesel);
SaveStructureValueAjax('PurchaseIsFourWheel', serviceContractModel.PurchaseIsFourWheel);
SaveStructureValueAjax('PurchaseisOldVehicle', serviceContractModel.PurchaseisOldVehicle);
SaveStructureValueAjax('PurchaseIsTurbo', serviceContractModel.PurchaseIsTurbo);
}
else if ((groupType == dealerType.Franchise || groupType == dealerType.LowBook) && serviceContractModel.SellPrimeServiceContract == false && serviceContractModel.ServiceContractCost > 0) {
SaveStructureValueAjax('SellPrimeWarranty', false);
SaveStructureValueAjax('ServiceContractCost', serviceContractModel.ServiceContractCost);
SaveStructureValueAjax('ServiceContractDealerProfit', 0);
SaveStructureValueAjax('serviceContractMonths', 0);
SaveStructureValueAjax('PurchaseIsDiesel', false);
SaveStructureValueAjax('PurchaseIsFourWheel', false);
SaveStructureValueAjax('PurchaseisOldVehicle', false);
SaveStructureValueAjax('PurchaseIsTurbo', false);
}
else {
ClearServiceContract(dealStructure);
SaveStructureValueAjax('SellPrimeWarranty', false);
SaveStructureValueAjax('ServiceContractCost', 0);
SaveStructureValueAjax('ServiceContractDealerProfit', 0);
SaveStructureValueAjax('serviceContractMonths', 0);
SaveStructureValueAjax('PurchaseIsDiesel', false);
SaveStructureValueAjax('PurchaseIsFourWheel', false);
SaveStructureValueAjax('PurchaseisOldVehicle', false);
SaveStructureValueAjax('PurchaseIsTurbo', false);
$('#DlrStrctr_ServiceContract').val('0');
}
}
UpdateAmountFinancedTop();
CalculateDeskingPage();
EvaluateGapAndServiceContractForDocuSign();
}
function closeServiceContractCalculator(dealStructure) {
ClearServiceContract(dealStructure);
if (dealStructure == 'approval') {
$('#Apprvl_ServContractCalcDivId').css('display', 'none');
}
else {
$('#DlrStrctr_ServContractCalcDivId').css('display', 'none');
SaveStructureValueAjax('SellPrimeWarranty', false);
SaveStructureValueAjax('ServiceContractCost', 0);
SaveStructureValueAjax('ServiceContractDealerProfit', 0);
SaveStructureValueAjax('serviceContractMonths', 0);
SaveStructureValueAjax('PurchaseIsDiesel', false);
SaveStructureValueAjax('PurchaseIsFourWheel', false);
SaveStructureValueAjax('PurchaseisOldVehicle', false);
SaveStructureValueAjax('PurchaseIsTurbo', false);
}
CalculateDeskingPage();
}
function populateApprovalServiceContractUI(serviceContractModel) {
if (serviceContractModel.SellPrimeServiceContract == true) {
$('#_approvalSellPrimeServiceContract').prop('checked', true);
}
else {
$('#_approvalSellPrimeServiceContract').prop('checked', false);
}
if (serviceContractModel.PurchaseIsFourWheel == true) {
$('#_approvalAWD').prop('checked', true);
}
else {
$('#_approvalAWD').prop('checked', false);
}
if (serviceContractModel.PurchaseIsDiesel == true) {
$('#_approvalDiesel').prop('checked', true);
}
else {
$('#_approvalDiesel').prop('checked', false);
}
if (serviceContractModel.PurchaseIsTurbo == true) {
$('#_approvalTurbo').prop('checked', true);
}
else {
$('#_approvalTurbo').prop('checked', false);
}
$('#_approvalServiceContractMonths').val(serviceContractModel.ServiceContractMonths.toString());
$('#_approvalServiceContractCost').val(serviceContractModel.ServiceContractCost.toString());
$('#Apprvl_ServiceContract').val(serviceContractModel.ServiceContractCost.toString());
$('#_approvalServiceContractDealerProfit').val(serviceContractModel.ServiceContractDealerProfit.toString());
$('#_dealerProfit').text(serviceContractModel.ServiceContractDealerProfit.toString());
}
function copyStructureServiceContractToApproval() {
var serviceContractModel;
serviceContractModel = getStructureServiceContract();
populateApprovalServiceContractUI(serviceContractModel);
}
function copyApprovalToStructureServiceContract() {
$('#_structureSellPrimeServiceContract').prop('checked', $('#_approvalSellPrimeServiceContract').is(':checked'));
$('#_structureAWD').prop('checked', $('#_approvalAWD').is(':checked'));
$('#_structureDiesel').prop('checked', $('#_approvalDiesel').is(':checked'));
$('#_structureTurbo').prop('checked', $('#_approvalTurbo').is(':checked'));
$('#_structureVehicleAge').prop('checked', $('#_approvalVehicleAge').is(':checked'));
$('#_structureServiceContractMonths').val($('#_approvalServiceContractMonths').val());
$('#_structureServiceContractCost').val($('#_approvalServiceContractCost').val());
$('#DlrStrctr_ServiceContract').val($('#Apprvl_ServiceContract').val());
$('#_structureServiceContractDealerProfit').val($('#_approvalServiceContractDealerProfit').val());
}
function copyApprovalTermsToStructureServiceContact() {
var $serviceContractData = $('#_approvalTerms_ServiceContract');
$('#_structureSellPrimeServiceContract').prop('checked', $serviceContractData.attr('sellPrimeServiceContract') == 'True');
$('#_structureAWD').prop('checked', $serviceContractData.attr('purchaseIsFourWheel') == 'True');
$('#_structureDiesel').prop('checked', $serviceContractData.attr('purchaseIsDiesel') == 'True');
$('#_structureTurbo').prop('checked', $serviceContractData.attr('purchaseIsTurbo') == 'True');
$('#_structureVehicleAge').prop('checked', $serviceContractData.attr('purchaseIsOldVehicle') == 'True');
$('#_structureServiceContractMonths').val($serviceContractData.attr('serviceContractMonths'));
$('#_structureServiceContractCost').val($serviceContractData.attr('serviceContractCost'));
$('#DlrStrctr_ServiceContract').val($serviceContractData.attr('value'));
$('#_structureServiceContractDealerProfit').val($serviceContractData.attr('serviceContractDealerProfit'));
}
function getTerms() {
getServiceContractTerms($('#DlrStrctr_PurchaseMake').val(), 'Independent');
}
function getServiceContractTerms(make, dealerType) {
var data = {
make: make,
dealerType: dealerType
};
$.ajax({
type: 'GET',
data: data,
url: '../../api/ServiceContract',
dataType: "json",
success: function (data) {
$('#_structureServiceContractPlanOptions').attr('servicecontractterms', data);
$('#_approvalServiceContractPlanOptions').attr('servicecontractterms', data);
}
});
}
function ReloadPageAfterCreditPullAttempt() {
if ($('#showPullCreditResultModal').attr('reloadPageAfterCreditPullAttempt') == 'true') {
location.reload(true);
}
}
function SetCustomerDataForPullCreditModal(fullName, customerId, buyerOrCoBuyer) {
$('#customerDataForPullCreditModal').text(fullName);
$('#customerDataForPullCreditResultModal').text(fullName);
$('#customerDataForPullCreditModal').attr('customerId', customerId);
$('#customerDataForPullCreditModal').attr('buyerOrCoBuyer', buyerOrCoBuyer);
}
function PullCreditForNewDeal() {
var dealId = getPrimaryKey();
if (dealId) {
$.post('../../api/deals/PullCreditByDealId?dealId=' + dealId, function (data) {
})
.fail(function (data) {
});
}
}
function PullCreditNew(customerId, overrideCheckForPopulatedCreditProfiles) {
if (overrideCheckForPopulatedCreditProfiles === void 0) { overrideCheckForPopulatedCreditProfiles = false; }
if (!customerId) {
customerId = $('#customerDataForPullCreditModal').attr('customerId');
}
$('button[name=closePullCreditModal]').click();
$('#showCreditPullInProgressModal').click();
$.post('../../api/customer/PullCredit?customerId=' + customerId + '&overrideCheckForPopulatedCreditProfiles=' + overrideCheckForPopulatedCreditProfiles, function (data) {
$('#closeCreditPullInProgressModal').click();
if (data.StatusIsNonError) {
var creditPullResultMessage = '';
var reloadPageAfterCreditPullAttempt = true;
if (data.Status == 'No Record Found') {
creditPullResultMessage = 'Sorry, Experian could not locate a record for this customer.';
}
else if (data.Status == 'Credit Already Pulled') {
creditPullResultMessage = 'We already have a credit report for this customer.';
}
else if (data.Status == 'Report Withheld') {
creditPullResultMessage = 'Experian located the customer but will not give us the credit information.';
}
else if (data.Status == 'Insufficient Customer Data') {
creditPullResultMessage = 'Unable to pull credit. We need more customer information. We must have a first and last name, as well as a home street address and zipcode.';
reloadPageAfterCreditPullAttempt = false;
}
else if (data.Status == 'No Record Found Previously') {
creditPullResultMessage = 'We already received a No Record Found response for this customer.';
}
else {
creditPullResultMessage = 'Credit was pulled successsfully.';
}
if (reloadPageAfterCreditPullAttempt) {
creditPullResultMessage = creditPullResultMessage + ' The page will refresh when you close this message.';
}
$('#showPullCreditResultModal').attr('reloadPageAfterCreditPullAttempt', reloadPageAfterCreditPullAttempt.toString());
$('#pullCreditResultMessage').html(creditPullResultMessage);
$('#showPullCreditResultModal').click();
}
else {
$('#showPullCreditResultModal').attr('reloadPageAfterCreditPullAttempt', 'false');
var errorMessage = '';
if (data.ExperianErrors[0].FullErrorMessage) {
var experianErrorMessage = (data.ExperianErrors[0].FullErrorMessage).replace(/\//g, '/ ');
errorMessage = ' Error: ' + experianErrorMessage + ' ';
var expandedExplanation = data.ExperianErrors[0].ExpandedExplanation;
if (expandedExplanation) {
errorMessage += '' + expandedExplanation + ' ';
}
}
$('#pullCreditResultMessage').html('Failed to pull credit. ' + errorMessage);
$('#showPullCreditResultModal').click();
}
})
.fail(function (data) {
$('#closeCreditPullInProgressModal').click();
alert('An unexpected error was encountered while pulling credit. Please notify the developers.');
});
}
$(function () {
if (GetWebSiteMode() === WebSiteMode.uw && $('#CrdSctn_contentBlock').length != 0) {
ViewNewCreditReport();
}
});
function ViewNewCreditReport() {
var dealId = GetDealId();
$.get('../../Customer/CustomerCreditReportsByDeal?dealId=' + dealId, function (data) {
$('#CrdSctn_contentBlock').html(data);
$('#CrdSctn_contentBlock').removeAttr('style');
var $adjustedAuctionValueElement = $('#_adjustedAuctionValue');
$('#adjustedAuctionValueData').html(' ' +
$adjustedAuctionValueElement.attr('tooltipLine1') + ' ' +
$adjustedAuctionValueElement.attr('tooltipLine2') + ' ' +
$adjustedAuctionValueElement.attr('tooltipLine3') + ' ' +
$adjustedAuctionValueElement.attr('tooltipLine4'));
CalculateMaxPayments();
})
.fail(function (data) {
});
}
function ToggleRepoStatus(experianCreditProfileId, experianTradeLineId, rootDivId, isCoBuyer) {
if ($('#_saveApprovalHidden').attr('userIsExecutiveOrITAdmin') == 'false') {
return;
}
var repoLabel = $('#tradeLineRepoLabel_' + experianTradeLineId);
var repoLabelText = repoLabel.text();
repoLabel.css('pointer-events', 'none');
var dealId = GetDealId();
$.post('../../api/customer/ToggleRepoStatus?experianCreditProfileId=' + experianCreditProfileId + '&experianTradeLineId=' + experianTradeLineId + '&dealId=' + dealId, function (data) {
if (repoLabelText.trim() == 'YES') {
repoLabel.text('NO');
repoLabel.css('color', 'black');
}
else {
repoLabel.text('YES');
repoLabel.css('color', 'red');
}
repoLabel.css('pointer-events', 'auto');
location.reload(true);
})
.fail(function (data) {
alert('failed to change REPO status. please notify development.');
repoLabel.css('pointer-events', 'auto');
});
}
function ToggleOfacAlertOverride(experianCreditProfileId) {
var dealId = GetDealId();
var userId = GetCurrentUserId();
$.post('../../api/customer/ToggleOfacAlertOverride?experianCreditProfileId=' + experianCreditProfileId + '&dealId=' + dealId + '&userId=' + userId, function (data) {
location.reload(true);
})
.fail(function (data) {
alert('failed to update OFAC override status. please notify development.');
});
}
function FilterAutoAndRealEstate() {
$('div[name="creditReportDiv"]').each(function () {
$(this).find('tbody[isAutoOrRealEstate="false"]').toggle();
});
}
function GetDealershipCollateralIndexVehicleList() {
var vehicleListIsLoaded = $('#DCISpan').attr('vehicleListIsLoaded');
if (vehicleListIsLoaded === 'False') {
var dealershipId = $('#DealershipId').val();
var dealId = getPrimaryKey();
$.get('../../Dealerships/DealershipCollateralIndexVehicleList?dealershipId=' + dealershipId + '&dealId=' + dealId, function (data) {
$('#DCIVehicleListDiv').html(data);
var collateralIndexScore = $('#DCIVehicleListModal').attr('collateralIndexScore');
var collateralIndexCount = $('#DCIVehicleListModal').attr('collateralIndexCount');
var DCIText = 'DCI: No Score';
if (parseInt(collateralIndexCount) > 0) {
DCIText = 'DCI: ' + collateralIndexScore + ' (' + collateralIndexCount + ')';
}
$('#DCISpan').text(DCIText);
$('#DCISpan').attr('vehicleListIsLoaded', 'True');
$('#DCIModalHeaderSummary').text('DCI ' + collateralIndexScore + ' over ' + collateralIndexCount + ' Hits');
$('#showDCIVehicleListModal').click();
})
.fail(function (data) {
alert('failed to get DCI vehicle list');
});
}
$('#showDCIVehicleListModal').click();
}
var modalStart = "Title ";
var modalCloseBtnStart = "
X ";
var modalEnd = '
';
function CheckReloadOnApprovalOrCredit() {
ApprovalCreditWatchCounter = ApprovalCreditWatchCounter + 1;
if (ApprovalCreditWatchCounter > 60) {
EndReloadOnApprovalOrCredit(false);
}
}
function ClearText(targetNode) {
document.getElementById(targetNode).style.color = '#000000';
document.getElementById(targetNode).value = '';
}
function CloseModal(targetDiv) {
var modelContainer = $("#" + targetDiv);
modelContainer.removeClass("windowDivMask");
modelContainer.html("");
}
function EndReloadOnApprovalOrCredit(reloadPage) {
ApprovalCreditWatchIsWorking = false;
clearInterval(ApprovalCreditWatchId);
ApprovalCreditWatchId = 0;
$('#SdBrPending1').css('display', 'none');
$('#SdBrPending2').css('display', 'none');
$('#SdBrPending3').css('display', 'none');
if (reloadPage) {
location.reload(true);
}
}
function HideModalDisplay(selectedNode) {
document.getElementById(selectedNode).style.display = 'none';
}
function HideUplogModalDisplay(selectedNode) {
document.getElementById(selectedNode).style.display = 'none';
var tableElement = document.getElementById(selectedNode).children[0].children[0].children[2];
var row = tableElement.rows[0];
row.style.display = "table-row";
row = tableElement.rows[1];
row.style.display = "table-row";
row = tableElement.rows[2];
row.style.display = "table-row";
row = tableElement.rows[3];
row.style.display = "none";
row = tableElement.rows[4];
row.style.display = "none";
row.children[1].children[0].selectedIndex = 2;
}
function MenuBottomLimit() {
$('.menue table tr td').css('background-color', 'white').css('color', 'black');
$('[id^=SubMenu]').filter(':visible').toggle('drop');
}
function MenuClear() {
$('.menue table tr td').css('background-color', 'white').css('color', 'black');
$('[id^=SubMenu]').css('display', 'none');
}
function MenuClickCategory(currentNode) {
var cell = $(currentNode);
var id = cell.attr('id');
if (id.length > 1) {
var subId = $('#Sub' + id);
var position = cell.position();
if (subId.css('display') === 'block') {
subId.toggle('drop');
}
else {
MenuClear();
var colCount = parseInt(cell.attr('colCount'));
var offset = 60;
try {
if (colCount === 1) {
offset = 10;
}
else if (colCount === 2) {
offset = 110;
}
else if (colCount === 3) {
offset = 210;
}
}
catch (err) {
}
cell.css('background-color', '#4B5260').css('color', 'white');
subId.css('left', (position.left - offset) + 'px').toggle('drop');
}
}
}
function OnTick() {
document.location.reload();
}
function RedirectTowerSearch(selectedNode) {
self.location.href = '../../auth/tower/search.aspx?searchTerms=' + selectedNode.value;
}
function RedirectSalesPrimaryKey(selectedNode) {
self.location.href = '../../auth/sales/Desk.aspx?primaryKey=' + selectedNode.value;
}
function RedirectTowerPrimaryKey(selectedNode) {
window.location.assign('../../auth/tower/Desk.aspx?primaryKey=' + selectedNode.value);
}
function ResultsReloadOnApprovalOrCredit(data) {
var hasError = false;
var reload = false;
$.each(data, function (key, val) {
key = key || '';
key = decodeURIComponent(key);
key = ReplaceAll(key, '+', ' ');
val = val || '';
val = decodeURIComponent(val);
val = ReplaceAll(val, '+', ' ');
if (key === 'result') {
try {
if (val.indexOf('Error') > -1) {
hasError = true;
}
}
catch (e) {
}
if (val === 'Reload') {
reload = true;
}
}
});
if (reload) {
EndReloadOnApprovalOrCredit(true);
}
}
function SelectDealersModalDisplay(targetDiv) {
$('#UxGroupSelectorModal').add('*');
var targetUrl = document.URL.split('?')[0];
var dt1 = new Date();
dt1.setDate(dt1.getDate() - 14);
var dt2 = new Date();
targetUrl = targetUrl + '?Dlr=0&Grp=-1&Sls=';
if (targetUrl.indexOf('sales/desk') > 0 || targetUrl.indexOf('sales/Desk') > 0) {
targetUrl = '../../auth/sales/WorkList.aspx?Dlr=0&Grp=-1&Sls=&date1=' + dt1.toLocaleDateString() + '&date2=' + dt2.toLocaleDateString();
}
else if (targetUrl.indexOf('settings/default') > 0 && GetWebSiteMode() === WebSiteMode.dealers) {
targetUrl = '../../auth/sales/WorkList.aspx?Dlr=0&Grp=-1&Sls=&date1=' + dt1.toLocaleDateString() + '&date2=' + dt2.toLocaleDateString();
}
var optionsHeader1 = ' Clear Filter / View All Filter By ' +
'Rep ';
var optionStuff = '';
var optionsHeader2 = ' Select a Dealership or Group
';
var reps = jQuery.parseJSON($('#UxPacSalesRepJson').html());
for (var i = 0; i < reps.length; i++) {
optionStuff = optionStuff + '' + reps[i].FormattedName + ' ';
}
var optionsHeader = optionsHeader1 + optionStuff + optionsHeader2;
var ajaxUrl = "../../webServices/DealersJson.aspx?engineGrease=" + GetEngineGrease() + "&target=" + targetUrl;
var modelContainer = $("#" + targetDiv);
modelContainer.addClass("windowDivMask");
modelContainer.first().append(modalStart.replace('Title ', optionsHeader) + modalCloseBtnStart + targetDiv + modalCloseBtnEnd + modalEnd);
var innerModal = $("#UxInnerModal");
innerModal.html('');
var slctGrp = innerModal.find("#UxSelectGroup");
slctGrp.dataTable({
"bProcessing": true,
"sAjaxSource": ajaxUrl,
"iDisplayLength": 200,
"sPaginationType": "full_numbers",
"aoColumns": [
{ "sTitle": "locationLink", "sClass": "Left", "bVisible": true, "sWidth": "35%" },
{ "sTitle": "Group Name", "sClass": "Left", "bVisible": true, "sWidth": "35%" },
{ "sTitle": "State", "sClass": "center", "bVisible": true, "sWidth": "10%" },
{ "sTitle": "Sales Rep", "sClass": "Left", "bVisible": true, "sWidth": "20%" },
{ "sTitle": "Location Name", "sClass": "center", "bVisible": false },
{ "sTitle": "Group Number", "sClass": "center", "bVisible": false },
{ "sTitle": "GroupName", "sClass": "Left", "bVisible": false },
{ "sTitle": "Location Number", "sClass": "center", "bVisible": false },
{ "sTitle": "Is Active", "sClass": "center", "bVisible": false },
{ "sTitle": "NameOnForms", "sClass": "center", "bVisible": false },
{ "sTitle": "DealertrackId", "sClass": "center", "bVisible": false }
]
});
$("input[aria-controls='UxSelectGroup']").focus();
}
function ShowModalDisplay(selectedNode) {
document.getElementById(selectedNode).style.display = 'block';
$('#UxClsMdlJsWindow').focus();
scroll(0, 0);
}
function StartTimer(refreshCount) {
setInterval(OnTick, refreshCount);
}
function SubMenuCellHover(currentNode) {
$(currentNode).css('background-color', '#A6A6A6');
}
function ToggleDebugSection() {
if (document.getElementById('DebugSection69').style.display === 'none') {
document.getElementById('DebugSection69').style.display = 'block';
return;
}
document.getElementById('DebugSection69').style.display = 'none';
}
function ValidateSearch(e) {
if (e.value === null || e.value === '' || e.value === 'Search' || e.value === 'NOTCHANGED') {
return false;
}
else {
return true;
}
}
function InitializeJs() {
var returnValue;
try {
returnValue = ($InitializeJs.val() === "true");
if (returnValue) {
$InitializeJs.val('false');
}
}
catch (e) {
returnValue = false;
}
return returnValue;
}
function GetBasePicUrl() {
return $('#UxBasePicUrl').val();
}
function ToggleLeftSide() {
var leftBttn = $('#UxLeftContentCollapsBtn');
var leftContent = $('#UxLeftContentCollapsCell');
if (leftContent.css('display') === 'none') {
leftContent.css('display', 'table-cell');
var picUrl1 = leftBttn.attr('src');
leftBttn.attr('src', picUrl1.replace('SdLeftExpandImg.png', 'SdLeftCollapseImg.png'));
leftBttn.attr('title', 'Collapse Side Content');
}
else {
leftContent.css('display', 'none');
var picUrl2 = leftBttn.attr('src');
leftBttn.attr('src', picUrl2.replace('SdLeftCollapseImg.png', 'SdLeftExpandImg.png'));
leftBttn.attr('title', 'Expand Side Content');
}
}
function CheckWindowWidth() {
if (document.URL.indexOf("inventory.aspx") === -1) {
var screenSize = $(window).width();
if (screenSize > 1320) {
var leftBttn = $('#UxLeftContentCollapsBtn');
var leftContent = $('#UxLeftContentCollapsCell');
leftContent.css('display', 'table-cell');
var picUrl1 = leftBttn.attr('src');
if (picUrl1) {
leftBttn.attr('src', picUrl1.replace('SdLeftExpandImg.png', 'SdLeftCollapseImg.png'));
}
leftBttn.attr('title', 'Collapse Side Content');
}
else if (screenSize > 1020) {
$('#UxLeftContentCollapsCell').css('display', 'table-cell');
var leftBttn = $('#UxLeftContentCollapsBtn');
var picUrl1 = leftBttn.attr('src');
leftBttn.attr('src', picUrl1.replace('SdLeftExpandImg.png', 'SdLeftCollapseImg.png'));
leftBttn.attr('title', 'Collapse Side Content');
}
}
}
function AddSmsLogCount() {
jQuery('.smsLogHeader').each(function () {
var smsCount = $(this).closest('table').next().children().children().children().length;
$(this).append(' ' + smsCount);
});
}
function CaclHourly(clientIdHourlyRate, clientIdHoursPerWeek, clientIdAnswerBox, clientIdCalcBox) {
var monthlyPay = (parseFloat(document.getElementById(clientIdHoursPerWeek).value) *
parseFloat(document.getElementById(clientIdHourlyRate).value) * 52) / 12;
document.getElementById(clientIdAnswerBox).value = '$' + Math.round(monthlyPay * Math.pow(10, 2)) / Math.pow(10, 2);
document.getElementById(clientIdCalcBox).style.display = 'none';
}
function CaclOther(clientIdMonthlyPay, clientIdAnswerBox, clientIdCalcBox) {
var monthlyPay = parseFloat(document.getElementById(clientIdMonthlyPay).value);
document.getElementById(clientIdAnswerBox).value = '$' + Math.round(monthlyPay * Math.pow(10, 2)) / Math.pow(10, 2);
document.getElementById(clientIdCalcBox).style.display = 'none';
}
function CaclSalary(clientIdYearlySalary, clientIdAnswerBox, clientIdCalcBox) {
var monthlyPay = parseFloat(document.getElementById(clientIdYearlySalary).value) / 12;
document.getElementById(clientIdAnswerBox).value = '$' + Math.round(monthlyPay * Math.pow(10, 2)) / Math.pow(10, 2);
document.getElementById(clientIdCalcBox).style.display = 'none';
}
function CaclYTD(clientIdYtDmonth, clientIdYtDday, clientIdYtDamount, clientIdAnswerBox, clientIdCalcBox) {
var totalDays = parseFloat(document.getElementById(clientIdYtDday).value) +
(parseFloat(document.getElementById(clientIdYtDmonth).value) * 30.5);
var monthlyPay = (parseFloat(document.getElementById(clientIdYtDamount).value) / totalDays) * 30.5;
document.getElementById(clientIdAnswerBox).value = '$' + Math.round(monthlyPay * Math.pow(10, 2)) / Math.pow(10, 2);
document.getElementById(clientIdCalcBox).style.display = 'none';
}
function CheckPhoneNumber(targetNode, redirectUrl) {
var phone = document.getElementById(targetNode).value;
phone = phone.replace(/[^0-9]/g, '');
if (phone.length > 2) {
try {
phone = phone.substr(0, 3) + '-' + phone.substr(3, phone.length);
}
catch (err) {
}
}
if (phone.length > 6) {
try {
phone = phone.substr(0, 7) + '-' + phone.substr(7, phone.length);
}
catch (err) {
}
}
document.getElementById(targetNode).value = phone;
if (phone.length === 12) {
self.location.href = redirectUrl + phone;
}
}
function CompareTwoBoxes(currentNode, clientId) {
if (currentNode.value != document.getElementById(clientId).value) {
document.getElementById(clientId).value = '';
currentNode.value = '';
}
}
function CursorNextBoxDay(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
return;
}
var fieldValue = parseInt(currentNode.value);
if (fieldValue > 31) {
currentNode.value = '';
return;
}
if (fieldValue < 0) {
currentNode.value = '';
currentNode.focus();
}
if (fieldValue === 4 || fieldValue === 5 || fieldValue === 6 || fieldValue === 7 || fieldValue === 8 || fieldValue === 9) {
currentNode.parentNode.nextSibling.nextSibling.firstChild.focus();
}
if (currentNode.value.length > 1) {
currentNode.parentNode.nextSibling.nextSibling.firstChild.focus();
}
}
function CursorNextBoxYear(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
return;
}
var fieldValue = parseInt(currentNode.value);
if (fieldValue > 2030) {
currentNode.value = '';
}
if (fieldValue < 0) {
currentNode.value = '';
}
if (fieldValue === 6 || fieldValue === 7 || fieldValue === 8 || fieldValue === 9) {
currentNode.value = (2000 + fieldValue).toString();
return;
}
if (fieldValue > 1 && fieldValue < 50 && fieldValue != 19 && fieldValue != 20 && currentNode.value.length === 2) {
currentNode.value = (2000 + fieldValue).toString();
return;
}
if (fieldValue >= 50 && fieldValue <= 99 && currentNode.value.length === 2) {
currentNode.value = (1900 + fieldValue).toString();
}
}
function CursorNextBoxHour(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
return;
}
var fieldValue = parseInt(currentNode.value);
if (fieldValue > 24) {
currentNode.value = '';
return;
}
if (fieldValue < 0) {
currentNode.value = '';
return;
}
if (fieldValue === 3 || fieldValue === 4 || fieldValue === 5 || fieldValue === 6 || fieldValue === 7 || fieldValue === 8 || fieldValue === 9) {
currentNode.parentNode.nextSibling.nextSibling.firstChild.focus();
}
if (currentNode.value.length > 1) {
currentNode.parentNode.nextSibling.nextSibling.firstChild.focus();
}
}
function CursorNextBoxMonth(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
return;
}
var fieldValue = parseInt(currentNode.value);
if (fieldValue > 12) {
currentNode.value = '';
return;
}
if (fieldValue < 0) {
currentNode.value = '';
return;
}
if (fieldValue === 2 || fieldValue === 3 || fieldValue === 4 || fieldValue === 5 || fieldValue === 6 || fieldValue === 7 || fieldValue === 8 || fieldValue === 9) {
currentNode.parentNode.nextSibling.nextSibling.firstChild.focus();
}
if (currentNode.value.length > 1) {
currentNode.parentNode.nextSibling.nextSibling.firstChild.focus();
}
}
function CursorNextBoxMin(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
return;
}
var fieldValue = parseInt(currentNode.value);
if (fieldValue > 60) {
currentNode.value = '';
}
if (fieldValue < 0) {
currentNode.value = '';
}
}
function CursorNextPreFixBox(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
return;
}
if (currentNode.value.length === 3) {
currentNode.parentNode.nextSibling.nextSibling.firstChild.focus();
}
}
function CursorNextAreaCodeBox(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
return;
}
if (currentNode.value.length === 3) {
currentNode.parentNode.nextSibling.nextSibling.firstChild.focus();
}
}
function CursorNextSuffixBox(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
}
}
function CursorNextBoxPart1(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
return;
}
if (currentNode.value.length === 3) {
currentNode.parentNode.nextSibling.nextSibling.firstChild.focus();
}
}
function CursorNextBoxPart2(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
return;
}
if (currentNode.value.length === 2) {
currentNode.parentNode.nextSibling.nextSibling.firstChild.focus();
}
}
function CursorNextBoxPart3(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
}
}
function ChangeIncomeCalculationType(currentNode, clientIdTarget, clientIdHourly, clientIdSalary, clientIdOther, clientIdYtd) {
document.getElementById(clientIdHourly).style.display = 'none';
document.getElementById(clientIdSalary).style.display = 'none';
document.getElementById(clientIdOther).style.display = 'none';
document.getElementById(clientIdYtd).style.display = 'none';
if (currentNode.checked) {
document.getElementById(clientIdTarget).style.display = 'block';
}
}
function ExpandCollapseCalendar(clientIdCalcBox) {
if (document.getElementById(clientIdCalcBox).style.display === 'none') {
document.getElementById(clientIdCalcBox).style.display = 'block';
return;
}
document.getElementById(clientIdCalcBox).style.display = 'none';
}
function OpenCustomCampaignMessageBox(messageBoxDiv, previewMessageDiv, dropDown) {
var messageType = $('#' + dropDown + ' option:selected').text();
var messagePreview = $('#' + messageType).text();
messagePreview = messagePreview.replace('updtd', 'updated');
var previewMessageDv = $('#' + previewMessageDiv);
if (messageType === 'CustomMessage') {
$('#' + messageBoxDiv).show("fast");
previewMessageDv.hide("fast");
}
else {
previewMessageDv.text(messagePreview);
$('#' + messageBoxDiv).hide("fast");
previewMessageDv.show("fast");
}
}
function RemoveReplyBoxText(replyBoxId) {
var replyBoxText = $('#' + replyBoxId).text();
if (replyBoxText === 'Enter reply here') {
$('#' + replyBoxId).text('');
}
}
function RemoveEmptyCells(className) {
$('.' + className).each(function () {
var cellContent = $(this).text();
if (cellContent.length < 2) {
$(this).css('background-color', 'transparent');
$(this).css('border-style', 'none');
}
else {
$(this).attr('colspan', '2');
}
});
$('.emptyCell').remove();
}
function ShowExpiredCredit() {
var buyerCreditTable = document.getElementById('buyerCreditTableDiv');
buyerCreditTable.style.display = 'block';
var buyerExpiredCredit = document.getElementById('buyerExpiredCreditDiv');
if (buyerExpiredCredit != null) {
buyerExpiredCredit.style.display = 'none';
}
var cobuyerCreditTable = document.getElementById('coBuyerCreditTableDiv');
if (cobuyerCreditTable != null) {
cobuyerCreditTable.style.display = 'block';
var cobuyerExpiredCredit = document.getElementById('coBuyerExpiredCreditDiv');
if (cobuyerExpiredCredit != null) {
cobuyerExpiredCredit.style.display = 'none';
}
}
}
function ToggleButtonSwitchText(btn, offLabel, onLabel) {
if (btn.value != offLabel)
btn.value = offLabel;
else
btn.value = onLabel;
}
function ToggleCalcBox(clientIdCalcBox) {
var clientIdCalcBx = $('#' + clientIdCalcBox);
if (clientIdCalcBx.css('display') === 'none') {
clientIdCalcBx.css('display', 'block');
}
else {
clientIdCalcBx.css('display', 'none');
}
}
function ToggleDivBlock(divBlock) {
if (document.getElementById(divBlock).style.display != 'none') {
document.getElementById(divBlock).style.display = 'none';
}
else {
document.getElementById(divBlock).style.display = 'block';
}
}
function UrlEncodeTextArea(targetNode) {
var txtArea = document.getElementById(targetNode);
txtArea.value = encodeURI(txtArea.value);
}
function ValidateCurrency(currentNode) {
var intValidationString = /^\d+$/;
var targetValue = currentNode.value.replace('.', '');
targetValue = targetValue.replace(',', '');
targetValue = targetValue.replace('$', '');
var isValidInt = intValidationString.test(targetValue);
if (isValidInt === false) {
currentNode.value = '';
}
}
function ValidateDouble(currentNode) {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value.replace('.', '').replace('-', ''));
if (isValidInt === false) {
currentNode.value = '';
}
}
function ValidateEmail(currentNode) {
if (currentNode.value.length < 6) {
currentNode.value = '';
return;
}
if (currentNode.value.indexOf('@', 2) === -1) {
currentNode.value = '';
return;
}
if (currentNode.value.indexOf('.', 4) === -1) {
currentNode.value = '';
return;
}
if (currentNode.value.lastIndexOf('.') === (currentNode.value.length - 1)) {
currentNode.value = '';
}
}
function ValidateInt(currentNode) {
try {
var intValidationString = /^\d+$/;
var isValidInt = intValidationString.test(currentNode.value.replace('-', ''));
if (isValidInt === false) {
currentNode.value = '';
}
}
catch (err) {
}
}
function ValidateZipCode(currentNode) {
var intValidationString = /^\d+$/;
if (currentNode.value.length > 5) {
currentNode.value = currentNode.value.substring(0, 5);
}
var isValidInt = intValidationString.test(currentNode.value);
if (isValidInt === false) {
currentNode.value = '';
}
}
var EncodedBreak = "%3Cbr/%3E";
function getPrimaryKey() {
var primaryKey = $('#_selectedPrimaryKey').val();
return primaryKey;
}
function CalculateUnpaidBalance(salePrice, salesTax, titleLicenseDocTotal, downPayment, bankOrFrontEndFees, netTrade) {
salePrice = CheckNumber(salePrice);
salesTax = CheckNumber(salesTax);
titleLicenseDocTotal = CheckNumber(titleLicenseDocTotal);
downPayment = CheckNumber(downPayment);
bankOrFrontEndFees = CheckNumber(bankOrFrontEndFees);
netTrade = CheckNumber(netTrade);
return salePrice + salesTax + bankOrFrontEndFees + titleLicenseDocTotal - downPayment + netTrade;
}
function CalculateAmountFinanced(unPaidBalance, gapFee, serviceContract, backEndFees) {
unPaidBalance = CheckNumber(unPaidBalance);
gapFee = CheckNumber(gapFee);
serviceContract = CheckNumber(serviceContract);
backEndFees = CheckNumber(backEndFees);
return unPaidBalance + gapFee + serviceContract + backEndFees;
}
function CalculateRatio(numerator, denominator, twoDecimals) {
numerator = CheckNumber(numerator);
denominator = CheckNumber(denominator);
if (numerator === 0) {
return 0.0;
}
var rounding = 100;
if (twoDecimals) {
rounding = 10000;
}
if (denominator != 0) {
return (Math.round((numerator / denominator) * rounding) / 100);
}
}
function CapitaliseFirstLetter(input) {
return input.charAt(0).toUpperCase() + input.slice(1);
}
function CheckNumber(num) {
try {
if (num === null || isNaN(num) || num === undefined) {
num = 0;
}
}
catch (e) {
num = 0;
}
return num;
}
function CheckString(txt) {
try {
if (txt === null || txt === undefined) {
txt = '';
}
}
catch (e) {
txt = '';
}
txt = txt.trim();
return txt;
}
function CopySingleValue(idPrefix, targetIdPrefix, fieldName) {
$('#' + PrefixString(targetIdPrefix) + fieldName).val(GetStructureFloatValue(idPrefix, fieldName));
}
function FormatDollar(num, roundToDollar) {
if (roundToDollar) {
return "$" + num.toString().split("").reverse().reduce(function (acc, numbr, i) {
return numbr + (i && !(i % 3) ? "," : "") + acc;
});
}
var p = num.toFixed(2).split(".");
return "$" + p[0].split("").reverse().reduce(function (acc, numbr, i) {
return numbr + (i && !(i % 3) ? "," : "") + acc;
});
}
function GetInternetExplorerVersion() {
var rv = -1;
if (navigator.appName === 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat(RegExp.$1);
}
return rv;
}
function GenerateCharacterCount(input, output) {
var message = $('#' + input).val();
var count = message.length;
var countMessage = count.toString() + '/160';
$('#' + output).text(countMessage);
}
function GetWebSiteMode() {
var mode = CheckString($("#WebMode").val());
var webSiteMode = WebSiteMode.none;
switch (mode) {
case 'PAL':
webSiteMode = WebSiteMode.uw;
break;
case 'PDS':
webSiteMode = WebSiteMode.dealers;
}
return webSiteMode;
}
function MathGetMonthlyPayment(amountFinanced, saleRate, loanTerm, daysToFirstPayment, downPayment) {
if (daysToFirstPayment === void 0) { daysToFirstPayment = 0; }
if (downPayment === void 0) { downPayment = 0; }
amountFinanced = CheckNumber(amountFinanced);
saleRate = CheckNumber(saleRate);
loanTerm = CheckNumber(loanTerm);
downPayment = CheckNumber(downPayment);
daysToFirstPayment = CheckNumber(daysToFirstPayment);
if (daysToFirstPayment === 0) {
daysToFirstPayment = parseInt($('#DlrStrctr_DaysToFirstPayment').attr('defaultDaysToFirstPayment'));
if (isNaN(daysToFirstPayment)) {
daysToFirstPayment = 30;
}
}
var interest = saleRate / 100;
var principle = amountFinanced;
var term = loanTerm;
var monthUnit = 365 / 12;
var twelve = 12;
var grace = daysToFirstPayment;
principle = principle - downPayment;
if (grace > 30) {
grace = grace - 30;
var graceInterest = (((interest * principle) / twelve) / monthUnit) * grace;
principle = principle + graceInterest;
}
var mathChunk = Math.pow((1 + interest / twelve), term);
var payment = principle * (mathChunk * interest) / (twelve * (mathChunk - 1));
payment = Math.round(payment * 100) / 100;
return payment;
}
function MathAnnualInterestRate(principleAmount, monthlyPayment, termInMonths, daysToFirstPayment, downPayment) {
if (downPayment === void 0) { downPayment = 0; }
principleAmount = CheckNumber(principleAmount);
termInMonths = CheckNumber(termInMonths);
monthlyPayment = CheckNumber(monthlyPayment);
downPayment = CheckNumber(downPayment);
daysToFirstPayment = CheckNumber(daysToFirstPayment);
if (daysToFirstPayment === 0) {
daysToFirstPayment = parseInt($('#DlrStrctr_DaysToFirstPayment').attr('defaultDaysToFirstPayment'));
if (isNaN(daysToFirstPayment)) {
daysToFirstPayment = 30;
}
}
var interest = 1;
var principle = principleAmount;
var term = termInMonths;
var monthUnit = 365 / 12;
var grace = daysToFirstPayment;
var graceInterest = 0.0;
var payment = principleAmount;
var mathChunk = 0.0;
var tries = 0;
var previousInterest = 0;
var difference = 0;
monthlyPayment = Math.round(monthlyPayment * 100) / 100;
while (payment != monthlyPayment && tries < 50) {
tries++;
principle = principleAmount;
grace = daysToFirstPayment;
difference = Math.abs(interest - previousInterest) / 2;
previousInterest = interest;
if (payment > monthlyPayment) {
interest -= difference;
}
else {
interest += difference;
}
if (grace > 30) {
grace = grace - 30;
graceInterest = (((interest * principle) / 12) / monthUnit) * grace;
principle = principle + graceInterest;
}
mathChunk = Math.pow((1 + interest / 12), term);
payment = principle * (mathChunk * interest) / (12 * (mathChunk - 1));
payment = Math.round(payment * 100) / 100;
}
interest = Math.round(interest * 10000) / 100;
return interest;
}
function MathGetNumberOfPayments(principleAmount, annualInterestRate, monthlyPayment, daysToFirstPayment, downPayment) {
if (downPayment === void 0) { downPayment = 0; }
principleAmount = CheckNumber(principleAmount);
annualInterestRate = CheckNumber(annualInterestRate);
monthlyPayment = CheckNumber(monthlyPayment);
downPayment = CheckNumber(downPayment);
daysToFirstPayment = CheckNumber(daysToFirstPayment);
if (daysToFirstPayment === 0) {
daysToFirstPayment = parseInt($('#DlrStrctr_DaysToFirstPayment').attr('defaultDaysToFirstPayment'));
if (isNaN(daysToFirstPayment)) {
daysToFirstPayment = 30;
}
}
var interest = annualInterestRate / 100;
var monthlyInterest = interest / 12;
var payment = monthlyPayment;
var principle = principleAmount;
var down = downPayment;
principle = principle - down;
if (daysToFirstPayment > 30) {
daysToFirstPayment = daysToFirstPayment - 30;
var monthUnit = 365 / 12;
var graceInterest = (((interest * principle) / 12) / monthUnit) * daysToFirstPayment;
principle = principle + graceInterest;
}
var returnValue = -Math.log(1 - (principle * interest / (payment * 12))) / (12 * Math.log(1 + monthlyInterest));
returnValue = returnValue * 12;
returnValue = Math.ceil(returnValue);
return returnValue;
}
function MathGetPrinciple(monthlyPayment, annualInterestRate, termInMonths, daysToFirstPayment, downPayment) {
if (daysToFirstPayment === void 0) { daysToFirstPayment = 0; }
if (downPayment === void 0) { downPayment = 0; }
annualInterestRate = CheckNumber(annualInterestRate);
monthlyPayment = CheckNumber(monthlyPayment);
downPayment = CheckNumber(downPayment);
termInMonths = CheckNumber(termInMonths);
daysToFirstPayment = CheckNumber(daysToFirstPayment);
if (daysToFirstPayment === 0) {
daysToFirstPayment = parseInt($('#DlrStrctr_DaysToFirstPayment').attr('defaultDaysToFirstPayment'));
if (isNaN(daysToFirstPayment)) {
daysToFirstPayment = 30;
}
}
var down = downPayment;
var interest = annualInterestRate / 100;
var payment = monthlyPayment;
var grace = daysToFirstPayment;
var twelve = 12;
var monthUnit = 365 / 12;
if (down != 0) {
var monthlyOnDown = MathGetMonthlyPayment(Math.abs(downPayment), annualInterestRate, termInMonths, daysToFirstPayment, 0);
if (down > 0) {
payment = payment - monthlyOnDown;
}
else {
payment = payment + monthlyOnDown;
}
}
var principle = (payment / (interest / 12)) * (1 - (Math.pow((1 + (interest / 12)), (-termInMonths))));
if (grace > 30) {
grace = grace - 30;
var graceInterest = (((interest * principle) / twelve) / monthUnit) * grace;
principle = (principle - graceInterest) + 1;
}
principle = principle + 1;
return Math.round(principle);
}
function OpenScript(url, width, height) {
window.open(url, 'OpenScript', 'width=' + width + ',height=' + height + ',resizable=yes,scrollbars=yes,menubar=no,status=yes');
}
function ReplaceAll(source, stringToFind, stringToReplace) {
var temp = source;
try {
var index = temp.indexOf(stringToFind);
while (index != -1) {
temp = temp.replace(stringToFind, stringToReplace);
index = temp.indexOf(stringToFind);
}
}
catch (e) {
}
return temp;
}
function SlctRep(currentNode) {
var selectUser = currentNode.options[currentNode.selectedIndex].innerHTML;
var searchLocs = $('#UxSelectGroup').parent().find(':input');
if (searchLocs != null) {
searchLocs.val(selectUser).keyup();
}
}
function SlctRole() {
var selectRole = $('#UxRoleSelector').val();
var searchLocs = $('#UxSelectUsers').parent().find(':input');
if (searchLocs != null) {
searchLocs.val(selectRole).keyup();
}
}
function ScrollToTop() {
$('html, body').animate({ scrollTop: 0 }, 'fast');
}
function ToArrayFromDelimited(inputString, deliminator) {
if (deliminator === null) {
deliminator = '|';
}
if (deliminator === '') {
deliminator = '|';
}
var array = inputString.split(deliminator);
var arrayCount = array.length;
array.splice(arrayCount - 1, 1);
return array;
}
function GetBoolValue($element) {
var returnValue;
try {
returnValue = $element.is(':checked');
}
catch (e) {
returnValue = false;
}
returnValue = CheckNumber(returnValue);
return returnValue;
}
function GetFloatValue($element) {
var returnValue;
try {
returnValue = parseFloat($element.val());
}
catch (e) {
returnValue = 0.0;
}
returnValue = CheckNumber(returnValue);
return returnValue;
}
function GetDropDownValue($element) {
var returnValue;
try {
returnValue = $element.find(':selected').val();
}
catch (e) {
returnValue = '';
}
if (returnValue === null) {
returnValue = '';
}
if (returnValue === undefined) {
returnValue = '';
}
return returnValue;
}
function GetDropDownFloatValue($element) {
var returnValue = '';
var value = 0;
try {
returnValue = $element.find(':selected').val();
}
catch (e) {
returnValue = '';
}
if (returnValue === null) {
returnValue = '';
}
if (returnValue === undefined) {
returnValue = '';
}
try {
value = parseFloat(returnValue);
}
catch (e) {
}
return CheckNumber(value);
}
function GetValue($element) {
var returnValue;
try {
returnValue = $element.val();
}
catch (e) {
returnValue = '';
}
if (returnValue === null) {
returnValue = '';
}
if (returnValue === undefined) {
returnValue = '';
}
return returnValue;
}
function GetSettingValue(settingName, tierIdentifier) {
var returnValue;
if (tierIdentifier > 0) {
try {
returnValue = parseFloat($('#' + tierIdentifier.toString() + '_' + settingName).html());
}
catch (e) {
returnValue = 0;
}
}
else {
try {
returnValue = parseFloat($('#' + settingName).html());
}
catch (e) {
returnValue = 0;
}
}
if (returnValue === null || isNaN(returnValue) || returnValue === undefined) {
returnValue = parseFloat($('#30_' + settingName).html());
}
returnValue = CheckNumber(returnValue);
return returnValue;
}
function DoesStateAllowGap() {
if ($('#' + PrefixString(Prefixes.DlrStrctr_) + 'StateGapAllowed').val() === 'True') {
return true;
}
return false;
}
function DoesStateAllowServiceContract() {
if ($('#' + PrefixString(Prefixes.DlrStrctr_) + 'StateServiceAllowed').val() === 'True') {
return true;
}
return false;
}
function GetEngineGrease() {
return hex_md5($("#UxMixedIdentifyersNv").val());
}
function GetTermExtensionVehicleClass(make, model) {
var returnValue = 0;
make = make.toUpperCase();
if (make === "CHEVY" || make === "CHEV") {
make = "CHEVROLET";
}
if (make === "VOLKSWAGEN") {
make = "VW";
}
model = model.toUpperCase();
var tempMake = '';
var tempModel = '';
$('#TermExtensionClass1 td').each(function () {
tempMake = $(this).html();
if (tempMake === make) {
returnValue = 1;
}
});
if (returnValue === 0) {
$('#TermExtensionClass2 td').each(function () {
tempMake = $(this).html();
if (tempMake === make) {
returnValue = 2;
}
});
}
if (returnValue === 0) {
$('#TermExtensionClass3 td').each(function () {
tempMake = $(this).html();
if (tempMake === make) {
returnValue = 3;
}
});
}
if (returnValue === 0) {
$('#TermExtensionClass4 td').each(function () {
tempMake = $(this).html();
if (tempMake === make) {
returnValue = 4;
}
});
}
if (returnValue === 0) {
$('#TermExtensionClass5 td').each(function () {
tempMake = $(this).html();
if (tempMake === make) {
returnValue = 5;
}
});
}
if (returnValue === 0) {
$('#TermExtensionClass6 td').each(function () {
tempMake = $(this).html();
if (tempMake === make) {
returnValue = 6;
}
});
}
if (returnValue > 0) {
$('#TermExtensionClassExcluded td').each(function () {
tempModel = $(this).html();
if (tempModel === model) {
returnValue = 0;
}
});
}
return returnValue;
}
function LoadApproval(pageContainer) {
var dealerType = new DealerType();
pageContainer.approval.salePrice = parseFloat($('#_approvalSalePrice').val());
pageContainer.approval.daysToFirstPayment = parseInt($('#_approvalDaysToFirstPayment').val());
pageContainer.approval.titleAndLicenseFees = parseFloat($('#_approvalTitleAndLicenseFees').val());
pageContainer.approval.frontEndFees = parseFloat($('#_approvalFrontEndFees').val());
pageContainer.approval.netTrade = parseFloat($('#_approvalNetTrade').val());
pageContainer.approval.termExtensionVehicleClass = GetTermExtensionVehicleClass(pageContainer.purchase.make, pageContainer.purchase.model);
pageContainer.approval.requiredDownPayment = GetStructureFloatValue(Prefixes.Apprvl_, DownPayment);
pageContainer.approval.contractRate = GetStructureFloatValue(Prefixes.Apprvl_, ContractRate);
pageContainer.approval.maxMonthlyPayment = GetStructureFloatValue(Prefixes.Apprvl_, MonthlyPayment);
if (pageContainer.webSiteMode === WebSiteMode.uw) {
pageContainer.approval.maxFinancedTop = GetStructureFloatValue(Prefixes.Apprvl_, AmountFinanced);
}
else {
pageContainer.approval.maxFinancedTop = GetStructureFloatValue(Prefixes.Apprvl_, 'AmountFinancedTop');
}
pageContainer.approval.acquisitionFee = GetStructureFloatValue(Prefixes.Apprvl_, AcquisitionFee);
pageContainer.approval.loanTerm = parseInt($('#_approvalLoanTerm').val());
if (isNaN(pageContainer.approval.loanTerm)) {
pageContainer.approval.loanTerm = 0;
}
pageContainer.approval.requireTrade = GetStructureBoolValue(Prefixes.Apprvl_, RequiresTrade);
pageContainer.approval.serviceContractInStr = GetStructureFloatValue(Prefixes.Apprvl_, ServiceContract);
if (pageContainer.approvalGap.isPacGap && (pageContainer.dealerType === dealerType.Independent || pageContainer.dealerType === dealerType.LowBook)) {
pageContainer.approval.gapFee = pageContainer.approvalGap.price;
}
else if (pageContainer.dealerType === dealerType.Franchise) {
pageContainer.approvalGap.price = GetStructureFloatValue(Prefixes.Apprvl_, GapFee);
pageContainer.approval.gapFee = GetStructureFloatValue(Prefixes.Apprvl_, GapFee);
}
else {
pageContainer.approval.gapFee = 0;
}
pageContainer.approval.netAcquisitionFee = pageContainer.approval.acquisitionFee;
if (pageContainer.webSiteMode === WebSiteMode.uw) {
if (pageContainer.approvalGap.isPacGap) {
pageContainer.approval.netAcquisitionFee = pageContainer.approval.netAcquisitionFee - pageContainer.approvalGap.dealerProfit;
}
if ($('#_approvalSellPrimeServiceContract').is(':checked')) {
var dealerProfit = parseInt($('#_approvalServiceContractDealerProfit').val());
pageContainer.approval.netAcquisitionFee = pageContainer.approval.netAcquisitionFee - dealerProfit;
}
}
else {
if (pageContainer.dealerType === dealerType.Franchise || pageContainer.dealerType === dealerType.LowBook) {
pageContainer.approval.netAcquisitionFee = pageContainer.approval.acquisitionFee;
}
else {
try {
pageContainer.approval.netAcquisitionFee = CheckNumber(parseFloat($('#' + PrefixString(Prefixes.Apprvl_) + 'NetAcquisitionFee').html().replace('$', '').replace(',', '')));
}
catch (e) {
pageContainer.approval.netAcquisitionFee = pageContainer.approval.acquisitionFee;
}
}
}
var daysToFirst = pageContainer.approval.daysToFirstPayment;
if (pageContainer.approval.daysToFirstPayment > 60) {
daysToFirst = 60;
}
if (pageContainer.webSiteMode === WebSiteMode.uw) {
pageContainer.approval.maxFinancedOtd =
pageContainer.approval.maxFinancedTop +
pageContainer.approval.gapFee +
pageContainer.approval.serviceContractInStr;
pageContainer.approval.maxFinancedOtd = Math.round(pageContainer.approval.maxFinancedOtd * 100) / 100;
if (pageContainer.approval.maxFinancedOtd < pageContainer.approval.maxFinancedTop) {
pageContainer.approval.maxFinancedOtd = pageContainer.approval.maxFinancedTop;
}
var wholesale = +$('#_bookValue').val();
pageContainer.approval.maxLtvFrontWholesale = Math.round((pageContainer.approval.maxFinancedTop / wholesale) * 10000) / 100;
if (pageContainer.approval.maxFinancedOtd > 0 && wholesale > 0) {
pageContainer.approval.maxLtvOtdWholesale = pageContainer.approval.maxFinancedOtd / wholesale;
pageContainer.approval.maxLtvOtdWholesale = pageContainer.approval.maxLtvOtdWholesale * 10000;
pageContainer.approval.maxLtvOtdWholesale = Math.round(pageContainer.approval.maxLtvOtdWholesale) / 100;
}
if (pageContainer.approval.maxLtvOtdWholesale < pageContainer.approval.maxLtvFrontWholesale) {
pageContainer.approval.maxLtvOtdWholesale = pageContainer.approval.maxLtvFrontWholesale;
}
}
pageContainer.approval.currentMonthlyPayment = MathGetMonthlyPayment(pageContainer.approval.maxFinancedOtd, pageContainer.approval.contractRate, pageContainer.approval.loanTerm, daysToFirst, 0);
pageContainer.approval.currentMonthlyPayment = Math.round(pageContainer.approval.currentMonthlyPayment * 100) / 100;
if (pageContainer.approval.currentMonthlyPayment > 0 && pageContainer.combinedIncome > 0) {
pageContainer.approval.currentPti = Math.round(pageContainer.approval.currentMonthlyPayment * 10000 / pageContainer.combinedIncome) / 100;
}
if (pageContainer.approval.maxFinancedTop > 0 && pageContainer.purchase.kelleyAuction > 0) {
pageContainer.approval.currentAuctionLtvTop = Math.round(pageContainer.approval.maxFinancedTop * 10000 / pageContainer.purchase.kelleyAuction) / 100;
}
if (pageContainer.approval.maxFinancedOtd > 0 && pageContainer.purchase.kelleyAuction > 0) {
pageContainer.approval.currentAuctionLtvOtd = Math.round(pageContainer.approval.maxFinancedOtd * 10000 / pageContainer.purchase.kelleyAuction) / 100;
}
return pageContainer;
}
function LoadCustomerObj(applicant) {
var customer = new Customer(applicant);
var prefix = 'Byr';
if (applicant === Applicant.coBuyer) {
prefix = 'Cbyr';
}
customer.firstName = GetApplicationValue(prefix, 'firstName');
customer.lastName = GetApplicationValue(prefix, 'lastName');
customer.dob = GetApplicationDob(prefix);
customer.ssn = GetApplicationSsn(prefix);
customer.mobilePhone = GetApplicationPhoneNumber(prefix, 'mobilePhone');
customer.homeStatus = CheckNumber(parseFloat(GetApplicationDropDownValue(prefix, 'homeStatus')));
customer.homeMonthsAtAddress = GetApplicationTotalMonths(prefix, 'homeMonthsAtAddress');
customer.homeRent = GetApplicationFloatValue(prefix, 'homeRent', false);
customer.homeStreetAddress = GetApplicationValue(prefix, 'homeStreetAddress');
customer.homeCity = GetApplicationValue(prefix, 'homeCity');
customer.homeState = GetApplicationDropDownValue(prefix, 'homeState');
customer.homeZip = GetApplicationValue(prefix, 'homeZip');
customer.oldHomeStreetAddress = GetApplicationValue(prefix, 'oldHomeStreetAddress');
customer.oldHomeCity = GetApplicationValue(prefix, 'oldHomeCity');
customer.oldHomeState = GetApplicationDropDownValue(prefix, 'oldHomeState');
customer.oldHomeZip = GetApplicationValue(prefix, 'oldHomeZip');
customer.employmentCompanyName = GetApplicationValue(prefix, 'employmentCompanyName');
customer.employmentJobTitle = GetApplicationValue(prefix, 'employmentJobTitle');
customer.employmentStatus = CheckNumber(parseFloat(GetApplicationDropDownValue(prefix, 'employmentStatus')));
customer.employmentPhone = GetApplicationPhoneNumber(prefix, 'employmentPhone');
customer.employmentMonthsOnJob = GetApplicationTotalMonths(prefix, 'employmentMonthsOnJob');
customer.employmentMonthlyGross = GetApplicationFloatValue(prefix, 'employmentMonthlyGross', true);
customer.oldEmploymentJobTitle = GetApplicationValue(prefix, 'oldEmploymentJobTitle');
customer.oldEmploymentMonthsOnJob = GetApplicationTotalMonths(prefix, 'oldEmploymentMonthsOnJob');
customer.oldEmploymentMonthlyGross = GetApplicationFloatValue(prefix, 'oldEmploymentMonthlyGross', true);
customer.dealerTrackLenderAppId = GetStructureValue(Prefixes.none, 'DealerTrackLenderAppId');
customer.r1ConversationId = GetStructureValue(Prefixes.none, 'R1ConversationId');
return customer;
}
function LoadCommonSettings() {
var dealerType = new DealerType();
var pageContainer = new PageContainer();
pageContainer.webSiteMode = GetWebSiteMode();
pageContainer.applicationStatus = CheckNumber(ReadCurrentApplicationStatus());
pageContainer.dealerType = GetDealerType();
pageContainer.combinedIncome = CheckNumber(ReadIncome());
pageContainer.buyersIncome = CheckNumber(parseFloat($('#BuyersIncome').val()));
pageContainer.hasCoBuyer = DoesApplicationHaveCoBuyer();
try {
pageContainer.userRole = GetStructureValue(Prefixes.none, 'CrrntUsrRl');
}
catch (e) {
}
pageContainer.initializeJs = InitializeJs();
var tempDealerTrackLenderAppId = GetStructureValue(Prefixes.none, 'DealerTrackLenderAppId');
if (tempDealerTrackLenderAppId.length > 1) {
pageContainer.isDealerTrackApp = true;
}
var tempR1ConversationId = GetStructureValue(Prefixes.none, 'R1ConversationId');
if (tempR1ConversationId.length > 1) {
pageContainer.isRouteOneApp = true;
}
pageContainer.isResubmit = false;
if ($('#' + PrefixString(Prefixes.DlrStrctr_) + 'isResubmit').val() === 'true') {
pageContainer.isResubmit = true;
}
pageContainer.approval = new ApprovalStructure();
pageContainer.defaultTierApproval = new ApprovalStructure();
pageContainer.structure = new LoanStructure();
pageContainer.titleLicenceDocFee = new TitleLicenceDocFee();
pageContainer.gap = new Gap();
pageContainer.approvalGap = new Gap();
pageContainer.approval.selectedTier = CheckNumber(GetSelectedTierIdentifier(false));
if (pageContainer.approval.selectedTier === 0) {
pageContainer.approval.defaultTier = GetSelectedTierIdentifier(true);
}
else {
pageContainer.approval.defaultTier = pageContainer.approval.selectedTier;
}
try {
pageContainer.autoDeskerTier = CheckNumber(parseFloat($('#AutoDeskTier').val()));
}
catch (e) {
}
pageContainer.dealerRating = GetStructureFloatValue(Prefixes.Apprvl_, 'DealerPalRating');
return pageContainer;
}
function LoadDealerProfit(pageContainer) {
var dealerType = new DealerType();
pageContainer.dealerProfit = new DealerProfit();
var gpsInstallFee = parseInt($('#Apprvl_RequireGpsDevice').attr('gpsInstallFee')) || 0;
var gpsInstallWaiveFee = parseInt($('#Apprvl_RequireGpsDevice').attr('gpsInstallWaiveFee')) || 0;
var tradeInWaiveFee = parseInt($('#Apprvl_RequireTradeWaived').attr('tradeInWaiveFee')) || 0;
var poiWaiveFee = 0;
var gpsFeeApplied = 0;
var tradeInWaiveFeeApplied = 0;
var noDriversLicenseFee = 0;
var decisionLogicWaivedFee = 0;
if ($('#Apprvl_RequireGpsDevice').is(':checked')) {
if ($('#Apprvl_RequireGpsWaived').is(':checked')) {
gpsFeeApplied = gpsInstallWaiveFee;
}
else {
gpsFeeApplied = gpsInstallFee;
}
}
if ($('#Apprvl_RequireTradeWaived').is(':checked')) {
var tradeInWaiveFeeApplied = tradeInWaiveFee;
}
if ($('#_noDriversLicense').is(':checked')) {
noDriversLicenseFee = parseInt($('#_noDriversLicense').attr('NoDriversLicenseFee'));
if (isNaN(noDriversLicenseFee)) {
noDriversLicenseFee = 0;
}
}
if ($('#_decisionLogicFlagged').is(':checked') && $('#_decisionLogicWaived').is(':checked')) {
decisionLogicWaivedFee = parseInt($('#_decisionLogicWaived').attr('decisionLogicWaivedFee'));
if (isNaN(decisionLogicWaivedFee)) {
decisionLogicWaivedFee = 0;
}
}
if ($('#_proofOfIncomeWaived').is(':checked')) {
poiWaiveFee = parseInt($('#_proofOfIncomeWaived').attr('proofOfIncomeWaiveFee'));
if (isNaN(poiWaiveFee)) {
poiWaiveFee = 0;
}
}
var gapCost = parseInt($('#Apprvl_GapFee').val()) || 0;
if (pageContainer.approval.maxFinancedTop > 0) {
if (pageContainer.webSiteMode === WebSiteMode.uw) {
var nonPacGapPrice = 0;
var nonPacServicePrice = 0;
if (pageContainer.approvalGap.isPacGap === false && pageContainer.approvalGap.price > 0) {
nonPacGapPrice = pageContainer.approvalGap.price;
}
else if (pageContainer.approvalGap.isPacGap === false && pageContainer.approval.gapFee > 0) {
nonPacGapPrice = pageContainer.approval.gapFee;
}
if ($('#_approvalSellPrimeServiceContract').is(':checked') == false && parseInt($('#_approvalServiceContractCost').val()) > 0) {
nonPacServicePrice = parseInt($('#_approvalServiceContractCost').val());
}
else if ($('#_approvalSellPrimeServiceContract').is(':checked') == false && pageContainer.approval.serviceContractInStr > 0) {
nonPacServicePrice = pageContainer.approval.serviceContractInStr;
}
pageContainer.dealerProfit.netCheckToDealer = pageContainer.approval.maxFinancedTop + nonPacGapPrice + nonPacServicePrice - pageContainer.approval.acquisitionFee;
}
else {
if (pageContainer.dealerType === dealerType.Franchise || pageContainer.dealerType === dealerType.LowBook) {
pageContainer.dealerProfit.netCheckToDealer = 0;
}
else {
try {
pageContainer.dealerProfit.netCheckToDealer = CheckNumber(parseFloat($('#' + PrefixString(Prefixes.Apprvl_) + 'NetCheckToDlr').html().replace('$', '').replace(',', '')));
}
catch (e) {
pageContainer.dealerProfit.netCheckToDealer = 0;
}
}
}
}
else {
if (pageContainer.approval.netAcquisitionFee > 0) {
var nonPacGapPrice = 0;
var nonPacServicePrice = 0;
if (pageContainer.approvalGap.isPacGap === false && pageContainer.approvalGap.price > 0) {
nonPacGapPrice = pageContainer.approvalGap.price;
}
if ($('#_approvalSellPrimeServiceContract').is(':checked') == false && parseInt($('#_approvalServiceContractCost').val()) > 0) {
nonPacServicePrice = parseInt($('#_approvalServiceContractCost').val());
}
pageContainer.dealerProfit.netCheckToDealer = pageContainer.approval.maxFinancedOtd + nonPacGapPrice + nonPacServicePrice - pageContainer.approval.netAcquisitionFee;
}
else if (pageContainer.approval.acquisitionFee > 0) {
var serviceCost = 0;
if (pageContainer.approvalGap.isPacGap == false) {
gapCost = 0;
}
if ($('#_approvalSellPrimeServiceContract').is(':checked')) {
serviceCost = parseInt($('#_approvalServiceContractCost').val());
}
pageContainer.dealerProfit.netCheckToDealer = pageContainer.approval.maxFinancedOtd - gapCost - serviceCost - pageContainer.approval.acquisitionFee;
}
}
pageContainer.dealerProfit.netCheckToDealer = pageContainer.dealerProfit.netCheckToDealer - gpsFeeApplied - tradeInWaiveFeeApplied - noDriversLicenseFee - decisionLogicWaivedFee - poiWaiveFee;
var expenses = pageContainer.dealerProfit.purchaseCost +
pageContainer.structure.salesTax +
pageContainer.structure.titleLicenseDocTotalInStructure -
pageContainer.titleLicenceDocFee.defaultDocFee;
var revenue = pageContainer.dealerProfit.netCheckToDealer + pageContainer.structure.equityDown;
if (revenue > 0 && pageContainer.dealerProfit.purchaseCost > 0) {
pageContainer.dealerProfit.estDealerProfit = revenue - expenses;
}
pageContainer.dealerProfit.productCost = 0;
if (pageContainer.gap.price > 0) {
pageContainer.dealerProfit.productCost = pageContainer.gap.price;
}
if (parseInt($('#_approvalServiceContractCost').val()) > 0) {
pageContainer.dealerProfit.productCost = parseInt($('#_approvalServiceContractCost').val());
}
pageContainer.dealerProfit.netCheckToDealer = Math.round(pageContainer.dealerProfit.netCheckToDealer * 100) / 100;
$('#Apprvl_EstimatedNetCheck').val(pageContainer.dealerProfit.netCheckToDealer.toString());
var gapDealerProfit = pageContainer.approvalGap.dealerProfit;
if (isNaN(gapDealerProfit)) {
gapDealerProfit = 0;
}
var serviceContractDealerProfit = parseInt($('#_approvalServiceContractDealerProfit').val());
if (isNaN(serviceContractDealerProfit)) {
serviceContractDealerProfit = 0;
}
var totalNetCheck = pageContainer.dealerProfit.netCheckToDealer + gapDealerProfit + serviceContractDealerProfit;
totalNetCheck = Math.round(totalNetCheck * 100) / 100;
$('#_totalNetCheck').text(totalNetCheck);
return pageContainer;
}
function LoadGapFee(idPrefix, pageContainer) {
var dealerType = new DealerType();
var gap = new Gap();
gap.isPacGap = false;
if (idPrefix === Prefixes.Apprvl_) {
gap.dealerProfit = parseInt($('#_approvalGapDealerProfit').val());
gap.isPacGapAllowed = (($('#Apprvl_GapFee').attr('isDealershipgapEnabled')) === "True");
gap.maxMarkupPercentage = parseFloat($('#Apprvl_GapFee').attr('gapMaxMarkupPercentage'));
var gapCost = parseInt($('#_approvalGapCost').val());
gap.isPacGap = $('#_approvalSellPrimeGap').is(':checked');
}
else {
gap.dealerProfit = parseInt($('#_structureGapDealerProfit').val());
gap.isPacGapAllowed = (($('#DlrStrctr_GapFee').attr('isDealershipgapEnabled')) === "True");
gap.maxMarkupPercentage = parseFloat($('#DlrStrctr_GapFee').attr('gapMaxMarkupPercentage'));
var gapCost = parseInt($('#_structureGapCost').val());
gap.isPacGap = $('#_structureSellPrimeGap').is(':checked');
}
if (gap.isPacGapAllowed == false) {
gap.isPacGap = false;
}
if (gap.isPacGap) {
gap.price = gapCost;
}
else if (pageContainer.dealerType === dealerType.Franchise) {
gap.price = $('#' + PrefixString(idPrefix) + 'GapFee').val();
}
else {
gap.price = 0;
}
if (idPrefix === Prefixes.Apprvl_) {
pageContainer.approvalGap = gap;
}
else {
pageContainer.gap = gap;
}
return pageContainer;
}
function LoadPageContainer() {
var pageContainer = LoadCommonSettings();
pageContainer = LoadPurchase(pageContainer);
pageContainer = LoadTrade(pageContainer);
pageContainer = LoadGapFee(Prefixes.DlrStrctr_, pageContainer);
pageContainer = LoadGapFee(Prefixes.Apprvl_, pageContainer);
pageContainer = LoadTitleLicenseDoc(pageContainer);
pageContainer = LoadStructure(Prefixes.DlrStrctr_, pageContainer);
try {
pageContainer.oldSelectedPacTier = CheckNumber(parseFloat($OldSelectedPacTier.attr('tier')));
}
catch (e) {
}
pageContainer = LoadApproval(pageContainer);
pageContainer = LoadDefaultApproval(false, 0, pageContainer);
pageContainer = LoadDealerProfit(pageContainer);
if (pageContainer.approval.selectedTier === 0 || pageContainer.approval.selectedTier > 999) {
$('#Apprvl_SelectedPacTierDrpDwn').attr('firstChange', 'true');
}
DisableApplicationIfTurnedDown(pageContainer);
return pageContainer;
}
function LoadPurchase(pageContainer) {
pageContainer.purchase = new Vehicle();
pageContainer.purchase.vin = GetPurchaseVin();
pageContainer.purchase.make = GetPurchaseMake();
pageContainer.purchase.model = GetPurchaseModel();
pageContainer.purchase.odometer = GetPurchaseOdometer();
pageContainer.purchase.year = GetPurchaseYear();
pageContainer.purchase.kelleyAuction = CheckNumber(GetStructureFloatValue(Prefixes.none, '_wholesaleAverageAdjusted'));
return pageContainer;
}
function LoadStructure(idPrefix, pageContainer) {
var dealerType = new DealerType();
var structure = new LoanStructure();
structure.hasTrade = GetStructureBoolValue(idPrefix, HasTradeChkBx);
structure.titleLicenseDocTotalInStructure = GetStructureFloatValue(idPrefix, TitleLicenseDocTotalInStrctr);
if ($('#_overrideTaxCalculator').val() == 'True') {
structure.salesTax = parseFloat($('#DlrStrctr_SalesTax').val());
}
else {
structure.salesTax = calculateTax('structure');
}
if (idPrefix == Prefixes.Apprvl_) {
structure.loanTerm = parseInt($('#_approvalLoanTerm').val());
if (isNaN(structure.loanTerm)) {
structure.loanTerm = 0;
}
}
else {
structure.loanTerm = GetStructureFloatValue(idPrefix, LoanTerm);
}
structure.salePrice = GetStructureFloatValue(idPrefix, SalePrice);
structure.down = GetStructureFloatValue(idPrefix, DownPayment);
structure.daysToFirstPayment = GetStructureFloatValue(idPrefix, DaysToFirstPayment);
if (pageContainer.gap.isPacGap && (pageContainer.dealerType === dealerType.Independent || pageContainer.dealerType === dealerType.LowBook)) {
structure.gapFee = pageContainer.gap.price;
}
else if (pageContainer.dealerType === dealerType.Franchise) {
structure.gapFee = GetStructureFloatValue(idPrefix, GapFee);
}
else {
structure.gapFee = 0;
}
structure.serviceContractInStr = GetStructureFloatValue(idPrefix, ServiceContract);
structure.saleRate = GetStructureFloatValue(idPrefix, SaleRate);
structure.bankOrFrontEndFees = GetStructureFloatValue(idPrefix, BankOrFrontEndFees);
if (structure.hasTrade) {
structure.equityDown =
structure.down +
CheckNumber(pageContainer.trade.acv) -
CheckNumber(pageContainer.trade.payoff);
}
else {
structure.equityDown = structure.down;
}
structure.unpaidBalance = structure.salePrice + structure.salesTax + structure.titleLicenseDocTotalInStructure + structure.bankOrFrontEndFees - structure.equityDown;
structure.amountFinanced = structure.unpaidBalance + structure.gapFee + structure.serviceContractInStr;
var interest = structure.saleRate / 100;
var principle = structure.amountFinanced;
var term = structure.loanTerm;
var monthUnit = 365 / 12;
var twelve = 12;
var grace = structure.daysToFirstPayment;
if (grace > 30) {
grace = grace - 30;
var graceInterest = (((interest * principle) / twelve) / monthUnit) * grace;
principle = principle + graceInterest;
}
var mathChunk = Math.pow((1 + interest / twelve), term);
structure.monthlyPayment = principle * (mathChunk * interest) / (twelve * (mathChunk - 1));
var wholesale = +$('#_bookValue').val();
if (structure.unpaidBalance > 0 && wholesale > 0) {
structure.loanToValueWholesaleFront = structure.unpaidBalance / wholesale;
structure.loanToValueWholesaleFront = structure.loanToValueWholesaleFront * 100;
}
if (structure.amountFinanced > 0 && wholesale > 0) {
structure.loanToValueWholesaleOtd = structure.amountFinanced / wholesale;
structure.loanToValueWholesaleOtd = structure.loanToValueWholesaleOtd * 100;
}
if (structure.unpaidBalance > 0 && pageContainer.purchase.kelleyAuction > 0) {
structure.loanToValueKelleyAuctionFront = structure.amountFinanced / pageContainer.purchase.kelleyAuction;
structure.loanToValueKelleyAuctionFront = structure.loanToValueKelleyAuctionFront * 100;
}
if (pageContainer.combinedIncome > 0 && structure.monthlyPayment > 0) {
structure.currentPti = CalculateRatio(structure.monthlyPayment, pageContainer.combinedIncome, true);
}
if (structure.salePrice > 0 && structure.down > 0) {
structure.cashDownOfCashSalePrice = CalculateRatio(structure.down, structure.salePrice, true);
}
if (structure.salePrice > 0 && structure.equityDown > 0) {
structure.totalDownOfCashSalePrice = CalculateRatio(structure.equityDown, structure.salePrice, true);
}
structure.unpaidBalance = Math.round(structure.unpaidBalance * 100) / 100;
structure.amountFinanced = Math.round(structure.amountFinanced * 100) / 100;
structure.monthlyPayment = Math.round(structure.monthlyPayment * 100) / 100;
structure.loanToValueWholesaleFront = Math.round(structure.loanToValueWholesaleFront * 100) / 100;
structure.loanToValueWholesaleOtd = Math.round(structure.loanToValueWholesaleOtd * 100) / 100;
structure.loanToValueKelleyAuctionFront = Math.round(structure.loanToValueKelleyAuctionFront * 100) / 100;
pageContainer.structure = structure;
return pageContainer;
}
function LoadTitleLicenseDoc(pageContainer) {
var structurePrefix = 'DlrStrctr_';
pageContainer.titleLicenceDocFee.defaultDocFee = parseFloat($('#' + structurePrefix + DocumentFeeDocCalc).attr('defaultValue') || '0');
pageContainer.titleLicenceDocFee.defaultStateIm = parseFloat($('#' + structurePrefix + StateInspectionDocCalc).attr('defaultValue') || '0');
pageContainer.titleLicenceDocFee.defaultTempRegistration = parseFloat($('#' + structurePrefix + TempRegFeeDocCalc).attr('defaultValue') || '0');
pageContainer.titleLicenceDocFee.defaultTitleFee = parseFloat($('#' + structurePrefix + TitleFeeDocCalc).attr('defaultValue') || '0');
pageContainer.titleLicenceDocFee.defaultLicenseFee = parseFloat($('#' + structurePrefix + LicenseFeeDocCalc).attr('defaultValue') || '0');
pageContainer.titleLicenceDocFee.defaultRegistrationFee = parseFloat($('#' + structurePrefix + RegistrationFeeDocCalc).attr('defaultValue') || '0');
pageContainer.titleLicenceDocFee.docFee = CheckNumber(GetStructureFloatValue(Prefixes.DlrStrctr_, DocumentFeeDocCalc));
pageContainer.titleLicenceDocFee.inventoryFee = CheckNumber(GetStructureFloatValue(Prefixes.DlrStrctr_, InventoryFeeDocCalc));
pageContainer.titleLicenceDocFee.titleFee = CheckNumber(GetStructureFloatValue(Prefixes.DlrStrctr_, TitleFeeDocCalc));
pageContainer.titleLicenceDocFee.licenseFee = CheckNumber(GetStructureFloatValue(Prefixes.DlrStrctr_, LicenseFeeDocCalc));
pageContainer.titleLicenceDocFee.registrationFee = CheckNumber(GetStructureFloatValue(Prefixes.DlrStrctr_, RegistrationFeeDocCalc));
pageContainer.titleLicenceDocFee.propertyTaxAndAgedBasedFee = CheckNumber(GetStructureFloatValue(Prefixes.DlrStrctr_, AgeBasedFeeDocCalc));
pageContainer.titleLicenceDocFee.stateIm = CheckNumber(GetStructureFloatValue(Prefixes.DlrStrctr_, StateInspectionDocCalc));
pageContainer.titleLicenceDocFee.stateInspectionCertificateFee = CheckNumber(GetStructureFloatValue(Prefixes.DlrStrctr_, StateInspectionCertificateFeeDocCalc));
pageContainer.titleLicenceDocFee.tempRegistration = CheckNumber(GetStructureFloatValue(Prefixes.DlrStrctr_, TempRegFeeDocCalc));
pageContainer.titleLicenceDocFee.totalPaidToPublicOfficials =
pageContainer.titleLicenceDocFee.titleFee +
pageContainer.titleLicenceDocFee.licenseFee +
pageContainer.titleLicenceDocFee.registrationFee +
pageContainer.titleLicenceDocFee.propertyTaxAndAgedBasedFee +
pageContainer.titleLicenceDocFee.stateIm +
pageContainer.titleLicenceDocFee.stateInspectionCertificateFee +
pageContainer.titleLicenceDocFee.tempRegistration;
pageContainer.titleLicenceDocFee.titleLicenseDocTotal =
pageContainer.titleLicenceDocFee.totalPaidToPublicOfficials +
pageContainer.titleLicenceDocFee.docFee;
return pageContainer;
}
function LoadTrade(pageContainer) {
pageContainer.trade = new Vehicle();
pageContainer.trade.vin = GetStructureValue(Prefixes.DlrStrctr_, TradeVin);
pageContainer.trade.make = GetStructureValue(Prefixes.DlrStrctr_, TradeMake);
pageContainer.trade.model = GetStructureValue(Prefixes.DlrStrctr_, TradeModel);
pageContainer.trade.odometer = GetStructureFloatValue(Prefixes.DlrStrctr_, TradeOdom);
pageContainer.trade.year = GetStructureFloatValue(Prefixes.DlrStrctr_, TradeYear);
pageContainer.trade.acv = CheckNumber(GetStructureFloatValue(Prefixes.DlrStrctr_, TradeAcvNearTrade));
pageContainer.trade.payoff = CheckNumber(GetStructureFloatValue(Prefixes.DlrStrctr_, TradePayoff));
pageContainer.trade.monthlyPayment = GetStructureFloatValue(Prefixes.DlrStrctr_, TradeMonthlyPayment);
pageContainer.trade.lienholder = GetStructureValue(Prefixes.DlrStrctr_, TradeLienHolder);
pageContainer.trade.vin = CheckString(pageContainer.trade.vin);
pageContainer.trade.odometer = CheckNumber(pageContainer.trade.odometer);
pageContainer.trade.monthlyPayment = CheckNumber(pageContainer.trade.monthlyPayment);
pageContainer.trade.acv = CheckNumber(pageContainer.trade.acv);
pageContainer.trade.payoff = CheckNumber(pageContainer.trade.payoff);
pageContainer.trade.netTrade = pageContainer.trade.acv - pageContainer.trade.payoff;
return pageContainer;
}
var AcquisitionFee = 'AcquisitionFee';
var AgeBasedFeeDocCalc = 'AgeBasedFeeDocCalc';
var AmountFinanced = 'AmountFinanced';
var ApprovalMissmatchWindow = 1.05;
var ApprovalMissmatchWindowRestricted = 1.01;
var ApprovalCreditWatchIsWorking = false;
var ApprovalCreditWatchId = 0;
var ApprovalCreditWatchCounter = 0;
var Apprvl_IsSubmitted = 'Apprvl_IsSubmitted';
var BankOrFrontEndFees = 'BankOrFrontEndFees';
var BlobImagePrefix = 'https://resources.stormcloudamz.com/pics/';
var buyerApplicationErrors = '';
var CombinedIncome = 'CombinedIncome';
var ContinuePrintingDocs = 'ContinuePrintingDocs';
var ContractRate = 'ContractRate';
var CurrentPti = 'CurrentPti';
var DaysToFirstPayment = 'DaysToFirstPayment';
var DealTabDivId = 'DealTabDivId';
var DealTabImageId = 'DealTabImageId';
var DealerMarkupInServCalc = 'DealerMarkupInServCalc';
var DealerServiceCntrctPriceInServCalc = 'DealerServiceCntrctPriceInServCalc';
var DocFeeSettingsDivId = 'DocFeeSettingsDivId';
var DocumentCalcDivId = 'DocumentCalcDivId';
var DocumentFeeDefault = 'DocumentFeeDefault';
var DocumentFeeDocCalc = 'DocumentFeeDocCalc';
var DownPayment = 'DownPayment';
var DownloadingBar = 'DownloadingBar';
var EnableGap = 'EnableGap';
var GapFee = 'GapFee';
var GapFeeCalcDiv = 'GapFeeCalcDiv';
var GapFeeCalcOptionsDiv = 'GapFeeCalcOptionsDiv';
var HasTradeChkBx = 'HasTradeChkBx';
var HasPrintWarning = false;
var HideCalculatorDocCalc = 'HideCalculatorDocCalc';
var HideServiceCalcBtnId = 'HideServiceCalcBtnId';
var LoanTerm = 'LoanTerm';
var LoanToValueWholesaleOtd = 'LoanToValueWholesaleOtd';
var LoanToValueWholesaleFront = 'LoanToValueWholesaleFront';
var LocationUsers = 'LocationUsersUserLst';
var MaxLtvOtdWholesale = 'MaxLtvOtdWholesale';
var MaxLtvFrontWholesale = 'MaxLtvFrontWholesale';
var MaxFinancedOtd = 'MaxFinancedOtd';
var MonthlyPayment = 'MonthlyPayment';
var NetTradeInStrtr = 'NetTradeInStrtr';
var NetTradeNearTrade = 'NetTradeNearTrade';
var PacTdReasonDerog = 'PacTdReasonDerog';
var PacTdReasonIncome = 'PacTdReasonIncome';
var PacTdReasonJobTime = 'PacTdReasonJobTime';
var PacTdReasonReqTrade = 'PacTdReasonReqTrade';
var PacTdReasonsDivId = 'PacTdReasonsDivId';
var PacTdReasonTerms = 'PacTdReasonTerms';
var PreviousPacTier = 'PreviousPacTier';
var PurchaseVinInvalid = 'PurchaseVinInvalid';
var RequireGpsDevice = 'RequireGpsDevice';
var RequireGpsWaived = 'RequireGpsWaived';
var RequiresTrade = 'RequiresTrade';
var RequireTradeWaived = 'RequireTradeWaived';
var SalePrice = 'SalePrice';
var SaleRate = 'SaleRate';
var SalesTax = 'SalesTax';
var SaveDocumentValueDocCalc = 'SaveDocumentValueDocCalc';
var SaveServiceCalcBtnId = 'SaveServiceCalcBtnId';
var SelectedPacTierDrpDwn = 'SelectedPacTierDrpDwn';
var SelectedTierIdentifier = 'SelectedTierIdentifier';
var SellPrimeGap = 'SellPrimeGap';
var SellPrimeWarranty = 'SellPrimeWarranty';
var ServContractCalcDivId = 'ServContractCalcDivId';
var ServiceContract = 'ServiceContract';
var ServiceContractDealerCost = 'ServiceContractDealerCost';
var ServiceContractMonths = 'ServiceContractMonths';
var SiteMode = 'SiteMode';
var StateInspectionDefault = 'StateInspectionDefault';
var StateInspectionDocCalc = 'StateInspectionDocCalc';
var StateInspectionCertificateFeeDocCalc = 'StateInspectionCertificateFeeDocCalc';
var StructureAreaDivId = 'StructureAreaDivId';
var StructureApprovalWarningId = 'StructureApprovalWarningId';
var TempRegFeeDefault = 'TempRegFeeDefault';
var TempRegFeeDocCalc = 'TempRegFeeDocCalc';
var TitleFeeDocCalc = 'TitleFeeDocCalc';
var LicenseFeeDocCalc = 'LicenseFeeDocCalc';
var RegistrationFeeDocCalc = 'RegistrationFeeDocCalc';
var InventoryFeeDocCalc = 'InventoryFeeDocCalc';
var TitleLicenseDocTotalInStrctr = 'TitleLicenseDocTotalInStrctr';
var TotalPaidToPublicOfficialsDocCalc = 'TotalPaidToPublicOfficialsDocCalc';
var TradeAcvNearTrade = 'TradeAcvNearTrade';
var TradeDivId = 'TradeDivId';
var TradeLienHolder = 'TradeLeinHolder';
var TradeMake = 'TradeMake';
var TradeModel = 'TradeModel';
var TradeMonthlyPayment = 'TradeMonthlyPayment';
var TradeOdom = 'TradeOdom';
var TradePayoff = 'TradePayoff';
var TradeVin = 'TradeVin';
var TradeYear = 'TradeYear';
var UnPaidBalance = 'UnPaidBalance';
var ViewDocCalcSettingsBtnId = 'ViewDocCalcSettingsBtnId';
var WarrantyOverideId = 'WarrantyOverideId';
var badBackgroundColor = 'Salmon';
var goodBackgroundColor = 'LightGreen';
var $ApplicationSummaryValidationErrors;
var $ApplicationType;
var $ApplicationValidationErrors;
var $BuyerApplicationErrors;
var $BuyerApplicationStatus;
var $BuyerApplicationSummaryErrors;
var $BuyerApplicationSummaryStatus;
var $BuyerPrevEmploymentDiv;
var $BuyerPrevResidenceDiv;
var $CoBuyerApplicationErrors;
var $CoBuyerApplicationStatus;
var $CoBuyerApplicationSummaryErrors;
var $CoBuyerApplicationSummaryStatus;
var $CoBuyerPrevEmploymentDiv;
var $CoBuyerPrevResidenceDiv;
var $DealStructureArea;
var $DealStructureAreaAlt;
var $DownloadingBar;
var $InitializeJs;
var $OldSelectedPacTier;
var $PrintUpsShippingLabel;
var $ServiceContract;
$(document).ready(function () {
$ApplicationSummaryValidationErrors = $('#ApplctnSmmrVldtnErrs');
$ApplicationType = $('#ByrCrdtApplTp');
$ApplicationValidationErrors = $('#ApplctnVldtnErrs');
$BuyerApplicationErrors = $('#ApplctnByrErrs');
$BuyerApplicationStatus = $('#ByrApplStts');
$BuyerApplicationSummaryErrors = $('#ApplctnSmmrByrErrs');
$BuyerApplicationSummaryStatus = $('#ByrApplSmmrStts');
$BuyerPrevEmploymentDiv = $('#ByrPrevEmployment');
$BuyerPrevResidenceDiv = $('#ByrPrevResidence');
$CoBuyerApplicationErrors = $('#ApplctnCbyrErrs');
$CoBuyerApplicationStatus = $('#CbyrApplStts');
$CoBuyerApplicationSummaryErrors = $('#ApplctnSmmrCbyrErrs');
$CoBuyerApplicationSummaryStatus = $('#CbyrApplSmmrStts');
$CoBuyerPrevEmploymentDiv = $('#CbyrPrevEmployment');
$CoBuyerPrevResidenceDiv = $('#CbyrPrevResidence');
$DealStructureArea = $('#DlrStrctrArea');
$DealStructureAreaAlt = $('#DlrStrctrAreaAlt');
$DownloadingBar = $('#DlrStrctr_DownloadingBar');
$InitializeJs = $('#DlrStrctr_initializeJs');
$OldSelectedPacTier = $('#' + PrefixString(Prefixes.Apprvl_) + 'OldSelectedPacTier');
$PrintUpsShippingLabel = $('#PrintUpsShippingLabel');
$ServiceContract = $('#DlrStrctr_ServiceContract');
$InitializeJs.val('true');
});
var Applicant;
(function (Applicant) {
Applicant[Applicant["buyer"] = 0] = "buyer";
Applicant[Applicant["coBuyer"] = 1] = "coBuyer";
Applicant[Applicant["autoDefault"] = 2] = "autoDefault";
})(Applicant || (Applicant = {}));
var ApprovalStructure = (function () {
function ApprovalStructure() {
this.salePrice = 0;
this.salesTax = 0;
this.daysToFirstPayment = 0;
this.titleAndLicenseFees = 0;
this.frontEndFees = 0;
this.netTrade = 0;
this.selectedTier = 0;
this.defaultTier = 0;
this.requiredDownPayment = 0;
this.contractRate = 0;
this.currentMonthlyPayment = 0;
this.currentPti = 0;
this.currentAuctionLtvTop = 0;
this.currentAuctionLtvOtd = 0;
this.maxMonthlyPayment = 0;
this.maxFinancedTop = 0;
this.maxFinancedOtd = 0;
this.acquisitionFee = 0;
this.netAcquisitionFee = 0;
this.loanTerm = 0;
this.maxLtvFrontWholesale = 0;
this.maxLtvOtdWholesale = 0;
this.termExtensionVehicleClass = 0;
this.requireTrade = false;
this.requireGps = false;
this.gapFee = 0;
this.serviceContractInStr = 0;
this.requiredRateOfReturn = 0;
this.minRequiredRateOfReturn = 0;
this.maxRequiredRateOfReturn = 0;
}
return ApprovalStructure;
}());
var Customer = (function () {
function Customer(applicant) {
this.applicant = applicant;
this.firstName = '';
this.lastName = '';
this.dob = new Date();
this.ssn = '';
this.mobilePhone = '';
this.homeStatus = 0;
this.homeMonthsAtAddress = 0;
this.homeRent = 0;
this.homeStreetAddress = '';
this.homeCity = '';
this.homeState = '';
this.homeZip = '';
this.oldHomeStreetAddress = '';
this.oldHomeCity = '';
this.oldHomeState = '';
this.oldHomeZip = '';
this.employmentCompanyName = '';
this.employmentJobTitle = '';
this.employmentStatus = 0;
this.employmentPhone = '';
this.employmentMonthsOnJob = 0;
this.employmentMonthlyGross = 0;
this.oldEmploymentJobTitle = '';
this.oldEmploymentMonthsOnJob = 0;
this.oldEmploymentMonthlyGross = 0;
this.dealerTrackLenderAppId = '';
this.r1ConversationId = '';
this.coBuyerRelation = 0;
}
return Customer;
}());
var DealerProfit = (function () {
function DealerProfit() {
this.netCheckToDealer = 0;
this.estDealerProfit = 0;
this.purchaseCost = 0;
this.productCost = 0;
}
return DealerProfit;
}());
var ModelTexasRates = (function () {
function ModelTexasRates() {
this.TexasRateId = 0;
this.Term = 0;
this.TwoYearsOrLess = 0;
this.ThreeToFourYears = 0;
this.FiveOrMoreYears = 0;
}
return ModelTexasRates;
}());
var Gap = (function () {
function Gap() {
this.price = 0;
this.dealerProfit = 0;
this.isPacGap = false;
this.isPacGapAllowed = false;
this.maxMarkupPercentage = 0;
}
return Gap;
}());
var DealerType = (function () {
function DealerType() {
this.Franchise = 'Franchise';
this.Independent = 'Independent';
this.LowBook = 'LowBook';
}
return DealerType;
}());
var LoanStructure = (function () {
function LoanStructure() {
this.salePrice = 0;
this.salesTax = 0;
this.titleLicenseDocTotalInStructure = 0;
this.down = 0;
this.equityDown = 0;
this.bankOrFrontEndFees = 0;
this.loanTerm = 0;
this.daysToFirstPayment = 0;
this.gapFee = 0;
this.serviceContractInStr = 0;
this.saleRate = 0;
this.hasTrade = false;
this.unpaidBalance = 0;
this.monthlyPayment = 0;
this.amountFinanced = 0;
this.loanToValueWholesaleFront = 0;
this.loanToValueWholesaleOtd = 0;
this.loanToValueKelleyAuctionFront = 0;
this.cashDownOfCashSalePrice = 0;
this.totalDownOfCashSalePrice = 0;
this.currentPti = 0;
this.isValid = false;
}
return LoanStructure;
}());
var PageContainer = (function () {
function PageContainer() {
var _dealerType = new DealerType();
this.customer = null;
this.structure = null;
this.purchase = null;
this.dealerProfit = null;
this.titleLicenceDocFee = null;
this.gap = null;
this.approvalGap = null;
this.defaultTierApprovalGap = null;
this.approval = null;
this.defaultTierApproval = null;
this.trade = null;
this.applicationStatus = 0;
this.dealerType = _dealerType.Independent;
this.combinedIncome = 0;
this.buyersIncome = 0;
this.webSiteMode = WebSiteMode.none;
this.isDealerTrackApp = false;
this.isRouteOneApp = false;
this.hasCoBuyer = false;
this.initializeJs = false;
this.isResubmit = false;
this.isStructureValidForSubmission = false;
this.userRole = '';
this.dealerRating = 0;
this.requiredRateOfReturnAdjustment = 0;
this.openAutos = 0;
this.fifteenPercentIncome = 0;
this.autoDeskerTier = 0;
this.oldSelectedPacTier = 0;
}
return PageContainer;
}());
var Prefixes;
(function (Prefixes) {
Prefixes[Prefixes["none"] = 0] = "none";
Prefixes[Prefixes["DlrStrctr_"] = 1] = "DlrStrctr_";
Prefixes[Prefixes["Apprvl_"] = 2] = "Apprvl_";
Prefixes[Prefixes["LbsStrctr_"] = 3] = "LbsStrctr_";
Prefixes[Prefixes["ArchdStrtr_"] = 5] = "ArchdStrtr_";
Prefixes[Prefixes["Print_"] = 6] = "Print_";
Prefixes[Prefixes["Quick_"] = 7] = "Quick_";
Prefixes[Prefixes["PrftCacl_"] = 8] = "PrftCacl_";
Prefixes[Prefixes["end"] = 9] = "end";
})(Prefixes || (Prefixes = {}));
function PrefixString(idPrefix) {
switch (idPrefix) {
case 1:
return 'DlrStrctr_';
case 2:
return 'Apprvl_';
case 3:
return 'LbsStrctr_';
case 5:
return 'ArchdStrtr_';
case 6:
return 'Print_';
case 7:
return 'Quick_';
case 8:
return 'PrftCacl_';
case '1':
return 'DlrStrctr_';
case '2':
return 'Apprvl_';
case '3':
return 'LbsStrctr_';
case '5':
return 'ArchdStrtr_';
case '6':
return 'Print_';
case '7':
return 'Quick_';
case '8':
return 'PrftCacl_';
case 'DlrStrctr':
return 'DlrStrctr_';
case 'Apprvl':
return 'Apprvl_';
case 'LbsStrctr':
return 'LbsStrctr_';
case 'ArchdStrtr':
return 'ArchdStrtr_';
case 'Print':
return 'Print_';
case 'Quick':
return 'Quick_';
case 'PrftCacl':
return 'PrftCacl_';
default:
return String(idPrefix);
}
}
var TitleLicenceDocFee = (function () {
function TitleLicenceDocFee() {
this.docFee = 0;
this.titleFee = 0;
this.licenseFee = 0;
this.registrationFee = 0;
this.inventoryFee = 0;
this.propertyTaxAndAgedBasedFee = 0;
this.stateIm = 0;
this.stateInspectionCertificateFee = 0;
this.tempRegistration = 0;
this.totalPaidToPublicOfficials = 0;
this.titleLicenseDocTotal = 0;
this.defaultDocFee = 0;
this.defaultTitleFee = 0;
this.defaultLicenseFee = 0;
this.defaultRegistrationFee = 0;
this.defaultStateIm = 0;
this.defaultTempRegistration = 0;
}
return TitleLicenceDocFee;
}());
var Vehicle = (function () {
function Vehicle() {
this.vin = '';
this.odometer = 0;
this.year = 0;
this.make = '';
this.model = '';
this.acv = 0;
this.payoff = 0;
this.monthlyPayment = 0;
this.lienholder = '';
this.netTrade = 0;
this.kelleyWholesale = 0;
this.kelleyRetail = 0;
this.kelleyAuction = 0;
this.autocheckScore = 0;
this.autocheckProblem = false;
}
return Vehicle;
}());
var WebSiteMode;
(function (WebSiteMode) {
WebSiteMode[WebSiteMode["none"] = 0] = "none";
WebSiteMode[WebSiteMode["eSalesTower"] = 1] = "eSalesTower";
WebSiteMode[WebSiteMode["uw"] = 2] = "uw";
WebSiteMode[WebSiteMode["dealers"] = 3] = "dealers";
})(WebSiteMode || (WebSiteMode = {}));
function RequestNetCheckAdjustment(dealId) {
var requestedNetCheck = $('#_requestedNetCheck').val();
$('#_requestNetCheckButton').val('Submitted');
var url = '../../api/Deals/RequestNetCheckAdjustment?dealId=' + dealId + '&requestedNetCheck=' + requestedNetCheck;
$.post(url);
}
function saveIsCommitted() {
SaveDealValueAjax("IsCommitted", $('#_isCommitted').is(':checked'));
}
function saveIsLocked() {
SaveDealValueAjax("IsLocked", $('#_isLocked').is(':checked'));
}
function GetCurrentUserId() {
var userId = $('#_saveApprovalHidden').attr('currentUserId');
return userId;
}
function GetDealId() {
var dealId = $('#DealReference').text().replace(/^\D+/g, '');
return dealId;
}
function applySuggestedDown() {
$('#Apprvl_DownPayment').val($('#_suggestedDown').val());
CalculateEstimatedDown($('#_estimatedMarkup').val(), $('#Apprvl_DownPayment').val(), $('#_approvalNetTrade').val());
UpdateAmountFinancedTop();
}
function AutoDeskerLoadDecision() {
var pageContainer = LoadPageContainer();
var currentTier = $('#' + PrefixString(Prefixes.Apprvl_) + SelectedPacTierDrpDwn + ' option:selected').val();
var pacFinanceStatus = $('#PacFinanceStatus').val();
if (currentTier === '') {
currentTier = 0;
}
if (currentTier < 1 && pageContainer.approval.selectedTier > 0 && pacFinanceStatus != 'ReSubmitted') {
var slctdPacTierDrpDwn = $('#' + PrefixString(Prefixes.Apprvl_) + SelectedPacTierDrpDwn);
slctdPacTierDrpDwn.val(pageContainer.approval.selectedTier.toString());
slctdPacTierDrpDwn.parent().prev().prepend('
Auto Desker Result ');
pageContainer = LoadDefaultApproval(true, pageContainer.approval.selectedTier, pageContainer);
}
CalculateDeskingPageWithObj(pageContainer);
}
function GetRequiredDown(applyRequiredDownException) {
var requiredDown = parseInt($('#_requiredDown').attr('originalRequiredDown'));
var downPaymentReduction = 0;
if (applyRequiredDownException == true) {
var maxMarkup = parseInt($('#_maxVehicleMarkup').val());
if (isNaN(maxMarkup)) {
maxMarkup = 0;
}
var estimatedMarkup = parseInt($('#_estimatedMarkup').val());
if (isNaN(estimatedMarkup)) {
estimatedMarkup = 0;
}
if (estimatedMarkup < maxMarkup) {
downPaymentReduction = maxMarkup - estimatedMarkup;
if (downPaymentReduction > 500) {
downPaymentReduction = 500;
}
}
requiredDown -= downPaymentReduction;
requiredDown = Math.ceil(requiredDown / 50) * 50;
if (requiredDown < 1000) {
requiredDown = 1000;
}
}
$('#_requiredDown').val(requiredDown.toString());
return requiredDown;
}
function CalculateRequiredDown() {
var requiredDown = GetRequiredDown(false);
$('#_requiredDown').val(requiredDown.toString());
}
function CalculateSuggestedDown() {
var suggestedDown = GetRequiredDown(false);
$('#_suggestedDown').val(suggestedDown.toString());
}
function MathCalculateAccFee(returnComments, approvalTier, approvedOtd, minAccFee, maxAccFee) {
var accFee = 0;
var accFeeComments = '';
var firstMarkUpPerc = .18;
var secondMarkUpPerc = .12;
var expensiveCarsPricePoint = 0;
if (approvalTier >= 30 && approvalTier < 50) {
firstMarkUpPerc = .15;
}
if (approvalTier === 70 || approvalTier === 74) {
minAccFee = 1500;
}
if (secondMarkUpPerc > 0 && maxAccFee > 0) {
expensiveCarsPricePoint = maxAccFee / secondMarkUpPerc;
}
accFee = approvedOtd * firstMarkUpPerc;
accFeeComments = 'Initially calculated fee ' + EncodedBreak + '= ' + Math.round(accFee) + ' (%' + firstMarkUpPerc * 100 + ')';
if (accFee < minAccFee) {
accFee = minAccFee;
accFeeComments = accFeeComments + EncodedBreak + 'Use min risk fee, ' + minAccFee;
}
if (accFee > maxAccFee) {
if (approvedOtd > expensiveCarsPricePoint) {
accFee = approvedOtd * secondMarkUpPerc;
accFeeComments = accFeeComments + EncodedBreak + 'High OTD, > ' + expensiveCarsPricePoint + EncodedBreak +
'Use alternate fee ' + Math.round(accFee) + ' (%' + secondMarkUpPerc * 100 + ')';
}
else {
accFee = maxAccFee;
accFeeComments = accFeeComments + EncodedBreak + 'Use max risk fee, ' + maxAccFee;
}
}
accFee = Math.round(accFee);
accFeeComments = accFeeComments + EncodedBreak + 'Fee should be : ' + FormatDollar(accFee, true);
if (returnComments) {
return accFeeComments;
}
return accFee;
}
function CopyGap(pageContainer, sourceIdPrefix, targetIdPrefix) {
var gapFeeInStructure = 0;
var gap;
if (sourceIdPrefix === Prefixes.Apprvl_) {
gapFeeInStructure = pageContainer.approval.gapFee;
gap = pageContainer.approvalGap;
$('#_approvalSellPrimeGap').prop('checked', gap.isPacGap);
}
else {
gapFeeInStructure = pageContainer.structure.gapFee;
gap = pageContainer.gap;
$('#' + PrefixString(targetIdPrefix) + SellPrimeGap).prop('checked', gap.isPacGap);
}
if (targetIdPrefix === Prefixes.Apprvl_) {
pageContainer.approval.gapFee = gapFeeInStructure;
pageContainer.approvalGap = gap;
}
else {
pageContainer.structure.gapFee = gapFeeInStructure;
pageContainer.gap = gap;
}
var dealerType = new DealerType();
$('#' + PrefixString(targetIdPrefix) + GapFee).val(gapFeeInStructure.toString());
if (pageContainer.dealerType === dealerType.Franchise) {
$('#' + PrefixString(targetIdPrefix) + 'GapFeeInGapCalc').val(gapFeeInStructure.toString());
}
if (targetIdPrefix === Prefixes.DlrStrctr_) {
SaveStructureValueAjax('GapDealerProfit', gap.dealerProfit);
SaveStructureValueAjax(SellPrimeGap, gap.isPacGap);
SaveStructureValueAjax('GapCost', gapFeeInStructure);
}
return pageContainer;
}
function SetRiskFactorColor(control) {
var value = parseFloat(control.val());
if (value > 0) {
control.css('color', 'red');
}
else if (value < 0) {
control.css('color', 'green');
}
else {
control.css('color', 'black');
}
}
function AnalyzeRiskFactors() {
SetRiskFactorColor($('#_buyerCreditRepoAdjustment'));
SetRiskFactorColor($('#_buyerCreditAutoPaidAdjustment'));
SetRiskFactorColor($('#_buyerPaidCreditAdjustment'));
SetRiskFactorColor($('#_buyerDerogAdjustment'));
SetRiskFactorColor($('#_buyerCreditUtilityScore'));
SetRiskFactorColor($('#_buyerFicoScoreAdjustment'));
SetRiskFactorColor($('#_buyerBureauTimeAdjustment'));
SetRiskFactorColor($('#_buyerBkAdjustment'));
SetRiskFactorColor($('#_buyerCustomerScoreRiskFactor'));
SetRiskFactorColor($('#_buyerIncomeAdjustment'));
SetRiskFactorColor($('#_buyerJobTimeAdjustment'));
SetRiskFactorColor($('#_cobuyerCreditRepoAdjustment'));
SetRiskFactorColor($('#_cobuyerCreditAutoPaidAdjustment'));
SetRiskFactorColor($('#_cobuyerPaidCreditAdjustment'));
SetRiskFactorColor($('#_cobuyerDerogAdjustment'));
SetRiskFactorColor($('#_cobuyerCreditUtilityScore'));
SetRiskFactorColor($('#_cobuyerFicoScoreAdjustment'));
SetRiskFactorColor($('#_cobuyerBureauTimeAdjustment'));
SetRiskFactorColor($('#_cobuyerBkAdjustment'));
SetRiskFactorColor($('#_cobuyerCustomerScoreRiskFactor'));
SetRiskFactorColor($('#_cobuyerIncomeAdjustment'));
SetRiskFactorColor($('#_cobuyerJobTimeAdjustment'));
SetRiskFactorColor($('#_usedCustomerScore'));
SetRiskFactorColor($('#_customerLTVAdjustment'));
SetRiskFactorColor($('#_vehicleMileageAdjustment'));
}
function CopyStructureToApproval() {
var pageContainer = LoadPageContainer();
if (pageContainer.approval.selectedTier != 1001 && pageContainer.approval.selectedTier != 1002 && pageContainer.approval.selectedTier != 1006) {
$('#Apprvl_RequireTradeSetManually').val('false');
pageContainer.approval.maxMonthlyPayment = pageContainer.structure.monthlyPayment;
pageContainer.approval.maxFinancedTop = pageContainer.structure.unpaidBalance;
pageContainer.approval.contractRate = pageContainer.structure.saleRate;
pageContainer.approval.loanTerm = pageContainer.structure.loanTerm;
pageContainer.approval.maxLtvFrontWholesale = pageContainer.structure.loanToValueWholesaleFront;
pageContainer.approval.requiredDownPayment = pageContainer.structure.down;
pageContainer = CopyGap(pageContainer, Prefixes.DlrStrctr_, Prefixes.Apprvl_);
copyGapStructureToApproval();
copyStructureServiceContractToApproval();
$('#_approvalSalePrice').val($('#DlrStrctr_SalePrice').val());
$('#_approvalSalesTax').val($('#DlrStrctr_SalesTax').val());
$('#_approvalTitleAndLicenseFees').val($('#DlrStrctr_TitleLicenseDocTotalInStrctr').val());
$('#_approvalFrontEndFees').val($('#DlrStrctr_BankOrFrontEndFees').val());
$('#_documentFeeHidden').val($('#DlrStrctr_DocumentFeeDocCalc').val());
$('#_bankOrFrontEndFeesHidden').val($('#DlrStrctr_OtherFrontEndFeesDocCalc').val());
$('#_inventoryFeeHidden').val($('#DlrStrctr_InventoryFeeDocCalc').val());
$('#_titleFeeHidden').val($('#DlrStrctr_TitleFeeDocCalc').val());
$('#_licenseFeeHidden').val($('#DlrStrctr_LicenseFeeDocCalc').val());
$('#_registrationFeeHidden').val($('#DlrStrctr_RegistrationFeeDocCalc').val());
$('#_ageBasedFeeHidden').val($('#DlrStrctr_AgeBasedFeeDocCalc').val());
$('#_stateInspectionFeeHidden').val($('#DlrStrctr_StateInspectionDocCalc').val());
$('#_stateInspectionCertificateFeeHidden').val($('#DlrStrctr_StateInspectionCertificateFeeDocCalc').val());
$('#_tempRegistrationFeeHidden').val($('#DlrStrctr_TempRegFeeDocCalc').val());
$('#_approvalNetTrade').val($('#DlrStrctr_NetTradeInStrtr').val());
$('#_approvalDaysToFirstPayment').val($('#DlrStrctr_DaysToFirstPayment').val());
$('#Apprvl_DownPayment').val(pageContainer.approval.requiredDownPayment.toString());
$('#Apprvl_DownPayment').attr('originalDownPayment', pageContainer.approval.requiredDownPayment.toString());
$('#_approvalLoanTerm').val(pageContainer.approval.loanTerm.toString());
var state = GetDealershipState();
if (state == 'tx') {
var texasRate = $('#DlrStrctr_SaleRate').val();
$('#Apprvl_ContractRate').val(texasRate);
$('#Apprvl_ContractRate').attr('originalValue', texasRate);
$('#Apprvl_ContractRate').attr('MinApr', texasRate);
}
else {
$('#Apprvl_ContractRate').val(pageContainer.approval.contractRate.toString());
}
$('#Apprvl_AmountFinanced').val(pageContainer.approval.maxFinancedTop.toString());
$('#Apprvl_MaxLtvFrontWholesale').val(pageContainer.approval.maxLtvFrontWholesale.toString());
$('#Apprvl_MaxLtvOtdWholesale').val(pageContainer.approval.maxLtvFrontWholesale.toString());
CalculateDeskingPage();
UpdateAmountFinancedTop();
}
}
function CopyApprovalToStructure() {
var pageContainer = LoadPageContainer();
if (pageContainer.approval.selectedTier == 1006)
return;
pageContainer.structure.salePrice = pageContainer.approval.salePrice;
pageContainer.structure.down =
pageContainer.approval.requiredDownPayment -
pageContainer.purchase.acv +
pageContainer.purchase.payoff;
pageContainer.structure.loanTerm = pageContainer.approval.loanTerm;
pageContainer.structure.daysToFirstPayment = pageContainer.approval.daysToFirstPayment;
pageContainer.structure.saleRate = pageContainer.approval.contractRate;
pageContainer = CopyGap(pageContainer, Prefixes.Apprvl_, Prefixes.DlrStrctr_);
pageContainer.structure.serviceContractInStr = pageContainer.approval.serviceContractInStr;
copyGapApprovalToStructure();
copyApprovalToStructureServiceContract();
$('#DlrStrctr_SalePrice').val(pageContainer.structure.salePrice.toString());
$('#DlrStrctr_SalesTax').val($('#_approvalSalesTax').val());
$('#DlrStrctr_DownPayment').val(pageContainer.structure.down.toString());
$('#DlrStrctr_LoanTerm').val(pageContainer.structure.loanTerm.toString());
$('#DlrStrctr_DaysToFirstPayment').val($('#_approvalDaysToFirstPayment').val());
$('#DlrStrctr_SaleRate').val(pageContainer.structure.saleRate.toString());
SaveStructureValueAjax(SalePrice, pageContainer.structure.salePrice);
SaveStructureValueAjax(SalesTax, $('#DlrStrctr_SalesTax').val());
SaveStructureValueAjax(DownPayment, pageContainer.structure.down);
SaveStructureValueAjax(LoanTerm, pageContainer.structure.loanTerm);
SaveStructureValueAjax(DaysToFirstPayment, $('#DlrStrctr_DaysToFirstPayment').val());
SaveStructureValueAjax(SaleRate, pageContainer.structure.saleRate);
saveStructureServiceContract();
CalculateDeskingPage();
}
function CopyApprovalTermsToStructure() {
var dealId = getPrimaryKey();
$.ajax({
type: 'POST',
url: '/api/deals/' + dealId + '/AcceptApproval',
contentType: 'application/json',
success: function (structure) {
$('#DlrStrctr_SalePrice').val(structure.SalePrice);
$('#DlrStrctr_SalesTaxDocCalc').val(structure.SalesTax);
$('#DlrStrctr_SalesTax').val(structure.SalesTax);
$('#DlrStrctr_DownPayment').val(structure.DownPayment);
$('#DlrStrctr_LoanTerm').val(structure.LoanTerm);
$('#DlrStrctr_DaysToFirstPayment').val(structure.DaysToFirstPayment);
var apr = parseFloat(structure.SaleRate);
if (isNaN(apr)) {
apr = 0;
}
apr = apr * 100;
$('#DlrStrctr_SaleRate').val(apr.toFixed(2));
$('#_structureSellPrimeServiceContract').prop('checked', structure.SellPrimeWarranty);
$('#_structureServiceContractMonths').val(structure.ServiceContractMonths);
$('#_structureServiceContractCost').val(structure.ServiceContractCost);
$('#DlrStrctr_ServiceContract').val(structure.ServiceContractCost);
$('#_structureServiceContractDealerProfit').val(structure.ServiceContractDealerProfit);
$('#_structureAWD').prop('checked', structure.IsFourWheelDrive);
$('#_structureDiesel').prop('checked', structure.IsDiesel);
$('#_structureTurbo').prop('checked', structure.IsTurbo);
$('#_structureVehicleAge').prop('checked', structure.IsOldVehicle);
$('#_structureSellPrimeGap').prop('checked', structure.SellPrimeGap);
$('#_structureGapCost').val(structure.GapCost);
$('#DlrStrctr_GapFee').val(structure.GapCost);
$('#_structureGapDealerProfit').val(structure.GapDealerProfit);
UpdateAmountFinancedTop();
CalculateDeskingPage();
}
});
}
function saveStructureServiceContract() {
SaveStructureValueAjax('SellPrimeWarranty', $('#_structureSellPrimeServiceContract').is(':checked'));
SaveStructureValueAjax('ServiceContractCost', $('#_structureServiceContractCost').val());
SaveStructureValueAjax('ServiceContractDealerProfit', $('#_structureServiceContractDealerProfit').val());
SaveStructureValueAjax('ServiceContractMonths', $('#_structureServiceContractMonths').attr('value'));
SaveStructureValueAjax('PurchaseIsFourWheel', $('#_structureAWD').is(':checked'));
SaveStructureValueAjax('PurchaseIsDiesel', $('#_structureDiesel').is(':checked'));
SaveStructureValueAjax('PurchaseIsTurbo', $('#_structureTurbo').is(':checked'));
SaveStructureValueAjax('PurchaseIsOldVehicle', $('#_structureVehicleAge').is(':checked'));
}
function UpdateAmountFinancedTop() {
var salePrice = parseFloat($('#_approvalSalePrice').val());
var salesTax;
if ($('#_overrideTaxCalculator').val() == 'True') {
salesTax = parseFloat($('#_approvalSalesTax').val());
}
else {
salesTax = calculateTax('approval');
}
var titleAndLicenseFees = parseFloat($('#_approvalTitleAndLicenseFees').val());
var frontEndFees = parseFloat($('#_approvalFrontEndFees').val());
var cashDown = parseFloat($('#Apprvl_DownPayment').val());
var netTrade = parseFloat($('#_approvalNetTrade').val());
if (isNaN(salePrice)) {
salePrice = 0;
}
if (isNaN(salesTax)) {
salesTax = 0;
}
if (isNaN(titleAndLicenseFees)) {
titleAndLicenseFees = 0;
}
if (isNaN(frontEndFees)) {
frontEndFees = 0;
}
if (isNaN(cashDown)) {
cashDown = 0;
}
if (isNaN(netTrade)) {
netTrade = 0;
}
var amountFinancedTop = 0;
amountFinancedTop = salePrice + salesTax + titleAndLicenseFees + frontEndFees - cashDown - netTrade;
amountFinancedTop = Math.round(amountFinancedTop * 100) / 100;
$('#Apprvl_AmountFinanced').val(amountFinancedTop.toString());
CalculateDeskingPage();
}
function EditApprovalTerm() {
var pageContainer = LoadPageContainer();
var loanTermStringLength = $('#_approvalLoanTerm').val().toString().length;
if (loanTermStringLength > 1) {
if ($('#Apprvl_ContractRate').attr('texasrates')) {
UpdateApprovedRate(pageContainer);
}
else {
$('#' + PrefixString(Prefixes.Quick_) + AmountFinanced).val(pageContainer.approval.maxFinancedOtd.toString());
$('#' + PrefixString(Prefixes.Quick_) + LoanTerm).val(pageContainer.approval.loanTerm.toString());
$('#' + PrefixString(Prefixes.Quick_) + SaleRate).val(pageContainer.approval.contractRate.toString());
CalculatorQuickLoan();
CalculateDeskingPage();
}
}
}
function EditApprovalValueWithQuickCalcWithPage(pageContainer) {
$('#' + PrefixString(Prefixes.Quick_) + AmountFinanced).val(pageContainer.approval.maxFinancedOtd.toString());
$('#' + PrefixString(Prefixes.Quick_) + LoanTerm).val(pageContainer.approval.loanTerm.toString());
$('#' + PrefixString(Prefixes.Quick_) + SaleRate).val(pageContainer.approval.contractRate.toString());
CalculatorQuickLoan();
CalculateDeskingPage();
}
function EditApprovalValueWithQuickCalculator() {
var pageContainer = LoadPageContainer();
$('#' + PrefixString(Prefixes.Quick_) + AmountFinanced).val(pageContainer.approval.maxFinancedOtd.toString());
$('#' + PrefixString(Prefixes.Quick_) + LoanTerm).val(pageContainer.approval.loanTerm.toString());
$('#' + PrefixString(Prefixes.Quick_) + SaleRate).val(pageContainer.approval.contractRate.toString());
CalculatorQuickLoan();
CalculateDeskingPageWithObj(pageContainer);
}
function PrefillApprovalNotes() {
var $approvalNotes = $('#' + PrefixString(Prefixes.Apprvl_) + 'PacStructureNotes');
var currentText = $approvalNotes.val().trim();
var approvalNotes = $('#ApprovalNotes').html().trim();
if (currentText.trim() === '') {
$approvalNotes.val(approvalNotes);
}
else {
$approvalNotes.val(currentText + ' ' + approvalNotes);
}
return false;
}
function LoadDefaultApproval(loadAsNew, selectedTier, pageContainer) {
var selectedTier = pageContainer.approval.selectedTier;
if (selectedTier === 0 && pageContainer.oldSelectedPacTier > 0) {
selectedTier = pageContainer.oldSelectedPacTier;
}
if (selectedTier > 0 && selectedTier < 999 ||
loadAsNew === true) {
if (loadAsNew) {
pageContainer.defaultTierApproval.selectedTier = CheckNumber(selectedTier);
var previousPacTier = GetStructureFloatValue(Prefixes.none, PreviousPacTier);
var autoDeskerTier = 0;
try {
autoDeskerTier = CheckNumber(parseFloat($('#AutoDeskTier').val()));
}
catch (e) {
}
if (pageContainer.defaultTierApproval.selectedTier === 0 && previousPacTier > 0) {
pageContainer.defaultTierApproval.selectedTier = previousPacTier;
}
if (pageContainer.defaultTierApproval.selectedTier === 0 && autoDeskerTier > 0) {
pageContainer.defaultTierApproval.selectedTier = autoDeskerTier;
}
}
else {
pageContainer.defaultTierApproval.selectedTier = pageContainer.approval.selectedTier;
}
pageContainer.defaultTierApproval.termExtensionVehicleClass = pageContainer.approval.termExtensionVehicleClass;
pageContainer.defaultTierApproval.requiredDownPayment = parseInt($('#_requiredDown').text());
pageContainer.defaultTierApproval.requireGps = false;
pageContainer.defaultTierApproval.maxFinancedOtd = pageContainer.defaultTierApproval.maxFinancedTop;
var tempMaxFinancedOtdLimitedByMonthly = MathGetPrinciple(pageContainer.defaultTierApproval.maxMonthlyPayment, pageContainer.defaultTierApproval.contractRate, pageContainer.defaultTierApproval.loanTerm);
if (tempMaxFinancedOtdLimitedByMonthly > 0 && tempMaxFinancedOtdLimitedByMonthly > pageContainer.defaultTierApproval.maxFinancedOtd) {
pageContainer.defaultTierApproval.maxFinancedOtd = Math.round(tempMaxFinancedOtdLimitedByMonthly);
}
pageContainer.defaultTierApproval.serviceContractInStr = 0;
pageContainer.defaultTierApproval.gapFee = 0;
pageContainer.defaultTierApproval.maxFinancedOtd =
pageContainer.defaultTierApproval.maxFinancedTop +
pageContainer.defaultTierApproval.serviceContractInStr +
pageContainer.defaultTierApproval.gapFee;
pageContainer.defaultTierApproval.acquisitionFee = 0;
var wholesale = +$('#_bookValue').val();
if (pageContainer.defaultTierApproval.maxFinancedOtd > 0 && wholesale > 0) {
pageContainer.defaultTierApproval.maxLtvOtdWholesale = pageContainer.defaultTierApproval.maxFinancedOtd / wholesale;
pageContainer.defaultTierApproval.maxLtvOtdWholesale = pageContainer.defaultTierApproval.maxLtvOtdWholesale * 10000;
pageContainer.defaultTierApproval.maxLtvOtdWholesale = Math.round(pageContainer.defaultTierApproval.maxLtvOtdWholesale) / 100;
}
pageContainer.defaultTierApproval.currentMonthlyPayment = MathGetMonthlyPayment(pageContainer.defaultTierApproval.maxFinancedOtd, pageContainer.defaultTierApproval.contractRate, pageContainer.defaultTierApproval.loanTerm, 45, 0);
pageContainer.defaultTierApproval.currentMonthlyPayment = Math.round(pageContainer.defaultTierApproval.currentMonthlyPayment * 100) / 100;
if (loadAsNew) {
pageContainer.approval = pageContainer.defaultTierApproval;
$('#' + PrefixString(Prefixes.Apprvl_) + 'PacStructureNotes').val('');
PrefillApprovalNotes();
}
}
return pageContainer;
}
$(function () {
$('#_tmuFlag').css('display', 'none');
$('#_tmuFlagLabel').css('display', 'none');
$('#_salvageFlag').css('display', 'none');
$('#_salvageFlagLabel').css('display', 'none');
$("#Apprvl_RequireGpsDevice").click(function () {
var isChecked = $(this).is(':checked');
if ($(this).attr('isFunctional').toLowerCase() == 'false') {
$(this).prop('checked', !isChecked);
}
else {
ToggleGPSRequired();
}
});
$("#Apprvl_RequiresTrade").click(function () {
var isChecked = $(this).is(':checked');
if ($('#_saveApprovalHidden').attr('userIsExecutiveOrITAdmin') == 'false') {
if (!isChecked) {
$(this).prop('checked', 'true');
return;
}
}
ToggleTradeRequired();
});
$("#Apprvl_RequireGpsWaived").click(function () {
var isChecked = $(this).is(':checked');
if ($(this).attr('isFunctional').toLowerCase() == 'false') {
$(this).prop('checked', !isChecked);
}
else if (isChecked && !$('#Apprvl_RequireGpsDevice').is(':checked')) {
$(this).prop('checked', false);
}
else {
ToggleGPSWaived();
}
});
$("#Apprvl_RequireTradeWaived").click(function () {
var isChecked = $(this).is(':checked');
if ($(this).attr('isFunctional').toLowerCase() == 'false') {
$(this).prop('checked', !isChecked);
}
else if (isChecked && !$('#Apprvl_RequiresTrade').is(':checked')) {
$(this).prop('checked', false);
}
else {
ToggleTradeWaived();
}
});
$("#_proofOfIncomeWaived").click(function () {
var isChecked = $(this).is(':checked');
if ($(this).attr('isFunctional').toLowerCase() == 'false') {
$(this).prop('checked', !isChecked);
}
else {
ToggleProofOfIncomeWaived();
}
});
$("#_verificationOfEmploymentWaived").click(function () {
var isChecked = $(this).is(':checked');
if ($(this).attr('isFunctional').toLowerCase() == 'false') {
$(this).prop('checked', !isChecked);
}
else {
ToggleVerificationOfEmploymentWaived();
}
});
$("#_decisionLogicFlagged").click(function () {
var isChecked = $(this).is(':checked');
if ($('#_saveApprovalHidden').attr('userIsExecutiveOrITAdmin') == 'false') {
if (!isChecked) {
$(this).prop('checked', 'true');
return;
}
}
ToggleDecisionLogicFlagged();
});
});
function ToggleGPSRequired() {
var isChecked = $('#Apprvl_RequireGpsDevice').is(':checked');
$('#Apprvl_RequireGpsManuallyBy').val(GetCurrentUserId());
if (!isChecked && $('#Apprvl_RequireGpsWaived').is(':checked')) {
$('#Apprvl_RequireGpsWaived').prop('checked', false);
$('#Apprvl_RequireGpsWaivedManuallyBy').val('');
ToggleGPSWaived();
}
SetGpsAddendumFormCheckBoxEnabled(null);
GetAdditionalApprovalNotes();
CalculateDeskingPage();
ValidateRelationshipManagerMode(LoadPageContainer());
}
function ToggleGPSWaived() {
$('#Apprvl_RequireGpsWaivedManuallyBy').val(GetCurrentUserId());
SetGpsAddendumFormCheckBoxEnabled(null);
GetAdditionalApprovalNotes();
CalculateDeskingPage();
ValidateRelationshipManagerMode(LoadPageContainer());
}
function ToggleTradeRequired() {
$('#Apprvl_RequireTradeSetManually').val('true');
var isChecked = $('#Apprvl_RequiresTrade').is(':checked');
if (!isChecked && $('#Apprvl_RequireTradeWaived').is(':checked')) {
$('#Apprvl_RequireTradeWaived').prop('checked', false);
$('#Apprvl_RequireTradeWaivedManuallyBy').val('');
ToggleTradeWaived();
}
GetAdditionalApprovalNotes();
CalculateDeskingPage();
ValidateApproval(LoadPageContainer());
ValidateRelationshipManagerMode(LoadPageContainer());
}
function ToggleTradeWaived() {
$('#Apprvl_RequireTradeWaivedManuallyBy').val(GetCurrentUserId());
var pageContainer = LoadPageContainer();
CalculateDeskingPage();
ValidateApproval(pageContainer);
ValidateRelationshipManagerMode(pageContainer);
}
function ToggleProofOfIncomeWaived() {
$('#_proofOfIncomeWaivedManuallyBy').val(GetCurrentUserId());
var pageContainer = LoadPageContainer();
CalculateRequiredRateOfReturn(pageContainer);
CalculateDeskingPage();
ValidateRelationshipManagerMode(pageContainer);
GetAdditionalApprovalNotes();
}
function ToggleVerificationOfEmploymentWaived() {
$('#_verificationOfEmploymentWaivedManuallyBy').val(GetCurrentUserId());
var pageContainer = LoadPageContainer();
CalculateDeskingPage();
ValidateRelationshipManagerMode(pageContainer);
GetAdditionalApprovalNotes();
}
function ToggleDecisionLogicFlagged() {
var isChecked = $('#_decisionLogicFlagged').is(':checked');
$('#_decisionLogicFlaggedBy').val(isChecked ? GetCurrentUserId() : '');
if (isChecked == false) {
$('#_decisionLogicWaived').prop('checked', false);
$('#_decisionLogicWaivedBy').val('');
}
CalculateDeskingPage();
ValidateRelationshipManagerMode(LoadPageContainer());
GetAdditionalApprovalNotes();
}
function TradeInIsRequiredAndNotWaived() {
return $('#Apprvl_RequiresTrade').is(':checked') && !$('#Apprvl_RequireTradeWaived').is(':checked');
}
function GpsIsRequiredAndNotWaived() {
return $('#Apprvl_RequireGpsDevice').is(':checked') && !$('#Apprvl_RequireGpsWaived').is(':checked');
}
function GetAdditionalApprovalNotes() {
var additionalApprovalNotes = [];
var replacedByDuplicateDealNote = $('#_saveApprovalHidden').attr('replacedByDuplicateDealNote');
if (replacedByDuplicateDealNote) {
additionalApprovalNotes.push(replacedByDuplicateDealNote);
}
var isDuplicateDealNote = $('#_saveApprovalHidden').attr('isDuplicateDealNote');
if (isDuplicateDealNote) {
additionalApprovalNotes.push(isDuplicateDealNote);
}
var creditRelatedApprovalNotes = $('#_saveApprovalHidden').attr('creditRelatedApprovalNotes');
if (creditRelatedApprovalNotes) {
additionalApprovalNotes.push(creditRelatedApprovalNotes);
}
var gpsInstallWaiveFee = parseInt($('#Apprvl_RequireGpsDevice').attr('gpsInstallWaiveFee')) || 0;
var gpsApprovalNote = $('#Apprvl_RequireGpsDevice').attr('gpsApprovalNotes');
var tradeInWaiveFee = parseInt($('#Apprvl_RequireTradeWaived').attr('tradeInWaiveFee')) || 0;
var proofOfIncomeWaiveFee = parseInt($('#_proofOfIncomeWaived').attr('ProofOfIncomeWaiveFee')) || 0;
var GPSRequirementWaivedNote = '-GPS requirement waived';
var tradeRequiredNote = '-Must trade open auto or add qualified cosigner-';
var tradeRequiredMultipleOpenAutosNote = "-Can only waive trade on one open auto. Any additional open autos must be traded.-";
var tradeRequirementWaivedNote = '-Trade requirement waived';
var tradeRequirementWaivedMultipleOpenAutosNote = '-Trade requirement on one open auto waived';
var proofOfIncomeRequirementWaivedNote = '-POI waived';
var verificationOfEmploymentRequirementWaivedNote = '-VOE waived';
var decisionLogicFlaggedNote = '-DecisionLogic required-';
var decisionLogicFlaggedForLightCreditNote = '-Must obtain a solid Decision Logic hit before signing customer due to light to no credit bureau; no exceptions-';
var selfHelpForm = '-Must provide self-help form-';
var stipTextingNote = "-TEXT images of your stipulations to funding at 801-448-0965.-";
var requireGPS = $('#Apprvl_RequireGpsDevice').is(':checked');
var requireGPSWaived = $('#Apprvl_RequireGpsWaived').is(':checked');
var requireTrade = $('#Apprvl_RequiresTrade').is(':checked');
var requireTradeWaived = $('#Apprvl_RequireTradeWaived').is(':checked');
var poofOfIncomeWaived = $('#_proofOfIncomeWaived').is(':checked');
var verificationOfEmploymentWaived = $('#_verificationOfEmploymentWaived').is(':checked');
var adjustedAuctionValue = parseInt($('#_adjustedAuctionValue').val());
var maxACV = 14500;
var downPayment = $('#Apprvl_DownPayment').val();
var trueDownFlagAmount = +$('#_estimatedDown').attr('truedownflagamount');
var outOfStateBuyer = $('#_additionalApprovalNotes').attr('outOfStateBuyer');
if (outOfStateBuyer == 'True') {
additionalApprovalNotes.push('-Out of state purchaser, dealer must perfect title before funding.-');
}
if (requireGPS) {
if (requireGPSWaived) {
additionalApprovalNotes.push(GPSRequirementWaivedNote + ' for $' + gpsInstallWaiveFee + ' fee-');
}
else {
additionalApprovalNotes.push(gpsApprovalNote);
}
}
if (requireTrade) {
var totalDistinctOpenAutoTradeLines = +$('#_maxPayment').attr('totalDistinctOpenAutoTradeLines') || 0;
var hasMultipleOpenAutos = totalDistinctOpenAutoTradeLines > 1;
if (requireTradeWaived) {
additionalApprovalNotes.push((hasMultipleOpenAutos ? tradeRequirementWaivedMultipleOpenAutosNote : tradeRequirementWaivedNote)
+ ' for $' + tradeInWaiveFee + ' additional fee-');
}
else {
if (hasMultipleOpenAutos) {
additionalApprovalNotes.push(tradeRequiredMultipleOpenAutosNote);
}
else {
additionalApprovalNotes.push(tradeRequiredNote);
}
}
}
if (poofOfIncomeWaived) {
additionalApprovalNotes.push(proofOfIncomeRequirementWaivedNote + ' for $' + proofOfIncomeWaiveFee + ' fee-');
}
if (verificationOfEmploymentWaived) {
additionalApprovalNotes.push(verificationOfEmploymentRequirementWaivedNote + '-');
}
if ($('#_decisionLogicFlagged').is(':checked')) {
if ($('#_decisionLogicWaived').is(':checked') == false) {
if ($('#_decisionLogicFlagged').attr('FlaggedForLightCredit') === 'true') {
additionalApprovalNotes.push(decisionLogicFlaggedForLightCreditNote);
}
else {
additionalApprovalNotes.push(decisionLogicFlaggedNote);
}
}
else {
additionalApprovalNotes.push('-DecisionLogic waived fee of $' + $('#_decisionLogicWaived').attr('decisionLogicWaivedFee') + '-');
}
}
if ($('#DlrStrctr_ZipCodeRequiresSelfHelpForm').val() === 'true') {
additionalApprovalNotes.push(selfHelpForm);
}
if ($('#_noDriversLicense').is(':checked')) {
additionalApprovalNotes.push('-No drivers license (nor foreign ID) fee of $' + $('#_noDriversLicense').attr('NoDriversLicenseFee') + '-');
}
var serviceContractCost = parseFloat($('#Apprvl_ServiceContract').val());
if (isNaN(serviceContractCost)) {
serviceContractCost = 0;
}
var isPacServiceContract = $('#_approvalSellPrimeServiceContract').is(':checked');
if (serviceContractCost > 0 && isPacServiceContract == false) {
if (serviceContractCost > 0 && serviceContractCost <= 2000) {
additionalApprovalNotes.push("-2/24 coverage required-");
}
else if (serviceContractCost > 2000) {
additionalApprovalNotes.push("-3/36 coverage required-");
}
}
var daysToFirstPayment = parseInt($('#_approvalDaysToFirstPayment').val()) || 0;
additionalApprovalNotes.push('-' + daysToFirstPayment.toString() + ' days to 1st pmt-');
additionalApprovalNotes.push(stipTextingNote);
var additionalApprovalNotesAsString = additionalApprovalNotes.join(' ').trim();
$('#_additionalApprovalNotes').text(additionalApprovalNotesAsString);
}
function SetTradeRequirement(pageContainer) {
if ($('#Apprvl_RequireTradeSetManually').val() == 'false'
&& ($('#_saveApprovalHidden').attr('approvalAlreadySubmitted') == 'false' || $('#_saveApprovalHidden').attr('initialDeskingCalculationsComplete') == 'true')) {
var setRequiresTradeChecked = DealRequiresTrade(pageContainer);
var tradeCanBeWaived = DealTradeRequirementCanBeWaived();
var setTradeWaivedChecked = setRequiresTradeChecked ? tradeCanBeWaived : false;
var $requiresTrade = $('#Apprvl_RequiresTrade');
var requiresTradeIsChecked = $requiresTrade.is(':checked');
var $tradeWaived = $('#Apprvl_RequireTradeWaived');
var tradeWaivedIsChecked = $tradeWaived.is(':checked');
$requiresTrade.prop('checked', setRequiresTradeChecked);
if ($('#Apprvl_RequireTradeWaivedManuallyBy').val() != '') {
$tradeWaived.prop('checked', setTradeWaivedChecked);
}
}
}
function DealTradeRequirementCanBeWaived() {
if ($('#Apprvl_RequireTradeWaivedManuallyBy').val() != '') {
return $('#Apprvl_RequireTradeWaived').is(':checked');
}
var totalDistinctOpenAutoTradeLines = +$('#_maxPayment').attr('totalDistinctOpenAutoTradeLines') || 0;
var totalDistinctOpenAutoPacTradeLines = +$('#_maxPayment').attr('totalDistinctOpenAutoPacTradeLines') || 0;
var openAutosHaveGoodPaymentHistory = $('#_maxPayment').attr('openAutosHaveGoodPaymentHistory').toLowerCase() == 'true';
if (totalDistinctOpenAutoTradeLines !== 1 || totalDistinctOpenAutoPacTradeLines > 0) {
return false;
}
if (openAutosHaveGoodPaymentHistory || HasCoBuyer() || !HasOpenAutoBalanceAboveThreshold() || IsTrueDownDeal()) {
return true;
}
return false;
}
function DealRequiresTrade(pageContainer) {
var totalDistinctOpenAutoTradeLines = +$('#_maxPayment').attr('totalDistinctOpenAutoTradeLines') || 0;
return totalDistinctOpenAutoTradeLines > 0;
}
function HasOpenAutoBalanceAboveThreshold() {
var openAutoPayment = parseInt($('#_maxPayment').attr('openAutoPayment') || '0');
var combinedOpenAutoBalance = parseInt($('#_maxPayment').attr('combinedOpenAutoBalance') || '0');
var minOpenAutoBalanceForTradeInRequired = parseInt($('#_maxPayment').attr('minOpenAutoBalanceForTradeInRequired') || '0');
var hasOpenAutoWithNoBalanceGiven = $('#_maxPayment').attr('hasOpenAutoWithNoBalanceGiven').toLowerCase() == 'true';
if (openAutoPayment > 0 && (hasOpenAutoWithNoBalanceGiven || combinedOpenAutoBalance >= minOpenAutoBalanceForTradeInRequired)) {
return true;
}
return false;
}
function ClearApproval() {
$('#_saveApprovalHidden').attr('approvalAlreadySubmitted', 'false');
$('#' + PrefixString(Prefixes.Apprvl_) + ContractRate).val('0');
$('#' + PrefixString(Prefixes.Apprvl_) + DownPayment).val('0');
$('#' + PrefixString(Prefixes.Apprvl_) + AcquisitionFee).val('0');
$('#' + PrefixString(Prefixes.Apprvl_) + 'NetAcquisitionFee').val('0');
$('#' + PrefixString(Prefixes.Apprvl_) + AmountFinanced).val('0');
$('#' + PrefixString(Prefixes.Apprvl_) + MaxLtvFrontWholesale).val('0');
$('#_approvalLoanTerm').val('0');
$('#' + PrefixString(Prefixes.Apprvl_) + GapFee).val('0');
$('#' + PrefixString(Prefixes.Apprvl_) + ServiceContract).val('0');
$('#' + PrefixString(Prefixes.Apprvl_) + MaxFinancedOtd).val('0');
$('#' + PrefixString(Prefixes.Apprvl_) + MaxLtvOtdWholesale).val('0');
ClearGap('approval');
ClearServiceContract('approval');
$('#Apprvl_RequireGpsDevice').prop('checked', false);
$('#Apprvl_RequireGPSManuallyBy').val('');
$('#' + PrefixString(Prefixes.Apprvl_) + RequireGpsWaived).prop('checked', false);
$('#Apprvl_RequireGPSWaivedManuallyBy').val('');
$('#Apprvl_RequiresTrade').prop('checked', false);
$('#Apprvl_RequireTradeSetManually').val('false');
$('#' + PrefixString(Prefixes.Apprvl_) + RequireTradeWaived).prop('checked', false);
$('#Apprvl_RequireTradeWaivedManuallyBy').val('');
$('#_proofOfIncomeWaived').prop('checked', false);
$('#_proofOfIncomeWaivedManuallyBy').val('');
$('#_verificationOfEmploymentWaived').prop('checked', false);
$('#_verificationOfEmploymentWaivedManuallyBy').val('');
$('#_decisionLogicFlagged').prop('checked', false);
$('#_decisionLogicFlaggedBy').val('');
$('#_decisionLogicWaived').prop('checked', false);
$('#_decisionLogicWaivedBy').val('');
GetAdditionalApprovalNotes();
}
function DisableApplicationIfTurnedDown(pageContainer) {
var $editApplicationElement = $('#EdtDlExpnd_contentBlock');
var $resubmitStructureButton = $('#DlrStrctr_SubmitDealToPac');
if (pageContainer.webSiteMode === WebSiteMode.uw) {
var applicationIsDisabled = $editApplicationElement.attr('applicationDisabled') == 'True';
var isTurnedDown = pageContainer.approval.selectedTier === 1002;
var $purchaseAndStructureDivs = $('#DlrStrctr_StructureAreaDivId');
var $autoDeskerDiv = $('#AutoDskDsply');
var $leftSidebarTable = $('#DskSdBrPdlr');
var $dealerMarkupTable = $('#_dealerMarkupTable');
var $approvalVehicleFlags = $('#approvalVehicleFlags');
if (isTurnedDown) {
if (!applicationIsDisabled) {
$editApplicationElement.find('input, button, select').prop('disabled', true);
$purchaseAndStructureDivs.find('input, button, select').prop('disabled', true);
$resubmitStructureButton.prop('disabled', true);
$autoDeskerDiv.find('input, button, select').prop('disabled', true);
$leftSidebarTable.find('input, button, select').prop('disabled', true);
$dealerMarkupTable.find('input, button, select').prop('disabled', true);
$approvalVehicleFlags.find('input, button, select').prop('disabled', true);
$editApplicationElement.attr('applicationDisabled', 'True');
}
}
else if (applicationIsDisabled) {
$editApplicationElement.find('input, button, select').prop('disabled', false);
$purchaseAndStructureDivs.find('input, button, select').prop('disabled', false);
$resubmitStructureButton.prop('disabled', false);
$autoDeskerDiv.find('input, button, select').prop('disabled', false);
$leftSidebarTable.find('input, button, select').prop('disabled', false);
$dealerMarkupTable.find('input, button, select').prop('disabled', false);
$approvalVehicleFlags.find('input, button, select').prop('disabled', false);
$editApplicationElement.attr('applicationDisabled', 'False');
}
}
else if (pageContainer.webSiteMode === WebSiteMode.dealers) {
var applicationIsDisabled = $('#DskAppEdt').attr('applicationDisabled') == 'True';
if (applicationIsDisabled) {
$('#_deskingContainer').find('input, button, select').prop('disabled', true);
}
}
}
function TierDropDownChange() {
$('#Apprvl_RequireTradeSetManually').val('false');
var pageContainer = LoadPageContainer();
if (pageContainer.approval.selectedTier === 1001 || pageContainer.approval.selectedTier === 1002) {
ClearApproval();
$('#Apprvl_PacStructureNotes').val('');
$('#' + PrefixString(Prefixes.Apprvl_) + 'PacTdReasonsDivId').css('display', 'block');
$('#' + PrefixString(Prefixes.Apprvl_) + 'StructureDiv').css('display', 'none');
$('#Apprvl_SelectedPacTierDrpDwn').attr('firstChange', 'true');
alert('Please select the applicable turn down reason(s)');
}
else if (pageContainer.approval.selectedTier === 0 || pageContainer.approval.selectedTier > 999) {
$('#' + PrefixString(Prefixes.Apprvl_) + 'PacTdReasonsDivId').css('display', 'none');
$('#' + PrefixString(Prefixes.Apprvl_) + 'StructureDiv').css('display', 'table-row');
ClearApproval();
$('#Apprvl_PacStructureNotes').val('');
$('#Apprvl_SelectedPacTierDrpDwn').attr('firstChange', 'true');
}
else if ($('#Apprvl_SelectedPacTierDrpDwn').attr('firstChange') == 'true') {
CopyStructureToApproval();
$('#Apprvl_SelectedPacTierDrpDwn').attr('firstChange', 'false');
$('#' + PrefixString(Prefixes.Apprvl_) + 'PacTdReasonsDivId').css('display', 'none');
$('#' + PrefixString(Prefixes.Apprvl_) + 'StructureDiv').css('display', 'table-row');
var suggestedRate = parseFloat($('#_SuggestedRate').val());
if (suggestedRate > 0) {
pageContainer.approval.contractRate = suggestedRate;
}
CalculatorQuickLoan();
}
if (pageContainer.approval.selectedTier === 1006) {
$('#Apprvl_RequiredRateOfReturn').val('0');
$('#Apprvl_CalculatedYield').val('0');
$('#_approvalSalePrice').val('0');
$('#_approvalSalePrice').prop('disabled', true);
$('#_approvalSalesTax').val('0');
$('#_approvalSalesTax').prop('disabled', true);
$('#_approvalTitleAndLicenseFees').val('0');
$('#_approvalTitleAndLicenseFees').prop('disabled', true);
$('#_suggestedDown').val('0');
$('#_suggestedDown').prop('disabled', true);
$('#Apprvl_DownPayment').val('0');
$('#Apprvl_DownPayment').prop('disabled', true);
$('#_approvalFrontEndFees').val('0');
$('#_approvalFrontEndFees').prop('disabled', true);
$('#_approvalNetTrade').val('0');
$('#Apprvl_AmountFinanced').val('0');
$('#Apprvl_MaxLtvFrontWholesale').val('0');
$('#_approvalLoanTerm').val('0');
$('#_approvalLoanTerm').prop('disabled', true);
$('#_approvalDaysToFirstPayment').val('0');
$('#_approvalDaysToFirstPayment').prop('disabled', true);
$('#Apprvl_ServiceContract').val('0');
$('#Apprvl_ServiceContract').prop('disabled', true);
$('#Apprvl_GapFee').val('0');
$('#Apprvl_GapFee').prop('disabled', true);
$('#Apprvl_ContractRate').val('0');
$('#Apprvl_ContractRate').prop('disabled', true);
$('#_approvalMonthlyPayment').val('0');
$('#Apprvl_MaxFinancedOtd').val('0');
$('#Apprvl_MaxLtvOtdWholesale').val('0');
$('#DMT_netCheckToDealer').val('0');
$('#DMT_downPayment').val('0');
$('#DMT_dealerRevenue').val('0');
$('#DMT_adjustedAuctionValue').val('0');
$('#DMT_titleLicenseAndDocFees').val('0');
$('#DMT_backEndCost').val('0');
$('#DMT_dealerProfit').val('0');
$('#_estimatedMarkup').val('0');
$('#_estimatedDown').val('0');
$('#_requiredDown').val('0');
$('#_netCheckOverAuction').val('0');
$('#_customerLtv').text('0');
$('#Apprvl_AcquisitionFee').val('0');
$('#Apprvl_EstimatedNetCheck').val('0');
$('#_dealerProfit').val('0');
$('#_totalNetCheck').text('0');
}
else if (pageContainer.approval.selectedTier != 1002) {
$('#_approvalSalePrice').prop('disabled', false);
$('#_approvalSalesTax').prop('disabled', false);
$('#_approvalTitleAndLicenseFees').prop('disabled', false);
$('#_suggestedDown').prop('disabled', false);
$('#Apprvl_DownPayment').prop('disabled', false);
$('#_approvalFrontEndFees').prop('disabled', false);
$('#_approvalLoanTerm').prop('disabled', false);
$('#_approvalDaysToFirstPayment').prop('disabled', false);
$('#Apprvl_ServiceContract').prop('disabled', false);
$('#Apprvl_GapFee').prop('disabled', false);
$('#Apprvl_ContractRate').prop('disabled', false);
$OldSelectedPacTier.html('');
$('#' + PrefixString(Prefixes.Apprvl_) + 'OldSelectedPacTierLabel').html('');
CalculateDeskingPage();
UpdateAmountFinancedTop();
SolveApproval();
}
ValidateRelationshipManagerMode(pageContainer);
RefreshDealSaveButtons();
DisableApplicationIfTurnedDown(pageContainer);
}
function ValidateApproval(pageContainer) {
var backgroundColor = 'white';
var darkBackgroundColor = '#CCCCCC';
ValidateApprovalMaxPayment(pageContainer, backgroundColor);
ValidateApprovalRate(pageContainer, backgroundColor);
GetAdditionalApprovalNotes();
}
function ValidateApprovalMaxPayment(pageContainer, backgroundColor) {
var maxPayment = GetApplicableMaxPayment();
if (pageContainer.approval.currentMonthlyPayment < maxPayment) {
$('#_approvalMonthlyPayment').css('background-color', goodBackgroundColor);
}
else if (pageContainer.approval.currentMonthlyPayment > maxPayment) {
$('#_approvalMonthlyPayment').css('background-color', badBackgroundColor);
}
else {
$('#_approvalMonthlyPayment').css('background-color', '#CCCCCC');
}
}
function ValidateApprovalRate(pageContainer, backgroundColor) {
if (pageContainer.approval.contractRate < (pageContainer.defaultTierApproval.contractRate * (2 - ApprovalMissmatchWindow)) ||
pageContainer.approval.contractRate > (pageContainer.defaultTierApproval.contractRate * ApprovalMissmatchWindow)) {
$('#' + PrefixString(Prefixes.Apprvl_) + ContractRate).css('background-color', badBackgroundColor);
}
else {
$('#' + PrefixString(Prefixes.Apprvl_) + ContractRate).css('background-color', backgroundColor);
}
ValidateSuggestedRate(pageContainer, Prefixes.Apprvl_);
}
function ToggleIsRepoCheckbox(tradeLineKey) {
var creditDate = ($('#isRepoCheckbox' + tradeLineKey).attr('creditDate'));
var creditKey = +($('#isRepoCheckbox' + tradeLineKey).attr('creditKey'));
var dealId = +($('#isRepoCheckbox' + tradeLineKey).attr('dealId'));
var user = ($('#isRepoCheckbox' + tradeLineKey).attr('user'));
var isRepo = $('#isRepoCheckbox' + tradeLineKey).is(':checked');
$.ajax({
type: 'POST',
url: '/api/customer/UpdateRepoStatus?tradeLineKey=' + tradeLineKey + '&creditDate=' + creditDate + '&creditKey=' + creditKey + '&isRepo=' + isRepo + '&dealId=' + dealId + '&user=' + user,
contentType: 'application/json',
success: function () {
location.reload(true);
}
});
AutoDeskerLoadDecision();
}
function noDriversLicenseClick(noDriversLicense) {
CalculateDeskingPage();
GetAdditionalApprovalNotes();
}
function decisionLogicWaivedClick(decisionLogicWaivedCheckBox) {
if ($('#_decisionLogicFlagged').is(':checked') == true) {
if ($(decisionLogicWaivedCheckBox).is(':checked')) {
$('#_decisionLogicWaivedBy').val(GetCurrentUserId());
}
else {
$('#_decisionLogicWaivedBy').val('');
}
}
else {
$(decisionLogicWaivedCheckBox).prop('checked', false);
$('#_decisionLogicWaivedBy').val('');
}
CalculateDeskingPage();
GetAdditionalApprovalNotes();
ValidateRelationshipManagerMode(LoadPageContainer());
}
function uwOverrideOptionClick(control) {
if ($(control).attr('id') == "_isDiesel" || $(control).attr('id') == "_isTruck" || $(control).attr('id') == "_isSuv") {
if ($(control).attr('id') == "_isDiesel") {
$('#_approvalDiesel').prop('checked', $(control).is(':checked'));
}
ApplyVehicleTypeAdjustments();
}
else if ($(control).attr('id') == "_salvageFlag" && $('#_saveApprovalHidden').attr('userIsRelationshipManager') == 'true') {
if ($(control).is(':checked')) {
$('#_savePdsApproval').prop('disabled', true);
}
else {
$('#_savePdsApproval').prop('disabled', false);
}
}
var pageContainer;
pageContainer = LoadPageContainer();
CalculateRisk(pageContainer);
ValidateRelationshipManagerMode(pageContainer);
}
function jobTimeOverrideClick(control) {
if ($(control).is(':checked')) {
$('#_jobTimeAdjustment').val('0');
var jobTime = parseInt($('#_jobTimeInField').val());
if (jobTime > 0) {
var adjustment = GetJobTimeAdjustment(jobTime);
$('#_jobTimeAdjustment').val(adjustment.toString());
}
}
else {
$('#_jobTimeAdjustment').val($('#_jobTimeAdjustment').attr('originalJobTimeAdjustment'));
$('#_jobTimeInField').val('0');
}
var pageContainer;
pageContainer = LoadPageContainer();
CalculateRisk(pageContainer);
}
function GetJobTimeAdjustment(jobTime) {
var riskFactors = JSON.parse($('#_jobTimeAdjustment').attr('jobtimeriskfactors'));
var adjustment = 0;
$.each(riskFactors, function (index, riskFactor) {
if (riskFactor.MinMonths <= jobTime && (riskFactor.MaxMonths == null || jobTime <= riskFactor.MaxMonths)) {
adjustment = riskFactor.RequiredRateOfReturnAdjustment * 100;
return false;
}
});
return adjustment;
}
function jobTimeInFieldChange(control) {
var jobTime = parseInt($(control).val());
var adjustment = 0;
if ($('#_jobTimeOverride').is(':checked')) {
adjustment = GetJobTimeAdjustment(jobTime);
$('#_jobTimeAdjustment').val(adjustment.toString());
var pageContainer;
pageContainer = LoadPageContainer();
CalculateRisk(pageContainer);
}
}
function GetApplicableMaxPayment() {
var maxPayment = parseInt($('#_maxPayment').attr('maxPayment'));
var excessDown = CalculateExcessDownPayment();
var income = parseInt($('#_maxPayment').attr('TotalIncomeCombined'));
if (isNaN(income)) {
income = parseInt($('#_maxPayment').attr('AdjustedIncomeBuyer'));
}
var jsonSettings = $('#_maxPayment').attr('customerTrueDownPtiRiskFactors');
var customerTrueDownPtiRiskFactors = JSON.parse(jsonSettings);
var trueDownMaxPayment = 0;
$.each(customerTrueDownPtiRiskFactors, function (index, customerTrueDownPtiRiskFactor) {
if (customerTrueDownPtiRiskFactor.MinTrueDown <= excessDown && (isNaN(customerTrueDownPtiRiskFactor.MaxDown) || excessDown <= customerTrueDownPtiRiskFactor.MaxTrueDown)) {
trueDownMaxPayment = income * +customerTrueDownPtiRiskFactor.PaymentToIncome;
if (trueDownMaxPayment > +customerTrueDownPtiRiskFactor.MaxPayment) {
trueDownMaxPayment = +customerTrueDownPtiRiskFactor.MaxPayment;
}
}
});
if (trueDownMaxPayment > maxPayment) {
maxPayment = trueDownMaxPayment;
}
$('#_maxPayment').text('$' + maxPayment + '.00');
if ($('#Apprvl_RequireTradeWaived').is(':checked') || $('#Apprvl_RequiresTrade').is(':checked')) {
return maxPayment;
}
var maxPaymentWithOpenAuto = parseFloat($('#_maxPaymentWithOpenAuto').attr('maxPaymentWithOpenAuto'));
if (isNaN(maxPaymentWithOpenAuto) == false
&& $('#Apprvl_RequiresTrade').is(':checked') == false
&& HasOpenAutoBalanceAboveThreshold()) {
return maxPaymentWithOpenAuto;
}
return maxPayment;
}
function InitiateJiveCallToDealership(dealershipUserContactInfo) {
var callInProgress = $('#jiveLoginLink').attr('callInProgress') == 'true';
if (callInProgress) {
return;
}
$('#jiveLoginLink').attr('callInProgress', 'true');
var dealershipUserId = $(dealershipUserContactInfo).attr('dealershipUserId') || null;
var dealershipContactId = $(dealershipUserContactInfo).attr('dealershipContactId') || null;
var destinationNumber = $(dealershipUserContactInfo).attr('phoneNumber');
var url = '../../api/jive/InitiateJiveCallToDealership?userId=' + GetCurrentUserId() + '&dealershipUserId=' + dealershipUserId + '&dealershipContactId=' + dealershipContactId
+ '&dealId=' + getPrimaryKey() + '&dealershipId=' + $('#DealershipId').val() + '&destinationNumber=' + destinationNumber;
$.post(url, function (data) {
var displayJiveLoginLink = false;
if (data == 'success') {
alert('Your phone should ring in the next few seconds. If it doesn\'t please notify development');
}
else if (data == 'unauthorized' || data == 'expired') {
displayJiveLoginLink = true;
}
else if (data == 'error') {
alert('Failed to place call. Development has been notified.');
}
$('#jiveLoginLink').css('display', displayJiveLoginLink ? 'inline' : 'none');
if (displayJiveLoginLink) {
alert('You are not currently logged in to the Jive phone service. Please click the Jive Login link above the dealership phone list.');
}
$('#jiveLoginLink').attr('callInProgress', 'false');
});
}
function ApplyMaxMarkup() {
var maxMarkup = parseInt($('#_maxVehicleMarkup').val());
var estimatedMarkup = parseInt($('#_estimatedMarkup').val());
var cashSellingPrice = parseInt($('#_approvalSalePrice').val());
var newSellingPrice = cashSellingPrice - estimatedMarkup + maxMarkup;
$('#_approvalSalePrice').val(newSellingPrice.toString());
UpdateAmountFinancedTop();
}
function ApplyArchivedApproval() {
var applicationIsDisabled = $('#EdtDlExpnd_contentBlock').attr('applicationDisabled') == 'True';
if (applicationIsDisabled) {
return;
}
var currentArchiveGroup = $('#_dealApprovalArchivesTable').attr('currentArchiveGroup');
if (currentArchiveGroup) {
var $currentArchiveTable = $('#_approvalArchiveTable_' + currentArchiveGroup);
var $salePrice = $('#_approvalSalePrice');
var $loanTerm = $('#_approvalLoanTerm');
var $contractRate = $('#Apprvl_ContractRate');
var $titleAndLicenseFees = $('#_approvalTitleAndLicenseFees');
var $monthlyPayment = $('#_approvalMonthlyPayment');
var $downPayment = $('#Apprvl_DownPayment');
var $maxFinanceOtd = $('#Apprvl_MaxFinancedOtd');
var $netTrade = $('#_approvalNetTrade');
var $acquisitionFee = $('#Apprvl_AcquisitionFee');
$salePrice.val($('#' + $salePrice.attr('id') + '_' + currentArchiveGroup).val());
$salePrice.change();
$loanTerm.val($('#' + $loanTerm.attr('id') + '_' + currentArchiveGroup).val());
$loanTerm.change();
$contractRate.val($('#' + $contractRate.attr('id') + '_' + currentArchiveGroup).val());
$contractRate.change();
$titleAndLicenseFees.val($('#' + $titleAndLicenseFees.attr('id') + '_' + currentArchiveGroup).val());
$titleAndLicenseFees.change();
$monthlyPayment.val($('#' + $monthlyPayment.attr('id') + '_' + currentArchiveGroup).val());
$monthlyPayment.change();
$downPayment.val($('#' + $downPayment.attr('id') + '_' + currentArchiveGroup).val());
$downPayment.change();
$maxFinanceOtd.val($('#' + $maxFinanceOtd.attr('id') + '_' + currentArchiveGroup).val());
$maxFinanceOtd.change();
$netTrade.val($('#' + $netTrade.attr('id') + '_' + currentArchiveGroup).val());
$netTrade.change();
$acquisitionFee.val($('#' + $acquisitionFee.attr('id') + '_' + currentArchiveGroup).val());
$acquisitionFee.change();
var $serviceContractCheckBox = $('#_approvalSellPrimeServiceContract');
if ($serviceContractCheckBox) {
var checkSellServiceContract = $currentArchiveTable.attr('SellPrimeServiceContract') == 'true';
$('#Apprvl_ServiceContract').click();
EvaluateCheckBox($serviceContractCheckBox, checkSellServiceContract);
EvaluateCheckBox($('#_approvalAWD'), $currentArchiveTable.attr('AWD') == 'true');
EvaluateCheckBox($('#_approvalDiesel'), $currentArchiveTable.attr('Diesel') == 'true');
EvaluateCheckBox($('#_approvalTurbo'), $currentArchiveTable.attr('Turbo') == 'true');
EvaluateCheckBox($('#_approvalVehicleAge'), $currentArchiveTable.attr('VehicleAge') == 'true');
if (checkSellServiceContract) {
var serviceContractMonths = $currentArchiveTable.attr('ServiceContractMonths');
$('#_approvalServiceContractPlanOptions option').each(function () {
if (($(this).attr('coveredmonths') || '0') == serviceContractMonths) {
$('#_approvalServiceContractPlanOptions').val($(this).val());
SelectServiceContract('approval');
return false;
}
});
}
$('#_approvalApplyServiceContract').click();
}
var $sellPrimeGapCheckBox = $('#_approvalSellPrimeGap');
if ($sellPrimeGapCheckBox) {
$('#Apprvl_GapFee').click();
var $gapFeeArchived = $('#Apprvl_GapFee' + '_' + currentArchiveGroup);
var checkGapFee = $currentArchiveTable.attr('SellPrimeGap') == 'true';
EvaluateCheckBox($sellPrimeGapCheckBox, checkGapFee);
$('#_approvalApplyGap').click();
}
var $gpsRequired = $('#Apprvl_RequireGpsDevice');
var $gpsWaived = $('#Apprvl_RequireGpsWaived');
var $tradeRequired = $('#Apprvl_RequiresTrade');
var $tradeWaived = $('#Apprvl_RequireTradeWaived');
var $poiWaived = $('#_proofOfIncomeWaived');
var $voeWaived = $('#_verificationOfEmploymentWaived');
var $gpsRequiredManuallyBy = $('#Apprvl_RequireGpsManuallyBy');
var $gpsWaivedManuallyBy = $('#Apprvl_RequireGpsWaivedManuallyBy');
var $tradeWaivedManuallyBy = $('#Apprvl_RequireTradeWaivedManuallyBy');
var $poiWaivedManuallyBy = $('#_proofOfIncomeWaivedManuallyBy');
var $voeWaivedManuallyBy = $('#_verificationOfEmploymentWaivedManuallyBy');
$gpsRequired.prop('checked', $('#' + $gpsRequired.attr('id') + '_' + currentArchiveGroup).attr('ischecked') == 'true');
$gpsRequiredManuallyBy.val($('#' + $gpsRequired.attr('id') + '_' + currentArchiveGroup).attr('setManuallyBy'));
$gpsWaived.prop('checked', $('#' + $gpsWaived.attr('id') + '_' + currentArchiveGroup).attr('ischecked') == 'true');
$gpsWaivedManuallyBy.val($('#' + $gpsWaived.attr('id') + '_' + currentArchiveGroup).attr('setManuallyBy'));
$tradeRequired.prop('checked', $('#' + $tradeRequired.attr('id') + '_' + currentArchiveGroup).attr('ischecked') == 'true');
$tradeWaived.prop('checked', $('#' + $tradeWaived.attr('id') + '_' + currentArchiveGroup).attr('ischecked') == 'true');
$tradeWaivedManuallyBy.val($('#' + $tradeWaived.attr('id') + '_' + currentArchiveGroup).attr('setManuallyBy'));
$poiWaived.prop('checked', $('#' + $poiWaived.attr('id') + '_' + currentArchiveGroup).attr('ischecked') == 'true');
$poiWaivedManuallyBy.val($('#' + $poiWaived.attr('id') + '_' + currentArchiveGroup).attr('setManuallyBy'));
$voeWaived.prop('checked', $('#' + $voeWaived.attr('id') + '_' + currentArchiveGroup).attr('ischecked') == 'true');
$voeWaivedManuallyBy.val($('#' + $voeWaived.attr('id') + '_' + currentArchiveGroup).attr('setManuallyBy'));
var pageContainer = LoadPageContainer();
CalculateRequiredRateOfReturn(pageContainer);
ValidateApproval(pageContainer);
SetGpsAddendumFormCheckBoxEnabled(null);
GetAdditionalApprovalNotes();
ValidateRelationshipManagerMode(pageContainer);
}
}
function DisplayPreviousArchivedApproval() {
var maxArchiveGroup = $('#_dealApprovalArchivesTable').attr('maxArchiveGroup');
if (parseInt(maxArchiveGroup) > 1) {
var currentArchiveGroup = $('#_dealApprovalArchivesTable').attr('currentArchiveGroup');
$('#_dealApprovalArchivesTable tr[archiveGroup=' + currentArchiveGroup + ']').toggle();
var decrementedArchiveGroup = currentArchiveGroup == '1' ? maxArchiveGroup : parseInt(currentArchiveGroup) - 1;
$('#_dealApprovalArchivesTable').attr('currentArchiveGroup', decrementedArchiveGroup);
$("[name='approvalArchiveCountTextBox']").val(decrementedArchiveGroup + ' of ' + maxArchiveGroup);
$('#_dealApprovalArchivesTable tr[archiveGroup=' + decrementedArchiveGroup + ']').toggle();
}
}
function DisplayNextArchivedApproval() {
var maxArchiveGroup = $('#_dealApprovalArchivesTable').attr('maxArchiveGroup');
if (parseInt(maxArchiveGroup) > 1) {
var currentArchiveGroup = $('#_dealApprovalArchivesTable').attr('currentArchiveGroup');
$('#_dealApprovalArchivesTable tr[archiveGroup=' + currentArchiveGroup + ']').toggle();
var incrementedArchiveGroup = currentArchiveGroup == maxArchiveGroup ? '1' : parseInt(currentArchiveGroup) + 1;
$('#_dealApprovalArchivesTable').attr('currentArchiveGroup', incrementedArchiveGroup);
$("[name='approvalArchiveCountTextBox']").val(incrementedArchiveGroup + ' of ' + maxArchiveGroup);
$('#_dealApprovalArchivesTable tr[archiveGroup=' + incrementedArchiveGroup + ']').toggle();
}
}
$(function () {
var $gpsRequired = $('#Apprvl_RequireGpsDevice');
var $gpsWaived = $('#Apprvl_RequireGpsWaived');
var $tradeRequired = $('#Apprvl_RequiresTrade');
var $tradeWaived = $('#Apprvl_RequireTradeWaived');
var $poiWaived = $('#_proofOfIncomeWaived');
var $voeWaived = $('#_verificationOfEmploymentWaived');
var inputIds = ['_approvalSalePrice', '_approvalLoanTerm', '_approvalSalesTax', 'Apprvl_ContractRate', '_approvalTitleAndLicenseFees',
'_approvalMonthlyPayment', 'Apprvl_DownPayment', 'Apprvl_MaxFinancedOtd', '_approvalNetTrade', 'Apprvl_AcquisitionFee',
'_approvalFrontEndFees', 'Apprvl_ServiceContract', 'Apprvl_GapFee',
'Apprvl_RequireGpsDevice', 'Apprvl_RequireGpsWaived', 'Apprvl_RequiresTrade', 'Apprvl_RequireTradeWaived', '_proofOfIncomeWaived', '_verificationOfEmploymentWaived'];
for (var i = 0; i < inputIds.length; i++) {
$('[id*="' + inputIds[i] + '_"]').hover(function () {
var archiveIdComponents = $(this).attr('id').split('_');
var approvalId = archiveIdComponents[0] + '_' + archiveIdComponents[1];
$('#' + approvalId).attr('previousBackgroundColor', $('#' + approvalId).css('backgroundColor'));
$('#' + approvalId).css('background-color', 'orange');
var $checkboxLabels = $('#' + approvalId).parent().find('label');
if ($checkboxLabels.length) {
var $checkboxLabel = $($checkboxLabels[0]);
$checkboxLabel.attr('previousBackgroundColor', $('#' + approvalId).css('backgroundColor'));
$checkboxLabel.css('background-color', 'orange');
}
$(this).attr('previousBackgroundColor', $(this).css('backgroundColor'));
$(this).css('background-color', 'orange');
}, function () {
var archiveIdComponents = $(this).attr('id').split('_');
var approvalId = archiveIdComponents[0] + '_' + archiveIdComponents[1];
$('#' + approvalId).css('background-color', $('#' + approvalId).attr('previousBackgroundColor'));
var $checkboxLabels = $('#' + approvalId).parent().find('label');
if ($checkboxLabels.length) {
var $checkboxLabel = $($checkboxLabels[0]);
$checkboxLabel.css('background-color', $('#' + approvalId).attr('previousBackgroundColor'));
}
$(this).css('background-color', $(this).attr('previousBackgroundColor'));
});
}
UpdateAmountFinancedTop();
});
function ValidateRelationshipManagerMode(pageContainer) {
var disableSave = false;
var customerAddressesAreDirty = ($('#_saveApprovalHidden').attr('customerAddressesAreDirty') || 'false') == 'true';
var customerIncomeDataIsDirty = ($('#_saveApprovalHidden').attr('customerIncomeDataIsDirty') || 'false') == 'true';
var addressVerificationOverridden = $('#_saveApprovalHidden').attr('addressVerificationOverridden') == 'true';
var calculatedYield = parseFloat($('#Apprvl_CalculatedYield').attr('yield'));
var standardYield = parseFloat($('#Apprvl_CalculatedYield').attr('standardyield'));
var requiredRateOfReturn = parseFloat($('#Apprvl_RequiredRateOfReturn').attr('requiredrateofreturn'));
var currentPayment = parseFloat($('#_approvalMonthlyPayment').val());
var minimumDownPayment = GetRequiredDown(false);
var minimumDownPaymentWithException = GetRequiredDown(true);
var estimatedDown = parseInt($('#_estimatedDown').val());
var estimatedMarkup = parseInt($('#_estimatedMarkup').val());
var allowedRrrDiscrepancy = +($('#Apprvl_RequiredRateOfReturn').attr('allowedRrrDiscrepancy') || '0');
var dealerTypeLoanTermLimit = +$('#_saveApprovalHidden').attr('dealerTypeLoanTermLimit');
var dealerTypeName = GetDealerType().toString();
var minimumIncomeMet = ($('#_saveApprovalHidden').attr('minimumIncomeMet') || 'false') == 'true';
var minMonthlyPayment = +$('#_saveApprovalHidden').attr('minMonthlyPayment');
var maxMonthlyPayment = +$('#_saveApprovalHidden').attr('maxMonthlyPayment');
var approvalEnabledComment = $('#_saveApprovalHidden').attr('approvalEnabledComment');
var minMonthlyPaymentBuffer = minMonthlyPayment / 50;
var minMonthlyPaymentAdjusted = Math.floor(minMonthlyPayment - minMonthlyPaymentBuffer);
var auctionValue = parseInt($('#_adjustedAuctionValue').val());
var riskFee = parseInt($('#Apprvl_AcquisitionFee').val());
var minRiskFee = parseFloat($('#Apprvl_AcquisitionFee').attr('minRiskFee'));
var maxRiskFee = parseFloat($('#Apprvl_AcquisitionFee').attr('maxriskfee'));
var requiredRiskFee = GetRequiredRiskFee();
var userIsExecutiveOrITAdmin = $('#_saveApprovalHidden').attr('userIsExecutiveOrITAdmin') == 'true';
if (userIsExecutiveOrITAdmin) {
allowedRrrDiscrepancy = 0;
dealerTypeLoanTermLimit = +$('#_saveApprovalHidden').attr('dealerTypeLoanTermLimitForRms');
minimumIncomeMet = $('#_saveApprovalHidden').attr('minimumIncomeMet') == 'true';
}
var maxVehicleAge = parseInt($('#_purchaseYear').attr('MaxVehicleAge'));
var today = new Date();
var modelYear = today.getFullYear() - maxVehicleAge;
var statusPopulated = true;
if (pageContainer.approval.selectedTier == 1006) {
$('#_yieldRRRdifference').text('SWITCH CARS');
$('#_dealStatusLabel').css('background-color', 'lightgreen');
$('#_savePdsApproval').css('background-color', 'lightgreen');
$('#_dealStatusLabel').text('SWITCH CARS');
$('#_savePdsApproval').prop('disabled', false);
}
else {
if (isNaN(maxRiskFee) == false && isNaN(estimatedMarkup) == false) {
if (estimatedMarkup > maxRiskFee) {
maxRiskFee = estimatedMarkup;
}
}
disableSave = true;
var apr = parseFloat($('#Apprvl_ContractRate').val());
var minAdjustedAuctionValue = parseInt($('#_adjustedAuctionValue').attr('MinAdjustedAuctionValue'));
if (isNaN(minAdjustedAuctionValue)) {
minAdjustedAuctionValue = 3000;
}
if (isNaN(minRiskFee)) {
minRiskFee = 0;
}
var currentAdvanceOverACV = parseFloat($('#_currentAdvanceOverACV').text());
if (isNaN(currentAdvanceOverACV)) {
currentAdvanceOverACV = 0;
}
var minimumDownPaymentException = false;
if (minimumDownPaymentWithException < minimumDownPayment && estimatedDown < minimumDownPayment) {
minimumDownPaymentException = true;
}
var backEndCost = 0;
backEndCost += +$('#Apprvl_ServiceContract').val();
backEndCost += +$('#Apprvl_GapFee').val();
var dealerRating = +$('#Apprvl_DealerPalRating').val();
if (isNaN(dealerRating)) {
dealerRating = 75;
}
var minApr = +$('#Apprvl_ContractRate').attr('minApr');
if (isNaN(minApr)) {
minApr = 15;
}
var outOfStateBuyer = $('#_additionalApprovalNotes').attr('outOfStateBuyer');
if (outOfStateBuyer == 'True') {
$('#_dealStatusLabel').text('Out of state buyer.');
}
else if (customerIncomeDataIsDirty) {
$('#_dealStatusLabel').text('Customer income data has been updated, you must refresh the page');
}
else if (currentAdvanceOverACV > 0) {
$('#_dealStatusLabel').text('The max advance for this deal is ' + $('#_maxNetCheckToDealer').text());
}
else if (riskFee < requiredRiskFee) {
$('#_dealStatusLabel').text('The min risk fee is $' + requiredRiskFee);
}
else if (isNaN(auctionValue) == false && auctionValue < minAdjustedAuctionValue) {
$('#_dealStatusLabel').text('Auction value is less than $' + minAdjustedAuctionValue);
}
else if ($('#_saveApprovalHidden').attr('reportWithheld') == 'True') {
$('#_dealStatusLabel').text('Credit report withheld by Experian, call underwriting for approval');
}
else if ($('#_saveApprovalHidden').attr('hasEffectiveOfacAlert') == 'true') {
$('#_dealStatusLabel').text('Credit report triggered an OFAC (terrorist) alert, call underwriting for approval');
}
else if ($('#_saveApprovalHidden').attr('hasSeriousFraudAlert') == 'true') {
$('#_dealStatusLabel').text($('#_saveApprovalHidden').attr('seriousFraudAlertMessage'));
}
else if (pageContainer.purchase.year < modelYear) {
$('#_dealStatusLabel').text('Vehicle is too old for approval');
}
else if (!minimumIncomeMet) {
$('#_dealStatusLabel').text('Minimum income is not met, call underwriting for approval');
}
else if ($('#_saveApprovalHidden').attr('autochecktitlewarning') == 'true') {
$('#_dealStatusLabel').text('Autocheck contains a title warning, call underwriting for approval');
}
else if (pageContainer.approval.selectedTier == 0) {
$('#_dealStatusLabel').text('A tier is not selected, try selecting a tier, ensure that credit is pulled, or run desker');
}
else if ($('#_salvageFlag').is(':checked')) {
$('#_dealStatusLabel').text('Vehicle is a salvage, call underwriting for approval');
}
else if ($('#Apprvl_RequiredRateOfReturn').val() == 'auc') {
$('#_dealStatusLabel').text('Vehicle values have not been pulled');
}
else if (backEndCost > 2000) {
$('#_dealStatusLabel').text('Total backend cannot exceed $4,000');
}
else if (currentPayment < minMonthlyPaymentAdjusted) {
$('#_dealStatusLabel').text('Monthly payment must be at least $' + minMonthlyPaymentAdjusted + ', call underwriting for approval');
}
else if (DealerTypeLoanTermLimitExceeded(dealerTypeLoanTermLimit)) {
$('#_dealStatusLabel').text('Loan term cannot exceed ' + dealerTypeLoanTermLimit + ' months for ' + dealerTypeName + ' dealers, this deal can only be approved by an executive');
}
else if (currentPayment > (GetApplicableMaxPayment() * 1.01)) {
$('#_dealStatusLabel').text('Current payment exceeds the max allowed');
}
else if (maxRiskFee > 0 && riskFee > maxRiskFee) {
$('#_dealStatusLabel').text('The max risk fee for this deal is ' + maxRiskFee);
}
else if ($('#_saveApprovalHidden').attr('buyeraddressdiscrepancy') == 'True') {
$('#_dealStatusLabel').text('Buyer address discrepancy, call underwriting for approval');
}
else if ($('#_vehicleMileageAdjustment').val() == "TD") {
$('#_dealStatusLabel').text('Term is too long for this vehicle, try reducing term');
}
else if ($('#Apprvl_RequiredRateOfReturn').val() == 'CLTV') {
$('#_dealStatusLabel').text('CLTV is too high, try increasing down');
}
else if (estimatedDown < minimumDownPaymentWithException) {
$('#_dealStatusLabel').text('True down payment of ' + minimumDownPayment + ' is not met');
}
else if (standardYield < requiredRateOfReturn + allowedRrrDiscrepancy) {
$('#_dealStatusLabel').text('Required rate of return not met, make sure a tier is selected or try adjusting term, APR, and/or risk fee');
}
else if ($('#Apprvl_RequiredRateOfReturn').val() == 'TD') {
$('#_dealStatusLabel').text('Deal marked as turn down, try lowering term or adjusting other variables in the approval');
}
else if (isNaN(apr) || apr < minApr) {
$('#_dealStatusLabel').text('APR cannot be less than ' + minApr);
}
else if ((($('#Apprvl_RequireGpsWaivedManuallyBy').val() != '' || $('#Apprvl_RequireGpsManuallyBy').val() != ''))
|| ($('#Apprvl_RequireTradeWaivedManuallyBy').val() != '')
|| ($('#_proofOfIncomeWaivedManuallyBy').val() != '')
|| ($('#_verificationOfEmploymentWaivedManuallyBy').val() != '')
|| ($('#_decisionLogicWaivedBy').val() != '')) {
$('#_dealStatusLabel').text('One or more of the following have been manually set/waived: GPS, Trade-In, DecisionLogic, POI, VOE. The deal can only be approved by an executive.');
}
else if ($('#_isLocked').is(':checked') && !(pageContainer.approval.selectedTier == 1002 || pageContainer.approval.selectedTier == 1006)) {
$('#_dealStatusLabel').text('This deal is locked and needs to be unlocked by an executive to make changes');
}
else {
disableSave = false;
statusPopulated = false;
}
if (approvalEnabledComment) {
approvalEnabledComment = approvalEnabledComment.replace('auto-select a tier for this deal - ', 'save deal - ');
if (statusPopulated) {
approvalEnabledComment += ". " + $('#_dealStatusLabel').text();
}
$('#_dealStatusLabel').text(approvalEnabledComment);
disableSave = true;
}
if (disableSave == true) {
$('#_dealStatusLabel').css('background-color', badBackgroundColor);
$('#_savePdsApproval').css('background-color', badBackgroundColor);
$('#_saveApprovalHidden').attr('disabledByRMValidation', 'true');
}
else {
$('#_dealStatusLabel').css('background-color', 'lightgreen');
$('#_savePdsApproval').css('background-color', 'lightgreen');
if (minimumDownPaymentException == true) {
$('#_dealStatusLabel').text('True down exception has been applied, deal can still be saved');
}
else if (calculatedYield < requiredRateOfReturn + allowedRrrDiscrepancy && standardYield >= requiredRateOfReturn + allowedRrrDiscrepancy) {
$('#_dealStatusLabel').text('Risk-Fee exception, deal can be saved even though RRR is not met');
}
else {
$('#_dealStatusLabel').text('Approval meets all terms and can be saved');
}
$('#_saveApprovalHidden').attr('disabledByRMValidation', 'false');
}
RefreshDealSaveButtons();
}
}
function UpdateTradeYear() {
SaveStructureValueAjax('TradeYear', $('#DlrStrctr_TradeYear').val());
}
function UpdateTradeMake() {
SaveStructureValueAjax('TradeMake', $('#DlrStrctr_TradeMake').val());
}
function UpdateTradeModel() {
SaveStructureValueAjax('TradeModel', $('#DlrStrctr_TradeModel').val());
}
$(function () {
$('#_savePdsApproval').click(function () {
SaveStructureValueAjax('AdjustedAuctionValue', $('#_adjustedAuctionValue').val());
});
});
function SelectVehicle() {
var selectedElement = $('#_vehicleTrimDropDown option:selected');
if (selectedElement) {
var selectedVehicle = $.parseJSON(selectedElement.attr('vehicle'));
$('#_wholesaleAverageAdjusted').val(selectedVehicle.WholesaleAverageAdjusted);
$('#_mileageAdjustment').val(selectedVehicle.WholesaleAverageMileageAdjustment);
$('#_historyAdjustment').val(selectedVehicle.WholesaleAverageHistoryAdjustment);
$('#_addDeductAdjustment').val(selectedVehicle.WholesaleAverageAddDeductAdjustment);
$('#_regionalAdjustment').val(selectedVehicle.WholesaleAverageRegionalAdjustment);
var dealerBook = parseInt($('#_bookValue').val());
if (isNaN(dealerBook) || dealerBook <= 0) {
$('#_bookValue').val(selectedVehicle.WholesaleAverageAdjusted);
}
$.ajax({
type: 'POST',
url: '../../api/BlackBook/SelectVehicle?blackBookVehicleId=' + selectedVehicle.BlackBookVehicleId,
contentType: 'application/json',
success: function () {
CalculateDeskingPage();
}
});
}
}