﻿var chko = 0;
var no_temp = "";
var prtp = "";
var blnk = "";
var pfnl = "";
var instr = "";
var invNo = 0;
var errNo = "";
var P = 0;
var p = 0;
var I = 0;
var II = 0;
var N = 0;
var n = 0;

function loanCalc(form) {

var ntpr = form.years.value;
var tmpr = form.amtLoan.value;
var itpr = form.intRate.value;


  instr = tmpr;

  errNo = "Amount of Loan";

  validNumber();

  tmpr = instr;


  instr = itpr;

  errNo = "Annual Interest Rate";

  validNumber();

  itpr = instr;


  instr = ntpr;

  errNo = "Number of Years";

  validNumber();

  ntpr = instr;


  if (invNo == 1) {

    form.payment.value = "";

  }


  else {

    P = parseFloat(tmpr);
    II = parseFloat(itpr);
    I = II / 100 / 12;
    N = parseFloat(ntpr);
    n = N * 12;

    if (n == 0) {

      standardOutput(P);

      form.payment.value = no_temp;

    }

    else {

      if (I == 0) {

        p = P/n;

        standardOutput(p);

        form.payment.value = no_temp;

      }

      else {

        p = -((-P * I * Math.pow((1 + I),n)) / (Math.pow((1 + I),n) - 1));

        standardOutput(p);

        pfnl = no_temp;

        form.payment.value = pfnl;

        if (form.amortTable[1].checked) {

          makeTable();

        }

      }

    }

  }

}


function makeTable() {

  standardOutput(P);

  var PP = no_temp;

  instr = document.calc.year1.value;

  errNo = "First Payment";

  validNumber();

  var year = parseFloat(instr);
  var month = document.calc.month1.selectedIndex;
  var firstMonth = month;
  var curMonth = "";
  var prntMonth = "";
  var balance = P;
  var prntBal = ""
  var prinPaid = 0;
  var prntPrin = ""
  var intPaid = 0;
  var prntInt = "";
  var accumInt = 0;
  var dataWindow = window.open("","dataWindow","scrollbars,resizable,width=625,height=350");

  if (dataWindow != null) {
    var data = "";
    data += '<HTML><HEAD><TITLE>Amortization Schedule</TITLE></HEAD>';
    data += '<BODY BGCOLOR="#FFFFFF"><CENTER><FONT SIZE=5><B>Loan Amortization ';
    data += 'Schedule</B></FONT><BR><FONT SIZE=4><B>' + PP + ' at ' + II + '% ';
    data += 'for ' + N + ' years<BR>Monthly Payment: ' + pfnl + '</B></FONT>';
    data += '</CENTER><br><br>';
    dataWindow.document.write(data);

    data = "";
    data += '<CENTER><TABLE BORDER=0 WIDTH=590><TR><TD ALIGN=center>';
    data += '<FONT SIZE=4><B>Month</B></FONT></TD><TD ALIGN=center>';
    data += '<FONT SIZE=4><B>Principal Paid</B></FONT></TD>';
    data += '<TD ALIGN=center><FONT SIZE=4><B>Interest Paid</B>';
    data += '</FONT></TD><TD ALIGN=center><FONT SIZE=4><B>';
    data += 'Balance Remaining</B></FONT></TD></TR><TR><TD ALIGN=center>';
    data += '<FONT SIZE=3 FACE="ARIAL,HELVETICA,SANS-SERIF"><B>' + year + '</B>';
    data += '</FONT></TD><TD></TD><TD></TD><TD></TD></TR>';

    for (i = 0; i < n; i++) {
      curMonth = document.calc.month1.options[month].text;
      prntMonth = curMonth + blnk;
      prntMonth = prntMonth.substring(0,12);

      intPaid = balance * I;
      prntValue(intPaid,22);
      prntInt = prtp;

      accumInt += intPaid;

      prinPaid = p - intPaid;
      prntValue(prinPaid,22);
      prntPrin = prtp;
      balance -= prinPaid;
      prntValue(balance,23);
      prntBal = prtp;

      data += '<TR><TD ALIGN=center><FONT SIZE=2 FACE="ARIAL,HELVETICA,SANS-SERIF">';
      data += '<B>' + prntMonth + '</B></FONT></TD><TD ALIGN=center>';
      data += '<FONT SIZE=2 FACE="ARIAL,HELVETICA,SANS-SERIF"><B>' + prntPrin;
      data += '</B></FONT></TD><TD ALIGN=center><FONT SIZE=2 ';
      data += 'FACE="ARIAL,HELVETICA,SANS-SERIF"><B>' + prntInt + '</B></FONT></TD>';
      data += '<TD  ALIGN=center><FONT SIZE=2 FACE="ARIAL,HELVETICA,SANS-SERIF">';
      data += '<B>' + prntBal + '</B></FONT></TD></TR>';

      if (month != 11) {
        month++;
      }
      else {
        month = 0;
        year++;
        if ((firstMonth != 0) || (i != n-1)) {
          data += '<TR><TD ALIGN=center><IMG ';
          data += 'SRC="../Images/spacer.gif" ';
          data += 'ALT=" " width="1" height="10" border="0"><BR><FONT SIZE=3 '
          data += 'FACE="ARIAL,HELVETICA,SANS-SERIF"><B>' + year;
          data += '</B></FONT></TD><TD></TD><TD></TD><TD></TD></TR>';
        }
      }
    }
  }

  standardOutput(accumInt);
  prntAccumInt = no_temp;
  standardOutput(P+accumInt);
  var Total = no_temp;

  data += '<TR><TD COLSPAN=4><IMG SRC="../Images/spacer.gif" ';
  data += 'ALT=" " WIDTH="1" HEIGHT="10" BORDER=0>';
  data += '</TD></TR><TR><TD ALIGN=center VALIGN=middle>';
  data += '<FONT SIZE=3 FACE="ARIAL,HELVETICA,SANS-SERIF"><B>Totals</B></FONT></TD>';
  data += '<TD ALIGN=center><FONT SIZE=2 FACE="ARIAL,HELVETICA,SANS-SERIF"><B>Loan:<BR>' + PP;
  data += '</B></FONT></TD><TD ALIGN=center><FONT SIZE=2 FACE="ARIAL,HELVETICA,SANS-SERIF">';
  data += '<B>Interest:<BR>' + prntAccumInt + '</B></FONT></TD><TD ALIGN=center>';
  data += '<FONT SIZE=2 FACE="ARIAL,HELVETICA,SANS-SERIF"><B>Loan + Interest:<BR>' + Total;
  data += '</B></FONT></TD></TR></TABLE></CENTER><P><CENTER><FORM><INPUT ';
  data += 'NAME="CloseWindow" TYPE="button" VALUE="Close Window" ';
  data += 'onClick="self.close()"></FORM></CENTER></BODY></HTML>';
  dataWindow.document.write(data);
  dataWindow.document.close() // close layout stream;
}
function prntValue(value,len) {
  standardOutput(value);
  prtp = no_temp + blnk;
  prtp = prtp.substring(0,len);
}
function standardOutput(num) {
  num = Math.round(num * 100) / 100;
  num += "";
  cpl = num.indexOf(".");
  if (cpl == -1) {
    cpl = num.length;
    no_temp = ".00";
  }
  else {
    no_temp = num.substring(cpl,num.length) + "00";
    no_temp = no_temp.substring(0,3);
  }
  while (cpl > 3) {
  no_temp = "," + num.substring(cpl-3,cpl) + no_temp;
    cpl -= 3;
  }
  no_temp = "$" + num.substring(0,cpl) + no_temp
}

function validNumber() {
  var oneChar = "";
  var decimalFlag = 0;
  chko = 0;
  for (var i = 0; i < instr.length; i++) {
    oneChar = instr.charAt(i);
    if ((oneChar < "0" || oneChar > "9") && (oneChar != ",") && (oneChar != ".") && (oneChar != "$") && (oneChar != "%")) {
      numberAlert();
      continue;
    }
    if ((oneChar == "$") || (oneChar == ",") || (oneChar == "%")) {
      instr = instr.substring(0,i) + instr.substring((i + 1),instr.length);
      i--;
    continue;
    }

    if (oneChar == ".") {
      if ((instr.length == 1) || (decimalFlag == 1)) {
        numberAlert();
      }
      else {
        decimalFlag = 1;
      }
    continue;
    }
  }
  if (instr == "") {
    instr = "0";
  }
}

function numberAlert() {
  var msg = "An invalid number was entered.\nPlease reenter " + errNo + ".\nPress control R (command R for Macintosh),\nand then the Calculate button.";
  alert(msg);
  invNo = 1;
  chko = 1;
  i = instr.length;
}// JScript File

