function checkNumber(input, min, max, msg) {
  msg = msg + " field has invalid data: " + input.value;

  var str = input;

  for (var i = 0; i < str.length; i++) {
    var ch = str.substring( i, i + 1)
    if ((ch < "0" || "9" < ch) && ch != '.') {
      begin = str.slice(0,i);
      end = str.slice(i+1,str.length);
	  str = begin.concat(end);
	  i--;
    }
	if (str.length == 0)
	{
	  alert(msg);
      return false;
	}
  }

  var num = 0 + str
  if (num < min || max < num) {
    alert(msg + " not in range [" + min + ".." + max + "]");
    return false;
  }
  input.value = str;
  return str;
}

function computeField(input) {
  if (input.value != null && input.value.length != 0)
  {
    input.value = "" + eval(input.value);
  }

  computeForm(input.form);
}

function docalc(x,y,z,a,b,c,d) {
  var A=x;
  var T=z;
  var R=y;

  if ((A == null || A.length == 0) || (R == null || R.length == 0)) {
    alert('not all fields filled in');
    return false;
  }

  A = checkNumber(A, 1, 999999, "Amount");
  R = checkNumber(R, .001, 1000, "Interest Rate");
  T = checkNumber(T, 5, 25, "Period");

  if (!A || !R || !T)
  {
	return false;
  }

  R = R / 100;

  var P = ((A*R)/12) * (1/(1-(Math.pow(1/(1+R),T))));
  a.innerHTML = poundsPence(P);
  P = ((A*0.10)/12) * (1 / (1-(Math.pow((1/1.10),T))));
  c.innerHTML = poundsPence(P);
  P = (A*R)/12;
  b.innerHTML = poundsPence(P);
  P = (A*0.10)/12;
  d.innerHTML = poundsPence(P);

  return false;
}

function poundsPence( N ) {
  // don't try this with ie3 because it's rubbish
  if ((navigator.appName.indexOf('Microsoft')>-1)
    && (navigator.appVersion.indexOf('3.0')>-1) )
  {
    return N;
  }
  S = new String( N );
  var i = S.indexOf('.');
  if (i != -1) {
    S = S.substr( 0, i+3 );
    if (S.length-i < 3)
      S = S + '0';
  }
  return S;
}

function clearresults() {
	document.getElementById('interest').value="";
	document.getElementById('term').value="";
	document.getElementById('amount').value="";
	document.getElementById('calc-results-1').innerHTML = "-";
	document.getElementById('calc-results-2').innerHTML = "-";
	document.getElementById('calc-results-3').innerHTML = "-";
	document.getElementById('calc-results-4').innerHTML = "-";
	document.getElementById('amount').focus();
}