function ToggleTextView(s, l, t, b)
{
  var $ = function (id) {return document.getElementById(id); };
  s=$(s); l=$(l); t=$(t); b=$(b);
  if (t) { t.detailView = !t.detailView; t.innerHTML=t.detailView?l.innerHTML:s.innerHTML; b.innerHTML=t.detailView?"[-]":"[+]"; }
}
function ObjectSelectionHelper(control)
{
	var self = this;

	this.control	= control;
	this.oRange		= null;
	this.rangePos	= [0, 0];

	this.InsertText = function (sText)
	{
		var s	= self.rangePos[0];
		var e 	= self.rangePos[1];
		var control = self.control;

		// For Mozilla
		if (control.setSelectionRange)
		{
			var selectedText = control.value.substring(s, e);
			control.value = control.value.substring(0, s) + sText + control.value.substring(e);
			var se = s + sText.length;
			control.setSelectionRange(se, se);
			self.rangePos = [se, se];
		}
		else if (document.selection && self.oRange)
		{
			var oRange = self.control.createTextRange();
			oRange.moveToPoint(self.oRange.offsetLeft, self.oRange.offsetTop);
			self.oRange.text = "";
			oRange.text = sText;
			self.oRange = oRange;
			self.oRange.select();
		}

		control.focus();
	};

	this.SaveSelectionRange = function ()
	{
		if (self.control.setSelectionRange)
		{
			var s	= self.control.selectionStart;
			var e 	= self.control.selectionEnd;

			self.rangePos = [s, e];
		}
		else if (document.selection)
		{
			self.oRange = document.selection.createRange().duplicate();
		}
	}

	// Initialize...
	this.HOnFocus	= this.control.onfocus ? this.control.onfocus : null;
	this.HOnChange  = this.control.onchange ? this.control.onchange : null;
	this.HOnMouseUp = this.control.onmouseup ? this.control.onmouseup : null;
	this.HOnKeyUp   = this.control.onkeyup ? this.control.onkeyup : null;

	this.control.onkeyup = function (evt)
	{
		evt = evt || window.event;
		self.SaveSelectionRange();
		if (self.HOnKeyUp) self.HOnKeyUp(evt);
	}

	this.control.onmouseup = function (evt)
	{
		evt = evt || window.event;
		self.SaveSelectionRange();
		if (self.HOnMouseUp) self.HOnMouseUp(evt);
	}

	this.control.onfocus = function (evt)
	{
		evt = evt || window.event;
		self.SaveSelectionRange();
		if (self.HOnFocus) self.HOnFocus(evt);
	};

	this.control.onchange = function (evt)
	{
		evt = evt || window.event;
		self.SaveSelectionRange();
		if (self.HOnChange) self.HOnChange(evt);
	};
	//this.SaveSelectionRange();
}