
var request = makeObject();
var x;
var cur = 0;
var animator;
var timeinterval;
function makeObject()
	{
		var browser;
		browser = navigator.appName;
		if(browser == 'Microsoft Internet Explorer')
		{
			x = new ActiveXObject('Microsoft.XMLHTTP')
		}
		else
		{
			x = new XMLHttpRequest();
		}
		return x;
	}
		
		
function keypressfuns(v)
	{
		if(v==1)
			{
				var d=document.getElementById("cruise_date");
			}
		else
			{
				var d=document.getElementById("cruise_date"+v);
			}
		d.value='';
		d.value='MM/DD/YY';
	}
	
// ******************************************************

// Defining global variable elements
var elementA;
var elementB;
var elementC;
var elementD;
var the_Mon;
var the_Day;
var the_Year;
var monthName = new Array ("January","Feburary","March","April","May","June","July","August","September","October","November","December")

// ******************************************************
//	FUNCTION createCalendar
//	opens a new window for the calendar
// ******************************************************
function fromdate(A0, B0, C0, D0)
{
var flag=1;
var AT=A0;
var BT=B0;
var CT=C0;
var DT=D0;
createCalendar(AT,BT,CT,DT,flag,DT)
}
function todate(A1, B1, C1, D1)
{
var flag1=2;
var AT1=A1;
var BT1=B1;
var CT1=C1;
var DT1=D1;
createCalendar(AT1,BT1,CT1,DT1,flag1,DT1)
}

		function createCalendar(A, B, C, D, f,gf) { 
			var fl=f;
			var fromdate=document.getElementById('cruise_date').value;
			var fo=fromdate.indexOf('/');
			var fromm=fromdate.substring(0,fo);
			fo=fo+1;
			var so=fromdate.indexOf('/',fo);
			var fromd=fromdate.substring(fo,so);
			var lo=fromdate.lastIndexOf('/');
			lo=lo+1;
			var fromy=fromdate.substring(lo);
			elementA = A;
			elementB = B;
			elementC = C;
			elementD = D;
			//populate arrays
			mon = new Array(12);
			day = new Array(31);
			year = new Array(5);
			
			for (i=0; i<elementA.length; i++){
			 
			 mon[i] = elementA.options[i].value;
			}
			for (i=0; i<elementB.length; i++){
			
			 day[i] = elementB.options[i].value;
			 
			}
			for (i=0; i<elementC.length; i++){
			
			 year[i] = elementC.options[i].value;
			 
			}
			
			LeftPosition = (screen.width) ? (screen.width-300)/2 : 0;
			TopPosition = (screen.height) ? (screen.height-200)/2 : 0;
			
			
			
			
			//calendarWindow = window.open(".","Calendar","width=350,height=156,top="+TopPosition+",left="+LeftPosition+",resizable=yes,scrollbars=no,status=no");
			//calendarWindow.focus();
			
			// Get todays Date Object
			var today = new Date();																														
			
			// Allows them to select which month to start with on calendar from drop down box named month
			// var mthIdx = month.options.selectedIndex
			// Instead I will pull the current month from date object (today)
			var mth = today.getMonth();																											
			
			// Allows them to select which year to start with on calendar from drop down box named year
			// var yearVal = year.options[year.options.selectedIndex].text
			// Instead I will pull the current year from date object (d)
			var yearVal = today.getFullYear();																											
			
			// call the function to populate the window
			calendarWindow=0; //alert(gf);
			generateCalendar(calendarWindow, mth, yearVal, fl,gf,gf)
}

function closecalen(id)
	{
		//alert(id);
		var dd1=document.getElementById('dispdate'+id).style.visibility="hidden";
		var df=document.getElementById("VendorID").style.visibility="visible";
	var df1=document.getElementById("portid").style.visibility="visible";
	}

// ******************************************************
// FUNCTION generateCalendar
// generates the meat of the calendar
// ******************************************************

	function generateCalendar(target, mth, year, fla, fd, sp) {  //alert("sp : "+sp);
		if(document.getElementById('cruise_date').value=="")
		{
		var fromdate=fd;
		var fromdatex=fd;
		}
		else
		{
		var fromdate=document.getElementById('cruise_date').value;
		var fromdatex=00;
		}
		var fg=fla;
		var fo=fromdate.indexOf('/');
		var fromm=fromdate.substring(0,fo);
		fo=fo+1;
		var so=fromdate.indexOf('/',fo);
		var fromd=fromdate.substring(fo,so);
		var lo=fromdate.lastIndexOf('/');
		lo=lo+1;
		var fromy=fromdate.substring(lo);
		
		// begin table for calendar
		//target.document.open()
		
		calendar = ""
		calendar +="<table width=350 border=0 cellspacing=1 cellpadding=0 bgcolor='#0066FF'><tr bgcolor='white'><td valign=top bgcolor='white'><table border=0 cellspacing=0 cellpadding=0 width=100%>"
		calendar +="<tr style='background:#0066FF;color:white;font-size:12px;font-weight:bold;font-family:tahoma,verdana,arial'>"
		
		var endday = getDaysInMonth(mth, year)
		var goPrevMonth = prevMonth(mth)
		var goNextMonth = nextMonth(mth)
		var nextYear = changeYear("next",mth,parseInt(year))
		var prevYear = changeYear("prev",mth,parseInt(year))
		
		goPrevMonthx=goPrevMonth
		goNextMonthx=goNextMonth
		nextYearx=nextYear
		prevYearx=prevYear
		
		
		//writes month and next and back buttons
			calendar +="<td width=24><a href='javascript:generateCalendar(self, " + goPrevMonth + ", " + prevYear + ", " + fg + ", " + fromdatex +" , " + sp + ")' style='color:white;text-decoration:none'>&laquo;&laquo;</a></td>"
			calendar +="<td width=140 align='center'>" + monthName[mth] + " " + year + "</td>"
			calendar +="<td width=24><a href='javascript:generateCalendar(self, " + goNextMonth + ", " + nextYear + ", " + fg +", " + fromdatex +  " , " + sp + ")' style='color:white;text-decoration:none'>&raquo;&raquo;</a></tr>"
			//calendar +="</table>"
			calendar +="<tr><td colspan=3>"
			//target.document.close();
			
		// get the first day of the month
		thedate = new Date (year, mth, 1);
		firstDay = thedate.getDay()
		
		selectedmonth = mth;
		var today = new Date();
		var thisyear = today.getYear() + 1900;
		selectedyear = year
		
		var lastDay = (endday + firstDay+1)
		
		calendar +="<table border=0 cellspacing=0 cellpadding=2 width=100% style='font-family:tahoma,verdana,arial;font-size:12px;font-weight:bold;' bgcolor='white'><tr align=center style='background:#339933;color:white;'><td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr><tr>"
		for (var i = 1; i < lastDay; i++)
			{
			if (i <= firstDay)
				{
				// 'empty' boxes prior to first day
				calendar +="<td>&nbsp;</td>"
				}
			else  
				{
				// enter date number
				//alert(fromm+''+fromy+''+fromd);
				if((fromm=='MM') && (fla==2))
					{
						var lookd = today.getDate();
						var lookm = today.getMonth();
						var d = new Date();
						var looky = d.getFullYear();
					}
				else if(fla==2)
					{
						var lookd=fromd;
						var lookm = fromm-1;
						var looky = fromy;
					}
				else
					{
						var lookd = today.getDate();
						var lookm = today.getMonth();
						var d = new Date();
						var looky = d.getFullYear();
					}
				
				/*var lookd = today.getDate()
				var lookm = today.getMonth()
				var looky = today.getYear()*/
				if (( selectedmonth == lookm ) && ( lookd == (i-firstDay) ) && ( selectedyear == looky )) {
				calendar +="<td align=center><a href='JavaScript:closeCalendar(" + selectedmonth + ", " + (i-firstDay) + ", " + selectedyear + ")' style='text-decoration:none; color:black;'>" + (i-firstDay) + "</a>&nbsp;</td>\n"
				} 
				else if( selectedyear < looky ) 
				{
						calendar +="<td align=center style='text-decoration:line-through; color:#FF6600;'>" + (i-firstDay) + "&nbsp;</td>\n"
				} 
			   else if(( selectedmonth < lookm ) && ( selectedyear <= looky )) 
					{
						calendar +="<td align=center style='text-decoration:line-through; color:#FF6600;'>" + (i-firstDay) + "&nbsp;</td>\n"
					} 
			  else if(( selectedmonth <= lookm ) && ( lookd > (i-firstDay) ) && ( selectedyear <= looky ))
					{
						calendar +="<td align=center style='text-decoration:line-through; color:#FF6600;'>" + (i-firstDay) + "&nbsp;</td>\n"
					}	
					else
					{	
				calendar +="<td align=center><a href='JavaScript:closeCalendar(" + selectedmonth + ", " + (i-firstDay) + ", " + selectedyear + ")' style='text-decoration:none;'><font color='blue'> " + (i-firstDay) + "</font></a>&nbsp;</td>\n"
					}
				
			}
			//must start new row after each week
			if (i % 7 == 0 &&  i != lastDay)
				{
				calendar +="</tr><tr>"
				}
			}
		calendar +="</tr></table></td></tr></table></td><td valign=top><table border=0 cellspacing=0 cellpadding=0 width=167>"
		calendar +="<tr style='background:#0066FF;color:white;font-size:12px;font-weight:bold;font-family:tahoma,verdana,arial'>"
		mth=mth+1
		if(mth==12)
		{
		mth=0
		year=year+1
		}
		var endday = getDaysInMonth(mth, year)
		var goPrevMonth = prevMonth(mth)
		var goNextMonth = nextMonth(mth)
		var nextYear = changeYear("next",mth,parseInt(year))
		var prevYear = changeYear("prev",mth,parseInt(year))
		if(goPrevMonth!=0)
		goPrevMonth=goPrevMonth-1
		if(goNextMonth!=0)
		goNextMonth=goNextMonth-1
		if(goPrevMonth==0)
		{
		goPrevMonth=11
		prevYear=prevYear-1
		}
		if(goNextMonth==0)
		{
		goNextMonth=11
		nextYear=nextYear-1
		}
		
		//writes month and next and back buttons
			calendar +="<td width=24><a href='javascript:generateCalendar(self, " + goPrevMonthx + ", " + prevYearx + ", " + fg + ", " + fromdatex +","+sp+")' style='color:white;text-decoration:none'>&laquo;&laquo;</a></td>"
			calendar +="<td width=118 align='center'>" + monthName[mth] + " " + year + "</td>"
			calendar +="<td width=24><a href='javascript:generateCalendar(self, " + goNextMonthx + ", " + nextYearx + ", " + fg + ", " + fromdatex + ","+sp+")' style='color:white;text-decoration:none'>&raquo;&raquo;</a></tr>"
			calendar +="</table>"
			//target.document.close();
		 
		   
		// get the first day of the month
		thedate = new Date (year, mth, 1);
		firstDay = thedate.getDay()
		
		selectedmonth = mth;
		var today = new Date();
		var thisyear = today.getYear() + 1900;
		selectedyear = year
		
		var lastDay = (endday + firstDay+1)
		
		calendar +="<table border=0 cellspacing=0 cellpadding=2 width=168 style='font-family:tahoma,verdana,arial;font-size:12px;font-weight:bold;' bgcolor='white'><tr align=center style='background:#339933;color:white;'><td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr><tr>"
		for (var i = 1; i < lastDay; i++)
			{
			if (i <= firstDay)
				{
				// 'empty' boxes prior to first day
				calendar +="<td>&nbsp;</td>"
				}
			else  
				{
				// enter date number
				if((fromm=='MM') && (fla==2))
					{		
						//var todayx = new Date();
						var lookd = today.getDate();
						var lookm = today.getMonth();
						var d = new Date();
						var looky = d.getFullYear();
					}
				else if(fla==2)
					{
						var lookd=fromd;
						var lookm = fromm-1;
						var looky = fromy;
					}
				else
					{
						var lookd = today.getDate();
						var lookm = today.getMonth();
						var d = new Date();
						var looky = d.getFullYear();
					}
				
				if (( selectedmonth == lookm ) && ( lookd == (i-firstDay) ) && ( selectedyear == looky )) {
				calendar +="<td align=center bgcolor='white'><a href='JavaScript:closeCalendar(" + selectedmonth + ", " + (i-firstDay) + ", " + selectedyear + ")' style='text-decoration:none; color:black;'>" + (i-firstDay) + "</a>&nbsp;</td>\n"
				} 
				else if( selectedyear < looky ) 
				{
						calendar +="<td align=center style='text-decoration:line-through; color:#FF6600;' bgcolor='white'>" + (i-firstDay) + "&nbsp;</td>\n"
				} 
			   else if(( selectedmonth < lookm ) && ( selectedyear <= looky )) 
					{
						calendar +="<td align=center style='text-decoration:line-through; color:#FF6600;' bgcolor='white'>" + (i-firstDay) + "&nbsp;</td>\n"
					} 
			  else if(( selectedmonth <= lookm ) && ( lookd > (i-firstDay) ) && ( selectedyear <= looky ))
					{
						calendar +="<td align=center style='text-decoration:line-through; color:#FF6600;' bgcolor='white'>" + (i-firstDay) + "&nbsp;</td>\n"
					}	
					else
					{	
				calendar +="<td align=center bgcolor='white'><a href='JavaScript:closeCalendar(" + selectedmonth + ", " + (i-firstDay) + ", " + selectedyear + ")' style='text-decoration:none;'><font color='blue'> " + (i-firstDay) + "</font></a>&nbsp;</td>\n"
					}
				
			}
			//must start new row after each week
			if (i % 7 == 0 &&  i != lastDay)
				{
				calendar +="</tr><tr>"
				}
			}
		calendar +="</tr></table></td></tr>"
		calendar +="<tr style='color:black;font-size:12px;font-weight:bold;font-family:tahoma,verdana,arial;border-color:#FFFFFF' bordercolor=white><td colspan=2 align=right style='border-color:#FFFFFF' bgcolor=white><span style='cursor:pointer; cursor:hand;' onclick=closecalen('"+sp+"')>Close</span>&nbsp;&nbsp;</td></tr>"
		calendar +="</table>"
		
		
		LeftPosition = (screen.width) ? (screen.width-300)/2 : 0;
		TopPosition = (screen.height) ? (screen.height-200)/2 : 0;
		
		
		if(sp==1)
			{
				var fdisp=document.getElementById("dispdate2").style.visibility="hidden";
			}
		else
			{
				var fdisp=document.getElementById("dispdate1").style.visibility="hidden";
			}
				var dispday1=document.getElementById("dispdate"+sp);
				var fdfd=document.getElementById("VendorID").style.visibility="hidden";
			var df1=document.getElementById("portid").style.visibility="hidden";	
				
	dispday1.style.left=((sp==1) ? 50 : 50);
		//dispday1.style.left=5;
		dispday1.style.top=((sp==1) ? 250 : 250);
		dispday1.style.position="absolute";
		dispday1.style.visibility="visible";
		//dispday1.style.background="inherit";
		dispday1.style.bottom=400;
		//dispday1.style.right=410;	
		
		dispday1.innerHTML=calendar;
		//dispday1.innerHTML="We will back soon";
		
		//document.getElementById('cruise_date').innerHTML = calendar;
		//document.getElementById('dispdate1').innerHTML = calendar;
		//target.document.write(calendar);
		//target.document.close()	
 }

// ******************************************************
// FUNCTION closeCalendar
// changes date field when a date is clicked
// ******************************************************
		function closeCalendar(m, d, y)
		{
			 the_Mon = -1;
			 for(i=0; i<mon.length; i++){
			 if(monthName[m] == mon[i]){
			  the_Mon = i;
			  }
			 } 
			 if (the_Mon == -1) 
				the_Mon = m;
			 for(i=0; i<day.length; i++){
			 if(d == day[i]){
			  the_Day = i;
			  }
			 }
			 for(i=0; i<year.length; i++){
			 if(y == year[i]){
			  the_Year = i;
			  }
			 }
			var date = m + "-" + d + "-" + y
			elementA.selectedIndex = the_Mon;
			elementB.selectedIndex  = the_Day;
			elementC.selectedIndex  = the_Year;
		if (elementD == 1) { //alert("check-1 : "+document.getElementById('cruise_date2').value);
		/*
		
		var fromdate=document.getElementById('cruise_date').value;
			var fo=fromdate.indexOf('/');
			var fromm=fromdate.substring(0,fo);
			fo=fo+1;
			var so=fromdate.indexOf('/',fo);
			var fromd=fromdate.substring(fo,so);
			var lo=fromdate.lastIndexOf('/');
			lo=lo+1;
			var fromy=fromdate.substring(lo);
			*/
			var tofdate=document.getElementById('cruise_date2').value;
			
			if(tofdate=='MM/DD/YY')
				{ 
					document.getElementById("cruise_date").value  = (m+1) + "/" + d + "/" + y;
					document.getElementById("cruise_month").value = m+1
					document.getElementById("cruise_day").value   = d
					document.getElementById("cruise_year").value  = y
					var dd=document.getElementById('dispdate1').style.visibility="hidden";
					var 	fdfd=document.getElementById("VendorID").style.visibility="visible";
			var df1=document.getElementById("portid").style.visibility="visible";	
				}
			else
				{ 
					var tofrdate=document.getElementById('cruise_date2').value;
					var fo=tofrdate.indexOf('/');
					var tofromm=tofrdate.substring(0,fo);
					fo=fo+1;
					var so=tofrdate.indexOf('/',fo);
					var tofromd=tofrdate.substring(fo,so);
					var lo=tofrdate.lastIndexOf('/');
					lo=lo+1;
					var tofromy=tofrdate.substring(lo);
					
					//alert("f1 : "+tofromm+" : "+tofromd+" : "+tofromy);
					//if (( selectedmonth == lookm ) && ( lookd == (i-firstDay) ) && ( selectedyear == looky )) {
						
					//if(((m+1)<=tofromm) && (d<=tofromd) && (y<=tofromy))
					if(((m+1)==tofromm) && (d==tofromd) && (y==tofromy))
						{
							document.getElementById("cruise_date").value  = (m+1) + "/" + d + "/" + y;
					document.getElementById("cruise_month").value = m+1
					document.getElementById("cruise_day").value   = d
					document.getElementById("cruise_year").value  = y
						}
					else if(y>tofromy) { alert("Error: Start date is greater then End date"); }
					else if(((m+1) > tofromm ) && ( y >= tofromy )) { alert("Error:  Start date is greater then End date"); }
					else if(( (m+1) >= tofromm ) && ( d > tofromd ) && ( y >= tofromy )) { alert("Error: Start date is greater then End date"); } 
					else
						{
							document.getElementById("cruise_date").value  = (m+1) + "/" + d + "/" + y;
					document.getElementById("cruise_month").value = m+1
					document.getElementById("cruise_day").value   = d
					document.getElementById("cruise_year").value  = y
						}
					
					var dd=document.getElementById('dispdate1').style.visibility="hidden";
						var fdfd=document.getElementById("VendorID").style.visibility="visible";
			var df1=document.getElementById("portid").style.visibility="visible";
				}
				
		}
		else 
			{  //alert("check-2 : "+document.getElementById('cruise_date').value);
				
				var fromdate=document.getElementById('cruise_date').value;
				
				if(fromdate=='MM/DD/YY')
				{ 
				//parent.document.sidesearch.cruise_date.value  = (m+1) + "/" + d + "/" + y;

				document.getElementById("cruise_date2").value  = (m+1) + "/" + d + "/" + y;
					document.getElementById("cruise_month").value = m+1
					document.getElementById("cruise_day").value   = d
					document.getElementById("cruise_year").value  = y
				var dd1=document.getElementById('dispdate2').style.visibility="hidden";
					var fdfd=document.getElementById("VendorID").style.visibility="visible";
			var df1=document.getElementById("portid").style.visibility="visible";
				}
				else
				{
					
				document.getElementById("cruise_date2").value  = (m+1) + "/" + d + "/" + y;
					document.getElementById("cruise_month2").value = m+1
					document.getElementById("cruise_day2").value   = d
					document.getElementById("cruise_year2").value  = y
				var dd1=document.getElementById('dispdate2').style.visibility="hidden";
					var fdfd=document.getElementById("VendorID").style.visibility="visible";
			var df1=document.getElementById("portid").style.visibility="visible";
				}
				
			}
		
	}

// ******************************************************
// FUNCTION getDaysInMonth
// finds the number of days in the month (mthldx)
// ******************************************************

function getDaysInMonth(mth, YrStr)
{

// all the rest have 31
var maxDays=31

// expect Feb. (of course)
if (mth==1) 
	{
	if (isLeapYear(YrStr))
		{
		maxDays=29;
		}
	else 
		{
		maxDays=28;
		}
	}

// thirty days hath...
if (mth==3 || mth==5 || mth==8 || mth==10)
	{
	maxDays=30;
	}
return maxDays;
}


// ******************************************************
// FUNCTION isLeapYear
// finds if the year (yrStr) is a leap year
// ******************************************************
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 nextMonth
// finds the next month
// ******************************************************
function nextMonth(month) 
{
if (month==11)
	{
	return 0;
	}
else
	{
	return (month+1);
	}
}


// ******************************************************
// FUNCTION prevMonth
// finds the previous month
// ******************************************************
function prevMonth(month) 
{
var prevMonth = (month-1)
if (month==0)
	{
	prevMonth = 11;
	}
return prevMonth
}


// ******************************************************
// FUNCTION changeYear
// 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
 }
