var reDate = /^[0-3]?[0-9]\/[0-1]?[0-9]\/[1-2]?[0-9]?[0-9][0-9]$/
var reEmail = /^[A-Za-z0-9_\.\-\']+\@[A-Za-z0-9\.\-]+\.[A-Za-z]{2,3}$/
var reInteger = /^\d+$/
//var reReal = /^\d{0,9}?\.?\d+$/
var reReal = /^[0-9]+\.?[0-9]?[0-9]?$/
var reWhitespace = /^\s+$/

function EmptyField(s) {
	return ((s == null) || (s.length == 0) || reWhitespace.test(s));
}
function IsInteger(s) {
	return (reInteger.test(s));
}
function IsReal(s) {
	return (reReal.test(s));
}
function ValidateEmail(s) {
	return (reEmail.test(s));
}
function ValidateWholeDate(s) {
	if (!reDate.test(s)) return (false);
	else {
		var dateCount = 1;
		var noDay = "";
		var noMonth = "";
		var noYear = "";
		for (i = 0;  i < s.length;  i++) {
			if (s.charAt(i) != "/") {
				if (dateCount == 1) noDay = noDay + s.charAt(i);
				if (dateCount == 2) noMonth = noMonth + s.charAt(i);
				if (dateCount == 3) noYear = noYear + s.charAt(i);
			}
			else {dateCount++;}
		}
		if (noDay.charAt(0) == "0") noDay = noDay.charAt(1);
		if (noMonth.charAt(0) == "0") noMonth = noMonth.charAt(1);
		return (ValidateSplitDate(noDay,noMonth,noYear));
	}
}
function ValidateSplitDate(ds,ms,ys) {
	var intDay = parseInt(ds);
	var intMonth = parseInt(ms);
	var intYear = parseInt(ys);
	var daysInMonth = new Array(0,31,29,31,30,31,30,31,31,30,31,30,31)
	if (intMonth > 12) return (false);
	if (intDay > daysInMonth[intMonth]) return (false); 
	if ((intMonth == 2) && (intDay > DaysInFebruary(intYear))) return (false);
	return (true);
}
function DaysInFebruary (ys) {
	return (  ((ys % 4 == 0) && ( (!(ys % 100 == 0)) || (ys % 400 == 0) ) ) ? 29 : 28 );
}