var oDateRegex = new RegExp("(?=\\d)^(?:(?!(?:10\\D(?:0?[5-9]|1[0-4])\\D(?:1582))|(?:0?9\\D(?:0?[3-9]|1[0-3])\\D(?:1752)))((?:0?[13578]|1[02])|(?:0?[469]|11)(?!/31)(?!-31)(?!\\.31)|(?:0?2(?=.?(?:(?:29.(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:(?:\\d\\d)(?:[02468][048]|[13579][26])(?!\\x20BC))|(?:00(?:42|3[0369]|2[147]|1[258]|09)\\x20BC))))))|(?:0?2(?=.(?:(?:\\d\\D)|(?:[01]\\d)|(?:2[0-8])))))([-.\\/])(0?[1-9]|[12]\\d|3[01])\\2(?!0000)((?=(?:00(?:4[0-5]|[0-3]?\\d)\\x20BC)|(?:\\d{4}(?!\\x20BC)))\\d{4}(?:\\x20BC)?)(?:$|(?=\\x20\\d)\\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\\d){0,2}(?:\\x20[aApP][mM]))|(?:[01]\\d|2[0-3])(?::[0-5]\\d){1,2})?$");

function SetSearch(type)
{
	if(type==0)
	{   
		document.getElementById('FlightDiv').style.display = '';
		document.getElementById('HotelDiv').style.display = 'none';
		document.getElementById('HotelRow').style.display = 'none';
		document.getElementById('HotelHR').style.display = 'none';
		document.getElementById('CarDiv').style.display = 'none';
		document.getElementById('CruiseDiv').style.display = 'none';
		document.getElementById('FlightCarHotelDiv').style.display = 'none';
		document.getElementById('VacationsDiv').style.display = 'none';
	}
	if(type==1)
	{
		document.getElementById('FlightDiv').style.display = 'none';
		document.getElementById('HotelDiv').style.display = 'none';
		document.getElementById('HotelRow').style.display = 'none';
		document.getElementById('HotelHR').style.display = 'none';
		document.getElementById('CarDiv').style.display = '';
		document.getElementById('CruiseDiv').style.display = 'none';
		document.getElementById('FlightCarHotelDiv').style.display = 'none';
		document.getElementById('VacationsDiv').style.display = 'none';
	}
	if(type==2)
	{
		document.getElementById('FlightDiv').style.display = 'none';
		document.getElementById('HotelDiv').style.display = '';
		document.getElementById('HotelRow').style.display = '';
		document.getElementById('HotelHR').style.display = '';
		document.getElementById('CarDiv').style.display = 'none';
		document.getElementById('CruiseDiv').style.display = 'none';
		document.getElementById('FlightCarHotelDiv').style.display = 'none';
		document.getElementById('VacationsDiv').style.display = 'none';
	}
	if(type==3)
	{
		document.getElementById('FlightDiv').style.display = 'none';
		document.getElementById('HotelDiv').style.display = 'none';
		document.getElementById('HotelRow').style.display = 'none';
		document.getElementById('HotelHR').style.display = 'none';
		document.getElementById('CarDiv').style.display = 'none';
		document.getElementById('CruiseDiv').style.display = '';
		document.getElementById('FlightCarHotelDiv').style.display = 'none';
		document.getElementById('VacationsDiv').style.display = 'none';
	}
	if(type==4||type==5)
	{
		document.getElementById('FlightDiv').style.display = 'none';
		document.getElementById('HotelDiv').style.display = 'none';
		document.getElementById('HotelRow').style.display = 'none';
		document.getElementById('HotelHR').style.display = 'none';
		document.getElementById('CarDiv').style.display = 'none';
		document.getElementById('CruiseDiv').style.display = 'none';
		document.getElementById('FlightCarHotelDiv').style.display = '';
		document.getElementById('VacationsDiv').style.display = 'none';
	}
	if(type==6)
	{
		document.getElementById('FlightDiv').style.display = 'none';
		document.getElementById('HotelDiv').style.display = 'none';
		document.getElementById('HotelRow').style.display = 'none';
		document.getElementById('HotelHR').style.display = 'none';
		document.getElementById('CarDiv').style.display = 'none';
		document.getElementById('CruiseDiv').style.display = 'none';
		document.getElementById('FlightCarHotelDiv').style.display = 'none';
		document.getElementById('VacationsDiv').style.display = '';
	}
}

function SetCruiseSearch(type)
{
	if(type==1)
	{
		document.getElementById('CruiseSearchTable').style.display = 'none';
		document.getElementById('SearchBox_AdvancedCruiseSearchButton').style.display = '';
		document.getElementById('SearchBox_BasicCruiseSearchButton').style.display = 'none';
	}
	else
	{
		document.getElementById('CruiseSearchTable').style.display = '';
		document.getElementById('SearchBox_AdvancedCruiseSearchButton').style.display = 'none';
		document.getElementById('SearchBox_BasicCruiseSearchButton').style.display = '';
	}
}

function SetHotelSearch(type)
{
	if(type==1)
	{
		document.getElementById('AdvancedHotelSearchTable').style.display = 'none';
		document.getElementById('SearchBox_HotelAdvancedLink').style.display = '';
		document.getElementById('SearchBox_HotelBasicLink').style.display = 'none';
	}
	else
	{
		document.getElementById('AdvancedHotelSearchTable').style.display = '';
		document.getElementById('SearchBox_HotelAdvancedLink').style.display = 'none';
		document.getElementById('SearchBox_HotelBasicLink').style.display = '';
	}
}

function ValidateFlightSearch(strSBName)
{
	var oFDC = document.getElementById(strSBName+"_FlightDepartCityTextBox");
	var oFDD = document.getElementById(strSBName+"_FlightDateDepartingTextBox");
	var oFGT = document.getElementById(strSBName+"_FlightGoingToTextBox");
	var oFDR = document.getElementById(strSBName+"_FlightDateReturningTextBox");
	
	if(!oFDC || oFDC.value == "")
	{
		document.getElementById("FlightDepartCityError").style.display = "";
		if(oFDC) oFDC.focus();
		return false;
	}
	else
	{
		document.getElementById("FlightDepartCityError").style.display = "none";
	}
	if(!oFGT || oFGT.value == "")
	{
		document.getElementById("FlightDestCityError").style.display = "";
		if(oFGT) oFGT.focus();
		return false;
	}
	else
	{
		document.getElementById("FlightDestCityError").style.display = "none";
	}
	if(!oFDD || !oDateRegex.test(oFDD.value))
	{
		document.getElementById(strSBName+"_FlightDepartDateError").style.display = "";
		if(oFDD) oFDD.focus();
		return false;
	}
	else
	{
		document.getElementById(strSBName+"_FlightDepartDateError").style.display = "none";
	}
	if(!oFDR || !oDateRegex.test(oFDR.value))
	{
		document.getElementById(strSBName+"_FlightReturnDateError").style.display = "";
		if(oFDR) oFDR.focus();
		return false;
	}
	else
	{
		document.getElementById(strSBName+"_FlightReturnDateError").style.display = "none";
	}
	
	return true;
}

function ValidateCarSearch(strSBName)
{
	var oCPC = document.getElementById(strSBName+"_CarPickUpCityTextBox");
	var oCPD = document.getElementById(strSBName+"_CarPickUpDateTextBox");
	var oCDD = document.getElementById(strSBName+"_CarDropOffDateTextBox");
	var dPickup;
	var dDropoff;
	
	if(!oCPC || oCPC.value == "")
	{
		document.getElementById("CarCityError").style.display = "";
		if(oCPC) oCPC.focus();
		return false;
	}
	else
	{
		document.getElementById("CarCityError").style.display = "none";
	}
	if(!oCPD || !oDateRegex.test(oCPD.value))
	{
		document.getElementById(strSBName+"_CarPickUpDateError").style.display = "";
		if(oCPD) oCPD.focus();
		return false;
	}
	else
	{
		var oCPT = document.getElementById(strSBName+"_CarPickUpTimeDropdownlist");
		var strHour = oCPT.options[oCPT.selectedIndex].value;
		var iHour = new Number(strHour.substring(0, strHour.length-1));
		
		if(strHour.charAt(strHour.length-1) == "P" && iHour != 12)
			iHour += 12;
		else if(iHour == 12 && strHour.charAt(strHour.length-1) == "A")
			iHour = 0;
			
		var d = new Date();
		var dPickup = new Date(oCPD.value);
		dPickup.setHours(iHour);
		
		if(dPickup < d)
		{
			document.getElementById("CarPickUpTimeError").style.display = "";
			if(oCPT) oCPT.focus();
			return false;
		}
		else
		{
			document.getElementById("CarPickUpTimeError").style.display = "none";
		}
		
		document.getElementById(strSBName+"_CarPickUpDateError").style.display = "none";
	}
	if(!oCDD || !oDateRegex.test(oCDD.value))
	{
		document.getElementById(strSBName+"_CarDropOffDateError").style.display = "";
		if(oCDD) oCDD.focus();
		return false;
	}
	else
	{
		var oCDT = document.getElementById(strSBName+"_CarDropOffTimeDropdownlist");
		var strHour = oCDT.options[oCDT.selectedIndex].value;
		var iHour = new Number(strHour.substring(0, strHour.length-1));
		
		if(strHour.charAt(strHour.length-1) == "P" && iHour != 12)
			iHour += 12;
		else if(iHour == 12 && strHour.charAt(strHour.length-1) == "A")
			iHour = 0;
			
		var d = new Date();
		var dDropoff = new Date(oCDD.value);
		dDropoff.setHours(iHour);
		
		if(dDropoff < d)
		{
			document.getElementById("CarDropOffTimeError").style.display = "";
			if(oCDT) oCDT.focus();
			return false;
		}
		else
		{
			document.getElementById("CarDropOffTimeError").style.display = "none";
		}


		if(dDropoff < dPickup)
		{
			document.getElementById("CarDropOffError").style.display = "";
			if(oCDT) oCDT.focus();
			return false;
		}
		else
		{
			document.getElementById("CarDropOffError").style.display = "none";
		}
		
		document.getElementById(strSBName+"_CarDropOffDateError").style.display = "none";
	}
	
	return true;
}

function ValidateHotelSearch(strSBName)
{
	var oHCT = document.getElementById(strSBName+"_HotelCityTextbox");
	var oHID = document.getElementById(strSBName+"_HotelCheckInDateTextBox");
	var oHOD = document.getElementById(strSBName+"_HotelCheckOutDateTextBox");
	
	if(!oHCT || oHCT.value == "")
	{
		document.getElementById("HotelCityError").style.display = "";
		if(oHCT) oHCT.focus();
		return false;
	}
	else
	{
		document.getElementById("HotelCityError").style.display = "none";
	}
	if(!oHID || !oDateRegex.test(oHID.value))
	{
		document.getElementById(strSBName+"_HotelInDateError").style.display = "";
		if(oHID) oHID.focus();
		return false;
	}
	else
	{
		var d = new Date(oHID.value);
		var today = new Date();
		if(d < today)
		{
			document.getElementById(strSBName+"_HotelInDateError").style.display = "";
			oHID.focus();
			return false;
		}
		document.getElementById(strSBName+"_HotelInDateError").style.display = "none";
	}
	if(!oHOD || !oDateRegex.test(oHOD.value))
	{
		document.getElementById(strSBName+"_HotelOutDateError").style.display = "";
		if(oHOD) oHOD.focus();
		return false;
	}	
	else
	{
		var d = new Date(oHOD.value);
		var today = new Date();
		if(d < today)
		{
			document.getElementById(strSBName+"_HotelOutDateError").style.display = "";
			oHOD.focus();
			return false;
		}
		document.getElementById(strSBName+"_HotelOutDateError").style.display = "none";
	}
	
	if(new Date(oHOD.value) <= new Date(oHID.value))
	{
		document.getElementById("HotelOutError").style.display = "";
		if(oHOD) oHOD.focus();
		return false;
	}
	else
	{
		document.getElementById("HotelOutError").style.display = "none";
	}
	return true;
}

function ValidateCruiseSearch(strSBName)
{
	var oCSD = document.getElementById(strSBName+"_SailDateTextBox");
	if( !oCSD || !oDateRegex.test(oCSD.value))
	{
		document.getElementById(strSBName+"_CruiseSailDateError").style.display = "";
		if(oCSD) oCSD.focus();
		return false;
	}
	else
	{
		document.getElementById(strSBName+"_CruiseSailDateError").style.display = "none";
	}
	
	return true;
}

function DoCruiseSearch(strSBName)
{
	if(!ValidateCruiseSearch(strSBName)) return false;

	var oCLD = document.getElementById(strSBName+"_CruiseLineDropDown");
	var oCSD = document.getElementById(strSBName+"_SailDateTextBox");
	var oPR = document.getElementById(strSBName+"_CruisePriceRangeDropDown");
	var oPD = document.getElementById(strSBName+"_PortDropDown");
	var oDTD = document.getElementById(strSBName+"_DestinationDropDown");
	var oDD = document.getElementById(strSBName+"_DurationDropDown");
	var oSND = document.getElementById(strSBName+"_ShipNameDropDown");
	var oSBD = document.getElementById(strSBName+"_CruiseSortByDropDown");
	var oSOD = document.getElementById(strSBName+"_CruiseSortOrderDropDown");
	var oAnchor = document.getElementById(strSBName+"_CruiseSearchButton");
	if(!oAnchor) return;
	
	var qs = "";
	
	if(oCLD) qs += "&line="+oCLD.options[oCLD.selectedIndex].value;
	if(oCSD)
	{
		var oDt = new Date(oCSD.value);
		qs += "&date="+oDt.getDate() + "&month="+(oDt.getMonth()+1) + "&year="+oDt.getFullYear();
	}
	if(oPR) qs += "&prange="+oPR.options[oPR.selectedIndex].value;
	if(oPD) qs += "&port="+oPD.options[oPD.selectedIndex].value;
	if(oDTD) qs += "&dest="+oDTD.options[oDTD.selectedIndex].value;
	if(oDD) qs += "&dur="+oDD.options[oDD.selectedIndex].value;
	if(oSND) qs += "&ship="+oSND.options[oSND.selectedIndex].value;
	if(oSBD) qs += "&sort="+oSBD.options[oSBD.selectedIndex].value;
	if(oSOD) qs += "&ord="+oDD.options[oSOD.selectedIndex].value;
	
	oAnchor.href = "http://www.ytbtravel.com/CruiseResults.aspx?pin="+oAnchor.getAttribute("YTBId")+qs;
	//oAnchor.href = "CruiseResults.aspx?pin=21713"+qs;
}

function ValidateFCHSearch(strSBName)
{
	var oFDC = document.getElementById(strSBName+"_FCHDepartCityTextBox");
	var oFDD = document.getElementById(strSBName+"_FCHDateDepartingTextBox");
	var oFGT = document.getElementById(strSBName+"_FCHGoingToTextBox");
	var oFDR = document.getElementById(strSBName+"_FCHDateReturningTextBox");
	
	if(!oFDC || oFDC.value == "")
	{
		document.getElementById("FCHDepartCityError").style.display = "";
		if(oFDC) oFDC.focus();
		return false;
	}
	else
	{
		document.getElementById("FCHDepartCityError").style.display = "none";
	}
	if(!oFGT || oFGT.value == "")
	{
		document.getElementById("FCHDestCityError").style.display = "";
		if(oFGT) oFGT.focus();
		return false;
	}
	else
	{
		document.getElementById("FCHDestCityError").style.display = "none";
	}
	if(!oFDD || !oDateRegex.test(oFDD.value))
	{
		document.getElementById(strSBName+"_FCHDepartDateError").style.display = "";
		if(oFDD) oFDD.focus();
		return false;
	}
	else
	{
		document.getElementById(strSBName+"_FCHDepartDateError").style.display = "none";
	}
	if(!oFDR || !oDateRegex.test(oFDR.value))
	{
		document.getElementById(strSBName+"_FCHReturnDateError").style.display = "";
		if(oFDR) oFDR.focus();
		return false;
	}
	else
	{
		document.getElementById(strSBName+"_FCHReturnDateError").style.display = "none";
	}
	
	return true;
}