
var uniqueID = ''; 
var theForm = '';

function selectDepartureMonth(uniqueId, month, year)
{
	uniqueID = uniqueId;
	
	document.getElementById('departDay').value = '';
	document.getElementById('departMonth').value = month;
	document.getElementById('departYear').value = year;
	changeMonth("d");
	return false;
}

function selectReturnMonth(uniqueID, month, year)
{
	document.getElementById('returnDay').value = '';
	document.getElementById('returnMonth').value = month;
	document.getElementById('returnYear').value = year;
	
	var departMonth = document.getElementById('departMonth').value;
	var departYear = document.getElementById('departYear').value;
	
	if (((month<departMonth) && (year = departYear)) || (year<departYear)){
		document.getElementById('departMonth').value = month;
		document.getElementById('departYear').value = year;	
	}
	
	changeMonth("r");
	return false;
}

function changeMonth(source)
{
	var dd = document.getElementById('departDay').value;
	var dm = document.getElementById('departMonth').value;
	var dy = document.getElementById('departYear').value;
	var rd = document.getElementById('returnDay').value;
	var rm = document.getElementById('returnMonth').value;
	var ry = document.getElementById('returnYear').value;
	
	var adult = document.getElementById('fb_numpaxADT').options[document.getElementById('fb_numpaxADT').selectedIndex].value;
	var child = document.getElementById('fb_numpaxCHD').options[document.getElementById('fb_numpaxCHD').selectedIndex].value;
	var infant = document.getElementById('fb_numpaxINF').options[document.getElementById('fb_numpaxINF').selectedIndex].value;

	var owy;
	var strOWY;
	if (document.getElementById('chkOneWay')==null){owy=false;}else{owy=document.getElementById('chkOneWay').checked;}
	if (owy==true){strOWY="1";}else{strOWY="0";}
	// define new Url
	var newUrl = baseUrl + '&dd=&dm=' + dm + '&dy=' + dy + '&rd=&rm=' + rm + '&ry=' + ry + '&so=' + source + "&ad=" + adult + "&ch=" + child + "&in=" + infant + "&ow=" + strOWY;
	// redirect to new Url
	location.href  = newUrl;
	
}

function selectDay(direction,day,month)
{
	if (day != ''){
		var objDay;
		// set direction parameters
		if (direction=='Departure'){objDay = document.getElementById('departDay');}
		if (direction=='Return'){objDay = document.getElementById('returnDay');}
		
		var departDay = document.getElementById('departDay').value;
		var departMonth = document.getElementById('departMonth').value;
		var returnDay = document.getElementById('returnDay').value;
		var returnMonth = document.getElementById('returnMonth').value;			
		// Check that the depart date is selected first			
		if (direction=='Return' && departDay==''){alert("Please select your depart date first");return false;}
		// Check that depart date is before return date
		if ((direction=='Return' && departDay!='') && (departMonth==month) && (new Number(day)<new Number(departDay))){alert("The return date must be after the depart date");return false;}
		if ((direction=='Departure' && returnDay!='') && (returnMonth==month) && (new Number(day)>new Number(returnDay))){alert("The return date must be after the depart date");return false;}

		// Check if a day had already been selected, and if so, rest it to show not selected
		if (objDay.value!=''){document.getElementById(direction + objDay.value).className = 'calendarDay';}
		// Change to style to indicate that the new day has been selected
		document.getElementById(direction + day).className = 'calendarDaySelected';
		// Update the value with the new selected day
		objDay.value = day;
		// Update the summary
		changeSummary();
		return false;
	}
}



function drawAvailability(direction)
{
	var drpADT = document.getElementById('fb_numpaxADT');
	var drpCHD = document.getElementById('fb_numpaxCHD');
	var drpINF = document.getElementById('fb_numpaxINF');
	//Update the no of adults, children , infants in the hidden form
	document.getElementById('adults').value = drpADT.options[drpADT.selectedIndex].value;
	document.getElementById('children').value = drpCHD.options[drpCHD.selectedIndex].value;
	document.getElementById('infants').value = drpINF.options[drpINF.selectedIndex].value;
			
	// get number of passengers. n.b. infants do not need a seat
	var adts = new Number(drpADT.options[drpADT.selectedIndex].value);
	var chds = new Number(drpCHD.options[drpCHD.selectedIndex].value);	
	var infs = new Number(drpINF.options[drpINF.selectedIndex].value);	

	if(direction == "Departure")
	{
		//if children are allow then recalculate the number allowed on current booking
		if (drpCHD.options[drpCHD.selectedIndex].text != 'n/a')
		{
			var origChds = chds;
			drpCHD.options.length = 0;
			drpCHD.options[0] = new Option('fb_numpaxCHD');
			drpCHD.value = 'fb_numpaxCHD';					
			for(var i=0; i<(maxPax - adts)+1; i++)
			{
				var newOption = new Option(i);
				drpCHD.options[i] = newOption;
				drpCHD.options[i].value = i;
			}
			var selectedChds = 0;
			if ((origChds + adts) >= maxPax)
			{
			selectedChds = maxPax - adts;
			}else{
			selectedChds = origChds;
			}
			drpCHD.options[selectedChds].selected = true;
		}
		
		if (drpINF.options[drpINF.selectedIndex].text != 'n/a')
		{
		var maxInfs = adts;
		var origInfs = infs;
		drpINF.options.length = 0;
		drpINF.options[0] = new Option('fb_numpaxINF');
		drpINF.value = 'fb_numpaxINF';					
		for(var i=0; i<adts+1; i++)
		{
			var newOption = new Option(i);
			drpINF.options[i] = newOption;
			drpINF.options[i].value = i;
		}
		// if adults reduced then set max infants to be same else set to be original value
		var selectedInfs = 0;
		if (origInfs > adts)
		{
			selectedInfs = adts;
		}else{
			selectedInfs = origInfs;
		}
		drpINF.options[selectedInfs].selected = true;		
		}
	}

	var availArray;
	var daysInMonth;
	// set direction parameters
	if (direction=='Departure'){availArray = outAvail;daysInMonth = departureDaysInMonth;}
	if (direction=='Return'){availArray = retAvail;daysInMonth = returnDaysInMonth;}
	// reset availability display
	for (i = 0;i < daysInMonth;i++){
		document.getElementById(direction + (i+1)).style.backgroundColor="#ffffff";
	}
	if (fares != null)
	{
		for (i = fares.length - 1; i > -1; i--) {
			for (j = 0; j < availArray[i].length; j++) {
				if ((availArray[i][j] != 'i') && (availArray[i][j] > 0) && (availArray[i][j] >= (adts+chds))){
					if ((document.getElementById(direction + (j+1)).className != 'calendarInvalid') || (document.getElementById(direction + (j+1)).className != 'calendarSold')){
						document.getElementById(direction + (j+1)).style.backgroundColor=fares[i][1];
					}
				}
			}
		}
	}
	// Update the summary
	changeSummary();
}	

function showHideOneWay()
{
	if(document.getElementById('chkOneWay').checked){
		document.getElementById('divReturn').style.display = "none";
		document.getElementById('returnCal').style.display = "none";
		document.getElementById('retHead').style.display = "none";
		document.getElementById('tbrReturnSummary').style.display = "none";
		document.getElementById('oneway').value = 'on';
	}else{
		document.getElementById('divReturn').style.display = "";
		document.getElementById('returnCal').style.display = "";
		document.getElementById('retHead').style.display = "";
		document.getElementById('tbrReturnSummary').style.display = "";	
		document.getElementById('oneway').value = '';		
	}			
}

function changeSummary()
{
	// Set Depart summary
	if(document.getElementById('departDay').value != ''){document.getElementById('departSummary').innerHTML = document.getElementById('departDay').value + ' ' + departureMonthName + ' ' + document.getElementById('departYear').value;}
	// Set Return summary
	if(document.getElementById('returnDay').value != ''){document.getElementById('returnSummary').innerHTML = document.getElementById('returnDay').value + ' ' + returnMonthName + ' ' + document.getElementById('returnYear').value;}
	// Set Pax summary		
	var paxString = document.getElementById('fb_numpaxADT').options[document.getElementById('fb_numpaxADT').selectedIndex].value + " adult";
	if (new Number(document.getElementById('fb_numpaxADT').options[document.getElementById('fb_numpaxADT').selectedIndex].value) > 1){paxString = paxString + "s"}
	if(new Number(document.getElementById('fb_numpaxCHD').options[document.getElementById('fb_numpaxCHD').selectedIndex].value) > 0){
		paxString = paxString + ", " + document.getElementById('fb_numpaxCHD').options[document.getElementById('fb_numpaxCHD').selectedIndex].value + " child";
		if (new Number(document.getElementById('fb_numpaxCHD').options[document.getElementById('fb_numpaxCHD').selectedIndex].value) > 1){paxString = paxString + "ren"}
	}
	if(new Number(document.getElementById('fb_numpaxINF').options[document.getElementById('fb_numpaxINF').selectedIndex].value) > 0){
		paxString = paxString + ", " + document.getElementById('fb_numpaxINF').options[document.getElementById('fb_numpaxINF').selectedIndex].value + " infant";
		if (new Number(document.getElementById('fb_numpaxINF').options[document.getElementById('fb_numpaxINF').selectedIndex].value) > 1){paxString = paxString + "s"}
	}
	document.getElementById('paxSummary').innerHTML = paxString;	
	// Set Fare Summary	
	var departDay = document.getElementById('departDay').value;
	var departFare = '';
	var returnDay = document.getElementById('returnDay').value;
	var returnFare = '';	
	
	if (departDay != ''){
		if (document.getElementById('chkOneWay')==null){
			// only return fares
			fareText = "selected fare:"
		}else{
			fareText = "selected departing fare:"
		}
		for (i=0;i<fares.length;i++){
			if((outAvail[i][departDay-1]!='i') && (outAvail[i][departDay-1] != 0) && (departFare==''))
			{
				departFare=fareText + " " + fares[i][0] + "; "; document.getElementById('departClass').value = fares[i][2];
			}
		}	
		
	}
	if (returnDay != ''){
		if (document.getElementById('chkOneWay')!=null){
			if (document.getElementById('chkOneWay').checked == false ){
				for (i=0;i<fares.length;i++){
					if((retAvail[i][returnDay-1]!='i') && (retAvail[i][returnDay-1] != 0) && (returnFare=='')){returnFare="selected returning fare: " + fares[i][0] + "; "; document.getElementById('returnClass').value = fares[i][2];}
				}
			}			
		}
		if (document.getElementById('chkOneWay')==null){
			for (i=0;i<fares.length;i++){
				if((retAvail[i][returnDay-1]!='i') && (retAvail[i][returnDay-1] != 0) && (returnFare=='')){document.getElementById('returnClass').value = fares[i][2];}
			}
		}					
	}
	document.getElementById('fareSummary').innerHTML = departFare + returnFare;
}

function reSelectDrp()
{
	var drpCHD = document.getElementById('fb_numpaxCHD');
	var drpADT = document.getElementById('fb_numpaxADT');	
	var drpINF = document.getElementById('fb_numpaxINF');	
	
	var query = location.search.substring(1);

	var pos = query.indexOf("ch=");
	if (pos != -1){
		var val = query.substring(pos+3,pos+4);
		if (val > 0){

			var adts = new Number(drpADT.options[drpADT.selectedIndex].value);
			drpCHD.options.length = 0;
			drpCHD.options[0] = new Option('fb_numpaxCHD');
			drpCHD.value = 'fb_numpaxCHD';					
			for(var i=0; i<(maxPax - adts)+1; i++)
			{
				var newOption = new Option(i);
				drpCHD.options[i] = newOption;
				drpCHD.options[i].value = i;
			}
			drpCHD.options[val].selected = true;
		}
	}

	var pos = query.indexOf("in=");
	if (pos != -1){
		var val2 = query.substring(pos+3,pos+4); 
		if ((val2 >= 0) && (val2 <= maxPax) ){
			
			var maxInfs = maxPax;
			drpINF.options.length = 0;
			drpINF.options[0] = new Option('fb_numpaxINF');
			drpINF.value = 'fb_numpaxINF';					
			for(var i=0; i<maxPax+1; i++)
			{
				var newOption = new Option(i);
				drpINF.options[i] = newOption;
				drpINF.options[i].value = i;
			}
			drpINF.options[val2].selected = true;
			
		}
	}
}