<!-- Copyright Visulate LLC 2007, 2008  All Rights Reserved Worldwide-->
function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(d+)(d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function stripCommas(nStr)
{
  var re = /,/g;
  return nStr.replace(re, "") *1;
}
function compute_value(form)
{
  var gross = 0;
  var vmess = 
      "Please include a link to http://visulate.com/ somewhere on your webpage";
  var lcount=document.links.length;
  var vcount=0;
  var sloc="ulate";
  var rloc=".";
  var jloc="http";
  var wloc="com";
  var kloc="/";
  gross = stripCommas(form.rent.value) * 12;
  form.gross.value =  addCommas(gross);
  var other = stripCommas(form.other.value) * 1;
  var total_gross = gross + other;
  var ploc=":";
  var tloc="vis";

  form.total_gross.value =  addCommas(total_gross);
    vc = gross * form.vc_pct.value/100;
    form.vc_act.value = addCommas(vc);
  vloc = jloc+ploc+kloc+kloc+tloc+sloc+rloc+wloc+kloc;
  var i3 =  (stripCommas(form.impr3.value)*1)/3;
  var i5 =  (stripCommas(form.impr5.value)*1)/5;
  var i12 = (stripCommas(form.impr12.value)*1)/12;
  var itot =  i3 + i5 + i12;
  form.impr.value = itot.toFixed(2);
  for(var i=0; i < lcount; i++){
    if (document.links[i] == vloc)  vcount = vcount + 1;
    }
  var noi = total_gross - vc
                  - stripCommas(form.impr.value)
                  - stripCommas(form.maint.value)
                  - stripCommas(form.util.value)
                  - stripCommas(form.tax.value)
                  - stripCommas(form.ins.value)
                  - stripCommas(form.mgt.value);
  form.noi.value = addCommas(noi);
  var cap_rate = form.cap_rate.value   * 1;
  var cur_value = stripCommas(form.cur_value.value) * 1;
  if (cur_value != 0) 
   {
    cap_rate = (noi * 100)/cur_value;
    form.cap_rate.value = cap_rate.toFixed(2);
   }
  if (vcount < 1){alert(vmess);}
  if (cap_rate == 0)
      {cap_rate = 7.5;
       form.cap_rate.value = cap_rate;
      }
    cur_value = (noi * 100)/cap_rate;
    form.cur_value.value = addCommas(cur_value.toFixed(0));

    document.temps.LA.value = stripCommas(form.cur_value.value) 
                            - stripCommas(form.down_payment.value);

    document.temps.AT.value = stripCommas(form.tax.value);
    document.temps.AI.value = stripCommas(form.ins.value);

    dosum();
    dosum2();
}

function floor(number)
{
  return Math.floor(number*Math.pow(10,2) + 0.5)/Math.pow(10,2);
}

function dosum()
{
  var ltyp = window.document.temps.loantype.value;
  if (ltyp == 'Interest Only')
   {
    var payment = document.temps.LA.value * document.temps.IR.value /1200;
    document.temps.PI.value = payment.toFixed(2);
    document.temps.YR.value = '';
    document.temps.YR.disabled = true;
   }
  else
   {
    document.temps.YR.disabled = false;
    if  (document.temps.YR.value == '') {
        document.temps.YR.value = 30;
     }
    var mi = document.temps.IR.value / 1200;
    var base = 1;
    var mbase = 1 + mi;
    for (i=0; i<document.temps.YR.value * 12; i++)
    {
      base = base * mbase
    }
    document.temps.PI.value = floor(document.temps.LA.value * mi / ( 1 - (1/base)))
  }
  document.temps.MT.value = floor(document.temps.AT.value / 12)
  document.temps.MI.value = floor(document.temps.AI.value / 12)

  document.temps.MP.value = floor((document.temps.MI.value * 1)
                          + (document.temps.MT.value * 1)
                          + (document.temps.PI.value * 1));
  cashflow();
}


function dosum2()
{
  var ltyp = document.temps2.loantype.value;
  if (ltyp == 'Interest Only')
   {
    var payment = document.temps2.LA.value * document.temps2.IR.value /1200;
    document.temps2.PI.value = payment.toFixed(2);
    document.temps2.YR.value = '';
    document.temps2.YR.disabled = true;
   }
  else
   {
    if  (document.temps2.YR.value == '') {
        document.temps2.YR.value = 30;
     }
    document.temps2.YR.disabled = false;
    var mi = document.temps2.IR.value / 1200;
    var base = 1;
    var mbase = 1 + mi;
    for (i=0; i< (document.temps2.YR.value * 1) * 12; i++)
    {
      base = base * mbase
    }
    document.temps2.PI.value = floor(document.temps2.LA.value * mi / ( 1 - (1/base)))
   }
 cashflow();

}

function cashflow()
{
  var m_noi = floor((document.prop.noi.value * 1)/12);
  document.cf.m_noi.value = m_noi;
  document.cf.a_noi.value = m_noi * 12;

  var m_loan1 = document.temps.PI.value * 1;
  var m_loan2 = document.temps2.PI.value * 1;

  document.cf.m_loan1.value = m_loan1;
  document.cf.a_loan1.value = m_loan1 * 12;
  document.cf.m_loan2.value = m_loan2;
  document.cf.a_loan2.value = m_loan2 * 12;
  document.cf.m_cf.value = floor(m_noi - m_loan1 - m_loan2);
  document.cf.a_cf.value = floor((m_noi - m_loan1 - m_loan2) * 12);
  
  document.prop.cash_on_cash.value 
         = ((document.cf.a_cf.value * 1)
				   /(stripCommas(document.prop.down_payment.value) +
					   stripCommas(document.prop.c_costs.value) )
					 * 100).toFixed(2) + '%';
  
}

