function calculateMonthlyPayments()
{
	irFieldValue = getFloat(document.frmEstimator.interestRate.value, 10, "interestRate");
	interestRate = (irFieldValue / 12) / 100;
	paymentPeriods = parseInt(document.frmEstimator.monthstorepay.value);
	equipmentCost = -(getFloat(document.frmEstimator.equipmentcost.value, 50000, "equipmentcost"));
	document.frmEstimator.equipmentcost.value = formatCurrency(-equipmentCost);
	pmt = calculate_payment(equipmentCost, interestRate, paymentPeriods);
	document.frmEstimator.monthlypayments.value = formatCurrency(pmt);
}

function calculate_payment(equipmentCost, interestRate, paymentPeriods)
{
	q = Math.pow(1 + interestRate,paymentPeriods);
	pmt = -((interestRate * (0 + q * equipmentCost))/(-1 + q));
	return round_decimals(pmt, 2);
}

function round_decimals(original_number, decimals) {
	var result1 = original_number * Math.pow(10, decimals)
	var result2 = Math.round(result1)
	var result3 = result2 / Math.pow(10, decimals)
	return (result3)
}

function getFloat(numberString, defaultValue, control)
{
	var ValidChars = "0123456789.";
	defaultValue = parseFloat(defaultValue);
	var Char;
	var IsNumber = true;
	numberString = cleanAmount(numberString);

	for (i = 0; i < numberString.length && IsNumber == true; i++) 
	{ 
		Char = numberString.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}
	if (numberString.charAt(numberString.length - 1) == '.')
	{
		return parseFloat(numberString.substring(0, numberString.length));
	}
	if (IsNumber)
	{
		return parseFloat(numberString, 10);
	}
	else
	{
		setControlValue(control, defaultValue);
		return defaultValue;
	}
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
		cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function cleanAmount(inStr){
	amount = inStr.replace(/\$/gi,"");
	amount = amount.replace(/,/gi,"");
	return amount;
}

function setControlValue(controlName, value)
{
	control = document.getElementById(controlName);
	control.value = formatCurrency(value);
}
