function updateReturnDate(ctlDepMonth, ctlDepDay, ctlRetMonth, ctlRetDay)
{
//	var depDate = new Date(ctlDepDay.options[ctlDepDay.selectedIndex].text + " " + ctlDepMonth.options[ctlDepMonth.selectedIndex].text );
//	var retDate = new Date(ctlRetDay.options[ctlRetDay.selectedIndex].text + " " + ctlRetMonth.options[ctlRetMonth.selectedIndex].text );
	var depDate = new Date(ctlDepDay.value + " " + ctlDepMonth.value );
	var retDate = new Date(ctlRetDay.value + " " + ctlRetMonth.value );
	
	if (retDate < depDate)
	{
		ctlRetMonth.value = ctlDepMonth.value;
		updateDays(ctlRetDay, ctlRetMonth);
		ctlRetDay.value = ctlDepDay.value;
	}
}


function updateMonths(ctlMonth)
{
	for (var i = 0; i < 12; i++) 
	{
		ctlMonth.options[i] = new Option(displayMonths[i], displayMonths[i] );
	}

}

function updateDays(ctlDays, ctlMonth)
{
	var daysInMonth;
	for (var i = 0; i < 12; i++) 
	{
		if (monthName[i].text == ctlMonth.value.substr(0,3))
		{
			daysInMonth = parseInt(monthName[i].value);
		}
	}

    if(daysInMonth == 28)
    {
        year=parseInt(ctlMonth.value.substr(4,4));
        if (isLeapYear(year))
			daysInMonth = daysInMonth + 1;		
    }   
	var selectedDayIndex = parseInt(ctlDays.value) - 1;
	ctlDays.options.length = 0;
	var dayOffset = 1;
	var monthIndex = ctlMonth.selectedIndex;
	if (monthIndex == 0)
	{	
		dayOffset=dateNow;
		if (selectedDayIndex < dayOffset - 1)
			selectedDayIndex = 0;
		else
			selectedDayIndex = selectedDayIndex - dayOffset + 1;
	}
	populateDateList(dayOffset, daysInMonth, ctlDays, monthIndex);
	if (selectedDayIndex > daysInMonth - 1)
		selectedDayIndex = daysInMonth - 1;
	if (selectedDayIndex > -1)
		ctlDays.options[selectedDayIndex].selected = true;
}

function populateDateList(beginDate, endDate, ctlDays, monthIndex)
{
	daysLeft = (endDate - beginDate) + 1;
	var date;
	for (var i = 0; i < daysLeft; i++) 
	{
		date = i+beginDate;
		var index = (firstDayOfMonth[monthIndex] + date - 1 - startAt) % 7;
		if(date<10)
		{			
		ctlDays.options[i] = new Option(date, "0"+date);
		}
		else
		{			
		ctlDays.options[i] = new Option(date, date);
		}
	}
}

function isLeapYear(year)
{
	if (year % 4 == 0  && ( !(year % 100 == 0 && year % 400 != 0)))
		return true;
	else
		return false;
}

//txtDefaultDate must be in "dd MMM yyyy" format.
function setupDateControls(ctlDays, ctlMonth, txtDefaultDate )
{
	if (txtDefaultDate == "") 
	{
		updateMonths(ctlMonth);
		updateDays(ctlDays, ctlMonth);
	}
	else
	{
		updateMonths(ctlMonth);
		ctlMonth.value = txtDefaultDate.substr(3,8);
		updateDays(ctlDays, ctlMonth);
		ctlDays.value = parseInt(txtDefaultDate.substr(0,2));
	}
}
