// Mortgage Payment Scripts v1.0  11.10.04

function checkNumberEntry(str,min,max,msg) {
	if (str==null || str.length==0) {
		msg+=" is blank. You must fill in this field.";
		alert(msg); return false
	}
  for (var i=0; i<str.length; i++) {
    var curr_ch = str.substring(i,i+1)
    if ((curr_ch<'0' || curr_ch>'9') && curr_ch!='.') {
	    msg+=" should only contain numbers. \nYou entered: "+input.value;
      alert(msg);return false
    }
  }
  if ((min!=-9999) && str<min) {
	  msg+=" is too low: "+str+". \nYou should only enter values greater than "+min+".";
    alert("The "+msg);return false
  }
  if ((max!=-9999) && str>max) {
	  msg+=" is too high: "+str+". \nYou should only enter values less than "+max+".";
    alert("The "+msg);return false
  }
  return true
}
function computeField(input) {
  if (input.value != null && input.value.length != 0)
    input.value = "" + eval(input.value);
  lflcalc(input.form);
}
function lflcalc(form) {
  var price=stripCommas(form.price.value),rate=form.interest.value;
  var months=form.years.value*12,xdown=stripCommas(form.down.value),xtax=stripCommas(form.taxes.value);
  if (xdown=="") {xdown=0} //force default value
  if (xtax=="") {xtax=0}   //force default value
	if (!checkNumberEntry(price,0,-9999,"Selling Price")) {
    form.payment.value = "Invalid";return}
  if (!checkNumberEntry(xdown,0,parseFloat(price),"Down Payment")) {
    form.payment.value = "Invalid";return}
  if (!checkNumberEntry(xtax,0,parseFloat(price),"Annual Taxes")) {
    form.payment.value = "Invalid";return}
  if (!checkNumberEntry(months,1,-9999,"Loan Term")) {
    form.payment.value = "Invalid";return}
	if (!checkNumberEntry(rate,1,99,"Interest Rate")) {
    form.payment.value = "Invalid";return}
	price=price-xdown;
	rate=(rate/100.0)/12;

  var p=1;
  for (var j=0; j<months; j++) {p=p*(1+rate)}
	var pmt=(price*p*rate)/(p-1);
  if (xtax>0) {pmt+=(xtax/12)} //add taxes if not zero
	form.payment.value = (Math.round(pmt*100))/100;
}
function stripCommas(s){
  var r=""
  for (var i=0; i<s.length; i++) {
    var c=s.substring(i,i+1);
    if (c!=",") {r+=c}
  }
  return r
}
function lflclear(q) {q.payment.value=""}
