// display

function Display(name_)
{
	this.name = name_;
	this.create = null;
	this.update = null;
	this.select = null;
	this.data = null;	
}

function Displays(dd)
{
	var self = this;
	var dispdiv = dd;
	var displays = {};

	
	this.add_display = function (disp) 
	{
		displays[disp.name] = disp;
	}

	this.get_display = function (name)
	{
		return displays[name];
	}

	this.update_displays = function (newdata)
	{
		for (var name in displays) {
			if (displays[name].update)
				displays[name].update(newdata);
		}
	}

	this.change_display = function (name)
	{
		var disp = displays[name];
		if (disp.data != null) {

			var old = get_sel_display_name();
			if (old) {
				var n = old + "txt";
				var d = document.getElementById(n);
				if (d)
					d.style.fontWeight = "normal";
			}


			set_display_data(disp.data);	
			if (disp.select) disp.select();

			var n = name + "txt";
			var d = document.getElementById(n);
			if (d) 
				d.style.fontWeight = "bold";
		}
	}

	function get_display_data()
	{
		var t = dispdiv;

		if (t.firstChild)
			return t.firstChild;

		return null;
	}

	function set_display_data(newdata)
	{
		var t = dispdiv;

		if (t.firstChild)
			t.removeChild(t.firstChild);
		
		t.appendChild(newdata);
	}

	function get_sel_display_name()
	{
		var d = get_display_data(); 

		for (var n in displays) {
			if (displays[n].data == d)
				return n;
		}

		return null;
	}


}
