function verifyDate(datefield) 
{
    verifyDateField( datefield, false);
}
function verifyDateField(datefield, allowFuture) 
{
	var datevalue = "";
	eval( "datevalue = document.forms[0]." + datefield + ".value" );

	if ( datevalue != "" ) {

		var today = new Date();
		var today_year = today.getFullYear();

        //special shortcut code do get today's date	
	    if ( datevalue == "00" ) {
	        eval("document.forms[0]." + datefield + ".value = (today.getMonth()+1) + '/' + today.getDate() + '/' + today.getFullYear()");
	        return true;
	    }

		if ( datevalue.length == 4 ) {
			datevalue = datevalue + today_year;
			eval( "document.forms[0]." + datefield + ".value = datevalue" );
		} else if ( datevalue.length == 6 ) {
			
			//use last century if future date
			if ( ( parseInt( datevalue.substring(4,6) ) + 2010 ) > today_year ) {
				datevalue = datevalue.substring(0,4) + "19" + datevalue.substring(4,6);
				eval( "document.forms[0]." + datefield + ".value = datevalue" );
			} else {
				datevalue = datevalue.substring(0,4) + "20" + datevalue.substring(4,6);
				eval( "document.forms[0]." + datefield + ".value = datevalue" );
			}
		}

		if ( datevalue.length == 8 && datevalue.indexOf("/") < 0 ) {
			datevalue = datevalue.substring(0,2) + "/" + datevalue.substring(2,4) + "/" + datevalue.substring(4,8);
			eval( "document.forms[0]." + datefield + ".value = datevalue" );
		}

		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
		var matchArray = datevalue.match(datePat); // is the format ok?

		//if (matchArray == null || parseInt(datevalue.substring(6,10)) < 1800 || parseInt(datevalue.substring(6,10)) > 9999 ) {
		if (matchArray == null ) {
			alert("Please enter a date in one of the following formats:"
				+ "\n\tmmdd - current year will be used"
				+ "\n\tmmddyy - current century will be used"
				+ "\n\tmmddyyyy"
				+ "\n\tmm/dd/yyyy"
				+ "\n\tmm-dd-yyyy"
				+ "\nNote: Year must be between 1800 and 9999" );
			eval( "document.forms[0]." + datefield + ".value = ''" );
			eval( "document.forms[0]." + datefield + ".focus()" );
			return false;
		}

		month = matchArray[1]; // parse date into variables
		day = matchArray[3];
		year = matchArray[5];

		if (month < 1 || month > 12) { // check month range
			alert("Month must be between 1 and 12.");
			eval( "document.forms[0]." + datefield + ".value = ''" );
			eval( "document.forms[0]." + datefield + ".focus()" );
			return false;
		}

		if (day < 1 || day > 31) {
			alert("Day must be between 1 and 31.");
			eval( "document.forms[0]." + datefield + ".value = ''" );
			eval( "document.forms[0]." + datefield + ".focus()" );
			return false;
		}

		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			alert("Month "+month+" doesn't have 31 days!")
			eval( "document.forms[0]." + datefield + ".value = ''" );
			eval( "document.forms[0]." + datefield + ".focus()" );
			return false;
		}

		if (month == 2) { // check for february 29th
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day > 29 || (day==29 && !isleap)) {
				alert("February " + year + " doesn't have " + day + " days!");
				eval( "document.forms[0]." + datefield + ".value = ''" );
				eval( "document.forms[0]." + datefield + ".focus()" );
				return false;
			}
		}

        if (!allowFuture)
        {
		    eval( "datevalue = document.forms[0]." + datefield + ".value" );
            if( today < Date.parse(datevalue) ) { 
                alert("Future dates are not allowed."); 
                eval( "document.forms[0]." + datefield + ".value = ''" );
			    eval( "document.forms[0]." + datefield + ".focus()" ); 
			    return false;
		    }
		}
		return true; // date is valid
	}
	return true; // blank date is valid
}
