var inputStr = "";
var invalidNumber = 0;
var errorNum = "";
var checkZero = 0;
var numtemp = "";
var prnttemp = "";
var P = 0;
var p = 0;
var I = 0;
var II = 0;
var N = 0;
var n = 0;
var blank = "                         ";
var pfinal = "";

function loanCalc(form) {
// determine if valid input
  var Ptemp = form.amtLoan.value;
  var itemp = form.intRate.value;
  var ntemp = form.years.value;

  inputStr = Ptemp;
  errorNum = "Amount of Loan";
  validNumber();
  Ptemp = inputStr;

  inputStr = itemp;
  errorNum = "Annual Interest Rate";
  validNumber();
  itemp = inputStr;

  inputStr = ntemp;
  errorNum = "Number of Years";
  validNumber();
  ntemp = inputStr;

// 
  if (invalidNumber == 1) {
    form.payment.value = "";
  }
// calculate payment
  else {
    P = parseFloat(Ptemp);
    II = parseFloat(itemp);
    I = II / 100 / 12;
    N = parseFloat(ntemp);
    n = N * 12;

    if (n == 0) {
      standardOutput(P);
      form.payment.value = numtemp;
    }
    else {
      if (I == 0) {
        p = P/n;
        standardOutput(p);
        form.payment.value = numtemp;
      }
      else {
        p = -((-P * I * Math.pow((1 + I),n)) / (Math.pow((1 + I),n) - 1));
        standardOutput(p);
        pfinal = numtemp;
        form.payment.value = pfinal;
      }
    }
  }
}

// commas and dollars
function standardOutput(num) {
  num = Math.round(num * 100) / 100;
  num += "";
  cpl = num.indexOf(".");
  if (cpl == -1) {
    cpl = num.length;
    numtemp = ".00";
  }
  else {
    numtemp = num.substring(cpl,num.length) + "00";
    numtemp = numtemp.substring(0,3);
  }
  while (cpl > 3) {
  numtemp = "," + num.substring(cpl-3,cpl) + numtemp;
    cpl -= 3;
  }
  numtemp = "$" + num.substring(0,cpl) + numtemp
}

function validNumber() {
  var oneChar = "";
  var decimalFlag = 0;
  checkZero = 0;

  for (var i = 0; i < inputStr.length; i++) {
    oneChar = inputStr.charAt(i);

// check for 0 1 2 3 4 5 6 7 8 9 , . $ % 
    if ((oneChar < "0" || oneChar > "9") && (oneChar != ",") && (oneChar != ".") && (oneChar != "$") && (oneChar != "%")) {
      numberAlert();
      continue;
    }


    if ((oneChar == "$") || (oneChar == ",") || (oneChar == "%")) {
      inputStr = inputStr.substring(0,i) + inputStr.substring((i + 1),inputStr.length);
      i--;
    continue;
    }

    if (oneChar == ".") {
      if ((inputStr.length == 1) || (decimalFlag == 1)) {
        numberAlert();
      }
      else {
        decimalFlag = 1;
      }
    continue;
    }
  }
  if (inputStr == "") {
    inputStr = "0";
  }
}

function numberAlert() {
  var msg = "AN INVALID NUMBER WAS ENTERED for\n\"" + errorNum + "\".\n\nEnter a valid number, reload this web page,\nand then press the Calculate button.";
  alert(msg);
  invalidNumber = 1;
  checkZero = 1;
  i = inputStr.length;
}


var inputStr1 = "";
var invalidNumber1 = 0;
var errorNumber = "";
var checkZero1 = 0;
var numtemp1 = "";

function savingsCalc(form) {
  var P1 = 0;
  var p1 = 0;
  var i1 = 0;
  var q1 = 0;
  var n1 = 0;
  var A1 = 0;
  var Atemp = "";
  var cpl = "";

// determine if valid input
  var Ptemp1 = form.initInvest.value;
  var ptemp1 = form.monthDep.value;
  var itemp1 = form.intRate.value;
  var qtemp1 = form.compounded.options[form.compounded.selectedIndex].value;
  var ntemp1 = form.years.value;

  inputStr1 = Ptemp1;
  errorNumber = "Initial Investment";
  validNumber1();
  Ptemp1 = inputStr1;

  inputStr1 = ptemp1;
  errorNumber = "Monthly Deposit";
  validNumber1();
  ptemp1 = inputStr1;

  inputStr1 = itemp1;
  errorNumber = "Annual Interest Rate";
  validNumber1();
  itemp1 = inputStr1;

  inputStr1 = qtemp1;
  errorNumber = "Compounded";
  validNumber1();
  qtemp1 = inputStr1;

  inputStr1 = ntemp1;
  errorNumber = "Number of Years";
  validNumber1();
  ntemp1 = inputStr1;


  if (invalidNumber1 == 1) {
    form.futValue.value = "";
  }

  else {
    P1 = parseFloat(Ptemp1);
    q1 = parseFloat(qtemp1);
    p1 = parseFloat(ptemp1) * 12 / q1;
    I1 = (parseFloat(itemp1) / 100) / q1;
    n1 = parseFloat(ntemp1) * q1;

    if (n1 == 0) {
      standardOutput(P1 + p1);
      form.futValue.value = numtemp1;
    }
    else {
      if (I1 == 0) {
        standardOutput(P1 + (p1 * n1));
        form.futValue.value = numtemp1;
      }
      else {
        A1 = -((-P1 * Math.pow((1 + I1),n1)) - ((p1 * (1 + I1) * (Math.pow((1 + I1),n1) - 1)) / I1));
        standardOutput1(A1);
        form.futValue.value = numtemp1;
      }
    }
  }
}

// comas and dollars
function standardOutput1(num) {
  num = Math.round(num * 100) / 100;
  num += "";
  cpl = num.indexOf(".");
  if (cpl == -1) {
    cpl = num.length;
    numtemp1 = ".00";
  }
  else {
    numtemp1 = num.substring(cpl,num.length) + "00";
    numtemp1 = numtemp1.substring(0,3);
  }
  while (cpl > 3) {
  numtemp1 = "," + num.substring(cpl-3,cpl) + numtemp1;
    cpl -= 3;
  }
  numtemp1 = "$" + num.substring(0,cpl) + numtemp1
}

function validNumber1() {
  var oneChar1 = "";
  var decimalFlag1 = 0;
  checkZero1 = 0;

  for (var i = 0; i < inputStr1.length; i++) {
    oneChar1 = inputStr1.charAt(i);

// check for 0 1 2 3 4 5 6 7 8 9 , . $ % or if not, alert user of error
    if ((oneChar1 < "0" || oneChar1 > "9") && (oneChar1 != ",") && (oneChar1 != ".") && (oneChar1 != "$") && (oneChar1 != "%")) {
      numberAlert1();
      continue;
    }

// check for dollar signs, commas or percent signs and eliminate
    if ((oneChar1 == "$") || (oneChar1 == ",") || (oneChar1 == "%")) {
      inputStr1 = inputStr1.substring(0,i) + inputStr1.substring((i + 1),inputStr1.length);
      i--;
    continue;
    }

// check for decimal points and determine if valid or if not, alert user of error
    if (oneChar1 == ".") {
      if ((inputStr1.length == 1) || (decimalFlag1 == 1)) {
        numberAlert1();
      }
      else {
        decimalFlag1 = 1;
      }
    continue;
    }
  }
  if (inputStr1 == "") {
    inputStr1 = "0";
  }
}
function numberAlert1() {
  var msg = "AN INVALID NUMBER WAS ENTERED for\n\"" + errorNumber + "\".\n\nEnter a valid number, reload this web page,\nand then press the Calculate button.";
  alert(msg);
  invalidNumber1 = 1;
  checkZero1 = 1;
  i = inputStr1.length;
}

