
      // This function is "onblur" event handler for "date" fields
      function changeDate(input){
        theDate = toDate(input.value);
        if(theDate != null)
          input.value = theDate;
      }
Date.prototype.getFullDate = getFullDate;
Date.prototype.getFullMonth = getFullMonth;

// get full date, two digit (01, 02, ...)
function getFullDate(){
	d = this.getDate().toString();
	d =d.length==1?"0"+d:d;
	return d;
}

// get full month, two digit (01, 02, ...)
function getFullMonth(){
	m = (this.getMonth()+1).toString();
	m =m.length==1?"0"+m:m;
	return m;
}
function toDate(object){
    if(!object) return;
	var strObject = object.toString();
	var number = Number(object);
	var date = object;
    var year;
    var day;
    var month;

        if(number){
            year = Number(strObject.substring(4));
            day = Number(strObject.substring(2,4));
            month = Number(strObject.substring(0,2));
        }
        else if(Date.parse(strObject)){
            year = Number(strObject.substring(strObject.lastIndexOf("/")+1));
            day = Number(strObject.substring(strObject.indexOf("/")+1,strObject.lastIndexOf("/")));
            month = Number(strObject.substring(0,strObject.indexOf("/")));
        }
        else{
            return null;
        }
        year = ((year<50)?year+2000:((year<100)?year+1900:year));

        date = new Date(year, month-1, day );

        //alert(date.getYear()+":"+date.getFullYear())
        //if(date.getYear() < 100 && (new Date(new Date() - date).getFullYear()- 1970) >= 100)
        //        date.setYear(date.getFullYear() + 100);
        if((year != date.getYear() && year != date.getFullYear()) ||
        	date.getFullYear()<1850 ||
        	date>new Date()||
        	month-1 != date.getMonth() ||
        	day != date.getDate())
        		return null;
        return date.getFullMonth() + "/" + date.getFullDate() + "/" + date.getFullYear();
}
function isValidDate(field) {
        theDate = field.value;
//		theDate = toDate(theDate);
		if(theDate == null) {
			return false;
		}
		var vdArray = theDate.split("/");

		//Make sure the date has three parts
		if (vdArray.length == 3) {
			//Now check that each part is valid
			//Month between 1 and 12
			if (vdArray[0] <= 0 || vdArray[0] > 12) {
				return false;
			}
			if (isNaN(vdArray[0]) == true ||
			    isNaN(vdArray[1]) == true ||
				isNaN(vdArray[2]) == true){
				return false;
			}
			// Date valid for the month
			if (vdArray[1] <= 0 || vdArray[1] > 31)	{
				return false;
			}
			if (vdArray[0] == 4 || vdArray[0] == 6 || vdArray == 9 || vdArray == 11) {
				if (vdArray[1] == 31) {
					return false;
				}
			}
			else {
				// Check for leap year for Feb 29
				if (vdArray[0] == 2) {
					if (vdArray[1] > 29) {
						return false;
					}
					if (vdArray[1] == 29) {
						if (vdArray[2] % 4 != 0) {
							return false;
						}
					}
				}
			}
			// Year valid
			if (vdArray[2].length < 4) {
				return false;
			}
		}
		//If the date does not have 3 parts, it is invalid
		else {
			return false;
		}
    field.value = theDate;
	return true;
}
