//create array of month names
var now = new Date();
var intCurrentYear = now.getUTCFullYear();
var intCurrentMonth = now.getUTCMonth() + 1;
var intCurrentDay = now.getUTCDate();
var dateName;
var strMonths = new Array();

for (var intMonthCount = 1; intMonthCount <= 12; intMonthCount++) {	
	switch (intMonthCount) {
		case 1:
		dateName = "January";
		break;
		case 2:
		dateName = "February";
		break;
		case 3:
		dateName = "March";
		break;
		case 4:
		dateName = "April";
		break;
		case 5:
		dateName = "May";
		break;
		case 6:
		dateName = "June";
		break;
		case 7:
		dateName = "July";
		break;
		case 8:
		dateName = "August";
		break;
		case 9:
		dateName = "September";
		break;
		case 10:
		dateName = "October";
		break;
		case 11:
		dateName = "November";
		break;
		case 12:
		dateName = "December";
		break
	}
	strMonths[intMonthCount-1] = dateName;
}

// function to determine whether year is leap year
function isLeapYear(Year) {
	var strYear = Year.toString();
	var blnIsLeapYear;
	var strBeginCenturyCheck;
	var intDivCenturyCheck;
	if (Year % 4 != 0) {
		blnIsLeapYear = false;
	}
	else {
		strBeginCenturyCheck = strYear.slice(2,4);
		intDivCenturyCheck = strYear.slice(0,2);
		if (strBeginCenturyCheck != "00") {
			blnIsLeapYear = true;
		}
		else if (intDivCenturyCheck % 4 == 0) {
			blnIsLeapYear = true;
		}
		else {
			blnIsLeapYear = false;
		}		
	}
	return blnIsLeapYear;
}	

// function to return number of days in a month
function DaysInMonth(Month,Year) {
	var intDays;
	if (Month == "1" || Month == "3" || Month == "5" || Month == "7" || Month == "8" || Month == "10" || Month == "12"){
		intDays = 31;
	}
	else if (Month == "4" || Month == "6" || Month == "9" || Month == "11"){
		intDays = 30;
	}
	else {	// must be February
		var blnLeap = isLeapYear(Year);
		if (blnLeap) {
			intDays = 29;
		}
		else {
			intDays = 28;
		}
	}	
	return intDays;
}

// function to write days to selection pull-down menu
function WriteDays(Dayelement,Monthelement,Yearelement,preselected) {
	var intNumDays;
	var myOptions;
	var intDayStart;
	
	intNumDays = DaysInMonth(Monthelement.value,Yearelement.value);

	if (Yearelement.value == intCurrentYear && Monthelement.value == intCurrentMonth) {
		intDayStart = intCurrentDay;
	}
	else {
		intDayStart = 1;
	}
			
	// populate days box
	for (var intDayCount = intDayStart; intDayCount <= intNumDays; intDayCount++) {	
		myOptions = document.createElement("option");
		myOptions.value = intDayCount;
		myOptions.text = intDayCount;
		if (intDayCount == preselected) {
			myOptions.selected = true;
		}
		Dayelement.add(myOptions);
	}
}	

// function to change days in pull-down menu - empties menu then calls write
function ChangeDays(Dayelement,Monthelement,Yearelement,preselected) {	
	//empty Days box
	for (var intEmptyCount=Dayelement.options.length;intEmptyCount>=0;intEmptyCount--) { 
		Dayelement.options[intEmptyCount]=null;
	}
	// call write function
	WriteDays(Dayelement,Monthelement,Yearelement,preselected);
}		

// function to write months to selection pull-down menu
function WriteMonths(Monthelement,Yearelement,intSelectedMonth,intPast) {
	var myOptions;
	var intMonthStart
	var intMonthEnd
	
	if (intPast && Yearelement.value == intFirstYear) {	
		// displaying archived dates so go from month of first event
		intMonthStart = intFirstMonth;
		intMonthEnd = 12;
		//alert(intMonthStart + " " + intMonthEnd);
	}
	else if (intPast && Yearelement.value == intLastYear) {	
		intMonthStart = 1;
		intMonthEnd = intLastMonth;
	}
	else if (Yearelement.value == intCurrentYear) {
		intMonthStart = intCurrentMonth;
		intMonthEnd = 12;
	}
	else {
		intMonthStart = 1;
		intMonthEnd = 12;
	}
	
	// populate Months box
	for (var intMonthCount = intMonthStart; intMonthCount <= intMonthEnd; intMonthCount++) {	
		myOptions = document.createElement("option");
		myOptions.value = intMonthCount;
		myOptions.text = strMonths[intMonthCount-1];
		if (intMonthCount == intSelectedMonth) {
			myOptions.selected = true;
		}
		Monthelement.add(myOptions);
	}
}

// function to change months in pull-down menu - empties menu then calls write
function ChangeMonths(Monthelement,Yearelement,preselected,intMonthStart,intMonthEnd) {
	
	//empty Months box
	for (var intEmptyCount=Monthelement.options.length;intEmptyCount>=0;intEmptyCount--) { 
		Monthelement.options[intEmptyCount]=null;
	}
	// call write function
	WriteMonths(Monthelement,Yearelement,preselected,intMonthStart,intMonthEnd);
}