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 + "]"); 
		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;
}
// Round a field two (2) decimals
function round(number)	// no decimals
{
  return Math.round(number*Math.pow(10,2))/Math.pow(10,2);
}
function trim(str)
{
     return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function calculateForm(form)
{
if ((trim(form.payments.value)!= "") && (trim(form.interest.value)!= "") && (trim(form.principal.value)!= ""))
{
	   var i = form.interest.value;   
			if (i > 1.0) 
				{       
					i = i / 100.0;        
					form.interest.value = i;    
				}   
			i /= 12;   
			var counter = 1;  
			for (var j = 0; j < form.payments.value; j++)  
				counter = counter * (1 + i);    
				form.payment.value = round(form.principal.value * counter * i) / (counter - 1);
				form.payment.value  = round(form.payment.value );    
				form.totalint.value =(form.payment.value * form.payments.value)-form.principal.value;
				form.totalint.value  = round(form.totalint.value ) 
		}
	}