/* global vars */
var currentrows = "";

/* Useful stuff first*/
function screen(input) {
  if (input == "") input = "0";
  var a = input.split("");
  var b = "";
  for (var i in a)
    if ((a[i].match(/\d/)) || (a[i]=='.') || (a[i]=='-'))
    b += a[i];
  while (b.length>1 && b.charAt(0) == "0") b=b.substr(1,b.length);
  return b;
}

function CurrencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	var s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
	
}
function CurrencyFormat(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	var s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus+ "$" + s;
	return addSeparatorsNF(s, '.', '.', ',');
	
}

function resetTable()
{
	var oResultTab=document.getElementById("full_results");
	oResultTab.style.visibility="hidden";
	currentrows = "";
	
}
function resetTable2()
{
	sensitivityTable = sensitivityStart;
	document.getElementById("resultspan").innerHTML = sensitivityTable + "</table>";
}
function addCommas(nStr)
{
	nStr += '';
	var x = nStr.split('.');
	var x1 = x[0];
	var 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 addSeparatorsNF(nStr, inD, outD, sep)
{
	nStr += '';
	var dpos = nStr.indexOf(inD);
	var nStrEnd = '';
	if (dpos != -1) {
		nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
		nStr = nStr.substring(0, dpos);
	}
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(nStr)) {
		nStr = nStr.replace(rgx, '$1' + sep + '$2');
	}
	return nStr + nStrEnd;
}

function asMoney(amount)
{
	return addCommas(CurrencyFormatted(amount));
//	return addSeparatorsNF(CurrencyFormatted(amount), '.', '.', ',');
}

function asPercent(amount)
{
		return (Math.round(amount * 10 * 100) / 10);
}

/* Real stuff here... */


	function showAnalysis(ct,ic,ex,cp){
		var oResultLine=document.getElementById("resultLine");
		var oResultTab=document.getElementById("full_results");
		var errormess = "";
		var cst = screen(ct);
		var inc = screen(ic);
		var exp = screen(ex);
		var cap = screen(cp);
		
		// error check
		if ((!isNaN(cap))&&((cap*1) <= 0)){
			errormess = errormess + "Market Cap Rate must be a positive number.\n";
		}
		if ((!isNaN(inc))&&((inc*1) <= 0)){
			errormess = errormess + "Increase of Annual Income must be a positive number.\n";
		}
		if ((!isNaN(exp))&&((exp*1) < 0)){
			errormess = errormess + "Increase of Annual Expenses may a non-negative positive number (can be zero).\n";
		}
		if ((!isNaN(cst))&&((cst*1) <= 0)){
			errormess = errormess + "Cost of Upgrade must be a positive number.\n";
		}		
		if (!(errormess == "")){
			alert(errormess);
		} else {
			var net_op_inc = (inc*1)-(exp*1);
			var cash_on_cash = net_op_inc / (cst*1);
			var value_inc = ( net_op_inc / (cap / 100));
			var percent_value_cost = ( value_inc / cst );

		
			var oResult=document.getElementById("theresult");
			oResultLine.style.visibility="visible";
			oResultTab.style.visibility="visible";
			
			/* Calculate the correct data writeit to result line **/
			//var tinterest = Math.round(getTotalInterest(screen(a),screen(n),screen(p)));
			oResult.innerHTML = "Net Revenue Change: $ " + asMoney(net_op_inc) +"<br/>"
				+ "First Year Cash on Cash Return: " + asPercent(cash_on_cash) +" %<br/>"
				+ "Estimated Value Increase: $ " + asMoney(value_inc) +"<br/>"
				+ "Value / Cost Return On Investment: " + asPercent(percent_value_cost) +" %";
			
			// add a line to the result table, too
			var oResultTab=document.getElementById("full_results");
			currentrows = currentrows + "<tr>"
				+ "<td align='right'> $ " + asMoney(cst) + "</td>"
				+ "<td align='right'> $ " + asMoney(inc) + "</td>"
				+ "<td align='right'> $ " + asMoney(exp) + "</td>"
				+ "<td align='right'> $ " + asMoney(net_op_inc) + "</td>"
				+ "<td align='right'>" + asPercent(cash_on_cash) + " %</td>"
				+ "<td align='right'>" + cap + " %</td>"
				+ "<td align='right'> $ " + asMoney(value_inc) + "</td>"
				+ "<td align='right'>" + asPercent(percent_value_cost) + " %</td>"
				+ "</tr>";
				
			oResultTab.innerHTML = "<center><b>Upgrade Comparisons</b></center><br/><table cellpadding=2 border='1' cellspacing='0' align=center>" 
				+ "<tr><th>Cost</th><th>Inc. Income</th><th>Inc. Expense</th><th>Net Income Change</th><th>Cash On Cash</th><th>Cap Rate</th><th>Value Change</th><th>Value to Cost</th></tr>"
				+ currentrows
				+ "</table>"
				;
			
		}
	}
	