//Returns true if value is a currency amount or is NULL, otherwise returns false	
function checkcurrency(form_object, input_object, object_value)
{
    if (object_value.length == 0)
        return true;

	var start_format = ".0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;
	var number_after_decimal = 0;

	//trim whitespace before we validate
    object_value = object_value.replace(/^\s+/,'').replace(/\s+$/,'');
	//remove numeric noise
	object_value = object_value.replace(/[$,]?/g, '');

    //The first character can be  .  or a digit.
	check_char = start_format.indexOf(object_value.charAt(0));
	if (check_char == 0)
		decimal = true;
	else if (check_char < 0)
		return false;

	//Remaining characters can be only . or a digit, but only one decimal.
	//If decimal exists, only 0 or 2 digits can exist after the decimal.
	for (var i = 1; i < object_value.length; i++)
	{
		check_char = number_format.indexOf(object_value.charAt(i));
		if (check_char < 0)
			return false;
		else if (check_char == 1)  // decimal
		{
			if (decimal)		// Second decimal.
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0)	// blank space
		{
			if (decimal || digits)	
				trailing_blank = true;
		}
		else if (trailing_blank)   // character is number, but is after a trailing space 
			return false;
		else if (decimal)			// character is number, and it is after a decimal
		{
			number_after_decimal++;	// increment count of numbers after decimal
			if (number_after_decimal > 2)
				return false;
		}
		else
			digits = true;		//  number
	}	
	
	if (number_after_decimal == 1)		//  only one number after the decimal
		return false;
	
    //All tests passed, so...
	return true;
}
