h = ''; function jumpBox(list) { location.href = list.options[list.selectedIndex].value } function formatNum(Vnum) { if(Vnum > 99000000) { alert("Sorry, this will not generate numbers larger that 99 million."); focus(); } else { var V10million = parseInt(Vnum / 10000000); var V1million = (Vnum % 10000000) / 1000000; if(V1million / 1000000 == 1) { V1million = 1; } else if(V1million < 1) { V1million = "0"; } else { V1million = parseInt(V1million,10); } var V100thousand = (Vnum % 1000000) / 100000; if(V100thousand / 100000 == 1) { V100thousand = 1; } else if(V100thousand < 1) { V100thousand = "0"; } else { V100thousand = parseInt(V100thousand,10); } var V10thousand = (Vnum % 100000) / 10000; if(V10thousand / 10000 == 1) { V10thousand = 1; } else if(V10thousand < 1) { V10thousand = "0"; } else { V10thousand = parseInt(V10thousand,10); } var V1thousand = (Vnum % 10000) / 1000; if(V1thousand / 1000 == 1) { V1thousand = 1; } else if(V1thousand < 1) { V1thousand = "0"; } else { V1thousand = parseInt(V1thousand,10); } var Vhundreds = (Vnum % 1000) / 100; if(Vhundreds / 100 == 1) { Vhundreds = 1; } else if(Vhundreds < 1) { Vhundreds = "0"; } else { Vhundreds = parseInt(Vhundreds,10); } var Vtens = (Vnum % 100) / 10; if(Vtens / 10 == 1) { Vtens = 1; } else if(Vtens < 1) { Vtens = "0"; } else { Vtens = parseInt(Vtens,10); } var Vones = (Vnum % 10) / 1; if(Vones / 1 == 1) { Vones = 1; } else if(Vones < 1) { Vones = "0"; } else { Vones = parseInt(Vones,10); } //START UPGRADE var Vcents = 0; if(Vnum % 1 * 100 < 1) { Vcents = 0; } else { Vcents = parseInt(((eval(Vnum % 1) * 100)),10); } //END UPGRADE if(Vcents < 1) { Vcents = "00"; } else if(Vcents % 10 == 0) { Vcents = Vcents + "0"; } else if(Vcents % 10 == Vcents) { Vcents = "0" + Vcents; } else { Vcents = Vcents; } if(Vcents == "900") { Vcents = "90"; } else if(Vcents == "800") { Vcents = "80"; } else if(Vcents == "700") { Vcents = "70"; } else if(Vcents == "600") { Vcents = "60"; } else if(Vcents == "500") { Vcents = "50"; } else if(Vcents == "400") { Vcents = "40"; } else if(Vcents == "300") { Vcents = "30"; } else if(Vcents == "200") { Vcents = "20"; } else if(Vcents == "100") { Vcents = "10"; } else { Vcents = Vcents; } var Vformat = ""; if(Vnum >= 10000000) { Vformat = (V10million + "" + V1million + "," + V100thousand + "" + V10thousand + "" + V1thousand + "," + Vhundreds + "" + Vtens + "" + Vones + "." + Vcents); } else if(Vnum >= 1000000) { Vformat = (V1million + "," + V100thousand + "" + V10thousand + "" + V1thousand + "," + Vhundreds + "" + Vtens + "" + Vones + "." + Vcents); } else if(Vnum >= 100000) { Vformat = (V100thousand + "" + V10thousand + "" + V1thousand + "," + Vhundreds + "" + Vtens + "" + Vones + "." + Vcents); } else if(Vnum >= 10000) { Vformat = (V10thousand + "" + V1thousand + "," + Vhundreds + "" + Vtens + "" + Vones + "." + Vcents); } else if(Vnum >= 1000) { Vformat = (V1thousand + "," + Vhundreds + "" + Vtens + "" + Vones + "." + Vcents); } else if(Vnum >= 100) { Vformat = (Vhundreds + "" + Vtens + "" + Vones + "." + Vcents); } else if(Vnum >= 10) { Vformat = (Vtens + "" + Vones + "." + Vcents); } else if(Vnum >= 1) { Vformat = (Vones + "." + Vcents); } else { Vformat = ("0." + Vcents); } return Vformat; } } function computeForm(form) { if(form.moRent.value == "" || form.moRent.value == 0) { alert("Please enter the amount of your monthly rent payment."); form.moRent.focus(); } else if(form.homeCost.value == "" || form.homeCost.value == 0) { alert("Please enter the purchase price of the home."); form.homeCost.focus(); } else if(form.noYears.value == "" || form.noYears.value == 0) { alert("Please enter number of years you are financing the home for."); form.noYears.focus(); } else if(form.payRate.value == "" || form.payRate.value == 0) { alert("Please enter the mortgage's annual interest rate."); form.payRate.focus(); } else if(form.stayYrs.value == "" || form.payRate.value == 0) { alert("Please enter the number of years you plan to stay in this property."); form.payRate.focus(); } else { //GET RENTAL INFO var VmoRent = form.moRent.value; var VtotRent = 0; var VmoRentIns = form.moRentIns.value; if(VmoRentIns == "" || VmoRentIns == 0) { VmoRentIns = 0 } var VinflateRate = form.inflateRate.value; if(VinflateRate == "" || VinflateRate == 0) { VinflateRate = 0 } else if(VinflateRate >= 1) { VinflateRate = VinflateRate / 100; } VinflateRate = eval(VinflateRate) + eval(1); //GET TIME INFO & CONVERT TO MONTHS var VstayYrs = form.stayYrs.value; var VstayMonths = VstayYrs * 12; var count = 0; //GET LOAN INFO var i = form.payRate.value; if (i > 1.0) { i = i / 100.0; } i /= 12; var VhomeCost = form.homeCost.value; var VnoYears = form.noYears.value; var VdownPmt = form.downPmt.value; var VorigPrin = eval(VhomeCost) - eval(VdownPmt); var intPort = 0; var VaccumInt = 0; var prinPort = 0; var prin = VorigPrin; //CALULCATE MONTHLY MORTGAGE PAYMENT var noMonths = VnoYears * 12; var pow = 1; for (var j = 0; j < noMonths; j++) pow = pow * (1 + i); var VmoPmt = (VorigPrin * pow * i) / (pow - 1); //GET HOME APPRECIATION INFO var VapprecRate = form.apprecRate.value; if(VapprecRate == "" || VapprecRate == 0) { VapprecRate = 0; } else if(VapprecRate >= 0) { VapprecRate = VapprecRate / 100; } VapprecRate = eval(VapprecRate) + eval(1); var VaccumApprec = VhomeCost * VapprecRate; //alert(VaccumApprec); //GET PMI (PRIVATE MORTGAGE INSURANCE) INFO var Vpmi = form.pmi.value; if(Vpmi == 0 || Vpmi == "") { Vpmi = 0; } else if(Vpmi >= .01) { Vpmi = Vpmi / 100; } Vpmi = Vpmi / 12; var pmiYN = 0; var downPayPerc = VdownPmt / VhomeCost; if(downPayPerc < .20) { pmiYN = 1; var VaccumPmi = 0; } //*******CALCULATE CLOSING COSTS //POINTS var Vfees = form.fees.value; if(Vfees == 0 || Vfees == "") { Vfees = 0; } else if(Vfees >= 1 ) { Vfees = Vfees / 100; } var VfeeCost = VorigPrin * Vfees; //ORIGINATION FEE var Vpoints = form.points.value; if(Vpoints == 0 || Vpoints == "") { Vpoints = 0; } else if(Vpoints >= 1 ) { Vpoints = Vpoints / 100; } var VpointCost = VorigPrin * Vpoints; //OTHER LOAN COSTS var VloanCosts= form.loanCosts.value; if(VloanCosts == 0 || VloanCosts == "") { VloanCosts = 0; } //TOTAL CLOSING COSTS var VclosingCosts = eval(VpointCost) + eval(VfeeCost) + eval(VloanCosts); //GET INVESTMENT INFO var VinvestIntPort = 0; var VinvestPrin = eval(VdownPmt) + eval(VclosingCosts); var earnInt = form.saveRate.value; if (earnInt > 1.0) { earnInt = earnInt / 100.0; } earnInt /= 12; //INITIATE INFLATION FACTOR var VaccumInflate = 1; //*****CYCLE THROUGH NUMBER OF MONTHS while(count < VstayMonths) { //ACCUMULATE RENT PAYMENTS & INSURANCE & APPRECIATION if(count > 0 && count % 12 == 0) { VaccumApprec = VaccumApprec * VapprecRate; VmoRent = VmoRent * VinflateRate; VaccumInflate = VaccumInflate * VinflateRate; } VtotRent = eval(VtotRent) + eval(VmoRent); VtotRent = eval(VtotRent) + eval(VmoRentIns); //ACCUMULATE INTEREST PAYMENTS if(count < noMonths) { intPort = prin * i; VaccumInt = eval(VaccumInt) + eval(intPort) prinPort = eval(VmoPmt) - eval(intPort); prin = eval(prin) - eval(prinPort); } //IF PMI APPLICABLE, ACCUMULATE if(pmiYN == 1) { VaccumPmi = eval(VaccumPmi) + eval(Vpmi * prin); } //AMORTIZE INVESTED DOWNPAYMENT AND CLOSING COSTS VinvestIntPort = earnInt * VinvestPrin; VinvestPrin = eval(VinvestPrin) + eval(VinvestIntPort); //INCREASE COUNT count = eval(count) + eval(1); } //CALCULATE TOTAL ASSOCIATION DUES var VassocDues = form.assocDues.value; if(VassocDues == "" || VassocDues == 0) { VassocDues = 0; } var VtotAssocDues = VassocDues * VstayYrs * VaccumInflate; //CALCULATE TOTAL PROPERTY TAXES var VpropTax = form.propTax.value; if(VpropTax == "" || VpropTax == 0) { VpropTax = 0; } var VtotPropTax = VpropTax * VstayYrs * VaccumInflate; //CALCULATE TOTAL MAINTENANCE COSTS var Vmaint = form.maint.value; if(Vmaint == "" || Vmaint == 0) { Vmaint = 0; } var VtotMaintCost = Vmaint * 12 * VstayYrs * VaccumInflate; //CALCULATE TOTAL HOMEOWNER INSURANCE COSTS var VhomeIns = form.homeIns.value; if(VhomeIns == "" || VhomeIns == 0) { VhomeIns = 0; } else if(VhomeIns >= .01) { VhomeIns = VhomeIns / 100; } var VtotHomeInsCost = VhomeIns * VhomeCost * VstayYrs * VaccumInflate; //CALCULATE NET GAIN ON HOME var VnetGain = eval(VaccumApprec) - eval(VhomeCost); //CALCULATE TAX SAVINGS ON INTEREST, POINTS AND PROPERTY TAXES var VtotTaxDeduct = eval(VaccumInt) + eval(VtotPropTax) + eval(VfeeCost); var VincomeTax = form.incomeTax.value; if(VincomeTax == 0 || VincomeTax == "") { VincomeTax = 0; } else if(VincomeTax >= 1) { VincomeTax = VincomeTax / 100; } var VtotTaxSave = VincomeTax * VtotTaxDeduct; //CALCULATE REALTOR COMMISSION ON SALE OF HOME var VrealtorCom = form.realtorCom.value; if(VrealtorCom == 0 || VrealtorCom == "") { VrealtorCom = 0; } else if(VrealtorCom >= 1) { VrealtorCom = VrealtorCom / 100; } var VsellCost = VaccumApprec * VrealtorCom; //CALCULATE NET EARNINGS ON INVESTMENT var VinvestEarn = eval(VinvestPrin) - eval(VdownPmt) - eval(VclosingCosts); form.totRent.value = VtotRent; form.moPmt.value = VmoPmt; form.accumInt.value = VaccumInt; form.closeCosts.value = VclosingCosts; form.totPropTax.value = VtotPropTax; form.totMaintCost.value = VtotMaintCost; form.totHomeInsCost.value = VtotHomeInsCost; form.netGain.value = VnetGain; form.pmiCost.value = VaccumPmi; form.investPrin.value = VinvestEarn; form.totAssocDues.value = VtotAssocDues; form.totTaxSave.value = VtotTaxSave; form.sellCost.value = VsellCost; var VtotRentCosts = VtotRent; form.totRentCosts.value = VtotRentCosts; var VtotRentBenefits = VinvestEarn; form.totRentBenefits.value = VtotRentBenefits; var VnetRentCost = eval(VtotRent) - eval(VinvestEarn); var VtotBuyCosts = eval(VaccumInt) + eval(VclosingCosts) + eval(VtotPropTax) + eval(VtotMaintCost) + eval(VtotHomeInsCost) + eval(VtotAssocDues) + eval(VsellCost); form.totBuyCosts.value = VtotBuyCosts; var VtotBuyBenefits = eval(VnetGain) + eval(VtotTaxSave); form.totBuyBenefits.value = VtotBuyBenefits; var VnetBuyCost = eval(VtotBuyCosts) - eval(VtotBuyBenefits); form.netRentCost.value = formatNum(VnetRentCost); form.netBuyCost.value = formatNum(VnetBuyCost); document.getElementById('netRentCost').innerHTML="$ " + formatNum(VnetRentCost); document.getElementById('netBuyCost').innerHTML="$ " + formatNum(VnetBuyCost); var diff = 0; var Vsummary = ""; if(VnetRentCost > VnetBuyCost) { diff = eval(VnetRentCost) - eval(VnetBuyCost); Vsummary = "You will save $" + formatNum(diff) + " if you buy instead of rent." } else { diff = eval(VnetBuyCost) - eval(VnetRentCost); //Vsummary = "You will save $" + formatNum(diff) + " if you rent instead of buy." } //form.results.value = Vsummary; document.getElementById('resultx').innerHTML= Vsummary; document.getElementById('result').style.display=""; } } function clearForm(form) { document.getElementById('result').style.display="none"; } h = ' -->';