function ConvertTDate(vValue)
{
	var cValue = trim(vValue);
	if(cValue.charAt(0).toUpperCase() == "T")
	{
		if(cValue.length == 1)
		{
			var d = new Date();
			return d;
		}

		cValue = trim(cValue.substring(1));
		if(cValue.charAt(0) == "+")
		{
			cValue = trim(cValue.substring(1));
			if(IsInteger(cValue))
			{
				var d = new Date();
				return new Date(d.getTime() + parseInt(cValue)*24*60*60*1000);
			}
			else
			{
				return null;
			}
		}

		if(cValue.charAt(0) == "-")
		{
			cValue = trim(cValue.substring(1));
			if(IsInteger(cValue))
			{
				var d = new Date();
				return new Date(d.getTime() - parseInt(cValue)*24*60*60*1000);
			}
			else
			{
				return null;
			}
		}
	}

	return null;
}

function ConvertNumberToDate(vValue)
{
	var nValue = trim(vValue);
	if(IsInteger(nValue))
	{
		var cValue = nValue.toString();
		if(cValue.length == 5 || cValue.length == 6)
		{
			var nYear = 2000 + parseInt(cValue.substring(cValue.length - 2));
			var d = cValue.substring(0, cValue.length - 4) + '/' + cValue.substring(cValue.length - 4, cValue.length - 2) + '/' + nYear;
			if(IsDate(d))
			{
				return(new Date(d));
			}
			
		}
	}
	return null;
}

function UpdateDate(o)
{
	var v = ConvertTDate(o.value);

	if(v == null)
	{
		v = ConvertNumberToDate(o.value);
	}

	if(v != null)
	{
		var nMonth = v.getMonth() + 1;
		var nDate = v.getDate();
		var nYear = v.getFullYear();
		o.value = nMonth + '/' + nDate + '/' + nYear;
	}
}

function ConvertNTime(vValue)
{
	var cValue = trim(vValue);
	if(cValue.charAt(0).toUpperCase() == "N")
	{
		if(cValue.length == 1)
		{
			var d = new Date();
			return d;
		}

		cValue = trim(cValue.substring(1));
		if(cValue.charAt(0) == "+")
		{
			cValue = trim(cValue.substring(1));
			if(IsInteger(cValue))
			{
				var d = new Date();
				return new Date(d.getTime() + parseInt(cValue)*60*60*1000);
			}
			else
			{
				return null;
			}
		}

		if(cValue.charAt(0) == "-")
		{
			cValue = trim(cValue.substring(1));
			if(IsInteger(cValue))
			{
				var d = new Date();
				return new Date(d.getTime() - parseInt(cValue)*60*60*1000);
			}
			else
			{
				return null;
			}
		}
	}

	return null;
}

function ConvertNumberToTime(vValue)
{
	var nValue = trim(vValue);
	if(IsInteger(nValue))
	{
		var cValue = nValue.toString();
		if(cValue.length == 3 || cValue.length == 4)
		{
			var d = '1/1/1970 ' + cValue.substring(0, cValue.length - 2) + ':' + cValue.substring(cValue.length - 2);
			if(IsDate(d))
			{
				return(new Date(d));
			}
			
		}
	}
	return null;
}

function UpdateTime(o)
{
	var v = ConvertNTime(o.value);

	if(v == null)
	{
		v = ConvertNumberToTime(o.value);
	}

	if(v != null)
	{
		var nHour = v.getHours();
		var nMinutes = v.getMinutes();
		o.value = nHour + ':' + nMinutes;
	}
}

function IsDate(vValue)
{
	var dtDate = new Date(vValue);

	if(dtDate == "NaN" || dtDate == "Invalid Date")
	{
		return false;
	}
	else
	{
		return true;
	}
}

function IsFloat(vValue)
{
	var floatValue = parseFloat(vValue);

	if(isNaN(floatValue))
	{
		return false;
	}
	else
	{
		return true;
	}
}

function IsInteger(vValue)
{
	var intValue = parseInt(vValue);

	if(isNaN(intValue))
	{
		return false;
	}
	else
	{
		return true;
	}
}

function trim(str)
{
	return str.replace(/^\s*|\s*$/g,"");
}

function removeSpaces(str)
{
	//return str.replace(/,/g, '');
	return str.replace(/\s+/g, '');
}