function checkKey(chars, e){
	e = window.event;
	if(chars.indexOf(String.fromCharCode(e.keyCode))==-1 && e.keyCode!=13)
		window.event.keyCode=0;
}

function isValidDate(year, month, day)  {
   month--;  //adjust month (ranges from 0-11)
   myDate = new Date(year,month,day);
   return (!(year!= myDate.getYear() || month != myDate.getMonth() || day != myDate.getDate()))
}

function fd(fld1) {
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
	var sd=document.getElementById(fld1);
	if (sd) {
		if (sd.value!='') {
			var dp=sd.value.match(datePat); //is the format ok?
			if (dp==null) {
				if (sd.value.indexOf("/")==-1 && sd.value.length>=6)
					sd.value=parseInt(sd.value.substr(0,2),10).toString()+'/'+parseInt(sd.value.substr(2,2),10).toString()+'/'+(sd.value.substr(4,4).length==2?'20'+sd.value.substr(4,4):sd.value.substr(4,4));
				dp = sd.value.match(datePat);
			}
			if (dp==null&&sd.value!='') {
				return false;
			} else {
				if (dp[4].length==2) dp[4]='20'+dp[4];
				if (!isValidDate(parseInt(dp[4],10), parseInt(dp[1],10), parseInt(dp[3],10))) {
					return false;
				} else {
					sd.value=dp[1]+'/'+dp[3]+'/'+dp[4]
				}
			}
		} else {
			return false
		}
	}
	return true;
}
