
/******************************************************************/
function errorTrap()
{
	//this checks for characters or nulls in the fields
	for (counter = 13; counter <= 36; counter = counter + 1)
	{if (checkForChars(document.frmCalc.elements[counter].value) == true || document.frmCalc.elements[counter + 1].value == "") return false;}
	return true;
}


/******************************************************************/
function averageNumbers()
{
	var monthTotal;
	var rateTotal;
	var balanceTotal;

	rateTotal = 0;
	balanceTotal = 0;
	monthTotal = 0;

	//get the average rates
	for (counter = 13; counter <= 36; counter = counter + 2)
	{rateTotal = rateTotal + parseFloat(document.frmCalc.elements[counter].value);}

	//get the average balances
	for (counter = 14; counter <= 36; counter = counter + 2)
	{balanceTotal = balanceTotal + parseFloat(document.frmCalc.elements[counter].value);}

	//counting the months
	for (counter = 13; counter <= 36; counter = counter + 2)
	{
	if (parseFloat(document.frmCalc.elements[counter].value) != 0 || parseFloat(document.frmCalc.elements[counter + 1].value) != 0)
	{
		monthTotal = monthTotal + 1;}
	}

	if (monthTotal != 0)
	{
		document.frmCalc.txtAverageRate.value = digitsAfterDecimals(2,(rateTotal / monthTotal));
		document.frmCalc.txtAverageBalance.value = dollarize(balanceTotal / monthTotal);
		document.frmCalc.txtNumberOfMonths.value = monthTotal;
	}
}


/******************************************************************/
function compute(averageRate, averageBalance, numberMonths)
{
	if (errorTrap() == false)
	{
		alert("You have entered an invalid character (letter, symbol, or space) in the averages.\nPlease correct this and re-compute.");
		return;
	}

	averageNumbers();
	var currentReturn;
	var estimatedReturn;
	currentReturn = (parseFloat(averageRate / 100)) * parseFloat(averageBalance);
	
	document.frmCalc.txtCurrentReturn.value = dollarize(currentReturn);
	document.frmCalc.txtYear.value = 0;
	if (errorCheck()) document.frmCalc.submit();
}


/******************************************************************/
function computeYear(averageRate, averageBalance)
{
	averageNumbers();
	var currentReturn;
	var estimatedReturn;
	
	if ((checkForChars(document.frmCalc.txtAverageBalanceYear.value) == true) ||
		(checkForChars(document.frmCalc.txtAverageRateYear.value) == true) ||
		(document.frmCalc.txtAverageBalanceYear.value == "") ||
		(document.frmCalc.txtAverageRateYear.value == ""))


	{alert("You have entered an invalid character (letter, symbol, or space) in the averages.\nPlease correct this and re-compute.");return}
		
	currentReturn = ((parseFloat(averageRate / 100)) * parseFloat(averageBalance));

	document.frmCalc.txtYourComputedIncome.value = dollarize(currentReturn);
	document.frmCalc.txtYear.value = 1;
	if (errorCheck()) document.frmCalc.submit();
}


/******************************************************************/
function errorCheck()
{
	if (document.frmCalc.txtOrganization.value == "")
	{
		alert("Please fill in an organization name.")
		document.frmCalc.txtOrganization.focus()
		return false;
	} else {
		return true
	}
	
}


/******************************************************************/
function clearAll()
{
//set all the rates back to zero
	var counter
	//clears the balances
	for (counter = 13; counter <= 36; counter = counter + 2)
	{
		document.frmCalc.elements[counter].value = "0.0";
	}

	for (counter = 14; counter <= 36; counter = counter + 2)
	{
		document.frmCalc.elements[counter].value = "0";
	}
}


/******************************************************************/
function clearYear()
{
//set all the year inputs back to zero
	document.frmCalc.txtAverageRateYear.value = "0.0";
	document.frmCalc.txtYourComputedIncomeYear.value = 0;
	document.frmCalc.txtAverageBalanceYear.value = 0;
}


/******************************************************************/
function digitsAfterDecimals(numberOfDecimals, userValue)
{
	var str = "" + Math.round (eval(userValue) * Math.pow(10,numberOfDecimals))
	while (str.length <= numberOfDecimals) {
	str = "0" + str
	}
	var numberOfDecimals = str.length - numberOfDecimals
	return str.substring(0,numberOfDecimals) + "." + str.substring(numberOfDecimals,str.length);
}

/******************************************************************/
function popUpWindow(organizationID)
{newWindow = window.open("incomeComparisonHelp.asp?organizationID=" + organizationID,"","height=500,width=600,resizable");}


/******************************************************************/
function dollarize (expr)
{return digitsAfterDecimals(2,expr);}


/******************************************************************/
function checkForChars(inputVal) 
{
	var inputStr = inputVal.toString()
	for (var i = 0; i < inputStr.length; i++) 
	{
		var oneChar = inputStr.charAt(i)
		if (oneChar < "." || oneChar > "9" || oneChar == "/") return true;
	}
	return false
}
