// valiDate function
// requires valiDate ( MM, DD, YY )
// returns errorMsg string or, if no errors entered date in form "Dayofweek, Month XX, XXXX"
// and changes value of errorField, errorMsg, enterDate, month, weekDay

var errorField, enterDate, errorMsg, month, weekDay

function valiDate( parameter1, parameter2, parameter3 ){

	var MM = parameter1, DD = parameter2, YY = parameter3, n, nn, len, dayMax, dow, moy;
	errorField = ""
	errorMsg = ""

	MM = parseInt(MM)

	if( isNaN(MM) || MM < 1 || MM > 12 ){
		errorMsg = "Month must be in the range 1-12.";
		errorField = "MM";
		return(errorMsg);
	}

	if ( MM == 2 ){
		dayMax = 29
	} else { if ( MM == 2 || MM == 6 || MM == 9 || MM == 11 ) {
		dayMax = 30
		} else {
			dayMax = 31
		}
	}

	if ( isNaN(DD) || DD < 1 || DD > dayMax ) {
		errorMsg = "Enter Day of Month in the range 1-" + dayMax + ".";
		errorField = "DD";
		return(errorMsg);
	}

	len = YY.length
	if ( isNaN(YY) || len < 2 ) {
		errorMsg = "Enter the Year";
		errorField = "YY";
		return(errorMsg);
	}

	if ( MM == 2 && DD == 29 ) {
		n = YY / 4
		nn = parseInt(n)
		if ( n != nn ) {
			errorMsg = "That February did not have 29 days.";
			errorField = "DD";
			return(errorMsg);
		}
	}
	n = MM - 1 
	enterDate = new Date(YY, n, DD);
	var moy = new Array(12)
		moy[0] = "January"
		moy[1] = "February"
		moy[2] = "March"
		moy[3] = "April"
		moy[4] = "May"
		moy[5] = "June"
		moy[6] = "July"
		moy[7] = "August"
		moy[8] = "September"
		moy[9] = "October"
		moy[10] = "November"
		moy[11] = "December"
	var month = moy[n]

	n = enterDate.getDay(enterDate)
	var dow = new Array(7)
		dow[0] = "Sunday"
		dow[1] = "Monday"
		dow[2] = "Tuesday"
		dow[3] = "Wednesday"
		dow[4] = "Thursday"
		dow[5] = "Friday"
		dow[6] = "Saturday"
	weekDay = dow[n]

	return( weekDay + ", " + month + " " + DD + ", " + YY );

	}
