﻿function handleOnLoad() {
  }

function calculate(){
    var LoanAmount = document.getElementById('LoanAmount');
    var Margin = document.getElementById('Margin');
    var CurrentIndex = document.getElementById('CurrentIndex');
    var IndexMargin = (1*toNumber(Margin.value) + 1*toNumber(CurrentIndex.value));
    var StartRate = document.getElementById('StartRate');
    var LoanTerm30 = 30;
    var LoanTerm40 = 40;
    var LoanTerm15 = 15;
    var LoanTerm20 = 20;

    LoanAmount.value = toNumber(LoanAmount.value);
    Margin.value = toNumber(Margin.value);
    CurrentIndex.value = toNumber(CurrentIndex.value);
    StartRate.value = toNumber(StartRate.value);

    var IndexMarginDisplay = document.getElementById('IndexMargin');
    var MinPayment = document.getElementById('MinPayment');
    var InterestOnlyPayment = document.getElementById('InterestOnlyPayment');
    var FullPayment = document.getElementById('FullPayment');
    var Payment40 = document.getElementById('40YearPayment');
    var Payment15 = document.getElementById('15YearPayment');
    var Payment20 = document.getElementById('20YearPayment');

   IndexMarginDisplay.innerHTML = IndexMargin;

    var MinPaymentCalc = compute_payment(LoanAmount.value, StartRate.value, 12*LoanTerm30, 12);

    var IOPayment = (LoanAmount.value * IndexMargin) / 12 / 100;
    InterestOnlyPayment.innerHTML = formatAsMoney(IOPayment);

    var FullPaymentCalc = compute_payment(LoanAmount.value, IndexMargin, 12*LoanTerm30, 12);

    var Payment40Calc = compute_payment(LoanAmount.value, IndexMargin, 12*LoanTerm40, 12);
    Payment40.innerHTML = formatAsMoney(Payment40Calc);

    var Payment15Calc = compute_payment(LoanAmount.value, IndexMargin, 12*LoanTerm15, 12);
    Payment15.innerHTML = formatAsMoney(Payment15Calc);

    var Payment20Calc = compute_payment(LoanAmount.value, IndexMargin, 12*LoanTerm20, 12);
    Payment20.innerHTML = formatAsMoney(Payment20Calc);

    var Yr1Min = document.getElementById('Yr1Min');
    var Yr1Savings = document.getElementById('Yr1Savings');
    var Yr1fixed30 = document.getElementById('Yr1fixed30');
    Yr1MinCalc = MinPaymentCalc;
    Yr1Min.innerHTML = formatAsMoney(Yr1MinCalc);
    Yr1Savings.innerHTML = formatAsMoney(FullPaymentCalc - Yr1MinCalc);
    Yr1fixed30.innerHTML = formatAsMoney(FullPaymentCalc);
    lastYrVal = Yr1MinCalc;

    for(i = 2; i <= 5; i++){
      eval('var Yr'+i+'Min = document.getElementById(\'Yr'+i+'Min\');');
      eval('var Yr'+i+'Savings = document.getElementById(\'Yr'+i+'Savings\');');
      eval('var Yr'+i+'fixed30 = document.getElementById(\'Yr'+i+'fixed30\');');
      eval('var Yr'+i+'MinCalc = lastYrVal * 1.075;');
      eval('Yr'+i+'Min.innerHTML = formatAsMoney(Yr'+i+'MinCalc);');
      eval('Yr'+i+'Savings.innerHTML = formatAsMoney(FullPaymentCalc - Yr'+i+'MinCalc);');
      eval('Yr'+i+'fixed30.innerHTML = formatAsMoney(FullPaymentCalc);');
      eval('lastYrVal = Yr'+i+'MinCalc;');
    }
  }

  function computeFullyIndexed(objField){
    var returnvar = false;
    if(returnvar) {
      var Margin = document.getElementById('Margin');
      var CurrentIndex = document.getElementById('CurrentIndex');
      var IndexMargin = document.getElementById('IndexMargin');
      IndexMargin.innerHTML = 1*toNumber(Margin.value) + 1*toNumber(CurrentIndex.value);
    }
  }

  function formatAsMoney(mnt) {
    mnt -= 0;
    mnt = (Math.round(mnt*100))/100;
    return (mnt == Math.floor(mnt)) ? mnt + '.00'
              : ( (mnt*10 == Math.floor(mnt*10)) ?
                       mnt + '0' : mnt);
  }

  function toNumber(fnum){
    var strBuffer = new String(fnum);
    var rString = '';
    var periodCount = 0;
    for (nPos = 0; nPos < strBuffer.length; nPos++){
        if ((strBuffer.charAt(nPos) >= '0' && strBuffer.charAt(nPos) <= '9') ||
            strBuffer.charAt(nPos) == '.'){
          if(strBuffer.charAt(nPos) == ','){
            periodCount++;
          }
          if(periodCount > 1){
            return 1*rString;
          }
          rString += strBuffer.charAt(nPos);
        }
    }
    return 1*rString;
  }
  
  window.onload=calculate;

function compute_payment(balance, rate, num_payments, pay_per_year) { var payment; if (rate <= 0.0) { payment = balance * 1.0/(num_payments); } else { payment = balance * (rate/100.0/pay_per_year) / (1.0 - Math.pow(1.0 + rate/100.0/pay_per_year, -num_payments)); } return Math.floor(payment * 100.0 + 0.5)/100.0; }
var interval; function startCalc(cname) { interval = setInterval(cname,1); } function stopCalc() { clearInterval(interval);
}

  handleOnLoad();
