function SymError()
{
  return true;
}

window.onerror = SymError;

var SymRealWinOpen = window.open;

function SymWinOpen(url, name, attributes)
{
  return (new Object());
}

window.open = SymWinOpen;


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function formatNumber(expr, decplaces) {
	var str = "" + Math.round(eval(expr) * Math.pow(10,decplaces))
	while (str.length <= decplaces) {
		str = "0" + str
	}
	var decpoint = str.length - decplaces
	var strFront = str.substring(0,decpoint)
	if (str.substring(0,decpoint).length > 3) {
		var i = parseInt(strFront.length)
		while (i > 3) {
			var commaPos = i - 3
			strFront = strFront.substring(0,commaPos) + "," + strFront.substring(commaPos,strFront.length)
			i = i - 3
		}
	}
	return strFront + "." + str.substring(decpoint,str.length)
}

function dollarize(expr) {
	return "$ " + formatNumber(expr,2)
}

function removeChars(string) {
	var regexp = "$"
	var strReturn = string.replace(regexp,"")
	regexp = ","
	strReturn = strReturn.replace(regexp,"")
	return strReturn
}

function figureRebate(source, dest) {
	var destValue = MM_findObj(source).value
	destValue = removeChars(destValue)
	destValue = destValue * 0.01
	var rebateValue = dollarize(destValue)
	if (rebateValue == "$ N.aN") {
		rebateValue = "Invalid character"
	}
	if (destValue < 0) {
		rebateValue = dollarize(0)
	}
	MM_findObj(dest).value = rebateValue
}

function figureTotalSavings(source, dest) {
	var sourceVal = MM_findObj(source).value
	sourceVal = removeChars(sourceVal)
	var realtorComm = sourceVal * 0.06
	var buyersAgentComm = realtorComm / 2
	var savings = (realtorComm / 2) - 500
	if (sourceVal > 0) {
		MM_findObj("txtRealtorComm").value = dollarize(realtorComm)
		MM_findObj("txtBuyersAgent").value = dollarize(buyersAgentComm)
		if (savings > 0) {
			MM_findObj(dest).value = dollarize(savings)
		} else {
			MM_findObj(dest).value = dollarize(0)
		}
	} else {
		MM_findObj("txtRealtorComm").value = dollarize(0)
		MM_findObj("txtBuyersAgent").value = dollarize(0)
		if (savings > 0) {
			MM_findObj(dest).value = dollarize(savings)
		} else {
			MM_findObj(dest).value = dollarize(0)
		}
	}
	if (dollarize(savings) == "$ N.aN") {
		MM_findObj("txtRealtorComm").value = dollarize(0)
		MM_findObj("txtBuyersAgent").value = dollarize(0)
		MM_findObj(dest).value = "Invalid character"
	}
	var totalCost = parseFloat(removeChars(MM_findObj("txtBuyersAgent").value)) + 500
	//totalCost = totalCost - 0.01
	MM_findObj("txtTotalCost").value = dollarize(totalCost)
}

function keypadEvent(dest,input) {
	var target = MM_findObj(dest).value
	var newval
	if (input == "backspace") {
		newval = target.substring(0,target.length-1)
	} else if (target.indexOf(".") != -1) {
		var periodIndex = target.indexOf(".")
		var afterPeriod = target.substring(periodIndex,target.length)
		if (afterPeriod.length > 2 || input == ".") {
			newval = target
		} else {
			newval = target + input
		}
	} else if (input ==".") {
		if (target.indexOf(".") == -1) {
			newval = target + input
		} else {
			newval = target
		}
	} else {
		newval = target + input
	}
	MM_findObj(dest).value = newval
	figureRebate("txtPurchasePrice","txtRebate")
	figureTotalSavings("txtSalesPrice","txtTotalSavings")
}

function showSellerCalc() {
	MM_findObj('sellerDiv').style.visibility = 'visible'
}

function showBuyerCalc() {
	MM_findObj('buyerDiv').style.visibility = 'visible'
}
