﻿function isNumber(num) {

  var strMsg = '';

	for (var i = 0; i < num.value.length; i++) {

	  if ((num.value.substring(i, i + 1) < "0" || "9" < num.value.substring(i, i + 1)) && num.value.substring(i, i + 1) != ".") {
		  strMsg = 'Sorry, the value you entered is not a valid number.';
		}
	}

	if (strMsg.length == 0) {
	    return true;
	} else {
	    alert(strMsg);
		return false;
	}
}


function calculate() {

    if (document.forms[0].amount.value.length == 0 || document.forms[0].downpayment.value.length == 0 || document.forms[0].tradein.value.length == 0) { return false; }
    if (!isNumber(document.forms[0].amount) || !isNumber(document.forms[0].downpayment) || !isNumber(document.forms[0].tradein)) { return false; }

    var interest = document.forms[0].rate.value / 100.0;
    interest /= 12

    //loan
	var total = document.forms[0].amount.value - document.forms[0].downpayment.value - document.forms[0].tradein.value - document.forms[0].cashback.value;
	document.forms[0].loan.value = total;
	
    //payment
	var temp = 1;
	for(var j = 0; j < document.forms[0].term.value; j++) {
		temp = temp * (1 + interest);
	}

	var payment;
	
	if(interest == 0) {
		var monthlypmt = total / document.forms[0].term.value;
		payment = Math.round((monthlypmt*100)/100)
	} else {
		payment = '' + .01 * Math.round(100*(total * temp * interest) / (temp - 1));
	}


  	//format value
	var wholenum = true;
	for (i = 0; i < payment.length; i++) {
		if (payment.charAt(i) == '.') wholenum = false;
	}

  	if (wholenum) {
	  	payment = payment + ".00";
	} else {
	  	if (payment.charAt(payment.length-2) == ".") {
		  	payment = payment + "0";
		} else {
		  	payment = Math.round(payment*100)/100;
		}
    }
	
	//display payment
	document.forms[0].payment.value = payment;
}

