function cancelBubble()
{
	if (window.event && window.event.cancelBubble)
		window.event.cancelBubble = "true";
}

function clickOnEntity(entityId)
{
	cancelBubble();

	var theEnt = document.getElementById(entityId);
	if (!theEnt) return;

	if(theEnt.title == "Open Node") expand(theEnt);
	else collapse(theEnt);
}

function expand(entity)
{
	var controlImage = document.getElementById("control_" + entity.id);
	if(controlImage && controlImage.title != "Close")
	{
		controlImage.title = "Close";
		controlImage.src = getReverseImg(controlImage.src);
	}
	if (entity.title) entity.title = "Close Node";

	for(var i = 0; i < entity.childNodes.length; i++)
	{
		if(entity.childNodes[i].nodeType == 1 && entity.childNodes[i].id.indexOf("node") == 0)
		{
	  		entity.childNodes[i].style.display = "";
		}
	}
}

function collapse(entity)
{
	var controlImage = document.getElementById("control_" + entity.id);
	if(controlImage && controlImage.title && controlImage.title != "Open")
	{
		controlImage.title = "Open";
		controlImage.src = getReverseImg(controlImage.src)
	}
	if (entity.title) entity.title = "Open Node";

	for(var i = 0; i < entity.childNodes.length; i++)
	{
		if(entity.childNodes[i].nodeType == 1 && entity.childNodes[i].id.indexOf("node") == 0)
		{
			entity.childNodes[i].style.display = "none";
		}
	}
}

function expandAll(entity)
{
	if (entity.title) entity.title = "Close Node";
	expand(entity);

	for(var i = 0; i < entity.childNodes.length; i++)
	{
		if(entity.childNodes[i].nodeType == 1 && entity.childNodes[i].id.indexOf("node") == 0)
		{
			expandAll(entity.childNodes[i]);
		}
	}
}

function collapseAll(entity)
{
	if (entity.title) entity.title = "Open Node";
	if (entity.id != "tree") collapse(entity);

	for(var i = 0; i < entity.childNodes.length; i++)
	{
		if(entity.childNodes[i].nodeType == 1 && entity.childNodes[i].id.indexOf("node") == 0)
		{
			collapseAll(entity.childNodes[i]);
//			collapse(entity.childNodes[i]);
		}
	}
}

function getReverseImg(theImgSrc)
{
	var tClosed = "_images/tree_Tplus.gif";
	var tOpen = "_images/tree_Tminus.gif"
	var lClosed = "_images/tree_Lplus.gif";
	var lOpen = "_images/tree_Lminus.gif"

	if (theImgSrc.indexOf(tClosed) > -1) return tOpen;
	else if (theImgSrc.indexOf(tOpen) > -1) return tClosed;
	else if (theImgSrc.indexOf(lClosed) > -1) return lOpen;
	else if (theImgSrc.indexOf(lOpen) > -1)	return lClosed;
}

