/**
	MyST Topic Cloud JavaScript Library
	Copyright (C) 2005 MyST Technology Partners, All rights reserved.
	$Header: topic-cloud.js, 6, 11/15/08 8:50:35 PM, F. Andy Seidl$
 **/
var g_qb         = null;
var g_qm_default = "wmatch";

function setQb(qb_)
{
	g_qb = qb_;
}

function search()
{
	var q = Trim(document.FORM.q.value);
	if (q == "")
	{
		document.FORM.q.disabled  = true;
		document.FORM.qm.disabled = true;
	}
	else if (g_qb != null) 
	{
		q = q.replace(/[ ]+/g, "+");
		document.FORM.action = g_qb + "/" + escape(q);
		document.FORM.q.disabled = true;
	}

	if (document.FORM.qm.value == g_qm_default)
	{
		document.FORM.qm.disabled = true;
	}

	document.FORM.submit();
}

function q(keyword_)
{
	document.FORM.q.value   = keyword_;
	document.FORM.qm.value  = g_qm_default;
	search();
}

function resetOptions()
{
	document.FORM.q.value                = "";      
	document.FORM.qm.value               = g_qm_default;
	document.FORM.matchCase.checked      = false;   
	document.FORM.showNormal.checked     = false;    
	document.FORM.showNone.checked       = false;   
	document.FORM.showOption.checked     = false;   
	document.FORM.showCreatedBy.checked  = false;   
	document.FORM.showModifiedBy.checked = false;   
	document.FORM.showCreateDate.checked = false;   
	document.FORM.showModifyDate.checked = false;   
}

function advancedSearch()
{
	var dlg = getObj("ID_AdvControls");
	if (dlg.style.display == "")
	{
		dlg.style.display="none";
	}
	else
	{
		dlg.style.display="";
	}
}

function topCloud()
{
	resetOptions();
	search();
}

function j(id_)
{
	to();
	o(id_, "");
	jump(id_);
}

function t(id_)
{
	update(id_, null);
}

function o(id_)
{
	update(id_, "");
}

function tt()
{
	update("ID_TaxonomyFolder", null);
}

function to()
{
	update("ID_TaxonomyFolder", "");
}

function update(id_, display_)
{
	var dt = getObj(id_);
	if (dt != null)
	{
		var micro = null;
		var imgs  = dt.getElementsByTagName("IMG");
		var i;

		for (i=0; i < imgs.length; i++)
		{
			var img = imgs[i];

			if (img.className == "micro")
			{
				micro = img;
				break;
			}
		}

		var node = dt.nextSibling;
		while (node != null)
		{
			if (node.nodeName == "#text")
			{
				// ignore
			}
			else if (node.nodeName == "DD")
			{
				if (display_ == null)
				{
					if (node.style.display == "")
					{
						display_ = "none";
					}
					else
					{
						display_ = "";
					}
				}

				if (display_ == "")
				{
					node = cacheFixup(node);
				}

				node.style.display = display_;

			}
			else
			{
				break;
			}
			
			node = node.nextSibling;
		}

		if (micro != null)
		{
			if (display_ == "")
			{
				micro.src = micro.src.replace("-open.jpg", "-close.jpg");
			}
			else
			{
				micro.src = micro.src.replace("-close.jpg", "-open.jpg");
			}
		}
	}
}

var g_TC_NodeCache = null;

function cacheFixup(node_)
{
	var resultNode = node_;

	if (g_TC_NodeCache == null)
	{
		g_TC_NodeCache = getObj("ID_TC_NodeCache");
	}

	if (g_TC_NodeCache != null)
	{
		var className = node_.className;
		if (className != null)
		{
			var aMatch = className.match("([cpo])-(.+)");
			if (aMatch)
			{
				var prefix = aMatch[1];
				var id     = aMatch[2];

				var cachedNode = getObj(id);
				if (cachedNode != null)
				{
					resultNode = cachedNode.cloneNode(true);
					resultNode.removeAttribute("id");

					var arrow = null;
					if (prefix=="c")
					{
						arrow = "\u21D2 ";	// child arrow: rArr
					}
					else if (prefix=="p")
					{
						arrow = "\u2191 ";	// parent arrow: uarr
					}

					if (arrow != null)
					{
						var spans = resultNode.getElementsByTagName("SPAN");
						if (spans.length > 0)
						{
							var text = document.createTextNode(arrow);
							//bu.safeReplaceNode(text, spans[0]);
							spans[0].appendChild(text);
						}
					}

					bu.safeReplaceNode(resultNode, node_);
				}
			}
		}
	}

	return resultNode;
}

var g_HelpVisible = false;

function toggleHelp()
{
	g_HelpVisible = !g_HelpVisible;
	updateHelpPanes(g_HelpVisible);
}

function updateHelpPanes(bVisible_)
{
	showPane("ID_Help_AdvControls", bVisible_);
	showPane("ID_Help_Cloud",       bVisible_);
	showPane("ID_Help_Taxonomy",    bVisible_);
	showPane("ID_Help_ContentXref", bVisible_);
}

function closePane(id_)
{
	g_HelpVisible = false;
	showPane(id_, false);
}

function showPane(id_, bVisible_)
{
	var pane = getObj(id_);
	if (bVisible_)
	{
		setDisplay(pane, "");
	}
	else
	{
		setDisplay(pane, "none");
	}
}

