// JavaScript Document

function selectObject(id,title,objForm,params) {
	this.title = title;
	this.id    = id;
	this.form = null;
	this.params = params;

	this.eventListeners = new Array();
	this.arOptions = new Array();
	
	this.setForm = function(objForm) {
		this.form = objForm;
		this.form.addElement(this);
	}
	
	this.setForm(objForm);
	
	this.getTitle = function () {
		return this.title;
	}
				
	this.getId = function () {
		return this.id;
	}
	
	this.getValue = function () {
		var selObj = document.forms["form_" + this.form.getName()].elements[this.id];
		if (selObj) {
			return selObj.options[selObj.selectedIndex].value; 
		}
		else {
			return false;
		}
	}
	
	this.addListener = function (eventType,listener) {
		var objListener = new Object();
		objListener.eventType = eventType;
		objListener.listener  = listener;
		this.eventListeners[this.eventListeners.length] = objListener;
	}
				
	this.draw = function() {
		var listeners = "";
		for (i = 0; i < this.eventListeners.length; i++) {
			listeners += this.eventListeners[i].eventType + "='"+ this.eventListeners[i].listener +"(event)' ";
		}
		
		var result = "";
		result += "<tr>";
					
		result += "    <td>";
		result += "        " + this.title + "<br><select id='" + this.id + "' name='" + this.id + "' " + listeners + " " + this.params + " >";
		
		for (var i = 0; i < this.arOptions.length; i++) {
			result += "<option value='" + this.arOptions[i]["value"] + "'>" + this.arOptions[i]["title"];
		}
		
		result += "        </select>";
		result += "    </td>";
					
		result += "</tr>";
		return result;	
	}
	
	this.addOption = function(value,title,selected,disabled) {
		var index = this.arOptions.length;
		this.arOptions[index] = new Array();
		this.arOptions[index]["value"] = value;
		this.arOptions[index]["title"] = title;
		this.arOptions[index]["selected"] = selected ? "selected":"";
		this.arOptions[index]["disabled"] = disabled ? "disabled":"";
	}
	
	this.isFilled = function () {
		var index = document.forms["form_" + this.form.getName()].elements[this.id].selectedIndex;
		return index;
	}
	
	this.disable = function() {
		var selObj = document.getElementById(this.id);
		selObj.disabled = true;
		selObj.selectedIndex = 0;
		selObj.innerHTML = "";
		this.arOptions = new Array();
	}
	
	this.enable = function() {
		var selObj = document.getElementById(this.id);
		
		var opt = new Option();
		opt.text  = "";
		opt.value = "";
		selObj.options[selObj.options.length] = opt;
		
		for (var i = 0; i < this.arOptions.length; i++) {
			var opt = new Option();
			opt.text  = this.arOptions[i]["title"];
			opt.value = this.arOptions[i]["value"];
			selObj.options[selObj.options.length] = opt;
		}
		selObj.disabled = false;
	}
}
