function CleanValue(v)
{
	return v.replace(/[%,$]/g,'');
}

function ROICleaner(f)
{
	f.IN_NumberOfVehicles.value = CleanValue(f.IN_NumberOfVehicles.value);
	f.IN_MilesPerDayPerVehicle.value = CleanValue(f.IN_MilesPerDayPerVehicle.value);
	f.IN_AvgCostPerMile.value = CleanValue(f.IN_AvgCostPerMile.value);
	f.IN_PercentVehiclesFull.value = CleanValue(f.IN_PercentVehiclesFull.value);
		
	f.IN_AvgRegularRateOfPay.value = CleanValue(f.IN_AvgRegularRateOfPay.value);
	f.IN_AvgOvertimeRateOfPay.value = CleanValue(f.IN_AvgOvertimeRateOfPay.value);
	f.IN_AvgPercentWeeklyOvertime.value = CleanValue(f.IN_AvgPercentWeeklyOvertime.value);
}

function ROIValidate(f)
{
	var msg = '';
	
	if (! IsInteger(f.IN_NumberOfVehicles.value) || ! IsPositive(f.IN_NumberOfVehicles.value))
	{
		msg += '* Current # of Vehicles\n';
	}
	if (! IsPositive(f.IN_MilesPerDayPerVehicle.value))
	{
		msg += '* Daily Mileage Per Vehicle\n';
	}
	if (! IsPositive(f.IN_AvgCostPerMile.value))
	{
		msg += '* Cost per Mile\n';
	}
	if (! IsPositive(f.IN_PercentVehiclesFull.value) || (IsNumeric(f.IN_PercentVehiclesFull.value) && f.IN_PercentVehiclesFull.value > 100))
	{
		msg += '* Percent Vehicles Full\n';
	}
	if (! IsPositive(f.IN_AvgRegularRateOfPay.value))
	{
		msg += '* Average Regular Rate-of-pay\n';
	}
	if (! IsPositive(f.IN_AvgOvertimeRateOfPay.value))
	{
		msg += '* Average Overtime Rate-of-pay\n';
	}
	if (! IsPositive(f.IN_AvgPercentWeeklyOvertime.value, false))
	{
		msg += '* Average Weekly Overtime Percentage\n';
	}

	if (msg != '')
	{
		alert('There were problems with the following form fields:\n\n' + msg + '\nPlease correct the errors and try again.');
		return false;
	}
	
	return true;
}

function ROICalculate(f)
{
	ROICleaner(f);

	if (ROIValidate(f))
	{
		var A = f.IN_NumberOfVehicles.value;
		var B = f.IN_MilesPerDayPerVehicle.value;
		var C = f.IN_AvgCostPerMile.value;
		var D = f.IN_PercentVehiclesFull.value / 100; // Convert from percentage to ratio
		
		var E = f.IN_AvgRegularRateOfPay.value;
		var F = f.IN_AvgOvertimeRateOfPay.value;
		var G = f.IN_AvgPercentWeeklyOvertime.value / 100; // Convert from percentage to ratio

		document.getElementById('OUT_EstAnnualTransportationCost').innerHTML = DollarFormat((A*B*C*260) + (A*E*5*8*52) + (A*G*F*8*260));
		document.getElementById('OUT_EstAnnualSavings').innerHTML = DollarFormat((A*B*C*260*0.09) + (A*G*F*8*260*0.28));
		//document.getElementById('OUT_EstVehiclesEliminated').innerHTML = IntegerFormat( A- ( (A*D) / (D+0.1) ) );

		return true;
	}
	
	return false;
}