function Class_MasterSlaveSelect() {

	this.MasterIDs = new Array();	
	this.SlaveIDs = new Array();	
	this.SlaveDescriptions = new Array();
	this.FormName = null;
	this.MasterSelect = null;
	this.SlaveSelect = null;

	// -------------------------------------------------------------
	this.Create = function(formname, masterid, slaveid) {
		this.FormName = formname;
		this.MasterSelect = eval("document.forms['"+this.FormName+"']."+masterid+";");
		this.SlaveSelect = eval("document.forms['"+this.FormName+"']."+slaveid+";");
	}	

	// -------------------------------------------------------------
	this.AddSlaveOption = function(masterID, slaveID, slaveDS) {
		this.MasterIDs.push(masterID);
		this.SlaveIDs.push(slaveID);
		this.SlaveDescriptions.push(slaveDS);
	}

	// -------------------------------------------------------------
	this.ClearSlaveSelect = function() {
		L = this.SlaveSelect.length;
		for (i=0; i<L; i++) {
			this.SlaveSelect.options[0] = null;
		}
	}
	
	// -------------------------------------------------------------
	this.MarkSlaveSelectedItem = function(MarkID) {
		for (i=0; i<this.SlaveSelect.length; i++) {
			if (this.SlaveSelect.options[i].value.toLowerCase() == MarkID.toLowerCase()) {
				this.SlaveSelect.options[i].selected = true 
			} else {
				this.SlaveSelect.options[i].selected = false 
			}
		}
	}

	// -------------------------------------------------------------
	this.ChangeSlaveContent = function(MarkID) {
		this.ClearSlaveSelect();	
		first = true;
		for (j=0; j<this.MasterIDs.length; j++) {
			if ( ( this.MasterSelect.options[this.MasterSelect.selectedIndex].value ) == ( this.MasterIDs[j] ) ) {
				if (this.SlaveIDs[j].toLowerCase() == MarkID.toLowerCase()) {
					selected = true 
				} else {
					selected = false 
				}
				newOpt = new Option(this.SlaveDescriptions[j], this.SlaveIDs[j], first, selected);
				L = this.SlaveSelect.length;
				this.SlaveSelect.options[L++] = newOpt;
				first = false;
			}
		}
	}

	// -------------------------------------------------------------
	this.Free = function() {
		for (i = 0; i < this.MasterIDs.length; i++) {
			this.MasterIDs.pop();
			this.SlaveIDs.pop();
			this.SlaveDescriptions.pop();
		}
		this.MasterIDs = null;
		this.SlaveIDs = null;
		this.SlaveDescriptions = null;
	}

	// -------------------------------------------------------------
	this.Test = function() {
		teststr = '';
		for (i = 0; i < this.MasterIDs.length; i++) {
			teststr = teststr + this.MasterIDs[i]+':'+this.SlaveIDs[i]+':'+this.SlaveDescriptions[i]+'\n\r';
		}
		alert(teststr);
	}

}
