//Current date in form script
//By Lee Hinder (lee.hinder@ntlworld.com)
//Visit http://javascriptkit.com for this script and more

//set todays date

Now = new Date();
NowDay = Now.getDate();
NowMonth = Now.getMonth();
NowYear = Now.getYear();
if (NowYear < 2000) NowYear += 1900; //for Netscape


//function for returning how many days there are in a month including leap years

function DaysInMonth(WhichMonth, WhichYear)
{
	var DaysInMonth = 31;

	if (WhichMonth == "4" || WhichMonth == "6" || WhichMonth == "9" || WhichMonth == "11") DaysInMonth = 30;

	if (WhichMonth == "2" && (WhichYear/4) != Math.floor(WhichYear/4))	DaysInMonth = 28;

	if (WhichMonth == "2" && (WhichYear/4) == Math.floor(WhichYear/4))	DaysInMonth = 29;

	return DaysInMonth;
}


//function to change the available days in a months

function ChangeOptionDays(dayString, monthString, yearString)
{
	
	DaysObject = eval("document.form1." + dayString);
	MonthObject = eval("document.form1." + monthString);
	YearObject = eval("document.form1." + yearString);
	Month = MonthObject[MonthObject.selectedIndex].text;
	Year = YearObject[YearObject.selectedIndex].text;

	DaysForThisSelection = DaysInMonth(Month, Year);

	CurrentDaysInSelection = DaysObject.length;

	if (CurrentDaysInSelection > DaysForThisSelection)
	{
		for (i=0; i<(CurrentDaysInSelection-DaysForThisSelection); i++)
		{
			DaysObject.options[DaysObject.options.length - 1] = null
		}
	}

	if (DaysForThisSelection > CurrentDaysInSelection)
	{
		for (i=0; i<(DaysForThisSelection-CurrentDaysInSelection); i++)
		{
			NewOption = new Option(DaysObject.options.length + 1);
			DaysObject.options[DaysObject.options.length] = NewOption;
//			DaysObject.add(NewOption);
		}
	}

	if (DaysObject.selectedIndex < 0) DaysObject.selectedIndex == 0;
}


//function to set options to today

function SetToToday(dayString, monthString, yearString)
{

	DaysObject = eval("document.form1." + dayString);
	MonthObject = eval("document.form1." + monthString);
	YearObject = eval("document.form1." + yearString);

	YearObject[0].selected = true;
	MonthObject[NowMonth].selected = true;

	ChangeOptionDays(dayString, monthString, yearString);

	DaysObject[NowDay-1].selected = true;
}

function SetToDate(dayString, monthString, yearString, day, month, year)
{

	DaysObject = eval("document.form1." + dayString);
	MonthObject = eval("document.form1." + monthString);
	YearObject = eval("document.form1." + yearString);
//	yearindex = year - NowYear;
	yearindex = year - 2010;

	YearObject[yearindex].selected = true;
	MonthObject[month].selected = true;

	ChangeOptionDays(dayString, monthString, yearString);

	DaysObject[day-1].selected = true;
}
function SetToDate1970(dayString, monthString, yearString, day, month, year)
{
	if ((day == "0") || (month == "0") || (year == "0")){
		return;
	}
	DaysObject = eval("document.form1." + dayString);
	MonthObject = eval("document.form1." + monthString);
	YearObject = eval("document.form1." + yearString);
	yearindex = year - 1970;
	
	YearObject[yearindex].selected = true;
	MonthObject[month].selected = true;

	ChangeOptionDays(dayString, monthString, yearString);

	DaysObject[day-1].selected = true;
}

function SetToDateReservation(dayString, monthString, yearString, day, month, year)
{

	DaysObject = eval("document.form1." + dayString);
	MonthObject = eval("document.form1." + monthString);
	YearObject = eval("document.form1." + yearString);
	yearindex = year - 2010;
//	yearindex = year - 2005;
	YearObject[yearindex].selected = true;
	MonthObject[month].selected = true;

	ChangeOptionDays(dayString, monthString, yearString);

	DaysObject[day-1].selected = true;
}

function SetToDateReservationWriteYearOptions(dayString, monthString, yearString, day, month, year)
{

	DaysObject = eval("document.form1." + dayString);
	MonthObject = eval("document.form1." + monthString);
	YearObject = eval("document.form1." + yearString);
	yearindex = year - NowYear;
//	yearindex = year - 2005;
	YearObject[yearindex].selected = true;
	MonthObject[month].selected = true;

	ChangeOptionDays(dayString, monthString, yearString);

	DaysObject[day-1].selected = true;
}

function ChangeOptionHour(hourString, minuteString, am_pmString){
	
	HourObject = eval("document.form1." + hourString);
	MinuteObject = eval("document.form1." + minuteString);
	amObject = eval("document.form1." + am_pmString);
	hour = HourObject[HourObject.selectedIndex].text;
	minute = MinuteObject[MinuteObject.selectedIndex].text;
	am_pm = amObject[amObject.selectedIndex].text;
	if (hour == 'Midnight' || hour == 'Noon'){
		MinuteObject.disabled = true;
		amObject.disabled = true;
		MinuteObject.selectedIndex = 0;
		if (hour == 'Midnight')
			amObject.selectedIndex = 0
		else amObject.selectedIndex = 1
	}
	else{
		MinuteObject.disabled = false;
		amObject.disabled = false;
	}
}

function SetTime(hourString, minuteString, am_pmString, hour, minute, am_pm){
	HourObject = eval("document.form1." + hourString);
	MinuteObject = eval("document.form1." + minuteString);
	amObject = eval("document.form1." + am_pmString);
	if (hour == 0 & minute == 0 & am_pm == 1){
		HourObject.selectedIndex = 12; // set to noon	
		MinuteObject.disabled = true;
		amObject.disabled = true;
	}
	else if (hour == 0 & minute == 0 & am_pm == 0){
		HourObject.selectedIndex = 13; // set to midnight
		MinuteObject.disabled = true;
		amObject.disabled = true;
	}
	else {
		HourObject.selectedIndex = hour - 1;
		minuteIndex = minute / 5;
		MinuteObject.selectedIndex = minuteIndex;		
	}

}


//function to write option years plus x

function WriteYearOptions(YearsAhead)
{
	line = "";

	for (i=0; i<YearsAhead; i++)
	{
		line += "<OPTION>";
		line += NowYear + i;
	}

	return line;
}

function WriteYearOptionsMinus2(YearsAhead)
{
	line = "";
	start = NowYear - 1;
	for (i=0; i<YearsAhead; i++)
	{
		line += "<OPTION>";
		line += start + i;
	}

	return line;
}

function WriteYearOptionsWithStart(YearStart)
{
	line = "";
	start = YearStart;
	end = NowYear - YearStart;
	for (i=0; i<=end; i++)
	{
		line += "<OPTION>";
		line += start + i;
	}

	return line;
}

// function to set the end date to the start date
function ChangeEndOptionDays(){	

	MonthObject = document.form1.month;
	month = MonthObject[MonthObject.selectedIndex].text;
	
	DayObject = document.form1.day;
	day = DayObject[DayObject.selectedIndex].text;
	
	YearObject = document.form1.year;
	year = YearObject[YearObject.selectedIndex].text;
	
	SetToDateReservationWriteYearOptions('end_day', 'end_month', 'end_year', day, (month - 1), year);
}
// function to set the end date to the start date w/ prefix start_
function ChangeEndOptionDaysPrefixStart(){	

	MonthObject = document.form1.start_month;
	month = MonthObject[MonthObject.selectedIndex].text;
	
	DayObject = document.form1.start_day;
	day = DayObject[DayObject.selectedIndex].text;
	
	YearObject = document.form1.start_year;
	year = YearObject[YearObject.selectedIndex].text;
	
	SetToDateReservationWriteYearOptions('end_day', 'end_month', 'end_year', day, (month - 1), year);
}
function ChangeEndOptionDays_event_edit(){	

	MonthObject = document.form1.month;
	month = MonthObject[MonthObject.selectedIndex].text;
	
	DayObject = document.form1.day;
	day = DayObject[DayObject.selectedIndex].text;
	
	YearObject = document.form1.year;
	year = YearObject[YearObject.selectedIndex].text;
	
	SetToDateReservation('end_day', 'end_month', 'end_year', day, (month - 1), year);
}	
// function to set the end time to the start time
function ChangeEndHour(){	
	HourObject = document.form1.hour;
	hour = HourObject[HourObject.selectedIndex].text;
		
	MinuteObject = document.form1.minute;
	minute = MinuteObject[MinuteObject.selectedIndex].text;
		
	am_pmObject = document.form1.am_pm;
	am_pm = am_pmObject[am_pmObject.selectedIndex].text; 

	end_am_pmObject = document.form1.end_am_pm;
	end_am_pmObject.selectedIndex = am_pmObject.selectedIndex;
	SetTime('end_hour', 'end_minute', 'end_am_pm', hour, minute, am_pm);
}

function SetAmPm(am_pmString, am_pmValue){	

	amObject = eval("document.form1." + am_pmString);
	amObject.selectedIndex = am_pmValue;
}
