function TimeCharactersOnly(control)
{	
	var len = document.all(control).value.length;
	var val = document.all(control).value;
	
	if (len == 0)
	{
		if (event.keyCode < 48 || event.keyCode > 50) //only zero, one or two
		{
			event.returnValue = false;
		}				
	}
	else if (len == 2) //only colon
	{
		if (event.keyCode != 58)
		{
			event.returnValue = false;
		}
	}
	else if (len == 3) //only zero, one, two, three, four, five
	{
		if ((event.keyCode < 48) || (event.keyCode > 53))
		{
			event.returnValue = false;
		}
	}
	else if ((event.keyCode < 48) || (event.keyCode > 57))
	{
		event.returnValue = false;
	}		
}

function DateCharactersOnly(control)
{	
	var len = document.all(control).value.length;

	if (len == 0)
	{
		if (event.keyCode < 48 || event.keyCode > 51)
		{
			event.returnValue = false;
		}				
	}
	else if ((len == 2) || (len == 5))
	{
		if (event.keyCode != 47)
		{
			event.returnValue = false;
		}
	}
	else if (len == 3)
	{
		if (event.keyCode != 49 && event.keyCode != 48)
		{
			event.returnValue = false;
		}				
	}
	else if ((event.keyCode < 48) || (event.keyCode > 57))
	{
		event.returnValue = false;
	}
}


function getDaysInMonth(month, year)
{
	var days;
//alert("month=" + month + ", year=" + year);
	if (month=='01' || month=='03' || month=='05' || month=='07' || month=='08' || month=='10' || month=='12') {
		days=31;
	}
	else if (month=='04' || month=='06' || month=='09' || month=='11') {
		days=30;
	}
	else if (month=='02') {
		if (leapYear (year)==1)  days=29;
		else days=28;
	}
	return (days);
}

function leapYear (Year)
{
	if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0))
		return (1)
	else
		return (0);
}
			
function validateDate(control, errorMessage)
{
	var monthName = new Array();

	monthName['01']	= "January";
	monthName['02']	= "February";
	monthName['03']	= "March";
	monthName['04']	= "April";
	monthName['05']	= "May";
	monthName['06']	= "June";
	monthName['07']	= "July";
	monthName['08']	= "August";
	monthName['09']	= "September";
	monthName['10']	= "October";
	monthName['11']	= "November";
	monthName['12']	= "December";
	
	if (document.all(control).value.length == 0)
	{
		handleError(control, errorMessage);
		return false;
	}
	var parts = document.all(control).value.split('/');

	if (parts.length!=3) 
	{
		handleError(control, errorMessage);
		return false;
	}
	if (parts[2].length<4)
	{
		handleError(control, errorMessage);
		return false;				
	}
	
	var tDay	= parts[0];
	var tMonth = parts[1];
	var tYear = parts[2];

	if (tMonth < 1 || tMonth > 12)
	{
		handleError(control, errorMessage);
		return false;
	}
	
	var daysInMonth	= getDaysInMonth(tMonth, tYear);

	// Check for valid date
	if(tDay > daysInMonth) {
		handleError(control, "Invalid Date. There are only " + daysInMonth + " days in " + monthName[tMonth] + " " + tYear +  ".\nPlease try again.");
		return false;
	}			
}

function handleError(control, errorMessage)
{
	alert(errorMessage);
	document.all(control).focus();
}

function compareDates(ctrlDateFrom, ctrlDateTo)
{
	sDateFrom = document.all(ctrlDateFrom).value
	bitsFrom = sDateFrom.split("/");
	dateFrom = new Date(bitsFrom[2],bitsFrom[1]-1,bitsFrom[0])

	sDateTo = document.all(ctrlDateTo).value
	bitsTo = sDateTo.split("/");
	dateTo = new Date(bitsTo[2],bitsTo[1]-1,bitsTo[0])

	if (dateFrom>dateTo)
	{
		alert("The start date cannot be later than the end date")
		return false;
	}
	else
	{
		return true;
	}
}
