function getValue(theString)
{
    var noJunk = "";
    var withDollar = "";
    var foundDecimal = 0;
    var foundAlphaChar = 0;

    theString += "";
    for (i=0; i <= theString.length; i++) {
        var thisChar = theString.substring(i, i+1);

        if (thisChar == ".") {
          foundDecimal = 1;
          noJunk = noJunk + thisChar;
        }

        if ((thisChar < "0") || (thisChar > "9")) {
          if ((thisChar != "$") && (thisChar !=".") && (thisChar != ",") && (thisChar != " ") && (thisChar !="")) foundAlphaChar = 1;
        } else {
           withDollar = withDollar + thisChar
           noJunk = noJunk + thisChar
        }

        if ((thisChar == "$") || (thisChar == ".") || (thisChar == ",")) {
          withDollar = withDollar + thisChar
        }
     }

     if (foundDecimal) { return parseFloat(noJunk); }
     else if (noJunk.length > 0) { return parseInt(noJunk); }
     else return 0;
}

function formatUSCurrency(theNumber) {
  var isNegative = 0
  if (theNumber != "") {

    var workingNumber = theNumber + "" // Evaluate to a string

    if (workingNumber.charAt(0) == "-") {
      isNegative = 1;
      workingNumber = workingNumber.substring(1, workingNumber.length)
    }

    var withoutChars = ""
    for (x=0; x<=((workingNumber.length)-1); x++) {
      thisChar = workingNumber.charAt(x)
      charAsNum = parseInt(thisChar)
      if ( ((thisChar >= "0") & (thisChar <= "9")) || (thisChar == ".")  ) {
        withoutChars += workingNumber.charAt(x)
      }
    }
    workingNumber = withoutChars
    decimalPoint = workingNumber.indexOf(".")

    if (decimalPoint == -1) {
      dollarValue = workingNumber
      centsValue = "00"
      } else if (decimalPoint == 0) {
      dollarValue = "0"
      centsValue = workingNumber.substring(decimalPoint + 1, workingNumber.length)
    } else {
        dollarValue = workingNumber.substring(0, decimalPoint)
        if (decimalPoint == (workingNumber.length - 1)) {
          centsValue = "00";
        } else {
          centsValue = getValue(workingNumber.substring(decimalPoint + 1, workingNumber.length));
          centsValue += "0";
          centsValue = centsValue.charAt(0) + centsValue.charAt(1)
        }
    }

    var theString = dollarValue;
    var totalCommas = Math.floor((theString.length - 1) / 3)

    var dollarAmt = ""
    x=dollarValue.length
    position = 0
    while (x > 0) {
        x = x - 1
        thisChar = dollarValue.charAt(x)
        rounded = Math.round(position/3)
        if ( (position/3 == rounded ) & (position != 0) ) {
           dollarAmt = "," + dollarAmt
        }
        dollarAmt = thisChar +  dollarAmt
        position = position + 1
    }

    if (isNegative) {
      theString = dollarAmt + "." + centsValue
      //theString = "($" + dollarAmt + "." + centsValue + ")"
    } else {
      theString = dollarAmt + "." + centsValue
    }
    return (theString);
  } else {
    return("$0.00");
  }
}

function formatPercent(theNumber,decimalPlaces) {
  theNumber = getValue(theNumber);
  if (theNumber < 1) { theNumber = theNumber * 100; }
  with (Math) theNumber = (round(theNumber * pow(10,decimalPlaces))) / pow(10,decimalPlaces);
  return(theNumber + "%");
}

function removeCents(theNumber) {

  theNumber = getValue(theNumber)
  theNumber = Math.round(theNumber * 100) / 100;
  theNumber = theNumber + ""
  decimalPoint = theNumber.indexOf(".")

    if (decimalPoint == -1) {
      dollarValue = theNumber
    } else if (decimalPoint == 0) {
      dollarValue = 0
    } else {
      dollarValue = theNumber.substring(0, decimalPoint)
    }

    var dollarAmt = ""
    x=dollarValue.length
    position = 0
    while (x > 0) {
        x = x - 1
        thisChar = dollarValue.charAt(x)
        rounded = Math.round(position/3)
        if ( (position/3 == rounded ) & (position != 0) ) {
           dollarAmt = "," + dollarAmt
        }
        dollarAmt = thisChar +  dollarAmt
        position = position + 1
    }

  dollarValue = "$" + dollarAmt
  return(dollarValue)
}


function monthlyPayment(term, rate, loanAmount) {
  if (rate > 1) { (rate = rate / 100); }
  rateMonthly = (rate / 12);

  totalPayments = (term * 12);
  payment = (loanAmount * rateMonthly) / (1 - Math.pow((1+rateMonthly), (-1*totalPayments)) )
  return(payment)
}


function figureLoanAPR (loanYears, iRateAnnual, loanAmount, monthly) {
  loanMonths = loanYears * 12;
  if (iRateAnnual > 1) { (iRateAnnual = iRateAnnual / 100); }
  iRateMonthly = iRateAnnual / 12;

  prepaidFinanceCharges = Math.round(((.01 * loanAmount) + 375 + (((loanAmount * iRateAnnual) / 365) * 30)) * 100) / 100;

  aprPrinciple = Math.round((loanAmount - prepaidFinanceCharges) * 100) / 100;
  compoundX = Math.pow( (1 + iRateMonthly) , (-1 * loanMonths) );

  loanAPR = ((monthly * (1 - (compoundX) )) / aprPrinciple) * 12 * 100;
  loanAPR = Math.round(loanAPR * 1000) / 1000;
  return(loanAPR);
}


function calculate1() {

    userdata    = document.calc;
    rate        = getValue(userdata.wInterest.value);
    timetemp    = getValue(userdata.years.value);
    time        = timetemp/12;
    amount      = getValue(userdata.wInvestment.value);

  var intMultiplier = 1;
  var futWorth = 0;
  var principalTotal = document.calc.amtLoan.value;
  var taxBracket = document.calc.taxBracket.value;
  var MinusCostOfLoan = document.calc.wMinusCostOfLoan.value
  var col = document.calc.wMinusCostOfLoan.value;
  var netter = document.calc.wNetIncome.value;
  p = parseFloat(principalTotal);

  //Value of Savings
  rate = rate * .01;
  for (index=1; index <= time; index++) {
     intMultiplier = intMultiplier + intMultiplier * rate;
  }

  intMultiplier = intMultiplier * 100;
  //intMultiplier = Math.round(intMultiplier);
  intMultiplier = intMultiplier/100;



  futWorth = amount * intMultiplier;

  futWorth2 = formatUSCurrency(futWorth);

  document.calc.amtAccum.value = formatUSCurrency(futWorth);

  wie = futWorth;

  wit = wie - p * 1000;

  mie = wit * taxBracket;

  net = wit - mie;

  finalSavings = net - MinusCostOfLoan;

  document.calc.wNetIncomeTemp.value = net;
  document.calc.wInterestEarned.value = formatUSCurrency(wit);
  document.calc.wMinusTaxes.value = formatUSCurrency(mie);
  document.calc.wNetIncome.value = formatUSCurrency(net);


c = parseFloat(col);
n = parseFloat(netter);
totalz = n - c;

document.calc.TotalSavings.value = formatUSCurrency(totalz);
}