
	function openWindow(form)
	{
			var url;
			url = "http://reservation.worldweb.com/booking-list.html?";
			url += "login=";
			url += "&hotel_id=128";
			url += "&reservationcode_id=";
	
			if (form.access_code)
				url += "&access_code=" + form.access_code.value;
			url += "&date_from_yearmonth=" + form.date_from_yearmonth[form.date_from_yearmonth.selectedIndex].value.substring(0,6);
			url += "&date_from_day=" + form.date_from_yearmonth[form.date_from_yearmonth.selectedIndex].value.substring(6,9);
			url += "&num_nights=" + form.num_nights[form.num_nights.selectedIndex].value;
			url += "&num_adults=" + form.num_adults[form.num_adults.selectedIndex].value;
			if (form.num_children)
				url += "&num_children=" + form.num_children[form.num_children.selectedIndex].value;
			if (form.exchange_rates)
				url += "&exchange_rates=" + form.exchange_rates[form.exchange_rates.selectedIndex].value;
			window.open(url,'_parent','width=620,scrollbars=yes');
			return false;
	}


	var monthlength = [31,31,28,31,30,31,30,31,31,30,31,30,31,31,28,31,30,31,30];
	var monthdaystart = [,,,,,,,,,,,,,,,,,,];
	var daysofweek = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];

	function CheckArrivalDate(form,field1,field2,numdays_field)
		{
		var f1_ym_ptr,f1_d_ptr;
		eval("f1_ym_ptr = form." + field1 + "_yearmonth");
	
		if (f1_ym_ptr)
			{
			f1_yearmonth = parseInt(f1_ym_ptr[f1_ym_ptr.selectedIndex].value);
			eval("f1_d_ptr = form." + field1 + "_day");
			f1_day = parseInt(f1_d_ptr[f1_d_ptr.selectedIndex].value);
			}
		else
			{
			// Cannot find pointer to arrival date selector. This means that the
			// arrival date is fixed and cannot be adjusted
			SetNumDays(form,field1,field2,numdays_field);
			return;
			}
	
		var f2_ym_ptr,f2_d_ptr;
		eval("f2_ym_ptr = form." + field2 + "_yearmonth");
		var f2_yearmonth = parseInt(f2_ym_ptr[f2_ym_ptr.selectedIndex].value);
		eval("f2_d_ptr = form." + field2 + "_day");
		var f2_day = parseInt(f2_d_ptr[f2_d_ptr.selectedIndex].value);
	
		if (f1_yearmonth > f2_yearmonth || (f1_yearmonth == f2_yearmonth && f1_day >= f2_day))
			{
			//f2_ym_ptr.selectedIndex = f1_ym_ptr.selectedIndex;
			//f2_d_ptr.selectedIndex = f1_d_ptr.selectedIndex;
			//DecDate(form,f1_ym_ptr,f1_d_ptr,numdays_field);
			//SetDaysInMonth(form,field1);
			f1_ym_ptr.selectedIndex = f2_ym_ptr.selectedIndex;
			f1_d_ptr.selectedIndex = f2_d_ptr.selectedIndex;
			DecDate(form,f1_ym_ptr,f1_d_ptr,numdays_field);
			SetDaysInMonth(form,field1);
			}
		else
			{
			SetNumDays(form,field1,field2,numdays_field);
			}
		return;
		}

	function CheckDepartureDate(form,field1,field2,numdays_field)
		{
		var f1_ym_ptr,f1_d_ptr;
		eval("f1_ym_ptr = form." + field1 + "_yearmonth");
		var f1_yearmonth = parseInt(f1_ym_ptr[f1_ym_ptr.selectedIndex].value);
		eval("f1_d_ptr = form." + field1 + "_day");
		var f1_day = parseInt(f1_d_ptr[f1_d_ptr.selectedIndex].value);
	
		var f2_ym_ptr,f2_d_ptr;
		eval("f2_ym_ptr = form." + field2 + "_yearmonth");
		var f2_yearmonth = parseInt(f2_ym_ptr[f2_ym_ptr.selectedIndex].value);
		eval("f2_d_ptr = form." + field2 + "_day");
		var f2_day = parseInt(f2_d_ptr[f2_d_ptr.selectedIndex].value);
	
		if (f1_yearmonth > f2_yearmonth || (f1_yearmonth == f2_yearmonth && f1_day >= f2_day))
			{
			f2_ym_ptr.selectedIndex = f1_ym_ptr.selectedIndex;
			f2_d_ptr.selectedIndex = f1_d_ptr.selectedIndex;
			IncDate(form,f2_ym_ptr,f2_d_ptr,numdays_field);
			SetDaysInMonth(form,field2);
			}
		else
			{
			SetNumDays(form,field1,field2,numdays_field);
			}
		return;
		}
	
	function SetDepartureDate(form,field1,field2,numdays_field)
		{
		var f1_ym_ptr,f1_d_ptr;
		eval("f1_ym_ptr = form." + field1 + "_yearmonth");
		eval("f1_d_ptr = form." + field1 + "_day");
	
		var f2_ym_ptr,f2_d_ptr;
		eval("f2_ym_ptr = form." + field2 + "_yearmonth");
		eval("f2_d_ptr = form." + field2 + "_day");
	
		if (f1_ym_ptr)
			{
			f2_ym_ptr.selectedIndex = f1_ym_ptr.selectedIndex;
			f2_d_ptr.selectedIndex = f1_d_ptr.selectedIndex;
			}
		else
			{
			eval("f1_ym_ptr = form." + field1);
			
			// arrival date information is in hidden field
			f1_ym = parseFloat(f1_ym_ptr.value.substr(0,6));
			f1_d = parseFloat(f1_ym_ptr.value.substr(6,2));
			
			// Iterate through departure date until match found with arrival date
			for (i=0; i<f2_ym_ptr.options.length; i++)
				{
				if (f2_ym_ptr.options[i].value == f1_ym)
					{
					f2_ym_ptr.selectedIndex = i;
					break;
					}
				}
			f2_d_ptr.selectedIndex = f1_d-1;
			}
	
		IncDate(form,f2_ym_ptr,f2_d_ptr,numdays_field);
		}
	
	function DecDate(form,ym_ptr,day_ptr,numdays_field)
		{
		var yearmonth = ym_ptr[ym_ptr.selectedIndex].value;
		var day = parseInt(day_ptr[day_ptr.selectedIndex].value);
	
		var numday_ptr;
		eval("numdays_ptr = form." + numdays_field);
		var numdays = parseInt(numdays_ptr.options[numdays_ptr.selectedIndex].value);
	
		var numdays_rem = numdays;
	
		var loopcnt;
		for (loopcnt = 0; loopcnt < 30; loopcnt++)
			{
			if (numdays_rem < day)
				{
				day_ptr.selectedIndex -= numdays_rem;
				return;
				}
		
			numdays_rem -= day;
			ym_ptr.selectedIndex -= 1;
			day_ptr.selectedIndex = monthlength[ym_ptr.selectedIndex];
			day = monthlength[ym_ptr.selectedIndex];
			}
		}
	
	function IncDate(form,ym_ptr,day_ptr,numdays_field)
		{
		var yearmonth = ym_ptr[ym_ptr.selectedIndex].value;
		var day = parseInt(day_ptr[day_ptr.selectedIndex].value);
	
		var numday_ptr;
		eval("numdays_ptr = form." + numdays_field);
		var numdays = parseInt(numdays_ptr.options[numdays_ptr.selectedIndex].value);
	
		var numdays_rem = numdays;
	
		var loopcnt;
		for (loopcnt = 0; loopcnt < 30; loopcnt++)
			{
			if (monthlength[ym_ptr.selectedIndex] >= (day + numdays_rem))
				{
				day_ptr.selectedIndex += numdays_rem;
				return;
				}
		
			numdays_rem -= (monthlength[ym_ptr.selectedIndex]+1 - day);
			ym_ptr.selectedIndex += 1;
			day_ptr.selectedIndex = 0;
			day = 1;
			}
		}
	
	function SetNumDays(form,field1,field2,numdays_field)
		{
		var numdays = CalculateNumDays(form,field1,field2);
	
		var numday_ptr;
		eval("numdays_ptr = form." + numdays_field);
		numdays_ptr.selectedIndex = numdays-1;
		}
	
	function SetDaysInMonth(form,fieldname)
		{
		var date_si;
		eval("date_si = form." + fieldname + "_yearmonth.selectedIndex");
	
		var numdays = monthlength[date_si];
		//alert("days in " + fieldname + " = " + numdays);
	
		for (var loop=29; loop<32; loop++)
			{
			if (loop<=numdays)
				{
				eval("form." + fieldname + "_day.options[loop-1].text = loop.toString()");
				}
			else
				{
				eval("form." + fieldname + "_day.options[loop-1].text = ''");
				}
			}
		}
	
	function CalculateNumDays(form,field1,field2)
		{
		var f1_yearmonth_si,f1_yearmonth,f1_day_si,f1_day;
	
		eval("f1_yearmonth_ptr = form." + field1 + "_yearmonth");
		if (f1_yearmonth_ptr)
			{
			eval("f1_yearmonth_si = form." + field1 + "_yearmonth.selectedIndex");
			eval("f1_yearmonth = parseInt(form." + field1 + "_yearmonth[f1_yearmonth_si].value)");
			eval("f1_day_si = form." + field1 + "_day.selectedIndex");
			eval("f1_day = parseInt(form." + field1 + "_day[f1_day_si].value)");
			}
		else
			{
			eval("f1_ym_ptr = form." + field1);
			f1_yearmonth = parseInt(f1_ym_ptr.value.substr(0,6));
			//f1_day = parseInt(f1_ym_ptr.value.substr(6,2));
			f1_day = parseFloat(f1_ym_ptr.value.substr(6,2));
			}
	
		var f2_yearmonth_si,f2_yearmonth,f2_day_si,f2_day;
		eval("f2_yearmonth_ptr = form." + field2 + "_yearmonth");
		f2_yearmonth_si = f2_yearmonth_ptr.selectedIndex;
		f2_yearmonth = parseInt(f2_yearmonth_ptr[f2_yearmonth_si].value);
	
		eval("f2_day_si = form." + field2 + "_day.selectedIndex");
		eval("f2_day = parseInt(form." + field2 + "_day[f2_day_si].value)");
	
		if (f2_yearmonth < f1_yearmonth || (f2_yearmonth == f1_yearmonth && f2_day <= f1_day))
			{
			return 0;
			}
	
		if (!f1_yearmonth_si)
			{
			// Field 1 does not exist, therefore Field 1 does not  have a select box
			// of yearmonth values, therefore use the Field 2 select box values to set f1_yearmonth_si
			for (i=0; i<f2_yearmonth_ptr.options.length; i++)
				{
				if (f2_yearmonth_ptr.options[i].value == f1_yearmonth)
					{
					f1_yearmonth_si = i;
					break;
					}
				}
			}
	
		var num_days = 0
		var loopcnt = 0;
		while(f1_yearmonth <= f2_yearmonth && loopcnt < 30)
			{
			if (f2_yearmonth == f1_yearmonth)
				{
				num_days += f2_day - f1_day;
				break;
				}
	
			num_days += monthlength[f1_yearmonth_si] - f1_day;
	
			f1_day = 0;
			f1_yearmonth_si++;
			//f1_yearmonth++;
			//eval("f1_yearmonth = parseInt(form." + field1 + "_yearmonth[f1_yearmonth_si].value)");
	
			f1_yearmonth++;
			if ((f1_yearmonth % 100) > 12)
				{
				f1_yearmonth += 100;
				f1_yearmonth = parseInt(f1_yearmonth/100)*100 + 1;
				}
	
			loopcnt++;
			}
	
		return num_days;
		}

