function Station(code, name, validOrig, validDest, mktsArray)
{
  this.code = code;
  this.name = name;
  this.validOrig = validOrig;
  this.validDest = validDest;
  this.mkts = mktsArray;
}

function changeDest(o, d, dVal)
{
    //alert("changeDest");
	if (!document.images) {	return;	}

	if (!d) { alert("There's no DropDownDest!");	return;	}

	//var dLabel = d.options[0].text;
	var oIx = eval(o.selectedIndex);
	var dIx = 0;
	var name = '';

	if (oIx >= 0)
	{
		var oVal = o.options[oIx].value;

		// clear and begin new destList					
		d.length = 0;
		//d.options[0] = new Option(dLabel);
		//if(d.getAttribute('requiredEmpty'))
		//{
	//		d.options[0].value = d.getAttribute('requiredEmpty');
	//	}
        
		for (var i=0; i<SortedStations.length; i++)
		{
			for (j=0; j<Stations[oVal].mkts.length; j++)
			{
				var stnCode	= Stations[oVal].mkts[j];
				if ((SortedStations[i] == stnCode) && (Stations[stnCode].validDest == true))
				{
					if ( stnCode == dVal ) { dIx = d.length; }
					d.length += 1;
					name = Stations[stnCode].name + ' (' + Stations[stnCode].code + ')';								
					d.options[d.length-1] = new Option( name );
					d.options[d.length-1].value = Stations[stnCode].code;
					break;
				}
			}
			if (d.length-1 == Stations[oVal].mkts.length) { break; }
		}
		d.selectedIndex = dIx;
	}
	else
	{
		fillList(d, dVal);
	}
} // end changeDest

// Assumes that Stations and SortedStations arrays were initialized and populated above
function fillList(d, dVal)
{
	if (!d) { alert("There's no DropDownDest!"); return; }

	//var dLabel = d.options[0].text;

	if ((dVal == '') && (d.selectedIndex > -1))
	{
		dVal = d.options[ d.selectedIndex ].value;
	}
	var dIx = 0;

	d.length = 0;
	//d.options[0] = new Option(dLabel);
	//if(d.getAttribute('requiredEmpty'))
	//{
//		d.options[0].value = d.getAttribute('requiredEmpty');
//		}       
	
	var name = '';
	for (var i=0; i<SortedStations.length; i++)
	{
		stnCode	= SortedStations[i];
		if (Stations[stnCode].validDest == true)
		{
			if (dVal == stnCode)
			{
				dIx = d.length;
			}
			d.length += 1;
			name = Stations[stnCode].name + ' (' + Stations[stnCode].code + ')';						
			d.options[d.length-1] = new Option( name );
			d.options[d.length-1].value = Stations[stnCode].code;
		}
	}

	d.selectedIndex = dIx;
}
