function MM_preloadImages() { //v3.0

  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

} 

function round(number,X){

    return Math.round(number);

} 

function CalculateTerms(balancePrincipal, federalRate, tempMonthlyPayment, paymentType, repaymentTerm1){

var whichPayment = 0;

var paymentScheduler = new Array(); 

while (balancePrincipal > 0.0049){

      paymentScheduler[whichPayment, 0] = whichPayment; paymentScheduler[whichPayment, 1] = tempMonthlyPayment

      calculatedMonthlyInterest = balancePrincipal * ((federalRate / 100) / 12); paymentScheduler[whichPayment, 2] = calculatedMonthlyInterest

if (tempMonthlyPayment > balancePrincipal) {

var noOfPayments

        paymentScheduler[whichPayment, 3] = balancePrincipal

            paymentScheduler[whichPayment, 1] = balancePrincipal + calculatedMonthlyInterest

             noOfPayments = paymentScheduler[whichPayment, 3]

      }else{

            paymentScheduler[whichPayment, 3] = tempMonthlyPayment - calculatedMonthlyInterest;  noOfPayments = paymentScheduler[whichPayment, 3]

      } 
 

if (whichPayment == 0){

         paymentScheduler[whichPayment, 4] = paymentScheduler[whichPayment, 2];paymentScheduler[whichPayment, 5] = paymentScheduler[whichPayment, 3]

          }else{

         paymentScheduler[whichPayment, 4] = paymentScheduler[whichPayment - 1, 4] + paymentScheduler[whichPayment, 2]; paymentScheduler[whichPayment, 5] = paymentScheduler[whichPayment - 1, 5] + paymentScheduler[whichPayment, 3]

      } 

balancePrincipal = balancePrincipal + calculatedMonthlyInterest - paymentScheduler[whichPayment, 1] 

if (balancePrincipal < 0.005){

         paymentScheduler[whichPayment, 6] = 0

      }else{

         paymentScheduler[whichPayment, 6] = balancePrincipal

      } 

whichPayment = (whichPayment + 1) 

if (whichPayment > repaymentTerm1 && balancePrincipal > 0.0049){

         whichPayment = -1

         balancePrincipal = 0

      } 

if (calculatedMonthlyInterest > tempMonthlyPayment){

         whichPayment = -1

         balancePrincipal = 0

      } 

} 

if(paymentType == "Term"){

      return (parseInt(whichPayment))

      }else{

      return (noOfPayments)

      } 

} 
 

function formatCurrency(amount){

      var i = parseFloat(amount);

      if(isNaN(i)) { i = 0.00; }

      var minus = '';

      if(i < 0) { minus = '-'; }

      i = Math.abs(i);

      i = parseInt((i + .005) * 100);

      i = i / 100;

      s = new String(i);

      if(s.indexOf('.') == (s.length - 2)) { s += '0'; }

      s = minus + s;

      return '$'+s;

      } 
 

function calculateLoans(){

      var formVar = document.calculate;

      var loanArray = new Array();

      var rateArray = new Array(); 

      var totaLoanAmount;

      var loanArrayAdder = 0;

      var loanRateAdder = 0; 

      totaLoanAmount = parseFloat(document.getElementById('Loan1').value) + parseFloat(document.getElementById('Loan2').value) + parseFloat(document.getElementById('Loan3').value) + parseFloat(document.getElementById('Loan4').value)

      totaLoanAmount = parseFloat(document.getElementById('Loan5').value) +  totaLoanAmount + parseFloat(document.getElementById('Loan6').value) + parseFloat(document.getElementById('Loan7').value) + parseFloat(document.getElementById('Loan8').value) + parseFloat(document.getElementById('Loan9').value) + parseFloat(document.getElementById('Loan10').value)

      document.getElementById('loanTotal').value= formatCurrency(totaLoanAmount) 

      loanArray[1] = parseFloat(document.getElementById('Loan1').value);loanArray[2] = parseFloat(document.getElementById('Loan2').value);loanArray[3] = parseFloat(document.getElementById('Loan3').value);loanArray[4] = parseFloat(document.getElementById('Loan4').value);loanArray[5] = parseFloat(document.getElementById('Loan5').value);loanArray[6] = parseFloat(document.getElementById('Loan6').value);loanArray[7] = parseFloat(document.getElementById('Loan7').value);loanArray[8] = parseFloat(document.getElementById('Loan8').value);loanArray[9] = parseFloat(document.getElementById('Loan9').value);loanArray[10] = parseFloat(document.getElementById('Loan10').value)

      rateArray[1] = (document.getElementById('Rate1').value);rateArray[2] = (document.getElementById('Rate2').value);rateArray[3] = (document.getElementById('Rate3').value);rateArray[4] = (document.getElementById('Rate4').value);rateArray[5] = (document.getElementById('Rate5').value);rateArray[6] = (document.getElementById('Rate6').value);rateArray[7] = (document.getElementById('Rate7').value);rateArray[8] = (document.getElementById('Rate8').value);rateArray[9] = (document.getElementById('Rate9').value);rateArray[10] = (document.getElementById('Rate10').value) 
 

      for (counter = 1; counter <= 10; counter++){

            if (loanArray[counter] != "" && rateArray[counter] != ""){

              if (loanArray[counter] > 0 && rateArray[counter] > 0){

                   loanArrayAdder = loanArrayAdder + loanArray[counter]

                   loanRateAdder = loanRateAdder + (loanArray[counter] * rateArray[counter])

              }

            } 

} 
 

var weightedInterestRate = (loanRateAdder / loanArrayAdder) 

weightedInterestRate = Math.round((weightedInterestRate + 0.06249999999) * 8) / 8

if (weightedInterestRate > 8.25){

      weightedInterestRate = 8.25

} 

var flexibleRateAmount = (weightedInterestRate - 1.625) 

document.getElementById('flexInterest').value = (weightedInterestRate - 1.625) + "%"

document.getElementById('unconsolidatedInt').value = weightedInterestRate + "%"

document.getElementById('InterestSavings').value = "3.625%"

calPayment(weightedInterestRate,loanArrayAdder,flexibleRateAmount)

} 
 

function Payment(r, p, m){

      return ( p * ( r / 1200 ) ) / ( 1 - ( Math.pow( 1 + ( r / 1200 ), -m ) ) )

} 
 

function calPayment(weightedInterestRate,loanArrayAdder,flexibleRateAmount){

var formVar = document.calculate

var repaymentTerm1 = 120   

if(loanArrayAdder >= 60000){

      repaymentTerm1 = 360

}

else if(loanArrayAdder >= 40000){

      repaymentTerm1 = 300

}

else if(loanArrayAdder >= 20000){

      repaymentTerm1 = 240

}

else if(loanArrayAdder >= 10000){

      repaymentTerm1 = 180

}

else if(loanArrayAdder >= 7500){

      repaymentTerm1 = 120

} 

   

var periodicInterest = weightedInterestRate / 1200

var periodicInterestFlex = flexibleRateAmount / 1200

var fullPaymentAmount

var flexPaymentAmount 
 

fullPaymentAmount = Payment(weightedInterestRate,loanArrayAdder,repaymentTerm1) 

if(fullPaymentAmount < 50){

      fullPaymentAmount = 50

      } 

var term = CalculateTerms(loanArrayAdder, weightedInterestRate, fullPaymentAmount,"Term",repaymentTerm1) 

var noOfPayments = CalculateTerms(loanArrayAdder, flexibleRateAmount, flexPaymentAmount,"Payment",repaymentTerm1)

if (isNaN(noOfPayments)){

      noOfPayments = 0

      } 

flexPaymentAmount =  Payment(flexibleRateAmount,loanArrayAdder,repaymentTerm1) 

if(flexPaymentAmount < 50){

      flexPaymentAmount = 50

      } 

var termFlexible = CalculateTerms(loanArrayAdder, flexibleRateAmount, fullPaymentAmount,"Term",repaymentTerm1)

var flexiblePayments = CalculateTerms(loanArrayAdder, flexibleRateAmount, flexPaymentAmount,"Payment",repaymentTerm1) 

if (isNaN(flexiblePayments)){

      flexiblePayments = 0

      } 

document.getElementById('unconsolidatedPayment').value = formatCurrency(Math.round(fullPaymentAmount))

document.getElementById('FlexPayment').value = formatCurrency(Math.round(fullPaymentAmount))

document.getElementById('termFlexible').value = termFlexible

document.getElementById('termUnconsolidated').value =  term

var costChanger = Math.round((fullPaymentAmount * termFlexible)+ flexiblePayments)

var unconsolidatedCost = Math.round((fullPaymentAmount * term)+ noOfPayments)

document.getElementById('FlexCost').value = formatCurrency(costChanger)

document.getElementById('unconsolidatedCost').value = formatCurrency(unconsolidatedCost)

document.getElementById('AmountOfSavings').value = formatCurrency(Math.round(unconsolidatedCost - costChanger))

document.getElementById('FlexSavPayment').value = formatCurrency(Math.round(fullPaymentAmount - fullPaymentAmount))

} 