
function Calc_Finl_Stmt()
{	
	NumUnits = document.BMC_MultiFam_Calc.NumUnits.value-0
	GrossPotInc = document.BMC_MultiFam_Calc.GrossPotInc.value-0

	VacancyPercent = document.BMC_MultiFam_Calc.VacancyPercent.value-0
	VacancyTotal = Math.round((GrossPotInc*VacancyPercent)/100)

	if (VacancyTotal<=1) {
		document.BMC_MultiFam_Calc.VacancyTotal.value = ""
	} else {
		document.BMC_MultiFam_Calc.VacancyTotal.value = VacancyTotal
	}

	OtherInc = document.BMC_MultiFam_Calc.OtherInc.value-0

	EffGrossInc = GrossPotInc+OtherInc-VacancyTotal
	document.BMC_MultiFam_Calc.EffGrossInc.value = EffGrossInc
	
	Taxes = document.BMC_MultiFam_Calc.Taxes.value-0
	Insurance = document.BMC_MultiFam_Calc.Insurance.value-0
	Utilities = document.BMC_MultiFam_Calc.Utilities.value-0
	Management = document.BMC_MultiFam_Calc.Management.value-0
	Maintenance = document.BMC_MultiFam_Calc.Maintenance.value-0
	Administrative = document.BMC_MultiFam_Calc.Administrative.value-0
	Marketing = document.BMC_MultiFam_Calc.Marketing.value-0
	Trash_Sewer = document.BMC_MultiFam_Calc.Trash_Sewer.value-0
	Miscellaneous = document.BMC_MultiFam_Calc.Miscellaneous.value-0

	TotOperExp = Taxes+Insurance+Utilities+Management+Maintenance+Administrative+Trash_Sewer+Marketing+Miscellaneous
	document.BMC_MultiFam_Calc.TotOperExp.value = TotOperExp	
	
	MgmtPercent = Math.round(GrossPotInc*0.05)
	
	if (Management<MgmtPercent)
	{
		Management = Math.round(GrossPotInc*0.05)
		document.BMC_MultiFam_Calc.Management.value = Management
	}
	
	NetOperInc = EffGrossInc-TotOperExp
	document.BMC_MultiFam_Calc.NetOperInc.value = NetOperInc

	OperExpPerUnit = Math.round(TotOperExp/NumUnits)

	valTest = OperExpPerUnit/OperExpPerUnit
	if(!isNaN(valTest))
	{	
		document.BMC_MultiFam_Calc.OperExpPerUnit.value = OperExpPerUnit
	} else	{
		document.BMC_MultiFam_Calc.OperExpPerUnit.value = ""
	}
	
	OperExpRatio = TotOperExp/EffGrossInc

	valTest = OperExpRatio/OperExpRatio
	if(!isNaN(valTest))
	{	
		document.BMC_MultiFam_Calc.OperExpRatio.value = format_number(OperExpRatio,2)
	} else	{
		document.BMC_MultiFam_Calc.OperExpRatio.value = ""
	}
	
	CapExPerUnit = document.BMC_MultiFam_Calc.CapExPerUnit.value-0	
	
	if (CapExPerUnit < 150)
	{
		CapExPerUnit = 150
	}
	
	document.BMC_MultiFam_Calc.CapExPerUnit.value = CapExPerUnit	
	TotCapEx = Math.round(CapExPerUnit*NumUnits)
	document.BMC_MultiFam_Calc.TotCapEx.value = TotCapEx
	
	CashFlow = NetOperInc-TotCapEx
	document.BMC_MultiFam_Calc.CashFlow.value = CashFlow
	
	Rate = document.BMC_MultiFam_Calc.Rate.value-0
	Amort = document.BMC_MultiFam_Calc.Amort.value-0
	DSCR = document.BMC_MultiFam_Calc.DSCR.value-0

	
	Rate = (Rate/12)/100
	NPER = Amort * 12
	PV = -100
	FV = 0
	ptype = 0
	
	powRate = Math.pow(1+Rate,NPER)	
	PMT  = (Rate*(FV+PV*(powRate)))/((1+Rate*ptype)*(1-(powRate)))*12
	pmtRev = format_number(PMT,2)	

	valTest = pmtRev/pmtRev
	
	if(!isNaN(valTest))
	{	
		document.BMC_MultiFam_Calc.LoanSize.value = Math.round((NetOperInc/DSCR/pmtRev)*100)
	} else	{
		document.BMC_MultiFam_Calc.LoanSize.value = ""
	}
}

function format_number(pnumber,decimals){ 
if (isNaN(pnumber)) { return 0}; 
if (pnumber=='') { return 0}; 

var snum = new String(pnumber); 
var sec = snum.split('.'); 
var whole = parseFloat(sec[0]); 
var result = ''; 

if(sec.length > 1){ 
var dec = new String(sec[1]); 
dec = String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals))); 
dec = String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals)); 
var dot = dec.indexOf('.'); 
if(dot == -1){ 
dec += '.'; 
dot = dec.indexOf('.'); 
} 
while(dec.length <= dot + decimals) { dec += '0'; } 
result = dec; 
} else{ 
var dot; 
var dec = new String(whole); 
dec += '.'; 
dot = dec.indexOf('.'); 
while(dec.length <= dot + decimals) { dec += '0'; } 
result = dec; 
} 
return result; 
} 
