// Validate a date entered in d/m or d/m/y format. If omitted, year default to current year
// If a 2-digit year is entered, >=70 becomes 19xx, otherwise 20xx.
// Apr 5, 2002 Peter O'Shea
function valDate(obj) {
	dval = obj.value
	if (dval.length	== 0) {
		return true;
	}
	isErr =	false
	re = /^([0-9]{1,2})[-\/.]([0-9]{1,2})$|^([0-9]{1,2})[-\/.]([0-9]{1,2})[-\/.]([0-9]{2,4})$/
	if (re.test(dval)) {
		pieces = re.exec(dval)
		if (pieces[3] == '') {
			day	= pieces[1]
			month =	pieces[2]
			today =	new	Date()
			year = today.getFullYear()
		} else {
			day	= pieces[3]
			month =	pieces[4]
			year = pieces[5]
		}
		if (year.length	== 3) {
			isErr =	true
		} else {
			if (year.length	== 2) {
				if (year < 70) {
					year = parseInt(year) +	2000
				} else {
					year = parseInt(year) +	1900
				}
			}
			if (month <	1 || month > 12	|| day < 1)	{
				isErr =	true
			} else {
				if (month == 2)	{
					testval	= 28 + isLeapYear(year)
					if (day	> testval) {
						isErr =	true;
					}
				} else {
					testval	= 31
					if (month == 4 || month	== 6 ||	month == 9 || month	== 11) {
						testval	= 30
					}
					if (day	> testval) {
						isErr =	true;
					}
				}
			}
		}
	} else {  // Failed	pattern	match
		isErr =	true
	}
	if (isErr) {
		obj.focus()
		obj.select()
		alert('Invalid date. Please	re-enter.')
		return false
	} else {
		if (day.length == 1) {
			day	= '0' +	day
		}
		if (month.length ==	1) {
			month =	'0'	+ month
		}
		obj.value =	day	+ '/' +	month +	'/'	+ year
		return true
	}
}
function isLeapYear(yr)	{
	if ((yr	% 100) == 0) {
		 if	((yr % 400)	== 0) {	return 1; }
	} else {
		 if	((yr % 4) == 0)	{ return 1;	}
	}
	return 0;
}
// Present or past date validate
function ppDate(obj) {
	if (valDate(obj)) {
		isErr = false
		today = new Date()
		re = /^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/
		pcs = re.exec(obj.value)
		yr = today.getFullYear()
		mo = today.getMonth() + 1
		dy = today.getDate()
		if (pcs[3] > yr) {
			isErr = true
		} else {

			if ( pcs[ 2 ] > mo && pcs[ 3 ] == yr ) {
				isErr = true
			} else {

				if ( ( pcs[1] > dy ) && ( pcs[ 2 ] == mo ) ) {
					isErr = true
				}

			}
		}
		if (isErr) {
			alert('Date must be today or in the past. Please re-enter.')
			return false
		} else {
			return true
		}
	} else {
		return false
	}
}
	 