var daysInMonth = new Array(12);
daysInMonth[1]=31;
daysInMonth[2]=29; // must programmatically check this
daysInMonth[3]=31;
daysInMonth[4]=30;
daysInMonth[5]=31;
daysInMonth[6]=30;
daysInMonth[7]=31;
daysInMonth[8]=31;
daysInMonth[9]=30;
daysInMonth[10]=31;
daysInMonth[11]=30;
daysInMonth[12]=31;

function daysInFebruary (year) {
	return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
}

function isDate (day, month, year) {
	if (! (year.length==4 && (month>=1&&month<=12) && (day>=1&&day<=31) ) )
		return false;
	var intYear = parseInt(year);
	var intMonth = parseInt(month);
	var intDay = parseInt(day);
	
	if (intDay > daysInMonth[intMonth])
		return false;
		
	if ((intMonth == 2) && (intDay > daysInFebruary(intYear)))
		return false;
		
	return true;
}