var g_delay = 4; // months delay

Date.prototype.getDaysInMonth = function()
	{
	return [31,(this.isLeap() ? 29 : 28),31,30,31,30,31,31,30,31,30,31][this.getMonth()];
	}

Date.prototype.isLeap = function()
	{
	var year = this.getFullYear();
	return ( !(year % 4) && (year % 100) ||  !(year % 400));
	}

function setDays(day, daysInMonth)
	{
	for (var j = 0; j < daysInMonth; j++)
		{
		document.entry.day[j] = new Option(j+1, j+1, (day == j+1));
		if (document.all && day == j+1)
			{
			document.entry.day[j].selected = true;
			}
		}
	}

function SetStringsDates()
	{
	var year  = document.entry.year[document.entry.year.selectedIndex].value;
	var month = document.entry.month.selectedIndex + 1;
	var day   = document.entry.day[document.entry.day.selectedIndex].value;
	var month2 = month + g_delay;
	var year2;

	if (month2 > 12)
		{
		if (document.entry.year[document.entry.year.selectedIndex].value == "2009") //CHANGE THIS EVERY YEAR
			{
			year2 = "2010";
			}
		else
			{
			year2 = document.entry.year[document.entry.year.selectedIndex + 1].value;
			}
		}
	else
		{
		year2 = year;
		}

	if (month2 > 12)
		{
		month2 -= 12;
		}

	var day2 = day;
	var date2 = new Date(year2, month2 - 1);

	if (day2 > date2.getDaysInMonth())
		{
		day2 = 1; month2++;
		} // dec 31 wont get ++ month, so, no year check i guess.

	if (month2 < 10)
		{
		if (day2 < 10)
			{
			document.entry.to_end.value = (year2 + "-0" + month2 + "-0" + day2);
			}
		else
			{
			document.entry.to_end.value = (year2 + "-0" + month2 + "-" + day2);
			}
		}
	else
		{
		if (day2 < 10)
			{
			document.entry.to_end.value = (year2 + "-" + month2 + "-0" + day2);
			}
		else
			{
			document.entry.to_end.value = (year2 + "-" + month2 + "-" + day2);
			}
		}

	}

function fixLeapYear()
	{
	var year  = document.entry.year[document.entry.year.selectedIndex].value;
	var month = document.entry.month.selectedIndex;
	var day   = document.entry.day[document.entry.day.selectedIndex].value;
	var date  = new Date(year, month);

	for (var i = 0; i < document.entry.day.length; i++)
		{
		document.entry.day[i] = null;
		}

	if (day > date.getDaysInMonth())
		{
		day = date.getDaysInMonth();
		}

	setDays(day, date.getDaysInMonth());
	SetStringsDates();
	}

function setToCurrentDate()
	{
	var date = (typeof currentDate != "undefined") ? currentDate : new Date();

	for (var i = 0; i < document.entry.year.length; i++)
		{
		if (document.entry.year[i].value == date.getFullYear())
			{
			document.entry.year.selectedIndex = i;
			}
		}

	document.entry.month.selectedIndex = date.getMonth();

	setDays(date.getDate(), date.getDaysInMonth());
	}