﻿a = new ajaxGateway();
a.setCallbackHandler(populateTourTypes);
b = new ajaxGateway();
b.setCallbackHandler(populateOptions);





function locationChanged(locationId) {
	a.getTourTypes(locationId)
}





function typeChanged(tourTypeId) {
	var locationId = document.getElementById('locationId').value;
	b.getOptions(locationId, tourTypeId)
}





function formHousekeeping() {
	var t = document.getElementById('tourTypeId');
	var l = document.getElementById('locationId');
	var o = document.getElementById('optionId');
	t.disabled = l.selectedIndex <= 1;
	o.disabled = t.selectedIndex <= 1;
	if ( t.disabled )
		o.selectedIndex = 0;
}





function populateTourTypes(tourTypes) {
	var field = document.getElementById('tourTypeId');
	var currentValue = field.value;
	field.length = 2;
	for ( var i=0; i < tourTypes.DATA.length; i++ ) {
		var newOption = new Option();
		newOption.value = tourTypes.DATA[i][1];
		newOption.text = tourTypes.DATA[i][0];
		if ( newOption.value == currentValue ) 
			newOption.selected = true;
		field[field.length] = newOption; 
		field.disabled = false;
	}
	typeChanged(document.getElementById('tourTypeId').value);
	formHousekeeping();
}





function populateOptions(options) {
	var field = document.getElementById('optionId');
	var currentValue = field.value;
	field.length = 2;
	for ( var i=0; i < options.DATA.length; i++ ) {
		var newOption = new Option();
		newOption.value = options.DATA[i][1];
		newOption.text = options.DATA[i][0];
		if ( newOption.value == currentValue ) 
			newOption.selected = true;
		field[field.length] = newOption; 
		field.disabled = false;
	}
	formHousekeeping();
}