// JavaScript Document
function checkInput(input, min, max, msg)
{   
	msg = msg + " field has invalid data: " + input.value;
	var lField = ltrim(rtrim(String(input.value)));
    myReg=new RegExp("^[$]?[0-9]*\\.?[0-9]"); 
	if (!(myReg.test(lField) && lField!='.'))
	{          
		alert(msg);
		input.focus();
		input.select();
		return false;
	}   	
	var num = parseFloat(input.value);
	if (num < min || max < num)
	{        
		alert(msg + " not in range [" + min + ".." + max + "]"); 
		input.focus();
		input.select();
		return false;
		
	}      
		return true;
}
function rtrim(argvalue) {
  while (1) {
    if (argvalue.substring(argvalue.length - 1, argvalue.length) != " ")
      break;
    argvalue = argvalue.substring(0, argvalue.length - 1);
  }
  return argvalue;
}
function ltrim(argvalue) {
  while (1) {
    if (argvalue.substring(0, 1) != " ")
      break;
    argvalue = argvalue.substring(1, argvalue.length);
  }
    return argvalue;
}
function round(number)
{
  return Math.round(number*Math.pow(10,2))/Math.pow(10,2);
}

function trim(str)
{
     return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function computeForm(form)

{
 
if ((trim(form.payments.value)!= "") && (trim(form.interest.value)!= "") && (trim(form.principal.value)!= ""))
{
 
var tmp1, tmp2
tmp1 = form.interest.value;
  
if (tmp1 > 1.0)
{
   
	tmp1 = tmp1 / 100.0;
 
	//form.interest.value = tmp1;
 
}
   
tmp1 /= 12;

  
tmp2 = 1;
 
for (var counter = 0; counter < form.payments.value; counter++)
  
	tmp2 = tmp2 * (1 + tmp1);
    
	form.payment.value = round((form.principal.value * tmp2 * tmp1) / (tmp2 - 1))

}
}

<!-- done hiding from old browsers -->