function checkDate(d,formVar) {
//these variable are regex for detecting various components of a valid date
var perfect = /^[1-2][7890][0-9][0-9][\-\/\.][01]?[0-9][\-\/\.][0-3]?[0-9]$/g;
var pattern = /^\d+[\/\-\.]\d+[\/\-\.]\d+$/;
//var pattern = /^\d+[\/]\d+[\/]\d+$/g;
var space = /^\s+$/g;
var Obj = formVar;

	//alert(d);
	if (d != '') {
		//check if the input is either numbers or a "/" or "-"
		if (pattern.test(d)) {
			//tokenize input on "/" or "-" and stick into an array
			var a = new Array();
			a = d.split(/[\/\-\.]/g);
			if (a.length != 3) {
				alert("This doesn't appear to be a valid date because you don't have a year, month and day (yyyy-mm-dd). Please re-enter.");
				return;
			}
		} else {
			alert("This doesn't appear to be a valid date. Please enter a new date.");
			return;
		}

		if (a[0].length != 4 && a[2].length != 4) {
			alert("You don't have a valid 4-digit year.");
			return;
		} else {
			if (a[0].length == 4) mode = 'right';
			if (a[2].length == 4) mode = 'reverse';
		}
		
		if (mode == 'right') {
			if (a[1] > 12) {
				alert("You didn't enter a valid month.");
				return;
			}
			if (a[2] > 31) {
				alert("You didn't enter a valid day.");
				return;
			}
		}
	
		if (mode == 'reverse') {
			if (a[0] > 12) {
				alert("You didn't enter a valid month.");
				return;
			}
			
			if (a[1] > 31) {
				alert("You didn't enter a valid day.");
				return;
			}
		
			Obj.value = a[2] + '-' + a[0] + '-' + a[1];
			return;
		}
		
		if(perfect.test(d)) {
			Obj.value = a[0] + '-' + a[1] + '-' + a[2];
			return;
		}		
	}
}

