// Checks if browser is Netscape 2.0x since the options array properties don't work with Netscape 2.0x
function isBrowserSupp() {

    // Get the version of the browser
    version =  parseFloat( navigator.appVersion );

    if ( ( version >= 2.0 ) && ( version < 2.1 ) && ( navigator.appName.indexOf( "Netscape" ) != -1 ) ) {
        return false;
    }
    else {
	return true;
    }
}


function isLeapYear(yrStr)
{
var leapYear=false;
var year = parseInt(yrStr, 10);
// every fourth year is a leap year
if (year%4 == 0)
	{
	leapYear=true;
	// unless it's a multiple of 100
	if (year%100 == 0)
		{
		leapYear=false;
		// unless it's a multiple of 400
		if (year%400 == 0)
			{
			leapYear=true;
			}
		}
	}
return leapYear;
}


function getDaysInMonth(mthIdx, YrStr)
{
// all the rest have 31
var maxDays=31
// expect Feb. (of course)
if (mthIdx==1) 
	{
	if (isLeapYear(YrStr))
		{
		maxDays=29;
		}
	else 
		{
		maxDays=28;
		}
	}
// thirty days hath...
if (mthIdx==3 || mthIdx==5 || mthIdx==8 || mthIdx==10)
	{
	maxDays=30;
	}
return maxDays;
}


//the function which does some magic to the date fields
// return non-zero if it is the last day of the month
function adjustDate(mthIdx, Dt, Yr) 
{
var value=0;
var numDays=getDaysInMonth(mthIdx, Yr.options[Yr.options.selectedIndex].text);

if (mthIdx==1) 
	{
	if (Dt.options.selectedIndex + 1 < numDays)
		{
		return 0;
		}
	else 
		{
		Dt.options.selectedIndex=numDays - 1;
		//check for leap year
		if (numDays==29)
			{
			return 99;
			}
		else 
			{
			return 1;
			}
		}
	}
if (Dt.options.selectedIndex + 1 < numDays)
	{
	value=0;
	}
else 
	{
	if (Dt.options.selectedIndex + 1 > numDays)
		{
		Dt.options.selectedIndex--;
		value=3;
		}
	else 
		{
		//index is 31 or 30
		value=2;
		}
	}
return value;
}

// Get the index of the corresponding option in the field's list
function getIndex (val, field) {
	var i;
	for (i = 0; i < field.length; i++) {
		if (val == field.options[i].text) {
			return i;
		}
	}
	return -1;
}


//changes departure month when arrival month is changed
function inMonthChange( inM, outM, inD, outD, inY, outY ) {

	if ( !isBrowserSupp() ) {

		return;
	}

	var res = adjustDate(inM.options.selectedIndex, inD,inY);

	if ( res != 0 ) {
		outD.options.selectedIndex=0;
		outM.options.selectedIndex = inM.options.selectedIndex + 1;
	} else {
		outM.options.selectedIndex = inM.options.selectedIndex;
		outD.options.selectedIndex = inD.options.selectedIndex + 1;
	}

	// Set the out year to the same as the in year
	outY.options.selectedIndex = inY.options.selectedIndex;

	var currentMonth = ( new Date() ).getMonth();

	// If the in date is 12/31/?? set the out date to 01/01/??
	if ( ( inM.options.selectedIndex == 11 ) && ( inD.options.selectedIndex == 30 ) ) {
		outM.options.selectedIndex=0;
		outY.options.selectedIndex++;
	}

	// If the selected month is before the current month, increment the in year.
	if ( inM.options.selectedIndex < currentMonth ) {

		// First make sure it is a valid selection
		if ( inY.selectedIndex < ( inY.options.length - 1 ) )
			inY.options.selectedIndex++;

		// Now set the out year to the same as the in year
		outY.options.selectedIndex = inY.options.selectedIndex;		
	}

	return;
}
	

//changes departure day when arrival day is changed
function inDayChange(inD, outD, inM, outM, inY, outY) 
{
if (!isBrowserSupp())
	{
 	return;
	}			
var Inmth = inM.options.selectedIndex;

var res =adjustDate(Inmth, inD, inY)
if (res != 0)
	{
	outD.options.selectedIndex=0;
	outM.options.selectedIndex=inM.options.selectedIndex + 1;
	}
else
	{
	outM.options.selectedIndex = inM.options.selectedIndex;
	outD.options.selectedIndex = inD.options.selectedIndex+1;
	}
outY.options.selectedIndex = inY.options.selectedIndex;
if ((inM.options.selectedIndex == 11) && (inD.options.selectedIndex == 30))
	{
	outM.options.selectedIndex=0;
	outY.options.selectedIndex++;
	}
return;
}
	

//changes departure year when arrival year is changed
function inYearChange(inY, outY, inM, outM, inD, outD) 
{
if (!isBrowserSupp()) 
	{
	return;			
	}

outY.options.selectedIndex = inY.options.selectedIndex;
adjustDate(inM.options.selectedIndex, inD,inY);
return;
}	

function outMonthChange(outM, outD, outY) {

	if ( !isBrowserSupp() ) {
		return;			
	}

	adjustDate( outM.options.selectedIndex, outD, outY );	

	return;	
}


function outDayChange(outD, outM, outY) 
{
if (!isBrowserSupp())
	{
	return;			
	}

adjustDate(outM.options.selectedIndex,outD,outY);		
return;	
}


function outYearChange(outY, outM, outD) 
{
if (!isBrowserSupp())
	{
	return;			
	}

adjustDate(outM.options.selectedIndex,outD,outY);		
return;	
}

function confDayChange(beginDay, endDay)
{
	endDay.options.selectedIndex = beginDay.options.selectedIndex;
}

function confMonthChange(beginMonth, endMonth)
{
	endMonth.options.selectedIndex = beginMonth.options.selectedIndex;
}

function confYearChange(beginYear, endYear)
{
	endYear.options.selectedIndex = beginYear.options.selectedIndex;
}

//Calendar Section

//calculation functions
function nextMonth(month) 
{
if (month==11)
	{
	return 0;
	}
else
	{
	return (month+1);
	}
}


function prevMonth(month) 
{
var prevMonth = (month-1)
if (month==0)
	{
	prevMonth = 11;
	}
return prevMonth
}

//increments or decrements month when it goes past Jan or Dec
function changeYear(direction,month,year)
{
var theYear = year
if (direction=="next")
	{
	if (month == 11)
		{
		theYear = (year+1)
		}
	}
if (direction=="prev")
	{
	if (month == 0)
		{
		theYear = (year-1)
		}
	}
return theYear
}


//opens a new window for the calendar
function createCalendar(month,year,io) {

if (!isBrowserSupp()) {

	alert("Your browser appears to be outdated and does not support this feature.")
 	return;
	}

//if (navigator.appVersion.indexOf("Mac",0) != -1) 
	//{
	var tmp_w = screen.availWidth;
	var tmp_h = screen.availHeight;
	var tmp_ww = 250;
	var tmp_wh = 270;
	var tmp_x = (tmp_w - tmp_ww)/2;
	var tmp_y = (tmp_h - tmp_wh)/2;
	var tmp_options = "width="+tmp_ww+",height="+tmp_wh+",resizable=yes,scrollbars=no,top="+tmp_y+",left="+tmp_x	+",screenY="+tmp_y+",screenX="+tmp_x+"menubar=1,status=1";
   	calendarWindow = window.open("","Calendar",tmp_options);
//  	} 
//else 
	//{
//	calendarWindow = window.open("","Calendar","width=230,height=270,resizable=yes,scrollbars=no");
  //	}
var mthIdx = month.options.selectedIndex
// var mthVal = getMonthNumber(month.options[mthIdx].text)
var yearVal = year.options[year.options.selectedIndex].text
//call the function to populate the window
generateCalendar(calendarWindow,mthIdx,yearVal,io)
}


//generates the meat of the calendar
function generateCalendar(target,mthIdx,year,io) 
{
if (!isBrowserSupp())
	{
 	return;
	}	
var monthName = new Array ("ßíâàðü","Ôåâðàëü","Ìàðò","Àïðåëü","Ìàé","Èþíü","Èþëü","Àâãóñò","Ñåíòÿáðü","Îêòÿáðü","Íîÿáðü","Äåêàáðü")

//begin table for calendar
target.document.open()
calendar = "<html><head><title>calendar</title></head><body bgcolor=#FFFFFF>"
calendar +="<table border=0 cellspacing=0 cellpadding=4 width=200>"
calendar +="<tr valign=top>"

// var mthIdx = parseInt(month);
var endday = getDaysInMonth(mthIdx, year)

//month header
calendar +="<td colspan=7 align=center bgcolor=#733401>"
calendar +="<b><font face='Helvetica,Arial,Futura' color=#FFFFFF>" + monthName[mthIdx] + " " + year + "</font></b></td></tr>"

//writes in the day of the week labels
calendar +="</tr><tr align=center>"
calendar +="<td width=10><font face='Helvetica,Arial,Futura' color='#ff4444'>&nbsp;<b>Âñ</b></font></td>"
calendar +="<td width=10><font face='Helvetica,Arial,Futura' color='#563A33'>&nbsp;<b>Ïí</b></font></td>"
calendar +="<td width=10><font face='Helvetica,Arial,Futura' color='#563A33'>&nbsp;<b>Âò</b></font></td>"
calendar +="<td width=10><font face='Helvetica,Arial,Futura' color='#563A33'>&nbsp;<b>Ñð</b></font></td>"
calendar +="<td width=10><font face='Helvetica,Arial,Futura' color='#563A33'>&nbsp;<b>×ò</b></font></td>"
calendar +="<td width=10><font face='Helvetica,Arial,Futura' color='#563A33'>&nbsp;<b>Ïò</b></font></td>"
calendar +="<td width=10><font face='Helvetica,Arial,Futura' color='#ff4444'>&nbsp;<b>Ñá</b></font></td>"
calendar +="</tr>"

// month = mthIdx + 1;
// wholeDate = month + "/01/" + year
// thedate = new Date(wholeDate)
thedate = new Date (year, mthIdx, 1);
firstDay = thedate.getDay()

selectedmonth = mthIdx;
var today = new Date();
var thisyear = today.getYear() + 1900;
//adb selectedyear = document.resrvForm.inyear.options.selectedIndex
selectedyear = year

var lastDay = (endday + firstDay+1)

///////////////////////////////////////
cur_date = new Date();
///////////////////////////////////////

calendar +="<tr>"
for (var i = 1; i < lastDay; i++)
	{
	if (i <= firstDay)
		{
		// 'empty' boxes prior to first day
		calendar +="<td>&nbsp;</td>"
		}
	else 
		{
			myDate_nah = new Date(year, mthIdx, (i - firstDay + 1));
//			alert(Date.parse(myDate_nah));
//			alert(Date.parse(cur_date));
			if (Date.parse(myDate_nah) > Date.parse(cur_date))
			{
				// enter date number
				calendar +="<td align=center><a href='JavaScript:self.close();opener.closeCalendar"+io+"("+(i-firstDay) + ")'><font color=#563A33> "+(i-firstDay)+"</font></a></td>";
			}
			else
			{
				// enter date number
				calendar +="<td align=center><font color=#ff4444> "+(i-firstDay)+"</font></td>";
			}
		}
	//must start new row after each week
	if (i % 7 == 0 &&  i != lastDay)
		{
		calendar +="</tr><tr>"
		}
	}
calendar +="</tr>"

//separator line
calendar +="<tr><td colspan=7 align=center><img src='/pic/gray_point.gif' width=220 height=1 border=0></td></tr>"

//next month and previous month buttons
var goPrevMonth = prevMonth(mthIdx)
var goNextMonth = nextMonth(mthIdx)
var nextYear = changeYear("next",mthIdx,parseInt(year))
var prevYear = changeYear("prev",mthIdx,parseInt(year))

if(navigator.userAgent.indexOf('MSIE',0) != -1)
	{
	calendar +="<tr><td align=left colspan=3><a href='javascript:opener.generateCalendar(self,"+goPrevMonth+","+prevYear+",\""+io+"\")'><img src='/pic/cal_left.gif' width=11 height=11 border=0></a></td>"
	calendar +="<td align=center colspan=1>&nbsp;</td>"
	calendar +="<td align=right colspan=3><a href='javascript:opener.generateCalendar(self,"+goNextMonth+","+nextYear+",\""+io+"\")'><img src='/pic/cal_right.gif' width=11 height=11 border=0></a></td></tr>"
	calendar +="</table></body></html>"
	target.document.close()
	}
else
	{
	calendar +="<form><tr><td align=left colspan=3><input type=button value=' < '"+
"onClick='document.clear();opener.generateCalendar(opener.calendarWindow,"+goPrevMonth+","+prevYear+",\""+io+"\")'></td>"
	calendar +="<td align=center colspan=1>&nbsp;</td>"
	calendar +="<td align=right colspan=3><input type=button value=' > '"+
"onClick='document.clear();opener.generateCalendar(opener.calendarWindow,"+goNextMonth+","+nextYear+",\""+io+"\")'></td></tr></form>"
	calendar +="</table></body></html>"
	}
target.document.write(calendar);
target.document.close()	
}

//changes date when a date is clicked
function closeCalendarIn(day)
{
var arrMonthField = document.reserv_form.begin_month;
var arrDayField = document.reserv_form.begin_day;
var arrYearField = document.reserv_form.begin_year;
var depMonthField = document.reserv_form.end_month;
var depDayField = document.reserv_form.end_day;
var depYearField = document.reserv_form.end_year;

var yrIdx = getIndex (selectedyear,arrYearField );

arrMonthField.options.selectedIndex=selectedmonth;
arrYearField.options.selectedIndex= yrIdx;
arrDayField.options.selectedIndex=parseInt(day) - 1;
var res = adjustDate(selectedmonth, arrDayField, arrYearField); 
if (res != 0)
	{
	depDayField.options.selectedIndex=0;
	depMonthField.options.selectedIndex = arrMonthField.options.selectedIndex+1;
	}
else 
	{
	depMonthField.options.selectedIndex = arrMonthField.options.selectedIndex;
	depDayField.options.selectedIndex = arrDayField.options.selectedIndex+1;
	}
depYearField.options.selectedIndex = arrYearField.options.selectedIndex;
if ((arrMonthField.options.selectedIndex == 11) && (arrDayField.options.selectedIndex == 30))
	{
	depMonthField.options.selectedIndex=0;
	depYearField.options.selectedIndex++;
	}
return;
}

function closeCalendarOut(day)
{
var depMonthField = document.reserv_form.end_month;
var depDayField = document.reserv_form.end_day;
var depYearField = document.reserv_form.end_year;

var yrIdx = getIndex (selectedyear,depYearField );
depMonthField.options.selectedIndex=selectedmonth;
depYearField.options.selectedIndex=yrIdx;
depDayField.options.selectedIndex=parseInt(day) - 1;
var res = adjustDate(selectedmonth, depDayField, depYearField); 
}


function closeCalendarIn2(day)
{
	var arrMonthField = document.resrvForm2.eventMonth;
	var arrDayField = document.resrvForm2.eventDay;
	var arrYearField = document.resrvForm2.eventYear;


	var yrIdx = getIndex (selectedyear,arrYearField );

	arrMonthField.options.selectedIndex=selectedmonth;
	arrYearField.options.selectedIndex= yrIdx;
	arrDayField.options.selectedIndex=parseInt(day) - 1;

	var res = adjustDate(selectedmonth, arrDayField, arrYearField); 
	return;
}

function closeCalendarConf(day)
{
var arrMonthField = document.reserv_form.begin_month;
var arrDayField = document.reserv_form.begin_day;
var arrYearField = document.reserv_form.begin_year;
//var depMonthField = document.reserv_form.end_month;
//var depDayField = document.reserv_form.end_day;
//var depYearField = document.reserv_form.end_year;

var yrIdx = getIndex (selectedyear,arrYearField );

arrMonthField.options.selectedIndex=selectedmonth;
arrYearField.options.selectedIndex= yrIdx;
arrDayField.options.selectedIndex=parseInt(day) - 1;
//depMonthField.options.selectedIndex=selectedmonth;
//depYearField.options.selectedIndex= yrIdx;
//depDayField.options.selectedIndex=parseInt(day) - 1;
return;
}

