function checkList(eSelect, value) {
	if (!eSelect || !value) return false;
	for (var count = 0; count < eSelect.options.length; count++) {
		if (value == eSelect.options[count].value) return false;
	}
	return true;
}

function appendOptionLast(eSelect, text, value, dontCheck) {
	if (!value) value = text;
	if (!dontCheck) if (!checkList(eSelect, value)) return false;
	var newOpt = document.createElement('option');
	Element.extend(newOpt); // without IE crashes!
	newOpt.text = text;
	newOpt.value = value;
	try {
		eSelect.add(newOpt, null); // standards compliant; doesn't work in IE
	}
	catch(ex) {
		eSelect.add(newOpt); // IE only
	}
}

function removeOptionSelected(eSelect) {
	for (var count = eSelect.length - 1; count >= 0; count--) {
		if (eSelect.options[count].selected) {
			eSelect.remove(count);
		}
	}
}

function setSelectedIndex(eSelect, value) {
	for (var count = eSelect.length - 1; count >= 0; count--) {
		if (eSelect.options[count].value == value) {
			eSelect.selectedIndex = count;
			break;
		}
	}
}

function removeOptionsAll(eSelect) {
	if (eSelect.hasChildNodes()) while (eSelect.childNodes.length >= 1) eSelect.removeChild(eSelect.firstChild);
}

function getSelectedValue(eSelect) {
	return eSelect.options[eSelect.selectedIndex].value;
}

function getSelectedText(eSelect) {
	return eSelect.options[eSelect.selectedIndex].text;
}
