var omitformtags=["input", "textarea", "select"]
omitformtags=omitformtags.join("|")
function disableselect(e){
	if (omitformtags.indexOf(e.target.tagName.toLowerCase())==-1)return false
}

function reEnable(){return true}

if (typeof document.onselectstart!="undefined")
	document.onselectstart=new Function ("return false")
else{
	document.onmousedown=disableselect
	document.onmouseup=reEnable
}

function getMonthNo(month)
{
	if (month == "January")
		return 0;
	else if (month == "February")
		return 1;
	else if (month == "March")
		return 2;					
	else if (month == "April")
		return 3;
	else if (month == "May")
		return 4;
	else if (month == "June")
		return 5;
	else if (month == "July")
		return 6;
	else if (month == "August")
		return 7;
	else if (month == "September")
		return 8;
	else if (month == "October")
		return 9;
	else if (month == "November")
		return 10;
	else if (month == "December")
		return 11;				
}

function getDayOfWeek(year, month, day)		
{
	var d=new Date(year, month, day)
	var weekday=new Array(7)
	weekday[0]="Sunday"
	weekday[1]="Monday"
	weekday[2]="Tuesday"
	weekday[3]="Wednesday"
	weekday[4]="Thursday"
	weekday[5]="Friday"
	weekday[6]="Saturday"
	
	return weekday[d.getDay()];
}
			
function getNextDay(currentDay)
{
	if (currentDay == "Sunday") return "Monday";
	else if (currentDay == "Monday") return "Tuesday";
	else if (currentDay == "Tuesday") return "Wednesday";
	else if (currentDay == "Wednesday") return "Thursday";
	else if (currentDay == "Thursday") return "Friday";
	else if (currentDay == "Friday") return "Saturday";
	else if (currentDay == "Saturday") return "Sunday";
	else return "NULL";	
}			
			
//THIS FUNCTION IS NOT STANDALONE IT REQUIRES BuildCalendar.js AND CalendarInfo.js	
//THIS FUNCTION ALSO DEPENDS ON CALENDAR.HTML's GLOBAL VARIABLES:
// CALENDAR_INDEX
// a_calendarInfo
function getDayOfTheWeekFromID(tableDataID)
{
	var da, mo, ye;
	if (tableDataID.substring(1,2) == "1")
	{
		mo = a_calendarInfo[CALENDAR_INDEX][0];
		ye = a_calendarInfo[CALENDAR_INDEX][3];
	}
	else
	{
		mo = a_calendarInfo[CALENDAR_INDEX+1][0];
		ye = a_calendarInfo[CALENDAR_INDEX+1][3];
	}
	da = tableDataID.substring(3,tableDataID.length);
	mo = getMonthNo(mo);

	return (getDayOfWeek(ye, mo, da));	
}

function getArrayOfWeekdays(arrivalTableDataId, noNights)
{
	currentDay = getDayOfTheWeekFromID(arrivalTableDataId);
	var days = new Array();
	days[0] = currentDay;
	
	if (noNights > 1)
	{
		for (var idx = 1; idx < noNights; idx++)
		{
			days[idx] = getNextDay(currentDay);
			currentDay = getNextDay(currentDay);
		}
	}
	return days;
}//end getArrayOfWeekdays

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num))
		num = "0";
	
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	
	if(cents<10)
		cents = "0" + cents;
	
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+
		
	num.substring(num.length-(4*i+3));
	
	return (((sign)?'':'-') + num + '.' + cents);
}

function buildCalendars(Month, Year)
{
	var firstMonIndex = -1;
	var idx = 0;
	var t = new Date();

	if (Year <t.getFullYear() -1  || Year > t.getFullYear() + 3)
		return;
	
	for (var i=0; i < a_calendarInfo.length; i++)
	{
		if (a_calendarInfo[i][3] == Year && a_calendarInfo[i][0] == Month)
		{
				firstMonIndex = i;
				i = 100;
		}//end if
	}//end look for Year
	
	if (firstMonIndex == -1) return;
	else
		CALENDAR_INDEX = firstMonIndex;		
	
	//+--------------------------------------------+
	//|					       |
	//|	Create controls for the table	       |
	//|					       |
	//+--------------------------------------------+
	var myTableControls = '<table border="0" cellpadding=0 cellspacing=0 width="220" rules="none" height="28">';

	myTableControls += '<tr class="trdarkblue">';
	//Can not book the past
	if (firstMonIndex <= 1)
		myTableControls	+= '<th align="left" valign="center"><a href="javascript:redirect(\'' + a_calendarInfo[0][0] + '\',\'' + a_calendarInfo[0][3] + '\');" class="leftarrow"> </th>';
	else
		myTableControls	+= '<th align="left" valign="center"><a href="javascript:redirect(\'' + a_calendarInfo[firstMonIndex - 1][0] + '\',\'' + a_calendarInfo[firstMonIndex - 1][3] + '\');"  class="leftarrow"></a></th>';
	
	//Refresh
	myTableControls	+= '<th align="center" valign="center"><a href="javascript:ResetAll(true);" class="cleardates">  </a></th>';
	
	//Can not too far in the future
	if (firstMonIndex >= a_calendarInfo.length -3)
		myTableControls	+= '<th align="right" valign="center"><a href="javascript:redirect(\''+ a_calendarInfo[a_calendarInfo.length-2][0] + '\',\'' + a_calendarInfo[a_calendarInfo.length -2][3] + '\');"  class="rightarrow"><img border="0" src="Images/rightarrow.gif" width="78"></a></th>';
	else
		myTableControls	+= '<th align="right" valign="center"><a href="javascript:redirect(\''+ a_calendarInfo[firstMonIndex+1][0] + '\',\'' + a_calendarInfo[firstMonIndex+1][3] + '\');" class="rightarrow"></a></th>';
	myTableControls	+= '</tr>';
	myTableControls += '</table>';
	
	document.getElementById("CalendarControls").innerHTML = myTableControls;
	
	//+--------------------------------------------+
	//|					       |
	//|	Create first table and headers	       |
	//|					       |
	//+--------------------------------------------+
	var myTable = '<table border="1" style="border-collapse: collapse" bordercolor="black" width="220" max-height="200">';
	myTable += '<tr class="trjustblue"><th colspan="7"><span class="dates2" ><center>' + a_calendarInfo[firstMonIndex][0] + ' ' + a_calendarInfo[firstMonIndex][3] + '</center></span></th></tr>';
	myTable += '<tr class="trgrey">'
	myTable += '<th width="14%" align="CENTER"  class="ignore"><span class="smalltxtbold">Sun</span></th>';
	myTable += '<th width="14%" align="CENTER"  class="ignore"><span class="smalltxtbold">Mon</span></th>';
	myTable += '<th width="14%" align="CENTER"  class="ignore"><span class="smalltxtbold">Tue</span></th>';
	myTable += '<th width="14%" align="CENTER"  class="ignore"><span class="smalltxtbold">Wed</span></th>';
	myTable += '<th width="14%" align="CENTER"  class="ignore"><span class="smalltxtbold">Thu</span></th>';
	myTable += '<th width="14%" align="CENTER"  class="ignore"><span class="smalltxtbold">Fri</span></th>';
	myTable += '<th width="14%" align="CENTER"  class="ignore"><span class="smalltxtbold">Sat</span></th>';
	myTable += '</tr>';
	
	var TotalNumDays = 0;
	
	//Meat of Calendar
	for (idx = 1; idx < 7; idx++)//Rows
	{		
		myTable += '<TR>';
		
		if (idx == 1)
		{	
			var start = 1;
			if (a_calendarInfo[firstMonIndex][2] == "Sun")
				start = 1;
			else if (a_calendarInfo[firstMonIndex][2] == "Mon")
				start = 2;
			else if (a_calendarInfo[firstMonIndex][2] == "Tue")
				start = 3;
			else if (a_calendarInfo[firstMonIndex][2] == "Wed")
				start = 4;
			else if (a_calendarInfo[firstMonIndex][2] == "Thu")
				start = 5;
			else if (a_calendarInfo[firstMonIndex][2] == "Fri")
				start = 6;
			else if (a_calendarInfo[firstMonIndex][2] == "Sat")				
				start = 7;
			
			for (var i = 1; i < 8; i++)
			{
				if (i < start)
					myTable += '<td height="26" valign="top" align="right" class="ignore"></td>';
				else
				{
					TotalNumDays++;
					if (TotalNumDays < 10)
						myTable += '<td id="C1_0' + TotalNumDays + '" class="date" height="26" valign="top" align="right" onMouseOver="javascript:handleMouseOverTD(event);" onMouseOut="javascript:handleMouseOutTD(event);" style="cursor: pointer"><font size="1" face="Arial, Helvetica, sans-serif" class="date" id="C1_0' + TotalNumDays + '">' +  TotalNumDays + '</font></td>';
					else
						myTable += '<td id="C1_' + TotalNumDays + '" class="date" height="26" valign="top" align="right" onMouseOver="javascript:handleMouseOverTD(event);" onMouseOut="javascript:handleMouseOutTD(event);" style="cursor: pointer"><font size="1" face="Arial, Helvetica, sans-serif" class="date" id="C1_' + TotalNumDays + '">' +  TotalNumDays + '</font></td>';				
				}//end else
			}//end for
		}//end first row
		else
		{
			for (var idy = 1; idy < 8; idy++)
			{
				TotalNumDays++;
				if (TotalNumDays <= a_calendarInfo[firstMonIndex][1]){
					if (TotalNumDays < 10)
						myTable += '<td id="C1_0' + TotalNumDays + '" class="date" height="26" valign="top" align="right" bgcolor="WHITE" onMouseOver="javascript:handleMouseOverTD(event);" onMouseOut="javascript:handleMouseOutTD(event);" style="cursor: pointer"><font size="1" face="Arial, Helvetica, sans-serif" class="date" id="C1_0' + TotalNumDays + '">' +  TotalNumDays + '</font></td>';
					else
						myTable += '<td id="C1_' + TotalNumDays + '" class="date" height="26" valign="top" align="right" bgcolor="WHITE" onMouseOver="javascript:handleMouseOverTD(event);" onMouseOut="javascript:handleMouseOutTD(event);" style="cursor: pointer"><font size="1" face="Arial, Helvetica, sans-serif"  class="date" id="C1_' + TotalNumDays + '">' +  TotalNumDays + '</font></td>';
				}//end if
				else 
				{
					myTable += '<td height="26" valign="top" align="right" class="ignore"></td>';
					idx = 10;
				}//end else
			}//end create numbers	
		}//end else
		
		if (TotalNumDays >= a_calendarInfo[firstMonIndex][1])
			idx = 9; // jump out of the loop
		
		myTable += '</TR>';	
	}//end create row
	
	myTable += '</table>';
	document.getElementById("Calendar1").innerHTML= myTable;

	//+--------------------------------------------+
	//|					       |
	//|	Create the second table and headers    |
	//|					       |
	//+--------------------------------------------+	
	firstMonIndex += 1;
	
	var myTable2 = '<table border="1" style="border-collapse: collapse" bordercolor="black" width="220" max-height="200">';
	myTable2 += '<tr class="trjustblue"><th colspan="7"><span class="dates2"><center>' + a_calendarInfo[firstMonIndex][0] + ' ' + a_calendarInfo[firstMonIndex][3] + '</center></span></th></tr>';
	myTable2 += '<tr class="trgrey">'

	myTable2 += '<th width="14%" align="CENTER"  class="ignore"><span class="smalltxtbold">Sun</span></th>';
	myTable2 += '<th width="14%" align="CENTER" class="ignore"><span class="smalltxtbold">Mon</span></th>';
	myTable2 += '<th width="14%" align="CENTER" class="ignore"><span class="smalltxtbold">Tue</span></th>';
	myTable2 += '<th width="14%" align="CENTER" class="ignore"><span class="smalltxtbold">Wed</span></th>';
	myTable2 += '<th width="14%" align="CENTER" class="ignore"><span class="smalltxtbold">Thu</span></th>';
	myTable2 += '<th width="14%" align="CENTER" class="ignore"><span class="smalltxtbold">Fri</span></th>';
	myTable2 += '<th width="14%" align="CENTER" class="ignore"><span class="smalltxtbold">Sat</span></th>';

	myTable2 += '</tr>';
	
	var TotalNumDays2 = 0;
	
	//Meat of Calendar
	for (idx = 1; idx < 7; idx++)//Rows
	{		
		myTable2 += '<TR>';

		if (idx == 1)
		{	
			var start2 = 1;
			if (a_calendarInfo[firstMonIndex][2] == "Sun")
				start2 = 1;
			else if (a_calendarInfo[firstMonIndex][2] == "Mon")
				start2 = 2;
			else if (a_calendarInfo[firstMonIndex][2] == "Tue")
				start2 = 3;
			else if (a_calendarInfo[firstMonIndex][2] == "Wed")
				start2 = 4;
			else if (a_calendarInfo[firstMonIndex][2] == "Thu")
				start2 = 5;
			else if (a_calendarInfo[firstMonIndex][2] == "Fri")
				start2 = 6;
			else if (a_calendarInfo[firstMonIndex][2] == "Sat")				
				start2 = 7;

			
			for (var i = 1; i < 8; i++)
			{
				if (i < start2)
					myTable2 += '<td height="26" valign="top" align="right" class="ignore"></td>';
				else
				{
					TotalNumDays2++;
					if (TotalNumDays2 < 10)
						myTable2 += '<td id="C2_0' + TotalNumDays2 + '" class="date" height="26" valign="top" align="right" onMouseOver="javascript:handleMouseOverTD(event);" onMouseOut="javascript:handleMouseOutTD(event);" style="cursor: pointer"><font size="1" face="Arial, Helvetica, sans-serif" class="date" id="C2_0' + TotalNumDays2 + '">' +  TotalNumDays2 + '</font></td>';
					else
						myTable2 += '<td id="C2_' + TotalNumDays2 + '" class="date" height="26" valign="top" align="right" onMouseOver="javascript:handleMouseOverTD(event);" onMouseOut="javascript:handleMouseOutTD(event);" style="cursor: pointer"><font size="1" face="Arial, Helvetica, sans-serif" class="date" id="C2_' + TotalNumDays2 + '">' +  TotalNumDays2 + '</font></td>';
				}//end else
			}//end for
		}//end first row
		else
		{
			for (var idy = 1; idy < 8; idy++)
			{
				TotalNumDays2++;
				if (TotalNumDays2 <= a_calendarInfo[firstMonIndex][1]){
					if (TotalNumDays2 < 10)
						myTable2 += '<td id="C2_0' + TotalNumDays2 + '" class="date" height="26" valign="top" align="right" onMouseOver="javascript:handleMouseOverTD(event);" onMouseOut="javascript:handleMouseOutTD(event);" style="cursor: pointer"><font size="1" face="Arial, Helvetica, sans-serif" class="date" id="C2_0' + TotalNumDays2 + '">' +  TotalNumDays2 + '</font></td>';
					else
						myTable2 += '<td id="C2_' + TotalNumDays2 + '" class="date" height="26" valign="top" align="right" onMouseOver="javascript:handleMouseOverTD(event);" onMouseOut="javascript:handleMouseOutTD(event);" style="cursor: pointer"><font size="1" face="Arial, Helvetica, sans-serif" class="date" id="C2_' + TotalNumDays2 + '">' +  TotalNumDays2 + '</font></td>';
				}//end if
				else
				{
					myTable2 += '<td height="26" valign="top" align="right" class="ignore"></td>';
					idx = 10;
				}//end else
			}//end create numbers	
		}//end else
		
	if (TotalNumDays2 >= a_calendarInfo[firstMonIndex][1])
		idx = 9; // jump out of the loop
		
		myTable2 += '</TR>';	
	}//end create row
	
	myTable2 += '</table>';
	document.getElementById("Calendar2").innerHTML= myTable2;
}

function handleMouseOverTD(Event)
{
	if (Event == null || Event.target == null){//IE
	 	if (event.srcElement.nodeName=="TD" && event.srcElement.className == "closed")
			!showPopup("Closed", "true");
		else if (event.srcElement.nodeName=="TD" && event.srcElement.className == "closedArr")
			!showPopup("ClosedA", "false");	
	}//end if
	else {//NN	
		if(Event.target.nodeName=="TD" && Event.target.className == "closed")
			!showPopup("Closed", "true");
		else if(Event.target.nodeName=="TD" && Event.target.className == "closedArr")
			!showPopup("ClosedA", "false");			
	}//end else
}

function handleMouseOutTD(Event)
{
	if (Event == null || Event.target == null)
	{
	 	if (event.srcElement.nodeName=="TD" && (event.srcElement.className == "closed" || event.srcElement.className == "closedArr"))
			hideCurrentPopup();
	}
	else 
	{
		if(Event.target.nodeName=="TD" && (Event.target.className == "closed" || Event.target.className == "closedArr"))
			hideCurrentPopup();
	}	

}
