function calculatePayment( interest, principal, payments )
{
  var i = interest;
  if (i > 1.0) {
    i = i / 100.0;
  }
  i /= 12;
  
  var pow = 1;
  
  for (var j = 0; j < payments; j++) pow = pow * (1 + i);

  money = "" + (.01 * Math.round( 100 * (principal * 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;
  return money;
}

function validateNumber( str, msg, control )
{
  if ( str.length == 0 )
  {
    alert( msg );
    control.focus();
    return false;
  }
  for (var i = 0; i < str.length; i++) {
    var ch = str.substring(i, i + 1);
    if ((ch < "0" || "9" < ch) && ch != '.') {
      alert(msg);
      control.focus();
      return false;
    }
  }
  if ( str == 0 )
  {
      alert(msg);
      control.focus();
  	  return false;
  }
  return true;
}

function computeLoan( form )
{
  var i = form.interest.value;
  var p = form.principal.value;
  var t = form.custom.value;
  
  if (validateNumber(i,'Interest rate must be a number',form.interest) 
      && validateNumber(p,'Principal must be a number',form.principal)
      && validateNumber(t,'Term of loan must be a number',form.custom)
      )
  {
    var r = calculatePayment( i, p, t );
    form.result.value = r;
  }
}

function refreshCustom( form )
{
	if (form.payments.value == 0)
	{
		form.custom.style.display = 'block';
	} else {
		form.custom.value = form.payments.value;
		form.custom.style.display = 'none';
	}
}