//<!--
// -------------------------------------------------
function UpdateForm(ymd){

// update form...
	Cal.Month.value = ymd.substring(4,6)*1;
	Cal.Year.value = ymd.substring(0,4)*1;

// allow for years not included in dropdown
	if (!Cal.Year.value > 0){
		Cal.Year.value = Cal.Year.options[0].value;
		Cal.Year.options[Cal.Year.selectedIndex].value = ymd.substring(0,4);
		Cal.Year.options[Cal.Year.selectedIndex].innerHTML = ymd.substring(0,4);
	}

	UpdateCalendar(ymd.substring(6,8)*1);
}

// -------------------------------------------------
function UpdateCalendar(myDate){
	var myMonth;
	var myYear;

	myMonth = Cal.Month.options[Cal.Month.selectedIndex].value;
	myYear =  Cal.Year.options[Cal.Year.selectedIndex].value;

	self.CalendarBody.innerHTML = Calendar(myMonth,myYear,myDate);
}

// -------------------------------------------------
function Calendar(m,y,d){

	var Months = new Array("", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );
	var myCalendar = new Array();
	var myCalendarLink = new Array();

	var bgcolor;
	var background;

	var FirstDay = new Date(y, m-1, 1);
	var ThisDay = new Date();
	var tmpDay;
	var tmpMonth;
	var calHTML = new String();
	var startDay = dow(m,1,y);

// find the first day and subtract back to Sunday
	if (startDay < 2){startDay = startDay + 7;}
	FirstDay.setDate( FirstDay.getDate() - startDay );

// create array...
	for(nDay = 0; nDay < 42; nDay++){
		ThisDay = new Date(FirstDay.getFullYear(),FirstDay.getMonth(),FirstDay.getDate() + nDay);
		myCalendar[nDay] = ThisDay.getDate();

		tmpDay = ThisDay.getDate();
		tmpMonth = ThisDay.getMonth() + 1;
		if (ThisDay.getDate() <10){tmpDay = "0" + ThisDay.getDate();}	// two digit date
		if (tmpMonth <10){tmpMonth = "0" + tmpMonth;}	// two digit month

		myCalendarLink[nDay] = ThisDay.getFullYear() +''+ tmpMonth +''+ tmpDay;
	}

// draw calendar
	calHTML = "<TABLE BORDER=\"1\" CELLSPACING=\"0\" CELLPADDING=\"1\" NOWRAP bgcolor=\"#000000\"><TR VALIGN=\"TOP\">";

	for(key = 0; key < 42; key++) {

    	if (key == 0 || key == 7 || key == 14 || key == 21 || key == 28 || key == 35){
			calHTML += "</TR><TR ALIGN=\"CENTER\" VALIGN=\"TOP\">";
		}

// color code blocks
		var chk = myCalendar[key];
		if (myCalendar[key] < 10) {chk = "0" + myCalendar[key];}
		tmpMonth = m;
		if (m <10) {tmpMonth = "0" + m;}	// two digit month

		background = '';
		if (myCalendarLink[key] == y +''+ tmpMonth +''+ chk){
			bgcolor = '#000000';
			background = myphase[myCalendar[key]];
		}else{
			bgcolor = '#C0C0C0';
		}

		calHTML += "<TD ALIGN=\"LEFT\" WIDTH=\"100\" HEIGHT=\"100\" bgcolor=\"" + bgcolor + "\" background=\"" + background + "\"><font color=\"#FFFFFF\" SIZE=\"-1\">" + myCalendar[key] + "</font></TD>\n";
	}
	
	calHTML += "</TR></TABLE>"

	return calHTML;
}

// -------------------------------------------------
function dow(m,d,y){
// returns the day number (0=Sunday) from any date object.
	var myDay = new Date(y,m-1,d);

	return myDay.getDay();
}

// -------------------------------------------------
function eom(m,y){

	var DaysPerMonth = new Array("", 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
	
// Check Leap Year
	if (m == 2){
		if ( y % 4 == 0 ){
			if ( y % 100 == 0){
				if ( y % 400 == 0){DaysPerMonth[2] = 29;}
			}else{
				DaysPerMonth[2] = 29;
			}
		}
	}

	return DaysPerMonth[m];
}
//-->