var gStartDate  		= new Date();
var gDaysArr    		= new Array();
var gDepTimeArr   	= new Array();
var gArrTimeArr   	= new Array();
var gTimeRouteArr   	= new Array();
var gRouteGroup   	= new Object();
var gMaxDay 	     	= new Object();
var gMaxMth	      	= new Object();
var gMaxYer    	  	= new Object();
var gTimeRoute       = new Object();
var gVehicleClick 	= false;
var gOutTimeClick 	= false;
var gRetTimeClick 	= false;
var gMaxPax       	= 9;	
var gDayMillis    	= 86400000;
var gOpacity			= 0.50;
var gLng             = $('#Language').val();
var lcluetipDefaultsL= {
								attribute: 'id',
								positionBy: 'auto', //'auto', 'mouse', 'bottomTop', 'fixed'
								splitTitle: '|',
								waitImage: false,
								leftOffset: 140,
								topOffset:0
								};
var lcluetipDefaultsM= {
								attribute: 'id',
								positionBy: 'auto', //'auto', 'mouse', 'bottomTop', 'fixed'
								splitTitle: '|',
								waitImage: false,
								leftOffset: 90,
								topOffset:0
								};
var lcluetipDefaultsR= {
								attribute: 'id',
								positionBy: 'auto', //'auto', 'mouse', 'bottomTop', 'fixed'
								splitTitle: '|',
								waitImage: false,
								leftOffset: 15,
								topOffset:0
								};

gRouteGroup.Out 	= new Array("-");
gRouteGroup.Ret	= new Array("-", "$");
gTimeRoute.Out    = new Array();
gTimeRoute.Ret    = new Array();
gStartDate.setYear(STARTYER);
gStartDate.setMonth(STARTMTH -1);
gStartDate.setDate(STARTDAY);
//******************************************************
$(document).ready(function(){   
 	$("#OutCal").datepicker({
		firstDay: 1,
		minDate: new Date(),
		maxDate: new Date(2020, 12 - 1, 31), 
		buttonImage: "images/Booking/calendar.gif", 
		buttonImageOnly: true,
		showOn: "both",
		numberOfMonths: 2,
		monthNames: LongMonths[gLng],
		beforeShow: readOutLinked,
		onSelect: updateOutLinked,
		beforeShowDay: checkDateOut,
		navigationAsDateFormat: true,
		dayNamesMin: Days[gLng],
		currentText: ' ',
		closeText: 'X',
		mandatory: true,
		duration: 'fast',
		nextText: ">",
		prevText: "<",
		hideIfNoPrevNext: true,
		buttonText: "",
		changeMonth: false,
		changeYear: false,
		changeFirstDay: false
	});

	$("#RetCal").datepicker({ 
		firstDay: 1,
		minDate: new Date(),
		maxDate: new Date(2020, 12 - 1, 31), 
		buttonImage: "images/Booking/calendar.gif", 
		showOn: "both",
		buttonImageOnly: true,
		numberOfMonths: 2,
		monthNames: LongMonths[gLng],
		beforeShow: readRetLinked,
		navigationAsDateFormat: true,
		onSelect: updateRetLinked,
		beforeShowDay: checkDateRet,
		dayNamesMin: Days[gLng],
		currentText: ' ',
		closeText: 'X',
		mandatory: true,
		duration: 'fast',
		nextText: ">",
		prevText: "<",
		hideIfNoPrevNext: true,
		buttonText: "",
		changeMonth: false,
		changeYear: false,
		changeFirstDay: false
	});      

	if (!$.browser.msie) {
		$('#Vehicle').removeClass('VehDDLIE')
		$('#Vehicle').addClass('VehDDL')
	}
	BuildDefaultText();
	BuildPaxDDL('Adult');
	BuildPaxDDL('Child');
	BuildPaxDDL('Infant');
	BuildRouteDDLs("OutRoute");
	BuildVehicles();

	$("#Return").click(ShowOutAndReturn);
	$("#Single").click(ShowOutOnly);
	$("#OutRoute").change(SetOutMonths);
	$("#OutMonth").change(SetOutDays);
	$("#OutDay").change(SetOutTimes);
	$("#RetRoute").change(SetRetMonths);
	$("#RetMonth").change(SetRetDays);
	$("#RetDay").change(SetRetTimes);

	$("#OutAdult").change(function() {
		if (!$("#RetAdult").attr('disabled') != false) $("#RetAdult").val($(this).val());
	});
	$("#OutChild").change(function() {
		if (!$("#RetChild").attr('disabled') != false) $("#RetChild").val($(this).val());
	});
	$("#OutInfant").change(function() {
		if (!$("#RetInfant").attr('disabled') != false) $("#RetInfant").val($(this).val());
	});
   $(".GreyText").focus(function() {
        if ($(this).val() == $(this)[0].title) {
            $(this).removeClass("GreyText");
            $(this).val("");
        }
   });
    
   $(".GreyText").blur(function() {
        if ($(this).val() == "") {
            $(this).addClass("GreyText");
            $(this).val($(this)[0].title);
        }
   });
    
   $(".GreyText").blur();  
	CreateTooltips();
	$("#PromoCodeTT").cluetip(lcluetipDefaultsR);
	$("#OutRouteTT").cluetip(lcluetipDefaultsR);
	$("#OutMonthTT").cluetip(lcluetipDefaultsL);
	$("#OutDayTT").cluetip(lcluetipDefaultsM);
	$("#OutTimeTT").cluetip(lcluetipDefaultsR);
	$("#OutCalTT").cluetip(lcluetipDefaultsL);
	$("#RetRouteTT").cluetip(lcluetipDefaultsR);
	$("#RetMonthTT").cluetip(lcluetipDefaultsL);
	$("#RetDayTT").cluetip(lcluetipDefaultsM);
	$("#RetTimeTT").cluetip(lcluetipDefaultsR);
	$("#RetCalTT").cluetip(lcluetipDefaultsL);
	$("#AdultTT").cluetip(lcluetipDefaultsL);
	$("#ChildTT").cluetip(lcluetipDefaultsM);
	$("#InfantTT").cluetip(lcluetipDefaultsR);
	$("#VehicleTT").cluetip(lcluetipDefaultsR);
	$("#GetQuote").cluetip(lcluetipDefaultsR);
	$("#ChangeBooking").cluetip(lcluetipDefaultsL);
	$("#AdvancedSearch").cluetip(lcluetipDefaultsR);

	ShowTimes("Out", false);
	ShowRoute("Ret", false);
	ShowTimes("Ret", false);
	ShowPax("Out",   false);
	ShowPax("Ret",   false);
	$("#Return").attr("checked", true);

	if ($("#DefaultPromoCode").val() != "") 
		$("#PromoCode").val($("#DefaultPromoCode").val());
});
//******************************************************
function CreateTooltips() {
	$('#PromoCodeTT').attr(		'title', Tooltips[gLng].PromoCode);
	$('#OutCalTT').attr(			'title', Tooltips[gLng].CalTooltip);
	$('#RetCalTT').attr(			'title', Tooltips[gLng].CalTooltip);
	$('#VehicleTT').attr(		'title', Tooltips[gLng].VehicleTooltip);
	$('#GetQuote').attr(			'title', Tooltips[gLng].GetQuote);
	$('#ChangeBooking').attr(	'title', Tooltips[gLng].ChangeBooking);
	$('#AdvancedSearch').attr(	'title', Tooltips[gLng].AdvancedSearch);
	$('#AdultTT').attr(			'title', Tooltips[gLng].Adult);
	$('#ChildTT').attr(			'title', Tooltips[gLng].Child);
	$('#InfantTT').attr(			'title', Tooltips[gLng].Infant);
	$('#OutRouteTT').attr(		'title', Tooltips[gLng].OutRoute);
	$('#OutMonthTT').attr(		'title', Tooltips[gLng].OutMonth);
	$('#OutDayTT').attr(			'title', Tooltips[gLng].OutDay);
	$('#OutTimeTT').attr(		'title', Tooltips[gLng].OutTime);
	$('#RetRouteTT').attr(		'title', Tooltips[gLng].RetRoute);
	$('#RetMonthTT').attr(		'title', Tooltips[gLng].RetMonth);
	$('#RetDayTT').attr(			'title', Tooltips[gLng].RetDay);
	$('#RetTimeTT').attr(		'title', Tooltips[gLng].RetTime);
}
//******************************************************
function BuildDefaultText() {
	$("#OutRoute").addOption('-', Page[gLng].ChooseOut, false);
	$("#RetRoute").addOption('-', Page[gLng].ChooseRet, false);
	$("#OutMonth").addOption('-', Page[gLng].Months, false);
	$("#OutDay").addOption('-',	Page[gLng].Days, false);
	$("#OutTime").addOption('-',	Page[gLng].Times, false);
	$("#RetMonth").addOption('-', Page[gLng].Months, false);
	$("#RetDay").addOption('-',	Page[gLng].Days, false);
	$("#RetTime").addOption('-',	Page[gLng].Times, false);

	$('#OneStepText').html(Page[gLng].OneStepText);
	$('#SingleText').html(Page[gLng].SingleText);
	$('#ReturnText').html(Page[gLng].ReturnText);
	$('#OutwardRouteText').html(Page[gLng].OutwardRoute);
	$('#ReturnRouteText').html(Page[gLng].ReturnRoute);
	$('#OutMonthText').html(Page[gLng].Month);
	$('#OutDateText').html(Page[gLng].Date);
	$('#OutTimeText').html(Page[gLng].Time);
	$('#RetMonthText').html(Page[gLng].Month);
	$('#RetDateText').html(Page[gLng].Date);
	$('#RetTimeText').html(Page[gLng].Time);
	$('#PaxOutText').html(Page[gLng].PaxOut);
	$('#PaxRetText').html(Page[gLng].PaxRet);
	$('#AdultText').html(Page[gLng].Adult);
	$('#ChildText').html(Page[gLng].Child);
	$('#InfantText').html(Page[gLng].Infant);
	$('#VehicleText').html(Page[gLng].Vehicle);
	$('#BookNowText').html(Page[gLng].BookNow);
	$('#ChangeBookingText').html(Page[gLng].ChangeBooking);
	$('#MoreOptionsText').html(Page[gLng].MoreOptions);
	$('#PromoCode').val(Page[gLng].Promotion);
	$('#PromoCode').attr('title',Page[gLng].Promotion);
}
//******************************************************
function SetOutMonths() 		{SetMonths("Out");SetDays("Out");SetTimes("Out");SetRetRoute();SetRetMonths();};
function SetOutDays()   		{SetDays("Out");SetTimes("Out");CheckRetDate();};
function SetOutTimes()  		{SetTimes("Out");CheckRetDate();};
function SetRetMonths() 		{SetMonths("Ret");SetDays("Ret");SetTimes("Ret");CheckRetDate();};
function SetRetDays()   		{SetDays("Ret");SetTimes("Ret");CheckRetDate();};
function SetRetTimes()  		{CheckRetDate();SetTimes("Ret");};
//******************************************************
function readOutLinked()		{readLinked("Out");}
function readRetLinked()		{readLinked("Ret");}
function updateOutLinked(date){return updateLinked(date, "Out");}
function updateRetLinked(date){return updateLinked(date, "Ret");}
function checkDateOut(date)	{return CheckDate(date, "Out");}
function checkDateRet(date)	{return CheckDate(date, "Ret");}
//******************************************************
function ShowOutAndReturn() {
	if ($("#OutRoute").selectedValues().toString() != '-') {
		ShowRoute("Ret", true);
		if ($("#RetRoute").selectedValues().toString() != '-') {
			ShowTimes("Ret", true);
		}
		$('#RetRoute').val('-');
		ShowPax("Ret",   true);
	}
}
//******************************************************
function ShowOutOnly() {
	if ($("#Single").attr("checked")) {
		ShowRoute("Ret", false);
		ShowTimes("Ret", false);
		ShowPax("Ret",   false);
	}
}
//******************************************************
function ShowRoute(pDir, pShow) {
var lOpacity = 1;

	if (!pShow) lOpacity = gOpacity;

	$("#" + pDir + "Route").fadeTo('normal', lOpacity);
	$("#" + pDir + "Route").attr('disabled', !pShow);
}
//******************************************************
function ShowTimes(pDir, pShow) {
var lOpacity = 1;

	if (!pShow) lOpacity = gOpacity;

	if (pShow)
		$("#" + pDir + "Cal").datepicker("enable");
	else
		$("#" + pDir + "Cal").datepicker("disable");

	$("#" + pDir + "Day").fadeTo('normal', lOpacity);
	$("#" + pDir + "Month").fadeTo('normal', lOpacity);
	$("#" + pDir + "Time").fadeTo('normal', lOpacity);

	$("#" + pDir + "Day").attr('disabled', !pShow);
	$("#" + pDir + "Month").attr('disabled', !pShow);
	$("#" + pDir + "Time").attr('disabled', !pShow);
}
//******************************************************
function ShowPax(pDir, pShow) {
var lOpacity = 1;
	if (!pShow) {
		lOpacity = gOpacity;
	}
	$("#" + pDir + "Adult").fadeTo('normal', lOpacity);
	$("#" + pDir + "Child").fadeTo('normal', lOpacity);
	$("#" + pDir + "Infant").fadeTo('normal', lOpacity);
	$("#" + pDir + "Adult").attr('disabled', !pShow);
	$("#" + pDir + "Child").attr('disabled', !pShow);
	$("#" + pDir + "Infant").attr('disabled', !pShow);
}
//******************************************************
function BuildVehicles() {
	for (i in Vehicles[gLng]) {
		 $("#Vehicle").addOption(Vehicles[gLng][i][0], Vehicles[gLng][i][1], false);
	}
}
//******************************************************
function BuildPaxDDL(pPaxType) {
	for (lPaxNo=0;lPaxNo <= gMaxPax;lPaxNo++) {
		 $("#Out" + pPaxType).addOption(lPaxNo, lPaxNo, false);
		 $("#Ret" + pPaxType).addOption(lPaxNo, lPaxNo, false);
	}
}
//******************************************************
function BuildRouteDDLs(pPortFldId) {
var lRouteGroups = new Array();
var lDupPorts    = new Array();
var lAdded       = false;
var lRG          = 0;
	for (lOutIdx in PORTS) {
		lRouteGroups = ROUTEGROUPS[lOutIdx];
		lAdded       = false;

		for (lArrIdx in PORTDESTS[lOutIdx]) {
			if (CheckRouteGroup(PORTS[lOutIdx][1], lDupPorts) < 0) {
				$("#" + pPortFldId).addOption(PORTS[lOutIdx][0] + '_' + PORTDESTS[lOutIdx][lArrIdx], PORTS[lOutIdx][1] + ' - ' + GetPortName(PORTDESTS[lOutIdx][lArrIdx]), false);
				gRouteGroup["Out"].push(lRouteGroups[lArrIdx]);
				lAdded = true;
			}
		}

		if (lAdded) {
			for (x in lRouteGroups) {
				if (CheckRouteGroup(lRouteGroups[x], lDupPorts) < 0) {
					lDupPorts.push(PORTS[lOutIdx][1]);
				}
			}
		}
	}
	$("#" + pPortFldId).selectOptions("-", true);
}
//******************************************************
function CheckRouteGroup(pRouteGroup, pRouteGroupArr) {
var lRG = 0;
	for (lRG in pRouteGroupArr) if (pRouteGroupArr[lRG] == pRouteGroup) return lRG;
	return -1;
}
//******************************************************
function GetPortName(pPortId) {
	for (lIdx in PORTS) {
		if (PORTS[lIdx][0] == pPortId) return PORTS[lIdx][1];
	}
	return pPortId;
}
//******************************************************
function SetRetRoute() {
var lOutRoute  = $("#OutRoute").selectedValues();
var lDepPort   = lOutRoute.toString().split('_')[0];
var lArrPort   = lOutRoute.toString().split('_')[1];
var lRoute     = lArrPort + '_' + lDepPort;
var lDupRGS      = new Array();
var lRouteGroup= '';
var lGeoRG     = '';
	gRouteGroup["Ret"] = ["-"];
	$("#RetRoute").removeOption(/./);
	$("#RetRoute").addOption('-', Messages[gLng].ChooseRet, true);

	for (lRetIdx in PORTS) {
		lAdded       = false;

		if (PORTS[lRetIdx][0] == lArrPort) {
			for (lArrIdx in PORTDESTS[lRetIdx]) {
				if (PORTS[lRetIdx][0] + '_' + PORTDESTS[lRetIdx][lArrIdx] == lRoute ) {
					$("#RetRoute").addOption(PORTS[lRetIdx][0] + '_' + PORTDESTS[lRetIdx][lArrIdx], PORTS[lRetIdx][1] + ' - ' + GetPortName(PORTDESTS[lRetIdx][lArrIdx]), false);
					lPortName   = PORTS[lRetIdx][1];
					lRouteGroup = ROUTEGROUPS[lRetIdx][lArrIdx];
					lGeoRG      = GEOROUTEGROUPS[lRetIdx][lArrIdx];
					gRouteGroup["Ret"].push(ROUTEGROUPS[lRetIdx][lArrIdx]);
				}
			}

			for (lArrIdx in PORTDESTS[lRetIdx]) {
				if (PORTS[lRetIdx][0] + '_' + PORTDESTS[lRetIdx][lArrIdx] != lRoute && lRouteGroup == ROUTEGROUPS[lRetIdx][lArrIdx]) {
					$("#RetRoute").addOption(PORTS[lRetIdx][0] + '_' + PORTDESTS[lRetIdx][lArrIdx], PORTS[lRetIdx][1] + ' - ' + GetPortName(PORTDESTS[lRetIdx][lArrIdx]), false);
					gRouteGroup["Ret"].push(ROUTEGROUPS[lRetIdx][lArrIdx]);
				}
			}
		}
	}
	// See if there are any GEO Routegroups that have similar routes.

	for (lRetIdx in PORTS) {
		if (PORTS[lRetIdx][0] != lArrPort) {
			for (lArrIdx in PORTDESTS[lRetIdx]) {
				if (GEOROUTEGROUPS[lRetIdx][lArrIdx] == lGeoRG && PORTS[lRetIdx][1]!= lPortName) {
					if (CheckRouteGroup(ROUTEGROUPS[lRetIdx][lArrIdx], lDupRGS) < 0) {
						$("#RetRoute").addOption(PORTS[lRetIdx][0] + '_' + PORTDESTS[lRetIdx][lArrIdx], PORTS[lRetIdx][1] + ' - ' + GetPortName(PORTDESTS[lRetIdx][lArrIdx]), false);
						lDupRGS.push(ROUTEGROUPS[lRetIdx][lArrIdx]);
						gRouteGroup["Ret"].push(ROUTEGROUPS[lRetIdx][lArrIdx]);
					}
				}
			}
		}
	}
	gRouteGroup["Ret"].push("$");
	$("#RetRoute").addOption('$', Messages[gLng].SingleOnly, false);
}
//******************************************************
function CheckRetDate() {
	if ($("#RetDay").val() == '-' || $("#RetMonth").val() == '-') return;
var lOutDay 	= $("#OutDay").val() *1;
var lOutDate	= new Date($("#OutMonth").val().split("_")[2], $("#OutMonth").val().split("_")[1], 1)
var lRetDate	= new Date($("#RetMonth").val().split("_")[2], $("#RetMonth").val().split("_")[1], 1)

	if (lRetDate.getTime() < lOutDate.getTime()) {
		$('#RetMonth').val('Ret_' + $("#OutMonth").val().split("_")[1] + '_' + $("#OutMonth").val().split("_")[2]);
		SetDays("Ret");
		SetRetDay(lOutDay);
		SetTimes("Ret");
	}

	lRetDay 	= $("#RetDay").val() * 1;

	if (lOutDate.getMonth() == lRetDate.getMonth() && lOutDate.getFullYear() == lRetDate.getFullYear()) {
		if (lRetDay < lOutDay) {
			SetRetDay(lOutDay);
			SetTimes("Ret");
		}
	}
}
//******************************************************
function SetRetDay(pOutDay) {
	for (lDay=0; lDay < document.getElementById('RetDay').options.length; lDay++) {
		if (document.getElementById('RetDay').options[lDay].value >= pOutDay) {
			$('#RetDay').attr('selectedIndex', lDay);
			break;
		}
	}
}
//******************************************************
function SetMonths(pDir) {
var lTimeTable = new Array();
var lDate      = new Date();
var lDateMilli = gStartDate.getTime();
var lToday     = new Date();
var lDayStr    = '';
var lRouteGroup= '';
var lRoute  	= $("#" + pDir + "Route").selectedValues();
var lDepPort   = lRoute.toString().split('_')[0];
var lArrPort   = lRoute.toString().split('_')[1];
var lRealRoute = '';
var lLastDate  = new Date();

	lToday.setHours(24);
	lToday.setMinutes(59);

	if (pDir == "Out") {
		gDaysArr 		= new Array();
		gDepTimeArr		= new Array();
		gArrTimeArr		= new Array();
		gTimeRoute.Out = new Array();
		gTimeRoute.Ret = new Array();
	}

	gMaxYer[pDir] = "2020";
	gMaxMth[pDir] = "11";
	gMaxDay[pDir] = "31";

	$("#" + pDir + "Month").removeOption(/./);

	lRouteGroup = gRouteGroup[pDir][$('#' + pDir + 'Route').attr('selectedIndex')];

	if (lRoute == '$') {
		$('#Single').attr('checked',true);
		$('#OutRoute').focus();
		$("#RetMonth").addOption("-", Messages[gLng].Months, false);
		ShowOutOnly()
		return;
	}

	if (lRoute == '$' || lRoute == '-' || lRouteGroup == '-' || lRouteGroup == undefined)  {
		$("#" + pDir + "Month").addOption("-", Messages[gLng].Months, false);
		if (pDir == "Out") {
			ShowTimes("Out", false);
			ShowRoute("Ret", false);
			ShowPax("Out",   false);
		}
		ShowTimes("Ret", false);
		ShowPax("Ret",   false);
		return;
	};

	for (x in ROUTEGROUPS) {
		for (y in ROUTEGROUPS[x]) {
			if (ROUTEGROUPS[x][y] == lRouteGroup &&
				GetPortName(lDepPort) == PORTS[x][1] && 
				GetPortName(lArrPort) == GetPortName(PORTDESTS[x][y])) {

				lRealRoute = PORTS[x][0] + '_' + PORTDESTS[x][y];
				lTimeTable = TT[PORTS[x][0] + PORTDESTS[x][y]];
				lDateMilli = gStartDate.getTime();

				for (lDayNum = 0; lDayNum < lTimeTable.length; lDayNum += 2) {
					if (lTimeTable.substr(lDayNum, 2) != "  ") {
						lDate.setTime(lDateMilli);
						if (lLastDate.getTime() < lDate.getTime()) lLastDate.setTime(lDate.getTime());

						if (lDate.getTime() >= (lToday.getTime() - gDayMillis)) {
							lIdxRef = pDir + "_" + lDate.getMonth() + "_" + lDate.getFullYear();

							if (AddMonth(pDir, lDate.getMonth(), lDate.getFullYear())) {
								gDaysArr[lIdxRef]    = new Array();
								gDepTimeArr[lIdxRef] = new Array();
								gArrTimeArr[lIdxRef] = new Array();
							}

							gDaysArr[lIdxRef].push(lDate.getDate());

							if (!gDepTimeArr[lIdxRef]['T' + lDate.getDate()]) {
								gDepTimeArr[lIdxRef].push('T' + lDate.getDate());
								gArrTimeArr[lIdxRef].push('T' + lDate.getDate());
								gDepTimeArr[lIdxRef]['T' + lDate.getDate()] = new Array();
								gArrTimeArr[lIdxRef]['T' + lDate.getDate()] = new Array();
							}

							for (lTimeIdx = 0;lTimeIdx < TM[lTimeTable.substr(lDayNum, 2)].length; lTimeIdx++) {
								gDepTimeArr[lIdxRef]['T' + lDate.getDate()].push(TM[lTimeTable.substr(lDayNum, 2)][lTimeIdx][0] + '|' + lRealRoute);
								gArrTimeArr[lIdxRef]['T' + lDate.getDate()].push(TM[lTimeTable.substr(lDayNum, 2)][lTimeIdx][1] + '|' + lRealRoute);
							}
						}
					}
					lDateMilli += gDayMillis;
				}
			}
		}
	}
	if (document.getElementById(pDir + 'Month').options.length == 0){
		$("#" + pDir + "Month").addOption("-", "Months", false);
		if (pDir == 'Out') {
			ShowTimes("Out", false);
			ShowRoute("Ret", false);
			ShowPax("Out",   false);
		}
		ShowTimes("Ret", false);
		ShowPax("Ret",   false);
		alert(Messages[gLng].NoSailings);
	} else {
		ShowRoute("Out", true);
		ShowTimes("Out", true);
		ShowPax("Out",   true);

		if ($("#Return").attr("checked")) {
			ShowRoute("Ret", true);
			ShowTimes("Ret", true);
			ShowPax("Ret",   true);
		}
	}
	$("#" + pDir + "Cal").datepicker("change", {maxDate: lLastDate});
}
//******************************************************
function AddMonth(pDir, pMonth, pYear) {
	if ($("#" + pDir + "Month").containsOption(pDir + "_" + pMonth + "_" + pYear)) {
		return false;
	} else {
		$("#" + pDir + "Month").addOption(pDir + "_" + pMonth + "_" + pYear, Months[gLng][pMonth] + ' ' + pYear, false);
		return true;
	}
}
//******************************************************
function SetDays(pDir) {
var lMonth  = $("#" + pDir + "Month").selectedValues().toString();

	$("#" + pDir + "Day").removeOption(/./);

	if (gDaysArr[lMonth] == undefined)  {
		$("#" + pDir + "Day").addOption("-", "Days", true);
		return;
	};

	gDaysArr[lMonth].sort( function(a,b){return a-b;});

	for (i=0; i < gDaysArr[lMonth].length; i++) {
		$("#" + pDir + "Day").addOption(gDaysArr[lMonth][i], gDaysArr[lMonth][i], false);
	}
}
//******************************************************
function SetTimes(pDir) {
var lMonth  = $("#" + pDir + "Month").selectedValues().toString();
var lDay    = $("#" + pDir + "Day").selectedValues();

	$("#" + pDir + "Time").removeOption(/./);

	if (gDaysArr[lMonth] == undefined)  {
		$("#" + pDir + "Time").addOption("-", "Time", true);
		return;
	};

	gDepTimeArr[lMonth]['T' + lDay].sort();
	gArrTimeArr[lMonth]['T' + lDay].sort();
	gTimeRoute[pDir] = new Array();

	for (lTimeIdx in gDepTimeArr[lMonth]['T' + lDay]) {
		lTime = gDepTimeArr[lMonth]['T' + lDay][lTimeIdx].split('|')[0];
		$("#" + pDir + "Time").addOption(gDepTimeArr[lMonth]['T' + lDay][lTimeIdx], lTime, false);
		gTimeRoute[pDir].push(gDepTimeArr[lMonth]['T' + lDay][lTimeIdx].split('|')[1]);
	}
}
//******************************************************
function CheckDate(pDate, pDir) {
var lMonth = pDir + "_" + pDate.getMonth() + "_" + pDate.getFullYear();
	if (gDaysArr[lMonth]) {
		for (i in gDaysArr[lMonth]) {
			if (gDaysArr[lMonth][i] == pDate.getDate()) {
				return [1, ''];
			}
		}
	}
	return [0, ''];
}
//******************************************************
function readLinked(pDir) {
var lDay 		= $("#" + pDir + "Day").val();
var lMth			= $("#" + pDir + "Month").val().split("_")[1];
var lYer 		= $("#" + pDir + "Month").val().split("_")[2];

	lMth = (lMth * 1) + 1;
	$("#" + pDir + "Cal").val(lMth + "/" + lDay + "/" + lYer);

	if (pDir == "Ret") {
		lDay 	= $("#OutDay").val();
		lMth	= $("#OutMonth").val().split("_")[1];
		lYer 	= $("#OutMonth").val().split("_")[2];
		$("#" + pDir + "Cal").datepicker("change", {minDate: new Date(lYer, lMth, lDay)});
	}
}
//******************************************************
function updateLinked(pDate, pDir) {
var lDay = pDate.substring(3, 5);
var lMth = pDate.substring(0, 2);
var lYer = pDate.substring(6, 10);
	lMth = (lMth * 1) - 1;
	$("#" + pDir + "Month").val(pDir + '_' + lMth + "_" + lYer); 
	SetDays(pDir);
	$("#" + pDir + "Day").val(lDay * 1);
	SetTimes(pDir);
	CheckRetDate();
	return {};
}
//******************************************************
function validateStep1() {
var lOutDate	= new Date($("#OutMonth").val().split("_")[2], $("#OutMonth").val().split("_")[1], $('#OutDay').val())
var lRetDate	= new Date($("#RetMonth").val().split("_")[2], $("#RetMonth").val().split("_")[1], $('#RetDay').val())
var lMessage = '';
	if ($('#OutRoute').val() == '-') 		lMessage += Messages[gLng].NoOutRoute;
	if ($('#OutDay').val() == '-')			lMessage += Messages[gLng].NoOutDay;
	if ($('#OutMonth').val() == '-')			lMessage += Messages[gLng].NoOutMonth;

	if ($("#Return").attr("checked")) {
		if ($('#OutRoute').val() == '-' || $('#OutRoute').val() == '$') {
			lMessage += Messages[gLng].NoRetRoute;
		}
		if ($('#RetDay').val() == '-')		lMessage += Messages[gLng].NoRetDay;
		if ($('#RetMonth').val() == '-')		lMessage += Messages[gLng].NoRetMonth;
	}

	if ($('#Adult').val() == 0)				lMessage += Messages[gLng].NoAdult;
	if ($('#Vehicle').val() == '-') 			lMessage += Messages[gLng].NoVehicle;
	if ($('#Vehicle').val() == 'freight')	lMessage += Messages[gLng].Freight;
	if (lMessage != '') {
		alert(lMessage)
		return false;
	}
	if (lRetDate.getTime() < lOutDate.getTime()) {
		alert(Messages[gLng].BadDate);
		return false;
	}
	$('#VehName').val($('#Vehicle :selected').text());			
	return true;
}
//******************************************************
function SubmitQuote() {
	$('#OutRealRoute').val(gTimeRoute.Out[$('#OutTime').attr('selectedIndex')]);
	$('#RetRealRoute').val(gTimeRoute.Ret[$('#RetTime').attr('selectedIndex')]);
	$('#SubmitType').val('Quote');
	if (validateStep1()) {
		if ($('#PromoCode').val() == 'Promotion') $('#PromoCode').val('');
		document.Step1Form.submit();
	}
}
//******************************************************
function ChangeBooking() {
	$('#OutRealRoute').val(gTimeRoute.Out[$('#OutTime').attr('selectedIndex')]);
	$('#RetRealRoute').val(gTimeRoute.Ret[$('#RetTime').attr('selectedIndex')]);
	$('#SubmitType').val('ChangeBooking');
	document.Step1Form.submit();
}
//******************************************************
function AdvancedSearch() {
	$('#OutRealRoute').val(gTimeRoute.Out[$('#OutTime').attr('selectedIndex')]);
	$('#RetRealRoute').val(gTimeRoute.Ret[$('#RetTime').attr('selectedIndex')]);
	$('#SubmitType').val('AdvancedSearch');
	if (validateStep1()) {
		if ($('#PromoCode').val() == 'Promotion') $('#PromoCode').val('');
		document.Step1Form.submit();
	}
}
