<!-- Hide from old browsers


var EC1=0;
var EC2=0;
var EC3=0;
var EC4=0;
var EC5=0;
var EC6=0;
var EC7=0;
var EC8=0;
var NetCap;
var TotalSavings;
var ACCStream;
var ResidualValue;
var LuxuryTax;
var CapTax;
var MonthlyPayment;
var StreamPayment;
var CapPayment;
var ACCCap;
var Lux;
var PurchaseAmt;
var PeriodicRate;
var AmtFinanced;
var EndLoanVal;
var RR;
var C3;
var C4;
var C5;
var C6;
var C8;
var C9;
var C10;
var C11;
var C13;
var C14;
var E3;
var E4;
var E5;
var E6;
var DDresid=2;
var DDtaxmeth=1;
var DDleaseterm=1;
var DDloanterm=1;


function error1() {
	alert("You must enter either an MSRP or Best Offer or both.");
}

function error2() {
	alert("Lease term must be 12 months or more.");
}

function error3() {
	alert("Double-check residual - It seems low.");
}

function error4() {
	alert("Double-check residual - It seems high.");
}

function error5() {
	alert("Double-check money factor - It seems too low.");
}

function error6() {
	alert("MSRP needed if you are using % residual.");
}

function error7() {
	alert("Loan term must be 12 months or more.");
}

function error8() {
	alert("Ha ha!");
}


function PMT(r,n,PV) {
	return (-PV*r)/(1-Math.pow(1+r,-n));
}

function ROUNDUP(n,e) {
	n = n * Math.pow(10,e);
	n = Math.ceil(n);
	n = n / Math.pow(10,e);
	return n;
}

function MONEY(num) {
	num = num * Math.pow(10,2);
	num = Math.round(num);  // 100.
	if (num%100==0) return num/Math.pow(10,2) + ".00";
	if (num%10==0) return num/Math.pow(10,2) + "0";
	return num/Math.pow(10,2);
}

function main() {
DDleaseterm = document.form.T1.selectedIndex;
DDloanterm = document.form.T2.selectedIndex;
C3 = 1*document.form.MSRP.value;
C4 = 1*document.form.DBO.value;
C5 = 1*document.form.NTI.value;
C6 = 1*document.form.STR.value;
C8 = 1*document.form.AF.value;
C9 = 1*document.form.CCR.value;
C11 = 1*document.form.MF.value;
C13 = Residual();

E3 = 1*document.form.OF.value;
E4 = 1*document.form.DP.value;
E6 = 1*document.form.APR.value;

if (C3==0&&C4==0&&EC1==0) {error1(); EC1=1; return;}
if (C10()<12&&EC2==0) {error2(); EC2=1; return;}
if (C11<.00005&&EC5==0) {error5(); EC5=1; return;}
if (DDresid==2&&C3==0&&EC6==0) {error6(); EC6=1; return;}
if (E5()<12&&EC7==0) {error7(); EC7=1; return;}

LuxuryTax=(C4>0)?((((C4-38000)*.04)>0)?((C4-38000)*.04):0):((((C3-38000)*.04)>0)?(C3-38000)*.04:0);
NetCap=C9/(1+(C6/100));
ACCStream=C4==0?C3+C8+LuxuryTax-NetCap-C5:C4+C8+LuxuryTax-NetCap-C5;
ResidualValue=DDresid==1?C13:C3*(C13/100);
if (ResidualValue<(.25*C4)&&EC3==0) {error3(); EC3=1; return;}
if (ResidualValue>(.85*C4)&&ResidualValue>(.85*C3)&&EC4==0)
	{error4(); EC4=1; return;}
MonthlyPayment=((ACCStream-ResidualValue)/C10())+((ACCStream+ResidualValue)*C11);
StreamPayment=MonthlyPayment*(1+(C6/100));

CapTax=C4==0?(C3+LuxuryTax-C5)*(C6/100):(C4+LuxuryTax-C5)*(C6/100);
ACCCap=C4==0?C3+C8+LuxuryTax-C9-C5+CapTax:C4+C8+LuxuryTax-C9-C5+CapTax;
CapPayment=((ACCCap-ResidualValue)/C10)+((ACCCap+ResidualValue)*C11);

Lux=C4>0?(((C4-38000)*.04)>0?(C4-38000)*.04:0):(((C3-38000)*.04)>0?(C3-38000)*.04:0);
PurchaseAmt=(C4==0&&C3==0)?-1:(C4==0?(C3+E3+Lux)*(1+(C6/100)):(C4+E3+Lux)*(1+(C6/100)));
if (PurchaseAmt<0&&EC8==0) {error8(); EC8=1; return;}
PeriodicRate=(E6/100)/12;
AmtFinanced=PurchaseAmt-E4-C5;

document.form.PWSTa.value = MONEY(C16());
document.form.PWSTb.value = MONEY(E16());

document.form.MSRP.value = MONEY(C3);
document.form.DBO.value = MONEY(C4);
document.form.NTI.value = MONEY(C5);
document.form.AF.value = MONEY(C8);
document.form.CCR.value = MONEY(C9);
if (DDresid==1) document.form.PoD.value = MONEY(C13);
document.form.OF.value = MONEY(E3)
document.form.DP.value = MONEY(E4);


EC1=EC2=EC3=EC4=EC5=EC6=EC7=EC8=0;
}


function C16() {
	return StreamPayment;
}


function E16() {
	return Math.abs(PMT(PeriodicRate,E5(),AmtFinanced));
}

function C10() {
	if (DDleaseterm==0)
		return 24;
	if (DDleaseterm==1)
		return 36;
	if (DDleaseterm==2)
		return 48;
	if (DDleaseterm==3)
		return 60;
}

function E5() {
	if (DDloanterm==0)
		return 24;
	if (DDloanterm==1)
		return 36;
	if (DDloanterm==2)
		return 48;
	if (DDloanterm==3)
		return 60;
}

function Residual() {
if (C10()==24) return 57.0;
if (C10()==36) return 50.0;
if (C10()==48) return 44.0;
return 38.0;
}


// -->


