
// set the select list to the supplied value
function setSelected(select, name, bool) {
	for(var i = 0; i < select.options.length; i++) {
		var text = (bool) ? select.options[i].value : select.options[i].text;
		if(text == name) {
			select.selectedIndex = i;
			return;
		}
	}
}

// return the currently selected option
function getSelected(select) {
	return (select.options.length) ? select.options[select.selectedIndex] : {value: "", text: ""};
}

// remove all options from a select list
function deleteOptions(select) {
	select.options.length = 0;
}

// create new options from the supplied array
function writeOptions(select, arr) {
	deleteOptions(select);
	if(!arr) return;

	for(var i = 0; i < arr.length; i++) {
		if(arr[i].constructor == Array) select.options[select.options.length] = new Option(arr[i][1], arr[i][0]);
		else select.options[select.options.length] = new Option(arr[i]);
	}
}

// reloads list data based on the supplied params
function reloadList(select, listName, data) {
	var val = getSelected(select).value;

	if(val == 0 || data[val] == null) {
		deleteOptions(document.forms[0][listName]);
		return;
	}

	var list = document.forms[0][listName];

	writeOptions(list, data[val].sortByProperty(1));
}