var monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

function numberOfDays(yy, mm) {
   return ((mm == 2) && ((yy % 400 == 0) || ((yy % 4 == 0) && (yy % 100 != 0)))) ? 29 : monthDays[mm - 1];
}


function refreshDayList(ddlDay, numOfDays) {

	var selectedDay = ddlDay.selectedIndex + 1;
	var newLength = numOfDays + 1;

	if (newLength != ddlDay.length) {

	var old = ddlDay.length;

	for (var i = Math.max(newLength,old) - 1; i >= Math.min(newLength,old); i--) {

		if (i >= newLength)
		{
			ddlDay.options[i] = null;
		}
		else {
			ddlDay.options[i] = new Option(i, i);
		}
	}

		var newSelected = Math.min(selectedDay, newLength);
		ddlDay.options[newSelected - 1].selected = true;

	}
	return newSelected;
}

function changeDate(ddlDay, ddlMonth, ddlYear) {
	
	//var ddlYear = ddlMonth.nextSibling;

	var yy = parseInt(ddlYear.options[ddlYear.selectedIndex].value);
	var mm = parseInt(ddlMonth.options[ddlMonth.selectedIndex].value);

	refreshDayList(ddlDay, numberOfDays(yy,mm));
}