function validDate(day,month,year) {
	if (day < 1) return false;
	if ( (month < 1) || (month > 12)) return false;
	if ( (year < 1900) || (year > 2100)) return false;
	if ((month == 1) || (month == 3) || (month == 5) || (month == 7) ||
              (month == 8) || (month == 10) || (month == 12)) {
		if (day > 31) return false;
	} else if (month == 2) {
		if ( ((year % 4 == 0) && (year % 100 != 0)) ||
                     (year % 400 == 0)) {
			if (day > 29) return false;
		} else {
			if (day > 28) return false;
		}
	} else {
		if (month > 30) return false;
	}
	return true;
}
function checkDate(field) {
	var thedate = field.value;
	if (thedate == "") {
		return false;
	}
	//regexp check the format
	var isValid = false;
	var month, day, year;
	if (thedate.match(/^(\w\w,\s*)?\d?\d\.\d?\d\.(\d\d)?\d\d$/)) {
		isValid = true;
		var regex = /0?(\d+)\.0?(\d+)\.(\d+)$/;
		var items = regex.exec(thedate);
		day = parseInt(items[1]);
		month = parseInt(items[2]);
		year = parseInt(items[3]);
		if (year < 100) {
			year = year + 2000;
		}
	}
	if (thedate.match(/^(\d\d)?\d\d\-\d?\d\-\d?\d$/)){
		isValid = true;
		var regex = /(\d+)\-0?(\d+)\-0?(\d+)$/;
		var items = regex.exec(thedate);
		day = parseInt(items[3]);
		month = parseInt(items[2]);
		year = parseInt(items[1]);
		if (year < 100) {
			year = year + 2000;
		}
	}
	if (!isValid) {
		alert(ARR_ERROR_MSG[0]+thedate+ARR_ERROR_MSG[1]);
		field.value = "";
		field.focus();
		return false;
	}
	if (!validDate(day,month,year)) {
		alert(ARR_ERROR_MSG[0]+thedate+ARR_ERROR_MSG[1]);
		field.value = "";
		field.focus();
		return false;
	}
	//get the day of the week 
	var cal = new Date();
	cal.setDate(day);
	cal.setMonth(month-1);
	cal.setYear(year);
	var today = new Date();
	
	if(cal < today){
		alert(thedate+ARR_ERROR_MSG[11]);
		field.value="";
		field.focus();
		return false;
	}
	if (day < 10) day = "0"+day;
	if (month < 10) month = "0"+month;
	field.value = day+"."+month+"."+year;
}