
	
function chkdate(objName) {
var strDatestyle = "US"; //United States date style
//var strDatestyle = "EU";  //European date style
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
var err = 0;
var strMonthArray = new Array(12);
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";
	strDate = objName;

if (strDate.length < 1) {
	return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
	if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
		strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if (strDateArray.length != 3) {
			err = 1;
			return false;
	} else {
	strDay = strDateArray[0];
	strMonth = strDateArray[1];
	strYear = strDateArray[2];
	}
booFound = true;
}
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
if (strYear.length == 2) {
strYear = '20' + strYear;
}
// US style
if (strDatestyle == "US") {
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
}
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
}
}
else {
if (intday > 28) {
err = 10;
return false;
}
}
}
//if (strDatestyle == "US") {
//datefield.value = strMonthArray[intMonth-1] + " " + intday+" " + strYear;
//}
//else {
//datefield.value = intday + " " + strMonthArray[intMonth-1] + " " + strYear;
//}
return true;
}


function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}
	
				


			if (parseInt(navigator.appVersion) >= 4) {
				testdate_pattern = new RegExp("[01]?[0-9][-\\/][0-3]?[0-9][-\\/]([12][0-9])?[0-9][0-9]"); 
			} else {
				testdate_pattern = new date_fakeRegexp();
			}
	
				// Function to return (boolean) whether "x" is an email address.
				// Used by older browsers which don't have Regexp object.
				// Copyright (C) 2001 Internet Consulting Services.
				function testEM(x) {
					var i = 0;   // use "var" to declare local in case there's
							 // already an "i" (or a "c") in current scope.
					if (i==x.length) return false;
					var c = x.charAt(i); // current pos. and char in string
					// find the "@"
					while (c != '@')
					{
						++i;
						if (i==x.length) return false;
						c = x.charAt(i);
					}
					// go past the "@"
					++i;
					if (i==x.length) return false;
					c = x.charAt(i);
					// everything else is non-@, has a dot in there somewhere
					// thus, find the dot
					while (c != '.')
					{
						if (c == '@') return false;
						++i;
						if (i==x.length) return false;
						c = x.charAt(i);
					}
					if (i+1==x.length) return false; // need something past the dot
					// now just find the end of the string
					while (i < x.length)
					{
						c = x.charAt(i);
						if (c == '@') return false;
						++i;  
					}
					
					return true;
				}  // end testEM


				// For old browsers without the Regexp object, fake it
				// by defining an em_fakeRegexp object with a "test" method.
				function em_fakeRegexp() { 
					this.test = testEM;  
				}


			if (parseInt(navigator.appVersion) >= 4) {
				testemail_pattern = new RegExp(".+\\@.+\\..+"); 
			} else {
				testemail_pattern = new em_fakeRegexp();
			}
