function controlTsrBody(tsrBodyDivId, status)
{
	var body = "";
	var bodyClose = "";
	var bodyOpen = "";
	if (document.getElementById)
	{
		body = document.getElementById(tsrBodyDivId);
		bodyOpen = document.getElementById(tsrBodyDivId + '_open_ctrl');
		bodyClose = document.getElementById(tsrBodyDivId + '_close_ctrl');
	}
	else if (document.all)
	{
		body = document.all[tsrBodyDivId];
		bodyOpen = document.all[tsrBodyDivId + '_open_ctrl'];
		bodyClose = document.all[tsrBodyDivId + '_close_ctrl'];
	}
	if (body == null || bodyOpen == null || bodyClose == null)
	{
		return; 
	}
	if (status == "open")
	{
		body.style.display = "block";
		bodyClose.style.display = "block";
		bodyOpen.style.display = "none";
	}
	else if (status == "close")
	{
		body.style.display = "none";
		bodyClose.style.display = "none";
		bodyOpen.style.display = "block";
	}
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

function f_CollapseObj(objId, collapsed_cssclass)
{
	var obj = getObjByID(objId);
	if (!Element.hasClassName(obj, collapsed_cssclass))
		Element.addClassName(obj, collapsed_cssclass);
	}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

function f_ExpandObj(objId, collapsed_cssclass)
{
	var obj = getObjByID(objId);
	//if (Element.hasClassName(obj, collapsed_cssclass))
	Element.removeClassName(obj, collapsed_cssclass);
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

function getObjByID(Id)
{
	if (document.getElementById)
		return document.getElementById(Id);
	else if (document.all)
		return document.all[Id];
	else
		return null;
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

String.prototype.trim = function()
{
	return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

function f_CollapseObj(objId, collapsed_cssclass) //, btnID, btn_cssclass)
{
	var obj = getObjByID(objId);
	if (obj.className.indexOf(collapsed_cssclass) == -1)
		obj.className += " " + collapsed_cssclass;

	/*if (btnID)
	{
	f_CollapseObj(btnID, btn_cssclass);
	}*/
	//obj.className = obj.className.trim();
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

function f_ExpandObj(objId, collapsed_cssclass) //, btnID, btn_cssclass)
{
	var obj = getObjByID(objId);
	obj.className = obj.className.replace(eval("/" + collapsed_cssclass + "/g"), "").trim(); // OR -->   obj.className = obj.className.replace(eval("/ " + collapsed_cssclass + "/g"), "");
	
	/*if (obj.className.indexOf(collapsed_cssclass) > -1)
	{
	obj.className = obj.className.replace(collapsed_cssclass, "").trim();
	}*/
	/*if (btnID)
	{
	f_ExpandObj(btnID, btn_cssclass);
	}*/
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

function f_ToggleObj(objId, collapsed_cssclass) //, btnID, btn_cssclass)
{
	var obj = getObjByID(objId);
	//alert(objId);
	//alert(collapsed_cssclass);
	if (obj.className.indexOf(collapsed_cssclass) > -1)
	{
		f_ExpandObj(objId, collapsed_cssclass); //, btnID, btn_cssclass);
	}
	else
	{
		f_CollapseObj(objId, collapsed_cssclass); //, btnID, btn_cssclass);
	}
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

function f_ToggleAllSpans(collapsed_cssclass, mode)
{
	var spans = getObjByID('divStatus').getElementsByTagName('SPAN');
	for (var i = 0; i < spans.length; i++)
	{
		if (spans[i].id != '')
		{
			if (mode == 1)
				f_CollapseObj(spans[i].id, collapsed_cssclass);
			else if (mode == 2)
				f_ExpandObj(spans[i].id, collapsed_cssclass);
			else
				f_ToggleObj(spans[i].id, collapsed_cssclass);
		}
	}
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */




//function copyToClipboard_(id)
//{
//  alert("copyToClipboard: " + id);
//  
//  document.getElementById("holdtext").innerText = document.getElementById(id).innerText;
//  Copied = document.getElementById("holdtext").createTextRange();
//  Copied.execCommand("Copy");
//}

function copyToClipboard(id)
{
	alert("copyToClipboard Adv: " + id);
	
	var text = getObjByID(id).innerText;

	alert(text);
	
	// IE
	if (window.clipboardData)
	{
		window.clipboardData.setData("Text", text);
	}
	else if (window.netscape)
	{
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

		var clip = Components.classes['@mozilla.org/widget/clipboard;1']
					.createInstance(Components.interfaces.nsIClipboard);
		if (!clip) return;

		var trans = Components.classes['@mozilla.org/widget/transferable;1']
					.createInstance(Components.interfaces.nsITransferable);
		if (!trans) return;

		trans.addDataFlavor('text/unicode');

		var str = new Object();
		var len = new Object();

		var str = Components.classes["@mozilla.org/supports-string;1"]
					.createInstance(Components.interfaces.nsISupportsString);
		var copytext = text;

		str.data = copytext;

		trans.setTransferData("text/unicode", str, copytext.length * 2);

		var clipid = Components.interfaces.nsIClipboard;
		if (!clip) return false;

		clip.setData(trans, null, clipid.kGlobalClipboard);
	}
}
		
