// JavaScript Document

function right(e) {
  if ((navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2)) || (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3))) {
    alert("This website is copyrighted by Magnet Properties!");
	  return false;
 	}
	else {
    return true;
  }
}

document.onmousedown=right;
document.onmouseup=right;

if (document.layers)
  window.captureEvents(Event.MOUSEDOWN);
if (document.layers)
  window.captureEvents(Event.MOUSEUP);

window.onmousedown=right;
window.onmouseup=right;

function checkNumber(input, min, max, msg) {
msg = msg + " field has invalid data: " + input.value;
var str = input.value;
for (var i = 0; i < str.length; i++) {
var ch = str.substring(i, i + 1)
if ((ch < "0" || "9" < ch) && ch != '.') {
alert(msg);
return false;
      }
   }
var num = parseFloat(str)
if (num < min || max < num) {
alert(msg + " not in range [" + min + ".." + max + "]");
return false;
   }
input.value = str;
return true;
}
function computeField(input) {
if (input.value != null && input.value.length != 0)
input.value = "" + eval(input.value);
computeForm(input.form);
}
function computeForm(form) {
if ((form.payments.value == null || form.payments.value.length == 0) ||
(form.interest.value == null || form.interest.value.length == 0) ||
(form.principal.value == null || form.principal.value.length == 0)) {
return;
}
if (!checkNumber(form.payments, 1, 480, "# of payments") ||
!checkNumber(form.interest, .001, 99, "Interest") ||
!checkNumber(form.principal, 100, 10000000, "Principal")) {
form.payment.value = "Invalid";
return;
//section 1 calculation
}
var i = form.interest.value;
if (i > 1.0) {
i = i / 100.0;
form.interest.value = i;
}
i /= 12;
var pow = 1;
for (var j = 0; j < form.payments.value; j++)
pow = pow * (1 + i);
money = "" + .01* Math.round(100*(form.principal.value * pow * i) / (pow - 1));
form.payment.value = currency(money);

var montax = parseFloat(form.tax1.value);
var moninc = parseFloat(form.insurance1.value);
var money1 = parseFloat(money);
var tot1 = montax + moninc + money1 ;
form.monpay.value = currency(tot1);

//section 3 annual interst calculations
var princ_balance = parseFloat(form.principal.value);
var sum_princ_balance = princ_balance;
var rate = parseFloat(form.interest.value);
var payment = money;
var aninterest = 0;

for(var i = 0; i < 11; i++)
{
var one_year_interest = (sum_princ_balance * rate);
var one_month_interest = one_year_interest/12;
var princ_paid_off = payment - one_month_interest;
var sum_princ_balance = sum_princ_balance - princ_paid_off;
var aninterest = aninterest + one_month_interest;
var tot_aninterest = aninterest;
}
form.annualint.value = tot_aninterest.toFixed(2);

//section 3 total deductions
var interest = parseFloat(form.annualint.value);
var realtax = parseFloat(form.tax1.value * 12);
form.realestatetax.value = realtax.toFixed(2);
var other = parseFloat(form.other.value);
var tot2 = interest + realtax + other;
form.totaldeduct.value = tot2.toFixed(2); 

//section 4a new taxable income calculations
form.deductions2.value = tot2;
form.taxincome3.value = form.taxincome.value;
var tot3 = form.taxincome3.value;
form.newtaxin.value = tot3 - tot2;
//section 4b taxable income w/o standard deduction calculation
form.taxincome4.value = form.taxincome.value;
var tot4 = parseFloat(form.taxincome4.value);
var deduct4 = parseFloat(form.standdeduct.value);
form.taxinwo.value = tot4 + deduct4;

var tot5 = parseFloat(form.taxinwo.value);
form.deduction4.value = form.totaldeduct.value;
//section 4b  new taxable income calculation
var tot6 = parseFloat(form.deduction4.value);
var tot7 = parseFloat(form.notavded.value);
form.newincome4.value = tot5 - tot6 - tot7;

//section 6 display
form.taxes6.value = form.statefedtax.value;
var tot8 = parseFloat(form.taxes6.value);
form.taxes5.value = form.newstatefed.value;
var tot9 = parseFloat(form.taxes5.value);
var tot10 = tot8 - tot9;
form.anualtaxsav.value = currency (tot10);
//var tot11 = form.anualtaxsav.value;
form.montaxsav.value = currency(tot10/12);

//last section
form.payment1.value = currency(tot1);
tot11 = tot10/12;
form.monsav5.value = currency(tot11);
form.aftertaxmpay.value = currency(tot1 - tot11);
}
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;
}
	

