// JavaScript Document

function computeForm(form) {

//section 2 financing calculation
var a = parseFloat(document.form1.firstloan.value);
var b = parseFloat(document.form1.secloan.value);
document.form1.totalfin.value = a + b;

//section 3 initial investment calculation
var ba = parseFloat(document.form1.purchaseprice.value);
document.form1.downpayment.value = ba - (a + b);
var c = parseFloat(document.form1.downpayment.value);
var d = parseFloat(document.form1.closingcost.value);
document.form1.totalinvestment.value = c + d;

//section 4 annual income calculation
var e = parseFloat(document.form1.monthlyrent.value);
var f = parseFloat(document.form1.annualvacrate.value);
var g = parseFloat(document.form1.otherincome.value);
var h = e * 12 * f/100;
document.form1.grossincome.value = (e * 12) - h + g;

//section 5 depreciation calculation
var i = parseFloat(document.form1.purchaseprice.value);
document.form1.purchaseprice2.value = i;
var j = parseFloat(document.form1.landvalue.value);
document.form1.improvevalue.value = i - j;

//section 6 net operating income calculation
var k = parseFloat(document.form1.grossincome.value);
var kk = parseFloat(document.form1.grossincome.value);
var l = parseFloat(document.form1.operatingexp.value);

document.form1.grossinc2.value = kk;
document.form1.noi.value = k - l;

//section 7 principal reduction calculation
var m = parseFloat(document.form1.pi1stloan.value);
var n = parseFloat(document.form1.pi2ndloan.value);
var o = m * 12 + n * 12;
document.form1.annualdebtsrv.value = o;
var p = parseFloat(document.form1.annualinterest.value);
var pp = parseFloat(document.form1.annualinterest.value);
document.form1.princreduct.value = o - p;

//section 8 annual appreciation calculation
var q = parseFloat(document.form1.purchaseprice.value);
var qq = parseFloat(document.form1.purchaseprice.value);
document.form1.purchaseprice3.value = qq;
var r = parseFloat(document.form1.apprate.value);
document.form1.annualapp.value = q * (r/100);

//section 9 cash flow before taxes calculation
var s = parseFloat(document.form1.noi.value);
var ss = parseFloat(document.form1.noi.value);
document.form1.noi2.value = s;
var t = parseFloat(document.form1.annualdebtsrv.value);
var tt = parseFloat(document.form1.annualdebtsrv.value);
document.form1.ds.value = tt;
document.form1.cfbt1.value = currency(s - t);

//section 10 tax savings/liablity calculation
document.form1.noi3.value = document.form1.noi2.value;
var uu = parseFloat(document.form1.noi3.value);
document.form1.aninterest.value = pp;
var uuu = parseFloat(document.form1.aninterest.value);

var u = parseFloat(document.form1.improvevalue.value);
var v = parseFloat(document.form1.andepropt.value);
document.form1.andepramt.value = Math.round(u / v);
var vv = parseFloat(document.form1.andepramt.value)

document.form1.taxableincome.value = uu - uuu - vv;

var w = parseFloat(document.form1.taxableincome.value);
var v = parseFloat(document.form1.taxbracket.value);
document.form1.taxsaving.value = currency(w * v/100);

//section 11 CFAT calculation
var y = s - t;
document.form1.cfbt2.value = currency(s - t);
var yx = w * v/100 * -1;
document.form1.taxsaving2.value = currency(yx); 
var yy = w * v/100 * -1;
document.form1.cfat.value = currency(y + yy);

//section 12 indication calculation
var z = y + yy;
var aa = parseFloat(document.form1.princreduct.value);
var ab = parseFloat(document.form1.annualapp.value);
var ac = parseFloat(document.form1.totalinvestment.value);
var acc = (z + aa + ab)/ac * 100;
document.form1.roi.value = acc.toPrecision(4);

var ac = parseFloat(document.form1.noi.value);
var ad = parseFloat(document.form1.purchaseprice.value);
var ae = ac / ad * 100;
document.form1.caprate.value = ae.toPrecision(4);

var ae = y;
var af = parseFloat(document.form1.totalinvestment.value);
var aff = (ae / af * 100);
document.form1.cashoncash.value = aff.toPrecision(4);

}
function currency(anynum)
	{
	//-- Returns passed number as string in $xxx,xxx.xx format. Great conversion!
	anynum=eval(anynum)
	workNum=Math.abs((Math.round(anynum*100)/100));workStr=""+workNum
	if (workStr.indexOf(".")==-1){workStr+=".00"}
	dStr=workStr.substr(0,workStr.indexOf("."));dNum=dStr-0
	pStr=workStr.substr(workStr.indexOf("."))
	while (pStr.length<3){pStr+="0"}

	//--- Adds comma in thousands place.
	if (dNum>=1000) {
	  dLen=dStr.length
	  dStr=parseInt(""+(dNum/1000))+","+dStr.substring(dLen-3,dLen)
	}

	//-- Adds comma in millions place.
	if (dNum>=1000000) {
	  dLen=dStr.length
	  dStr=parseInt(""+(dNum/1000000))+","+dStr.substring(dLen-7,dLen)
	}
	retval = dStr + pStr
	//-- Put numbers in parentheses if negative.
	if (anynum<0) {retval="("+retval+")"}
	return "$"+retval
	}
	
function changeResult()
{
	var message = "This field is automatically calculated for you. Please do not change it!";
	alert( message );
	self.document.forms[0].c.value = curResult;
}
	


	


	

