
// Loan section
var salesPriceLoan = 0.00;
var salesTaxLoan = 0.00;
var loanTermLoan = 0.00;
var interestRateLoan = 0.00;
var downPaymentLoan = 0.00;
var tradeInValueLoan = 0.00;
var rebatesLoan = 0.00;
// Lease section
var salesPriceLease = 0.00;
var salesTaxLease = 0.00;
var loanTermLease = 0.00;
var interestRateLease = 0.00;
var residualValueLease = 0.00;
var downPaymentLease = 0.00;
var tradeInValueLease = 0.00;
var rebatesLease = 0.00;

function doCalculation() {
	var warrning = document.getElementById("warrning");
	warrning.style.display = "none";
	
	// Loan code
	
	salesPriceLoan = 0.00;
	salesTaxLoan = 0.00;
	loanTermLoan = 0.00;
	interestRateLoan = 0.00;
	downPaymentLoan = 0.00;
	tradeInValueLoan = 0.00;
	rebatesLoan = 0.00;

	var loan = document.getElementById("loan");
	if (doLoanValidation()) {
		if (interestRateLoan >= 1) {
			interestRateLoan = interestRateLoan / 100;
		}

		interestRateLoan = interestRateLoan / 12;

		if (salesTaxLoan >= 1) {
			salesTaxLoan = salesTaxLoan / 100;
		}
		var loanAmt = (salesPriceLoan * (1 + salesTaxLoan)) - downPaymentLoan - tradeInValueLoan - rebatesLoan;
		var loanPayment = loanAmt * (interestRateLoan * Math.pow(1 + interestRateLoan, loanTermLoan)) / (Math.pow(1 + interestRateLoan, loanTermLoan) - 1);
		if (loanPayment < 0.00)
			loanPayment = 0.00;
		loan.innerHTML = "$" + Math.round(loanPayment * 100) / 100;
	} else {
		loan.innerHTML = "!";
		warrning.style.display = "block";
	}
	
	// Lease code
	
	salesPriceLease = 0.00;
	salesTaxLease = 0.00;
	loanTermLease = 0.00;
	interestRateLease = 0.00;
	residualValueLease = 0.00;
	downPaymentLease = 0.00;
	tradeInValueLease = 0.00;
	rebatesLease = 0.00;

	var lease = document.getElementById("lease");
	if (doLeaseValidation()) {

		if (salesTaxLease >= 1) {
			salesTaxLease = salesTaxLease / 100;
		}
		
		var clearPrice = salesPriceLease - downPaymentLease - tradeInValueLease - rebatesLease;
		var loanAmount = clearPrice - residualValueLease; 
		var basePayment = loanAmount / loanTermLease;
		basePayment = Math.round(basePayment * 100) / 100;
		var moneyFactor = interestRateLease / 2400;
		moneyFactor = Math.round(moneyFactor * 100000) / 100000;
		var leasePayment = (clearPrice + residualValueLease) * moneyFactor + basePayment;
		leasePayment = Math.round(leasePayment * 100) / 100;
		leasePayment = leasePayment + leasePayment * salesTaxLease;
		if (leasePayment < 0.00)
			leasePayment = 0.00;
		lease.innerHTML = "$" + Math.round(leasePayment * 100) / 100;
	} else {
		lease.innerHTML = "!";
		warrning.style.display = "block";
	}
	
}

// Lease code

function doLeaseValidation() {
	if (doFieldValidation(document.frmCalculator._txtSalesPriceLease, false)) {
		salesPriceLease = parseFloat(document.frmCalculator._txtSalesPriceLease.value);
	}
	else {
		return false;
	}
	
	if (doFieldValidation(document.frmCalculator._txtSalesTaxLease, true)) {
		salesTaxLease = parseFloat(document.frmCalculator._txtSalesTaxLease.value);
	}
	else if (isEmpty(document.frmCalculator._txtSalesTaxLease.value)) {
		salesTaxLease = 0;
	}
	else {
		return false;
	}
	
	loanTermLease = parseFloat(document.frmCalculator._ddlTermLease.options[document.frmCalculator._ddlTermLease.selectedIndex].value);

	if (doFieldValidation(document.frmCalculator._txtInterestRateLease, false)) {
		interestRateLease = parseFloat(document.frmCalculator._txtInterestRateLease.value);
	}
	else {
		return false;
	}
	
	if (doFieldValidation(document.frmCalculator._txtResidualValueLease, false)) {
		residualValueLease = parseFloat(document.frmCalculator._txtResidualValueLease.value);
	}
	else {
		return false;
	}
		 
	if (doFieldValidation(document.frmCalculator._txtDownPaymentLease, true)) {
		downPaymentLease = parseFloat(document.frmCalculator._txtDownPaymentLease.value);
	}
	else if (isEmpty(document.frmCalculator._txtDownPaymentLease.value)) {
		downPaymentLease = 0;
	}	
	else {
		return false;
	}

	if (doFieldValidation(document.frmCalculator._txtTradeInValueLease, true)) {
		tradeInValueLease = parseFloat(document.frmCalculator._txtTradeInValueLease.value);
	}
	else if (isEmpty(document.frmCalculator._txtTradeInValueLease.value)) {
		tradeInValueLease = 0;
	}	
	else {
		return false;
	}

	if (doFieldValidation(document.frmCalculator._txtRebatesLease, true)) {
		rebatesLease = parseFloat(document.frmCalculator._txtRebatesLease.value);
	}
	else if (isEmpty(document.frmCalculator._txtRebatesLease.value)) {
		rebatesLease = 0;
	}	
	else {
		return false;		
	}
		
	return true;
}

// Loan code

function doLoanValidation() {

	if (doFieldValidation(document.frmCalculator._txtSalesPriceLoan, false)) {
		salesPriceLoan = parseFloat(document.frmCalculator._txtSalesPriceLoan.value);
	}
	else {
		return false;
	}
	
	if (doFieldValidation(document.frmCalculator._txtSalesTaxLoan, true)) {
		salesTaxLoan = parseFloat(document.frmCalculator._txtSalesTaxLoan.value);
	}
	else if (isEmpty(document.frmCalculator._txtSalesTaxLoan.value)) {
		salesTaxLoan = 0;
	}
	else {
		return false;
	}
	
	loanTermLoan = parseFloat(document.frmCalculator._ddlTermLoan.options[document.frmCalculator._ddlTermLoan.selectedIndex].value);
	
	if (doFieldValidation(document.frmCalculator._txtInterestRateLoan, false)) {
		interestRateLoan = parseFloat(document.frmCalculator._txtInterestRateLoan.value);
	}
	else {
		return false;
	}
	 
	if (doFieldValidation(document.frmCalculator._txtDownPaymentLoan, true)) {
		downPaymentLoan = parseFloat(document.frmCalculator._txtDownPaymentLoan.value);
	}
	else if (isEmpty(document.frmCalculator._txtDownPaymentLoan.value)) {
		downPaymentLoan = 0;
	}	
	else {
		return false;
	}

	if (doFieldValidation(document.frmCalculator._txtTradeInValueLoan, true)) {
		tradeInValueLoan = parseFloat(document.frmCalculator._txtTradeInValueLoan.value);
	}
	else if (isEmpty(document.frmCalculator._txtTradeInValueLoan.value)) {
		tradeInValueLoan = 0;
	}	
	else {
		return false;
	}

	if (doFieldValidation(document.frmCalculator._txtRebatesLoan, true)) {
		rebatesLoan = parseFloat(document.frmCalculator._txtRebatesLoan.value);
	}
	else if (isEmpty(document.frmCalculator._txtRebatesLoan.value)) {
		rebatesLease = 0;
	}	
	else {
		return false;		
	}
	
	return true;
}



function doFieldValidation(field, isEmptyAllowed) {
		var input = field.value;
		
		if (!isEmptyAllowed && isEmpty(input)) {
			select(field);
			return false;
		} else if (isEmptyAllowed && isEmpty(input)) {
			return false;			
		}
		
		input = parseFloat(field.value, 10);
		if (isNaN(input) || (input != field.value)) {
			alert(field.name + " must be a number.");
			select(field);
			return false;
		}
		return true;
}
function isEmpty(inputStr) {
	if (inputStr == "" || inputStr == null) {
		return true;
	}
	return false;
}
function select(field) {
	field.focus();
	field.select();
}

