function toggleSearchTab( strTab ) {
	oTabTrail = document.getElementById('searchTrainsTab');
	if (!oTabTrail) return gfMissingObj('searchTrainsTab');

	oTabCity = document.getElementById('tabSearchCity');
	if (!oTabCity) return gfMissingObj('tabSearchCity');

	if( strTab == 'trains' ) {
		oTabTrail.style.display = 'block';
		oTabCity.style.display = 'none';
	} else {
		oTabTrail.style.display = 'none';
		oTabCity.style.display = 'block';
	}
}
function validateTrainSearch() {
	// Validate Trains Search
	objTrainCities = fGetObj('pullDownCities');
	if( objTrainCities.options[ objTrainCities.selectedIndex ].value == '0' ) {
		alert( 'Select Destination is a required search field.' );
		objTrainCities.focus();
		return false;
	}
	objTrainDays = fGetObj('pullDownDays');
	if( objTrainDays.options[ objTrainDays.selectedIndex ].value == '0' ) {
		alert( 'Select Duration is a required search field.' );
		objTrainDays.focus();
		return false;
	}
	return true;
}
function fValidateCitySearch() {
	objCityStops = fGetObj('dropdownCityStops');
	if( objCityStops.options[ objCityStops.selectedIndex ].value == '0' ) {
		alert( 'City Stops is required.' );
		objCityStops.focus();
		return false;
	}
	objCityMonth = fGetObj('dropdownCityMonths');
	if( objCityMonth.options[ objCityMonth.selectedIndex ].value == '0' ) {
		alert( 'Month is required.' );
		objCityMonth.focus();
		return false;
	}
	return true;
}

var objDropdownCityMonths;
function fPopulateMonths(obj_DropdownCityStops) {
	if (!gbW3C) return gfW3C_Failed();
	
	objDropdownCityMonths = document.getElementById('dropdownCityMonths');
	if (!objDropdownCityMonths) return gfMissingObj('dropdownCityMonths');
	
	if (obj_DropdownCityStops) {
		/* clear months dropdown */
		for (i=objDropdownCityMonths.length-1; i>=2; i--)
			objDropdownCityMonths.options[i] = null;

		switch(obj_DropdownCityStops.value) {
			case('van'):
				fPopulateMonthsNewOptions(1,12)
			break
			case('cal'):
				fPopulateMonthsNewOptions(6,9)
			break
			case('vic'):
				fPopulateMonthsNewOptions(1,12)
			break
			case('tor'):
				fPopulateMonthsNewOptions(4,10)
			break
			case('mtl'):
				fPopulateMonthsNewOptions(4,10)
			break
			case('qbc'):
				fPopulateMonthsNewOptions(4,10)
			break
			case('hfx'):
				fPopulateMonthsNewOptions(6,10)
			break
			case('sjn'):
				fPopulateMonthsNewOptions(5,9)
			break
			case('0'):
				// first two options are instructions
			break
			default:
				alert('Notify Webmaster: City Stop is missing Months association.');
			break
		}
	} else if (gbDebug)
		gfMissingObj('City Stops tab')
}
function fPopulateMonthsNewOptions(intMonthBegin, intMonthEnd) { v = 'v1.0.0 2007-10-05; like:; req:fFormatMonthIntToStr (v1.0);';
	for (i=intMonthBegin; i<=intMonthEnd; i++)
		objDropdownCityMonths.options[ objDropdownCityMonths.length ] = new Option( fFormatMonthIntToStr(i,3), i );
	objDropdownCityMonths.focus();
}
function fFormatMonthIntToStr(intMonth, intOutputLen) { v = 'v1.0.0 2007-10-05; like:fPopulateMonthsNewOptions (v1.0); req:;';
	arrMonth = new Array(); arrMonth[3] = new Array();
	arrMonth[0] = new Array('','January','February','March','April','May','June','July','August','September','October','November','December');
	arrMonth[3] = new Array('','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
	return arrMonth[intOutputLen][intMonth];
}
var objDropdownTrainMonths, objDropdownTrainDurations;
function fPopulateTrainMonths(obj_DropdownTrainCity) {
	if (!gbW3C) return gfW3C_Failed();

	objDropdownTrainMonths = document.getElementById('pullDownMonths');
	if (!objDropdownTrainMonths) return gfMissingObj('pullDownMonths');
	
	objDropdownTrainDurations = document.getElementById('pullDownDays');
	if (!objDropdownTrainDurations) return gfMissingObj('pullDownDays');
	

	if (obj_DropdownTrainCity) {
		/* clear month dropdown */
		for (i=objDropdownTrainMonths.length-1; i>=2; i--)
			objDropdownTrainMonths.options[i] = null;
			
		/* clear duration dropdown */
		for (i=objDropdownTrainDurations.length-1; i>=2; i--)
			objDropdownTrainDurations.options[i] = null;

		switch(obj_DropdownTrainCity.value) {
			case('1'): // van
				fPopulateTrainMonthsNewOptions(4,10)
				fPopulateDaysNewOptions(3,4,7,9,11)
			break
			case('2'): // halifax
				fPopulateTrainMonthsNewOptions(4,10)
				fPopulateDaysNewOptions(3,4,7,9,11)
			break
			case('3'): // banff
				fPopulateTrainMonthsNewOptions(4,10)
				fPopulateDaysNewOptions(3,4,7,9,11)
			break
			case('4'): // cal
				fPopulateTrainMonthsNewOptions(4,10)
				fPopulateDaysNewOptions(3,4,7,9)
			break
			case('6'): // vic
				fPopulateTrainMonthsNewOptions(4,10)
				fPopulateDaysNewOptions(7,11)
			break
			case('9'): // whistler
				fPopulateTrainMonthsNewOptions(4,10)
				fPopulateDaysNewOptions(3,4,7,9,11)
			break
			case('10'): // tor
				fPopulateTrainMonthsNewOptions(4,10)
				fPopulateDaysNewOptions(11)
			break
			case('11'): // mtl
				fPopulateTrainMonthsNewOptions(4,10)
				fPopulateDaysNewOptions(11)
			break
			case('12'): // hfx
				fPopulateTrainMonthsNewOptions(4,10)
				fPopulateDaysNewOptions(11)
			break
			case('13'): // lake louise
				fPopulateTrainMonthsNewOptions(4,10)
				fPopulateDaysNewOptions(4,7,9,11)
			break
			case('0'):
				// first two options are instructions
			break
			default:
				alert('Notify Webmaster: City Stop is missing Months association.');
			break
		}
	} else if (gbDebug)
		gfMissingObj('Train Months tab')
}
function fPopulateTrainMonthsNewOptions(intMonthBegin, intMonthEnd) { v = 'v2.0.0 2008-02-19; like:; req:fFormatMonthIntToStr (v1.0);';
	if(fPopulateTrainMonthsNewOptions.arguments.length > 2) // individual dates
		for (j=0; j<fPopulateTrainMonthsNewOptions.arguments.length; j++) {
			i = fPopulateTrainMonthsNewOptions.arguments[j];
			objDropdownTrainMonths.options[ objDropdownTrainMonths.length ] = new Option( fFormatMonthIntToStr(i,3), i );
		}
	else // date range
		for (i=intMonthBegin; i<=intMonthEnd; i++)
			objDropdownTrainMonths.options[ objDropdownTrainMonths.length ] = new Option( fFormatMonthIntToStr(i,3), i );
	objDropdownTrainMonths.focus();
}
function fPopulateDaysNewOptions() {
	for (i=0; i<fPopulateDaysNewOptions.arguments.length; i++) {
		switch(fPopulateDaysNewOptions.arguments[i]) {
			case(3):
				objDropdownTrainDurations.options[ objDropdownTrainDurations.length ] = new Option( '2-4 days', 3 );
			break
			case(4):
				objDropdownTrainDurations.options[ objDropdownTrainDurations.length ] = new Option( '5-7 days', 4 );
			break
			case(7):
				objDropdownTrainDurations.options[ objDropdownTrainDurations.length ] = new Option( '8-9 days', 7 );
			break
			case(9):
				objDropdownTrainDurations.options[ objDropdownTrainDurations.length ] = new Option( '10-11 days', 9 );
			break
			case(11):
				objDropdownTrainDurations.options[ objDropdownTrainDurations.length ] = new Option( '12-17 days', 11 );
			break
		}
	}
	
}















