  function test_it(entry) {
    if (entry.value != null && entry.value.length != 0) {
      entry.value = "" + eval(entry.value);
    }
    computeForm(entry.form);
  }
  //----------------------------------------------------------------------------
  function computeForm(form) {
    if ((form.months.value == null || form.months.value.length==0) ||
       (form.rate.value == null || form.rate.value.length == 0) ||
       (form.financed.value == null || form.financed.value.length == 0)) {
      return;
    }
    if (!alrt_msg(form.months,1,480,"Your Number of Payments") ||
        !alrt_msg(form.rate,.001,99,"Your Interest Rate") ||
        !alrt_msg(form.financed,100,10000000,"Your Principal Amount")) {
      form.payment.value = "A value is out of range - Click Reset";
      return;
    }
    var i = form.rate.value;
    ffv = 0;
    ffv += form.financed.value;
    fmv = 0;
    fmv += form.months.value;
    if (i >= 1.0) {
      i = (i / 100.0) + .00001;
      var fmt = "";
      fmt += i;
      fmt = fmt.substring(0,6)
      form.rate.value = fmt;
    }
    i /= 12;
    var isn = 1;
    for (var j = 0; j < form.months.value; j ++) isn = isn * (1 + i);
    form.payment.value = (form.financed.value * isn * i) / (isn - 1);
    fpv = 0;
    fpv += form.payment.value;
    var fmt = "";
    var add = 9;
    fmt += form.payment.value;
    for (var i = 0; i < fmt.length; i ++) {
      if (fmt.charAt(i) == ".") {
        add = i + 3;
        i = fmt.length;
      }
    }
    fmt = fmt.substring(0,add);
    fcalc = ((fmv * fpv) - ffv);
    var fmtb = "";
    var add = 9;
    fmtb += fcalc;
    for (var i = 0; i < fmtb.length; i ++) {
      if (fmtb.charAt(i) == ".") {
        add = i + 3;
        i = fmtb.length;
      }
    }
    fmtb = fmtb.substring(0,add);
    form.payment.value = "$" + fmt + " / $" + fmtb;
  }
  //----------------------------------------------------------------------------
  function reset_it(form) {
    form.months.value   = "";
    form.rate.value     = "";
    form.financed.value = "";
    form.payment.value  = "";
  }
  //----------------------------------------------------------------------------
  function alrt_msg(entry,low,high,prompt) {
    prompt = "Whoops..." + prompt + " entry contains an unacceptable value: " + entry.value;
    var scratch = entry.value;
    for (var i = 0; i < scratch.length; i ++) {
      var letter = scratch.substring(i,i + 1);
      if ((letter < "0" || "9" < letter) && letter != '.') {
        alert(prompt);
        return false;
      }
    }
    var errtst = parseFloat(scratch)
    if (errtst < low || high < errtst) {
      alert(prompt + " is not in the range" + " from " + low + " to " + high + "!");
      return false;
    }
    entry.value = scratch;
    return true;
  }