function IsDate(dateStr)
{

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{2,4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null || matchArray[1]==null)
	{
		return false;
	}
	else
	{
		if(matchArray[3]==null || matchArray[5]==null)
		{
			return false;
		}
	}

	var month = matchArray[1]; // parse date into variables
	var day = matchArray[3];
	var year = matchArray[5];

	if (month < 1 || month > 12)
	{ // check month range
		return false;
	}

	if (day < 1 || day > 31)
	{
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31)
	{
		return false;
	}

	if (month == 2)
	{ // check for february 29th
		if ( year < 100 )
		{
			if ( year > 90 )
			{
				// won't work as expected after year 2089 but I'll be dead by then
				year += 1900;
			}
			else
			{
				year += 2000;
			}
		}
		
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap))
		{
			return false;
		}
	}
	return true;
}

function IsTime(timeStr)
{
	var timePat = /^(\d{2})(\:)(\d{2})$/;
	var matchArray = timeStr.match(timePat); // is the format ok?

	if (matchArray == null || matchArray[1]==null || matchArray[3]==null)
	{
		return false;
	}

	var hour = matchArray[1]; // parse time into variables
	var minute = matchArray[3];

	if (hour < 0 || hour > 23)
	{ // check hour range
		return false;
	}

	if (minute < 0 || minute > 59)
	{
		return false;
	}

	return true;
}

function IsCurrency(currencyStr)
{
	var currencyPat = /^-?(\d*?)(\.)(\d{2})$/;
	var matchArray = currencyStr.match(currencyPat); // is the format ok?

	if (matchArray == null || matchArray[1]==null || matchArray[3]==null)
	{
		return false;
	}

	return true;
}

function IsWholeNumber(numberStr)
{
	var numberPat = /^-?(\d*)$/;
	var matchArray = numberStr.match(numberPat); // is the format ok?

	if ( matchArray == null )
	{
		return false;
	}

	return true;
}

function verifyFieldHasText( fieldValue, spanName )
{
	if ( fieldValue.length == 0 )
	{

		document.getElementById( spanName ).className = "errorMessage";
		return false;
	}
	else
	{
		document.getElementById( spanName ).className = "";
		return true;
	}
}