function showpay(){if((document.calc.loan.value==null||document.calc.loan.value.length==0)||(document.calc.months.value==null||document.calc.months.value.length==0)||(document.calc.rate.value==null||document.calc.rate.value.length==0))
{document.calc.pay.value="Incomplete data";}
else
{var princ=document.calc.loan.value;var term=document.calc.months.value;var intr=document.calc.rate.value/1200;document.calc.pay.value=princ*intr/(1-(Math.pow(1/(1+intr),term)));}}
function checkNumber(input,min,max,msg){msg=msg+" field has invalid data: "+input.value;var str=input.value;for(var i=0;i<str.length;i++){var ch=str.substring(i,i+1)
if((ch<"0"||"9"<ch)&&ch!='.'){alert(msg);return false;}}
var num=parseFloat(str)
if(num<min||max<num){alert(msg+" not in range ["+min+".."+max+"]");return false;}
input.value=str;return true;}
function computeField(input){if(input.value!=null&&input.value.length!=0)
input.value=""+eval(input.value);computeForm(input.form);}
function computeForm(form){if((form.payments.value==null||form.payments.value.length==0)||(form.interest.value==null||form.interest.value.length==0)||(form.principal.value==null||form.principal.value.length==0)){return;}
if(!checkNumber(form.payments,1,480,"# of payments")||!checkNumber(form.interest,.001,99,"Interest")||!checkNumber(form.principal,100,10000000,"Principal")){form.payment.value="Invalid";return;}
var i=form.interest.value;if(i>1.0){i=i/100.0;form.interest.value=i;}
i/=12;var pow=1;for(var j=0;j<form.payments.value;j++)
pow=pow*(1+i);money=""+.01*Math.round(100*(form.principal.value*pow*i)/(pow-1));dec=money.indexOf(".");dollars=money.substring(0,dec);cents=money.substring(dec+1,dec+3);cents=(cents.length<2)?cents+"0":cents;money=dollars+"."+cents;form.payment.value=money;}
function clearForm(form){form.payments.value="";form.interest.value="";form.principal.value="";}
