ASelect = function(id) {
	this.el = document.getElementById(id);
	this.optionList = [];
	this.optionDefault = null;


	this.addOption = function (value, name) {
		this.optionList.push({
			value : value, 
			name : name 
		});		
	};

	this.addOptions = function (array) {
		this.optionList = array;
	};

	this.setDefaultOption = function(value) {
		this.optionDefault = value;
	};
	
	this.getDefaultOption = function() {
		return this.optionDefault;
	};
	
	this.clear = function() {
		this.optionList = [];
	};
	
	this.render = function() {
		// Clean
		while (this.el.options.length > 0) {
			this.el.options[0] = null;
		}
		
		// Add
		for (i = 0; i < (this.optionList || []).length; i++) {
			this.el.options[i] = new Option(
				this.optionList[i].name,
				this.optionList[i].value
			);
			
			if (this.optionList[i].value == this.optionDefault) {
				this.el.options.selectedIndex = i;
				this.optionDefault = null;
			}
		}
		
		// Notify
		if (typeof(this.el.onchange) == 'function') {
			this.el.onchange();	
		}
	};
};