function changeOrigDestList(origBox, destBox, labelDest, fromOnload, whichSector, labelOpenJaw, preferredDest)
	{
		if (!document.images)
		{
			return;
		}

		var origIndex	= eval(origBox.selectedIndex);
		var destIndex = eval(destBox.selectedIndex);
		var initDest	= 0;
		/*if ( whichSector == 1 ) {
			destIndex	= document.dest1Form.dIndex.value;
		}
		else
		{
			destIndex	= eval(destBox.selectedIndex);
			initDest	= document.dest2Form.dIndex.value;
		}*/
		var orig     	= origBox.options[ origIndex ].value;
		var dest     	= destBox.options[ destIndex ].value;


		if (orig != "XXX")
		{
			orig = eval(orig)
			destBox.length = 1
			var newDest = new Option(labelDest)
			destBox.options[0] = newDest
			destBox.options[0].value = "XXX"

			for (var i = 0; i < orig.length-1; i++)
			{
				destBox.length += 1
				destBox.options[destBox.length - 1] = new Option( eval('s' + orig[i]) + " (" + orig[i] + ")" )

				destBox.options[destBox.length - 1].value = orig[i]

				if ( dest == destBox.options[destBox.length - 1].value )
				{
					initDest = destBox.length - 1
				}
			}


			if (fromOnload == true)
			{
				origBox.selectedIndex = origIndex;
				destBox.selectedIndex = destIndex;
				/*if (whichSector == 1)
				{
					document.dest1Form.dIndex.value = destIndex;
				}*/
			}
			else
			{
 				/*destBox.selectedIndex	= ( initDest > destBox.options.length - 1)
										? destBox.options.length - 1 : initDest;
				if (whichSector == 1) 
				{
					document.dest1Form.dIndex.value = initDest;
				}
				else
				{
					document.dest2Form.dIndex.value = initDest;
				}*/
			}

		}
		else
		{
			refillDestList( destBox, labelDest, labelOpenJaw);
		}


	}	// changeOrigDestList


	// ---------------------------------------------


	function refillDestList(destBox, labelDest, unusedOption)
	{
		var destValue = destBox.options[ destBox.selectedIndex ].value
		destBox.length = 1
		destBox.options[0] = new Option(labelDest)
		destBox.options[0].value = "XXX"
		var i = 1
		var selIndex = 0

		if ( unusedOption )
		{
			destBox.length += 1
			var newOption = new Option( unusedOption )
			destBox.options[i] = newOption
			destBox.options[i].value = "XXX"
			i++
		}

		for(var j = 0; j < (babyDests.length - 1); j++) 
		{
			destBox.length += 1;
 var newOption = new Option(eval('s' + babyDests[j]) + " (" + babyDests[j] + ")")
		      destBox.options[i+j] = newOption
		      destBox.options[i+j].value = babyDests[j]
		      if(destValue == babyDests[j]) {selIndex = i+j}
    	}

		destBox.selectedIndex = selIndex

	}	// end refillDestList

//Javascript:changeOrigDestList(document.babyForm.departureAirport,document.babyForm.arrivalAirport,'to',false,1, '');

var dontUpdateBottomDrops = 'false';

// firstGo stops the second set of drop downs being changed if required
function updateDrops(whichOne,firstGo,strTo)
	{
	switch(whichOne)
		{
		case ('departureAirport'):
				changeOrigDestList(document.babyForm.departureAirport,document.babyForm.arrivalAirport,strTo,false,1, ''); // change dest list in top arrival drop
				if (firstGo != '')
					{
					if (dontUpdateBottomDrops=='false')
					 {
					 duplicateDrops('departureAirport', 'departureAirport2'); // change bottom departure drop to same as top departure
					 changeOrigDestList(document.babyForm.departureAirport2,document.babyForm.arrivalAirport2,strTo,false,1, ''); // change dest list in bottom arrival drop
					 changeDrop('arrivalAirport2','XXX');
					 }
					}
				changeDrop('arrivalAirport','XXX');
		break;
		case ('arrivalAirport'):
				if (firstGo != ''){duplicateDrops('arrivalAirport', 'arrivalAirport2');} 
		break;
		case ('departMonth'):
				if (firstGo != ''){duplicateDrops('departMonth', 'departMonth2');} 
		break;
		case ('departureAirport2'):
				changeOrigDestList(document.babyForm.departureAirport2,document.babyForm.arrivalAirport2,strTo,false,1, ''); // change dest list in top arrival drop
				duplicateDrops('departureAirport2', 'departureAirport'); // change bottom departure drop to same as top departure
				changeOrigDestList(document.babyForm.departureAirport,document.babyForm.arrivalAirport,strTo,false,1, ''); // change dest list in bottom arrival drop
				changeDrop('arrivalAirport','XXX');
				changeDrop('arrivalAirport2','XXX');
		break;
		case ('arrivalAirport2'):
				duplicateDrops('arrivalAirport2', 'arrivalAirport'); 
		break;
		case ('departMonth2'):
				duplicateDrops('departMonth2', 'departMonth'); 
		break;
		}
	}

// pass in the name of the drop that has changed and change the other one
function duplicateDrops(changed, toChange)
	 {
	 if (dontUpdateBottomDrops=='false')
	 {
		//alert(changed, toChange);
		var objForm = eval('document.babyForm');
		for (i = 0; i < objForm.length; i++) {
															   if (objForm.elements[i].name == changed)	var objChanged = eval('objForm.elements[i]');
															   if (objForm.elements[i].name == toChange) var objToChange = eval('objForm.elements[i]');
														       }
		var thisOne = objChanged.options[objChanged.selectedIndex].value;
		for (i=0;i < objToChange.length;i++){
			if (objToChange.options[i].value == thisOne)
				{
				objToChange.selectedIndex = i;
				}}
	}
	}
	
// populates a drop down with the airports from the array in the IBE
function populateDropDown(dropDownName,label,labelValue,prefix)
{

		var airports = new Array();
		
		// Sort airports be destination name - not code
		for(var u=0;u<babyDests.length -1;u++)
		{
			var strAirportCode = babyDests[u];
			var strAirportName = eval('s'+strAirportCode);
		
			airports[u] = new Array(strAirportName,strAirportCode);
					
		}
		airports.sort();

		var objForm = eval('document.babyForm');
		for (i = 0; i < objForm.length; i++) 
			{			if (objForm.elements[i].name == dropDownName)	
							{				var objDropDown = eval('objForm.elements[i]');			}}
		addOption(objDropDown,objDropDown.options.length,label,labelValue);	
		for (i = 0; i < airports.length; i++) {
					if (isNaN(airports[i][1]))
					
					{addOption(objDropDown,objDropDown.options.length,airports[i][0] + ' (' + airports[i][1] + ')',prefix + airports[i][1]);}
		}		  
}

// this creates an option, ready to be added to a drop down
function addOption(select,index,text,value) {
	select.options[index] = new Option(text);
	select.options[index].value = value;
}

// this function looks at the javascript from the IBE and looks up the name of an airport
function getAirportNameFromCode(code) {
	var strThisAirportCode = 's' + code;
	return eval(strThisAirportCode);
}

// change the drop down selected item
function changeDrop(toChange,airportCode)
	 {
	 //alert('changing : ' +toChange + ',' + airportCode);
		var objForm = eval('document.babyForm');
		for (i = 0; i < objForm.length; i++) 
		{
			if (objForm.elements[i].name == toChange) var objToChange = eval('objForm.elements[i]');
		}
		for (i=0;i < objToChange.length;i++){
			if (objToChange.options[i].value == airportCode)
				{
				objToChange.selectedIndex = i;
				}}
	}
	