﻿/****************************/
/* Affordability Calculator */
/****************************/
var affIncome, affDownPmt, affDebts, affInterest = "";

function initAffordabilityCalculator() {
    setAffIncome();
    setAffDownPmt();
    setAffDebts();
    setAffInterest();
}
function setAffIncome() {
    var input = document.getElementById('afford_income');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0) {
        input.value = "$" + formatNumber(0);
        affIncome = 0;
    } else {
        input.value = "$" + formatNumber(val);
        affIncome = val;
    }
}
function setAffDownPmt() {
    var input = document.getElementById('afford_closing');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0) {
        input.value = "$0";
        affDownPmt = 0;
    } else {
        input.value = "$" + formatNumber(val);
        affDownPmt = val;
    }
}
function setAffDebts() {
    var input = document.getElementById('afford_debt');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0) {
        input.value = "None";
        affDebts = 0;
    } else {
        input.value = "$" + formatNumber(val);
        affDebts = val;
    }
}
function setAffInterest() {
    var input = document.getElementById('afford_interest');
    var val = input.value.replace(/[a-zA-Z%\s]/g, "");
    if(nonNumber(val) || val <= 0 || val > 100){
        input.value =  "7%";
        affInterest = 7;
    } else {
        input.value = val+"%";
        affInterest = val;
    }
}

function calculateAffordability() {
     var inter = affInterest;
     if ((inter >= 5.0) && ( inter < 5.25 )) { ii = 5.34; iii = 7.89; }
     if ((inter >= 5.25) && ( inter < 5.5 )) { ii = 5.50; iii = 8.03; }
     if ((inter >= 5.50) && ( inter < 5.75 )) { ii = 5.67; iii = 8.16; }
     if ((inter >= 5.75) && ( inter <6.0 )) { ii = 5.83; iii = 8.30; }
     if ((inter >= 6.0) && ( inter < 6.25 )) { ii = 5.9955; iii = 8.44; }
     if ((inter >= 6.25) && ( inter < 6.5 )) { ii = 6.16; iii = 8.57; }
     if ((inter >= 6.50) && ( inter < 6.75 )) { ii = 6.32; iii = 8.71; }
     if ((inter >= 6.75) && ( inter <7.0 )) { ii = 6.49; iii = 8.85; }
     if ((inter >= 7.0) && ( inter < 7.25 )) { ii = 6.65; iii = 8.99; }
     if ((inter >= 7.25) && ( inter < 7.5 )) { ii = 6.82; iii = 9.13; }
     if ((inter >= 7.50) && ( inter < 7.75 )) { ii = 6.99; iii = 9.27; }
     if ((inter >= 7.75) && ( inter < 8.0 )) { ii = 7.16; iii = 9.41; }
     if ((inter >= 8.0) && ( inter < 8.25 )) { ii = 7.34; iii = 9.56; }
     if ((inter >= 8.25) && ( inter < 8.5 )) { ii = 7.51; iii = 9.70; }
     if ((inter >= 8.50) && ( inter < 8.75 )) { ii = 7.69; iii = 9.85; }
     if ((inter >= 8.75) && ( inter < 9.0 )) { ii = 7.87; iii = 9.99; }
     if ((inter >= 9.0) && ( inter < 9.25 )) { ii = 8.05; iii = 10.14; }
     if ((inter >= 9.25) && ( inter < 9.5 )) { ii = 8.23; iii = 10.29; }
     if ((inter >=9.50) && ( inter < 9.75 )) { ii = 8.41; iii = 10.44; }
     if ((inter >= 9.75) && ( inter < 10.0 )) { ii = 8.59; iii = 10.59; }
     if ((inter >= 10.0) && ( inter < 10.25 )) { ii = 8.78; iii = 10.75; IntDisp = 10.0; }
     if ((inter >= 10.25) && ( inter < 10.5 )) { ii = 8.96; iii = 10.90; }
     if ((inter >=10.50) && ( inter < 10.75 )) { ii = 9.15; iii = 11.05; IntDisp = 10.5; }
     if ((inter >= 10.75) && ( inter < 11.0 )) { ii = 9.33; iii = 11.21; }
     if ((inter >= 11.0) && ( inter < 11.25 )) { ii = 9.53; iii = 11.37; IntDisp = 11.0; }
     if ((inter >= 11.25) && ( inter < 11.5 )) { ii = 9.72; iii = 11.53; }
     if ((inter >=11.50) && ( inter < 11.75 )) { ii = 9.91; iii = 11.69; }
     if ((inter >= 11.75) && ( inter < 12.0 )) { ii = 10.10; iii = 11.85; }
     if ((inter >= 12.0) && ( inter < 12.25 )) { ii = 10.29; iii = 12.01; }
     if ((inter >= 12.25) && ( inter < 12.5 )) { ii = 10.48; iii = 12.17; }
     if ((inter >=12.50) && ( inter < 12.75 )) { ii = 10.68; iii = 12.33; }
     if ((inter >= 12.75) && ( inter < 13.0 )) { ii = 10.87; iii = 12.49; }

     //represents max monthly debt allowed at 35% back ratio
     var moIncome = affIncome / 12;
     //calculate 35% of monthly income
     var y = moIncome * .35;

     //verifies the debt to income ratio
     var debtRatio = y - affDebts;
        if (debtRatio < 0) {
            alert ("Prior to performing calculations, this calculator verifies that your debt does not exceed 35% of your income.  The amounts you entered exceed this debt-to-income ratio and therefore we are unable to present you with a maximum loan amount.  Please check that you have not included housing costs in your monthly debts.")
            return false;
        }
        else
        {
            debtRatio = debtRatio;
        }

    //calculates monthly closing cost amount at 2.5%
     var closMoAmt = debtRatio * .25;

     //max P&I allowed after closing and .35 ratio are backed out
     var IncCalc = debtRatio - closMoAmt;

     moPay = Math.floor(IncCalc);

    //        if (document.getElementById("term").value == "30 YEAR" ) {
    var LoanAmount = IncCalc / ii;
    //        }
    //        if (document.getElementById("term").selectedIndex == "1" ) {
    //            var LoanAmount = IncCalc / iii;
    //        }
    var points = new Number(0);

    LoanAmount = Math.floor(LoanAmount * 1000);
    LoanAmount -= LoanAmount*points;
    var x = affDownPmt;
    var SalesPrice = Math.floor(LoanAmount + x);
    var purClos = Math.floor(SalesPrice * .025);

    //if funds available are less than closing costs do not show down payment amount
    var downPayment = Math.floor(affDownPmt - purClos);
    if (downPayment < 0) {
            downPayment = 0;
            purPrice = SalesPrice.toString();
        }
        else
        {
            downPayment = downPayment;
            purPrice = Math.floor(SalesPrice - purClos).toString();
    }

    loanAmt = LoanAmount.toString();
    downPymt = downPayment.toString();
    closCost = purClos.toString();

    document.getElementById("monthly").innerHTML = "$" + formatNumber(moPay*1);
    document.getElementById("amount").innerHTML = "$" + formatNumber(loanAmt*1);
    document.getElementById("price").innerHTML = "$" + formatNumber(purPrice*1);
    document.getElementById("downPayment").innerHTML = "$" + formatNumber(downPymt*1);
    document.getElementById("closingCosts").innerHTML = "$" + formatNumber(closCost*1);
}


/******************************/
/* Monthly Payment Calculator */
/******************************/
var principalInterest, monthlyMI, monthlyTax, monthlyInsurance, monthlyPayment, homeownDues = "";

function initMonthlyPaymentCalculator() {
    setMPLoanTerm();
    setMPHomePrice();
    setMPInterestRate();
    setMPLoanAmount();
    setMPPropertyTaxes();
    setMPHazardInsurance();
    setMPHOADues();
}

function setMPLoanTerm(){
    var input = document.getElementById('monthly_payments_loan_term');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0 || val > 60){
        input.value = "30 Years";
        loanTerm = 30;
    } else {
        input.value = val + " Years";
        loanTerm = val;
    }
}

function setMPHomePrice(){
    var input = document.getElementById('monthly_payments_home_price');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "$0";
        homePrice = 0;
    } else {
        input.value = "$" + formatNumber(val);
        homePrice = val;
    }
}

function setMPInterestRate(){
    var input = document.getElementById('monthly_payments_interest_rate');
    var val = input.value.replace(/[a-zA-Z%\s]/g, "");
    if(nonNumber(val) || val <= 0 || val > 100){
        input.value =  "7%";
        interestRate = 7;
    } else {
        input.value = val+"%";
        interestRate = val;
    }
}

function setMPLoanAmount(){
    var input = document.getElementById('monthly_payments_loan_amount');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val < 0){
        input.value = "$0";
        loanAmount = 0;
    } else {
        input.value = "$" + formatNumber(val);
        loanAmount = val;
    }
}

function setMPPropertyTaxes(){
    var input = document.getElementById('monthly_payments_property_taxes');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val < 0){
        input.value = "None";
        propertyTaxes = 0;
    } else {
        input.value = "$" + formatNumber(val);
        propertyTaxes = val;
    }
 }

function setMPHazardInsurance(){
    var input = document.getElementById('monthly_payments_hazard_insurance');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val < 0){
        input.value = "None";
        hazardInsurance = 0;
    } else {
        input.value = "$" + formatNumber(val);
        hazardInsurance = val;
    }
 }
 
 function setMPHOADues(){
    var input = document.getElementById('monthly_payments_hoa_dues');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val < 0){
        input.value = "None";
        hoaDues = 0;
    } else {
        input.value = "$" + formatNumber(val);
        hoaDues = val;
    }
 }
            
var homePrice = 0; 
var loanAmount = 0;
var interestRate = 7; 
var loanTerm = 30; 
var propertyTaxes = (.01*homePrice); 
var hazardInsurance = 0; 
var hoaDues = 0; 

function calculatePayment() {
    var downPayment = homePrice - loanAmount;
    var LTV = loanAmount/homePrice;
    var PMIRate = true;
    var LTVThreshold = 0.8;

    if (LTV < LTVThreshold)
    {
        PMIRate = false;
    }

    if (PMIRate)
    {
        if ((LTV < 0.85)||(LTV == 0.85))
        {
            PMIRate = 0.0032;
        }
        else if ((LTV < 0.90)||(LTV == 0.90))
        {
            PMIRate = 0.0052;
        }
        else if ((LTV < 0.95)||(LTV == 0.95))
        {
            PMIRate = 0.0078;
        }
        else
        {
            PMIRate = 0.0090;
        }
    }

    var mi = interestRate / 1200;
    var base = 1;
    var mbase = 1 + mi;

    for (i=0; i<loanTerm * 12; i++)
    {
        base = base * mbase
    }

    //These calculations make the same changes, but apply the values to JavaScript variables (as strings)
    principalInterest = Math.floor(loanAmount * mi / ( 1 - (1/base)));
    monthlyMI = Math.floor(loanAmount * (PMIRate / 12));
    monthlyTax = Math.floor(propertyTaxes / 12);
    monthlyInsurance = Math.floor(hazardInsurance / 12).toString();
    var dasum = loanAmount * mi / ( 1 - (1/base)) + propertyTaxes / 12 + hoaDues / 12 + loanAmount * (PMIRate / 12) + hazardInsurance / 12;
    monthlyPayment = Math.floor(dasum);
    homeownDues = Math.floor(hoaDues / 12);
    
    // draw                        
    document.getElementById('calc-monthly-cost').innerHTML = "$" + formatNumber(principalInterest*1);
    document.getElementById('calc-mort-ins-monthly').innerHTML = "$" + formatNumber(monthlyMI*1);
    document.getElementById('calc-prop-tax-monthly').innerHTML = "$" + formatNumber(monthlyTax*1);
    document.getElementById('calc-haz-ins-monthly').innerHTML = "$" + formatNumber(monthlyInsurance*1);
    document.getElementById('calc-hoa-monthly').innerHTML = "$" + formatNumber(homeownDues*1); 
    document.getElementById('calc-total-amount').innerHTML = "$" + formatNumber(monthlyPayment*1);
}


/****************************/
/* Refinance Calculator */
/****************************/
var rfLoanBalance, rfInterest, rfMonthlyPayment, rfPropertyValue, rfNewLoanTerm, rfNewInterestRate, rfNewLoanAmount = "";

function initRefinanceCalculator() {
    setRefLoanBalance();
    setRefInterestRate();
    setRefMonthlyPayment();
    setRefPropertyValue();
    setRefNewLoanTerm();
    setRefNewLoanAmount();
    setRefNewInterestRate();
}

function setRefLoanBalance(){
    var input = document.getElementById('loan-balance');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "$0";
        rfLoanBalance = 0;
    } else {
        input.value = "$" + formatNumber(val);
        rfLoanBalance = val;
    }
}

function setRefInterestRate(){
    var input = document.getElementById('interest-rate');
    var val = input.value.replace(/[a-zA-Z%\s]/g, "");
    if(nonNumber(val) || val <= 0 || val > 100){
        input.value = "7%";
        rfInterest = 7;
    } else {
        input.value = val+"%";
        rfInterest = val;
    }
}
function setRefMonthlyPayment(){
    var input = document.getElementById('monthly-payment');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "$0";
        rfMonthlyPayment = 0;
    } else {
        input.value = "$" + formatNumber(val);
        rfMonthlyPayment = val;
    }
}
function setRefPropertyValue(){
    var input = document.getElementById('property-value');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "$" + formatNumber(0);
        rfPropertyValue = 0;
    } else {
        input.value = "$" + formatNumber(val);
        rfPropertyValue = val;
    }
}
function setRefNewLoanTerm(){
    var input = document.getElementById('new-loan-term');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0 || val > 60){
        input.value = "30 Years";
        rfNewLoanTerm = 30;
    } else {
        input.value = val + " Years";
        rfNewLoanTerm = val;
    }
}
function setRefNewLoanAmount(){
    var input = document.getElementById('new-loan-amount');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "$0";
        rfNewLoanAmount = 0;
    } else {
        input.value = "$" + formatNumber(val);
        rfNewLoanAmount = val;
    }
}
function setRefNewInterestRate(){
    var input = document.getElementById('new-interest-rate');
    var val = input.value.replace(/[a-zA-Z%\s]/g, "");
    if(nonNumber(val) || val <= 0 || val > 100){
        input.value = "7%";
        rfNewInterestRate = 7;
    } else {
        input.value = val+"%";
        rfNewInterestRate = val;
    }
}

function calculatePMI(loanAmt, downPaymentAmt) {
    var loanAmt = rfNewLoanAmount;
    var salesPrice = rfPropertyValue;
    var LTV = loanAmt/downPaymentAmt;
    var PMIRate = true;
    var LTVThreshold = 0.8;
    var monthlyMI = 0;

    if (LTV < LTVThreshold) {
        PMIRate = false;
    }

    if (PMIRate) {
        if ((LTV < 0.85)||(LTV == 0.85)) { PMIRate = 0.0032; }
        else if ((LTV < 0.90)||(LTV == 0.90)) { PMIRate = 0.0052; }
        else if ((LTV < 0.95)||(LTV == 0.95)) { PMIRate = 0.0078; }
        else { PMIRate = 0.0090; }

        monthlyMI = loanAmt * PMIRate/12;
    }

    return monthlyMI;
}

function calculateClosingCosts(loanAmt, loanTerm, interestRate, programPoints, downPaymentAmt) {
    var taxServiceFee = new Number(75);
    var feeToCharge = new Number(350);
    var creditReportFee = new Number(20.7);
    var appraisalFee = new Number(300);
    var floodCertFee = new Number(15.5);
    var interestDays = new Number(15);
    var prePaidInterest = new Number((interestRate / 365) * loanAmt * interestDays);
    var originationFee = new Number(0);

    if ((programPoints > 0.01)||(programPoints == 0.01)) {
        originationFee = 0.01 * loanAmt;
    }

    var discountPoints = new Number(0);
    if (programPoints > 0.01) {
      discountPoints = (programPoints - 0.01) * loanAmt;
    } else if ((programPoints > 0)&&(programPoints < 0.01)) {
      discountPoints = programPoints * loanAmt;
    }

    var paidByLender = new Number(0);
    if (programPoints < 0.0) {
      paidByLender = programPoints * loanAmt;
    }

    var monthlyMI = calculatePMI(loanAmt, downPaymentAmt);
    var MIFee = new Number(monthlyMI * 2);
    var closingCosts = new Number(taxServiceFee + feeToCharge + creditReportFee + appraisalFee + floodCertFee + paidByLender + discountPoints + originationFee + prePaidInterest + MIFee)
    return(closingCosts);
}

function refinanceCalculate() {
    var mi = rfNewInterestRate / 1200;
    var base = 1;
    var mbase = 1 + mi;
    for (i=0; i<rfNewLoanTerm * 12; i++) {
        base = base * mbase;
    }

    loanAmt = rfNewLoanAmount;
    loanTerm = rfNewLoanTerm * 12;
    interestRate = rfNewInterestRate / 100;
    programPoints = 0.00;
    discountPoints = programPoints;
    downPayment = rfPropertyValue - loanAmt;
    closingCosts = Math.floor(calculateClosingCosts(loanAmt, loanTerm, interestRate, programPoints, downPayment));

    mortCosts = closingCosts.toString();
    refiPay = Math.floor(rfNewLoanAmount * mi / ( 1 - (1/base))).toString();
    payDiff = Math.floor(rfMonthlyPayment - rfNewLoanAmount * mi / ( 1 - (1/base))).toString();
    var monthb = eval(mortCosts / payDiff);
    breakMonth = parseInt(monthb);

    document.getElementById('calc-new-mortgage').innerHTML = "$" + formatNumber(mortCosts*1);
    document.getElementById('calc-monthly-payment').innerHTML = "$" + formatNumber(rfMonthlyPayment);
    document.getElementById('calc-refinance-payment').innerHTML = "$" + formatNumber(refiPay*1);
    document.getElementById('calc-payment-diff').innerHTML = "$" + formatNumber(payDiff*1);
    document.getElementById('calc-break-even').innerHTML = formatNumber(breakMonth*1);
}

/****************************/
/* Rent vs Buy Calculator */
/****************************/
var rbMonthlyRent,rbYearlyIncrease,rbTaxBracket,rbLoanTerm,rbInterestRate,rbLoanAmount,rbPropertyPrice,rbHomeAppreciation,rbPropertyTaxes,rbDurationOfStay = "";

function initRentVsBuyCalculator() {
    setRBMonthlyRent();
    setRBYearlyIncrease();
    setRBTaxBracket();
    setRBLoanTerm();
    setRBInterestRate();
    setRBLoanAmount();
    setRBPropertyPrice();
    setRBHomeAppreciation();
    setRBPropertyTaxes();
    setRBDurationOfStay();
}

function setRBMonthlyRent(){
    var input = document.getElementById('monthly-rent');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "$0";
        rbMonthlyRent = 0;
    } else {
        input.value = "$" + formatNumber(val);
        rbMonthlyRent = val;
    }
}
function setRBYearlyIncrease(){
    var input = document.getElementById('yearly-increase');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "0%";
        rbYearlyIncrease = 0;
    } else {
        input.value = val+"%";
        rbYearlyIncrease = val;
    }
}
function setRBTaxBracket(){
    var input = document.getElementById('tax-bracket');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0 || val >= 60){
        input.value = "28%";
        rbTaxBracket = 28;
    } else {
        input.value = val+"%";
        rbTaxBracket = val;
    }
}
function setRBLoanTerm(){
    var input = document.getElementById('loan-term');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "30 Years";
        rbLoanTerm = 30;
    } else {
        input.value = val + " Years";
        rbLoanTerm = val;
    }
}
function setRBInterestRate(){
    var input = document.getElementById('loan-interest-rate');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "7%";
        rbInterestRate = 7;
    } else {
        input.value = val+"%";
        rbInterestRate = val;
    }
}
function setRBLoanAmount(){
    var input = document.getElementById('loan-amount');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "$0";
        rbLoanAmount = 0;
    } else {
        input.value = "$" + formatNumber(val);
        rbLoanAmount = val;
    }
}
function setRBPropertyPrice(){
    var input = document.getElementById('property-price');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "$0";
        rbPropertyPrice = 0;
    } else {
        input.value = "$" + formatNumber(val);
        rbPropertyPrice = val;
    }
}
function setRBHomeAppreciation(){
    var input = document.getElementById('home-appreciation');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "0%";
        rbHomeAppreciation = 0;
    } else {
        input.value = val+"%";
        rbHomeAppreciation = val;
    }
}
function setRBPropertyTaxes(){
    var input = document.getElementById('property-taxes');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "$0";
        rbPropertyTaxes = 0;
    } else {
        input.value = "$" + formatNumber(val);
        rbPropertyTaxes = val;
    }
}
function setRBDurationOfStay(){
    var input = document.getElementById('duration-of-stay');
    var val = getNumberFromValue(input);
    if(nonNumber(val) || val <= 0){
        input.value = "5 Years";
        rbDurationOfStay = 5;
    } else {
        input.value = val + " Years";
        rbDurationOfStay = val;
    }
}
function rentvsbuyCalculate()
{
    var dSalesPrice = rbPropertyPrice;
    var dInterestRate = (rbInterestRate/100);
    var dLoanAmount = rbLoanAmount;
    var iLoanTerm = (rbLoanTerm*12);
    var dMonthlyMI = 0;
    var dFederalTaxRate = rbTaxBracket/100;
    var dAppreciationRate = rbHomeAppreciation/100;
    var dDiscountPoints = 0.01;
    var iExpectedYearsToOwn = rbDurationOfStay;
    var dMonthlyRent = rbMonthlyRent;
    var dAnnualRentIncrease = rbYearlyIncrease/100;
    var dAnnualPropertyTax = rbPropertyTaxes;
    var dAnnualMiscOwnershipFees = 0;
    var dAnnualMiscRentalFees = 0;
    var dClosingCosts = 0;
    var dRentingCosts = 0;
    var dBuyingCosts = 0;
    var dPotentialSavings = 0;
    var dEquityEarned = 0;
    var dTaxSavings = 0;
    var dTotalSavings = 0;
    var dNetBuyingCosts = 0;


    var RBCalc = new RentVsBuyCalculator();
    RBCalc = RBCalc.calculate(dSalesPrice, dInterestRate, dLoanAmount, iLoanTerm, dMonthlyMI, dFederalTaxRate, dAppreciationRate, dDiscountPoints, iExpectedYearsToOwn, dMonthlyRent, dAnnualRentIncrease, dAnnualPropertyTax, dAnnualMiscOwnershipFees, dAnnualMiscRentalFees);


    dClosingCosts = RBCalc.getClosingCosts();
    dRentingCosts = RBCalc.getRentingCost();
    dBuyingCosts = RBCalc.getGrossCosts();
    dPotentialSavings = RBCalc.getPotentialSavings();
    dEquityEarned = RBCalc.getEquityEarned();
    dTaxSavings = RBCalc.getTaxSavings();
    dTotalSavings = RBCalc.getOwnershipBenefit();
    RBCalc = "";
    dNetBuyingCosts = dBuyingCosts - dTaxSavings - dEquityEarned;

    function round(passNumber) {

        var passNumberString = passNumber.toString();

        //check for a decimal
        if ((passNumberString.indexOf('.') >= 0)&&(passNumberString.indexOf('.') != (passNumberString.length-1))) {
            //has a decimal, can be rounded up

            var roundNumber = new Number(passNumberString.charAt(passNumberString.indexOf('.')+1));

            if (roundNumber >= 5) {
                passNumber = Math.ceil(passNumber);
            } else {
                passNumber = Math.floor(passNumber);
            }

        }


        //in all instances, return number
        return passNumber;
    }
    
    document.getElementById('calc-rent-cost').innerHTML = "$" + formatNumber(round(dRentingCosts)*1);
    document.getElementById('calc-buy-cost').innerHTML = "$" + formatNumber(round(dBuyingCosts));
    document.getElementById('calc-tax-savings').innerHTML = "$" + formatNumber(round(dTaxSavings)*1);
    document.getElementById('calc-increased-equity').innerHTML = "$" + formatNumber(round(dEquityEarned)*1);
    document.getElementById('calc-net-buy-cost').innerHTML = "$" + formatNumber(round(dNetBuyingCosts)*1);
    document.getElementById('calc-total-savings').innerHTML = "$" + formatNumber(round(dTotalSavings)*1);
    document.getElementById('calc-investment-savings').innerHTML = "$" + formatNumber(round(dPotentialSavings)*1);
    
}
