function es_anyo_bisiesto(anyo)
{
	return (( anyo % 400 == 0) || (( anyo % 100 == 0) ^ ( anyo % 4 == 0)));
}
function ulto_dia(mes,anyo)
{
	return (mes == 2 ? (es_anyo_bisiesto(anyo) ? 29 : 28) : (mes < 8 ? ( mes % 2 ? 31 : 30 ) : (mes % 2 ? 30 : 31 ) ));
}
function is_valid_date(theDate)
{
	var aDay = theDate.split("/");
	if(aDay.length!=3)
	{
		return false;
	}else if(isNaN(aDay[0])||isNaN(aDay[1])||isNaN(aDay[2]))
	{
		return false;
	}else{
		var d,m,y;
		m=aDay[0];
		d=aDay[1];
		y=parseInt((aDay[2].length==2?"20"+aDay[2]:aDay[2]));
		if(m<1||m>12)
		{
			return false;
		}
		if(d<1||d>ulto_dia(m,y))
		{
			return false;
		}
	}
	return true;
}
