function valDateFmt(datefmt) {
	myOption = -1;
	for (i=0; i<datefmt.length; i++) {
		if (datefmt[i].checked) {myOption = i;}
	}
	if (myOption == -1) {
		alert("You must select a date format");return ' ';
	}
	return datefmt[myOption].value;
}
function valDateRng(daterng) {
	myOption = -1;
	for (i=0; i<daterng.length; i++) {
		if (daterng[i].checked) {myOption = i;}
	}
	if (myOption == -1) {
		alert("You must select a date range");return ' ';
	}
	return daterng[myOption].value;
}
function stripBlanks(fld) {
	var result = "";
	for (i=0; i<fld.length; i++) {
		if (fld.charAt(i) != " " || c > 0) {
			result += fld.charAt(i);
			if (fld.charAt(i) != " ") c = result.length;
		}
	}
	return result.substr(0,c);
}
var numb = '0123456789';
function isValid(parm,val) {
	if (parm == "") return true;
	for (i=0; i<parm.length; i++) {
		if (val.indexOf(parm.charAt(i),0) == -1)
		return false;
	}
	return true;
}
function isNum(parm) {
	return isValid(parm,numb);
}
var mth = new Array('','january','february','march','april','may','june','july','august','september','october','november','december');
var day = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
function validateDate(fld,fmt,rng,sep) {
// fld - field name to validate
// fmt - supposed date format (MDY, YMD, DMY)
// rng - Date range (P - past, A - any, F - future)
// sep - Value separator (default '.')
	var dd, mm, yy;
	var today = new Date;
	var t = new Date;
	fld = stripBlanks(fld);
	if (fld == '') return false;
	if (sep == '') sep = '.';
	var d1 = fld.split(sep);
	if (d1.length != 3) d1 = fld.split(' ');
	if (d1.length != 3) return false;
	if (fmt.toUpperCase() == 'MDY') {
		dd = d1[1]; 
		mm = d1[0]; 
		yy = d1[2];
	}
	else if (fmt.toUpperCase() == 'YMD') {
		dd = d1[2]; 
		mm = d1[1]; 
		yy = d1[0];
	}
	else if (fmt.toUpperCase() == 'DMY'){
		dd = d1[0]; 
		mm = d1[1]; 
		yy = d1[2];
	}
	else return false;
	var n = dd.lastIndexOf('st');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('nd');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('rd');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('th');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf(',');
	if (n > -1) dd = dd.substr(0,n);
	n = mm.lastIndexOf(',');
	if (n > -1) mm = mm.substr(0,n);
	if (!isNum(dd)) return false;
	if (!isNum(yy)) return false;
	if (!isNum(mm)) {
		var nn = mm.toLowerCase();
		for (var i=1; i < 13; i++) {
			if (nn == mth[i] || nn == mth[i].substr(0,3)) {mm = i; i = 13;}
		}
	}
	if (!isNum(mm)) return false;
	dd = parseFloat(dd); 
	mm = parseFloat(mm); 
	yy = parseFloat(yy);
	if (yy < 100) yy += 2000;
	if (yy < 1582 || yy > 4881) return false;
	if (mm == 2 && (yy%400 == 0 || (yy%4 == 0 && yy%100 != 0))) day[mm-1]++;
	if (mm < 1 || mm > 12) return false;
	if (dd < 1 || dd > day[mm-1]) return false;
	t.setDate(dd); 
	t.setMonth(mm-1); 
	t.setFullYear(yy);
	if (rng.toUpperCase() == 'P') {
		if (t > today) return false;
	}
	else if (rng.toUpperCase() == 'F') {
		if (t <= today) return false;
	}
	else if (rng.toUpperCase() != 'A') return false;
	return true;
}

