// Constant Types
var FIELD_TYPE_REQUIRED = 0;
var FIELD_TYPE_DATE = 1;
var FIELD_TYPE_NUMBER = 2;

/*****************************************
 * verifyData( field, type )
 *
 * Verifies that the data field (strField) is one of 
 * the defined types (FIELD_TYPE_*).
 *
 * Returns:
 *    False := Field does not meet TYPE criteria
 *    True := Field meets critieria
 ******************************************/
function verifyData( strField, nType )
{
	if( nType == FIELD_TYPE_REQUIRED )
	{
		if( strField == '' )
			return false;
		else
			return true;
	}
	
	if( nType == FIELD_TYPE_NUMBER )
	{
		strField = strField.replace(new RegExp(/,/g), '');
		strField = strField.replace(new RegExp(/$/g), '');
		if( isNaN(strField) || strField == '' )
			return false;
		else
			return true;
	}
	
	if( nType == FIELD_TYPE_DATE )
	{
		if( strField == '' )
			return false;
		
		var arrComponents;
		var arrMonths = new Array('JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 
			'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC');
		
		arrComponents = strField.split('-');
		
		if( arrComponents.length < 3 )
		{
			return false;
		}
		else
		{
			if( ( !isNaN(arrComponents[0]) && arrComponents[0] != '' ) && 
				( !isNaN(arrComponents[2]) && arrComponents[2] != '' ) )
			{
				var bFound = false;
				var i;
				
				for( i = 0; i < arrMonths.length; i++)
				{
					if( arrMonths[i] == arrComponents[1].toUpperCase() )
					{
						bFound = true;
					}
				}
				
				return bFound;
				
			}
			else
			{
				return false;
			}
		}	
		
	}
}

/****************************************
 * NumToValFormat( value )
 *
 * Removes '$' and ',' from formatted numbers
 * and returns a string that can easily be converted to 
 * a double/integer.
 ****************************************/
function NumToValFormat( strValue )
{
	var strTemp = strValue.replace(new RegExp(/,/g), '');
	strTemp = strTemp.replace(new RegExp(/$/g), '');
	
	return strTemp;
}

function FormatNumber( nNum, nDecimalPlaces )
{
	var nNumber;
	var nDecNums;
		
	nNumber = Math.floor(nNum * Math.pow(10, nDecimalPlaces) + 0.5000000001);
		
	nDecNums = nNumber % Math.pow(10, nDecimalPlaces);
		
	nNumber = Math.floor(nNumber / Math.pow(10, nDecimalPlaces)).toString();
		
	if( nDecNums < 10 )
		nDecNums = "0" + nDecNums;
			
	return nNumber + '.' + nDecNums;
}
