document.getElementsByClassName = function(clsName){    
var retVal = new Array();    
var elements = document.getElementsByTagName("*");    
for(var i = 0;i < elements.length;i++){        
	if(elements[i].className.indexOf(" ") >= 0){            
		var classes = elements[i].className.split(" ");            
		for(var j = 0;j < classes.length;j++){                
			if(classes[j] == clsName)                    
				retVal.push(elements[i]);            
			}        
		}        
	else if(elements[i].className == clsName)            
		retVal.push(elements[i]);    
	}    return retVal;
}

function findChildren(obj,type,value)
{
	var children=obj.childNodes;
	var tmp=new Array();
	for (var i=0; i<children.length; i++)
	{
	if (eval("children[i]."+type+"==\""+value+"\"")) tmp[tmp.length]=children[i];
	tmp=tmp.concat(findChildren(children[i],type,value));
	}
	return tmp;
}
function findParent(obj,type,value)
{
	var parent=obj.parentNode;
	var tmp=null;
	if (parent!=null)
	{
	if (eval("parent."+type+"==\""+value+"\"")) tmp=parent;
	else tmp=findParent(parent,type,value);
	}
	return tmp;
}
function OpenFolder(obj) //obj must be LI. OpenFolder will open all parents too
{
	if (document.getElementById(obj)!=null) obj=document.getElementById(obj);
	var afoldercontent=findChildren(obj,"tagName","UL");
	afoldercontent[0].style.display="";
	var i;
	var aicon=findChildren(obj,"tagName","IMG");
	for (i=0; i<aicon.length; i++)
	{
	if (aicon[i].className=="treeicon") aicon[i].src="Images/minus.gif";
	break;
	}
	var parent=findParent(obj,"tagName","LI");
	while (parent!=null)
	{
	OpenFolder(parent);
	parent=findParent(parent,"tagName","LI");
	}
}
function CloseFolder(obj) //obj must be LI. CloseFolder will only close current tree.
{
	if (document.getElementById(obj)!=null) obj=document.getElementById(obj);
	var afoldercontent=findChildren(obj,"tagName","UL");
	afoldercontent[0].style.display="none";
	var i;
	var aicon=findChildren(obj,"tagName","IMG");
	for (i=0; i<aicon.length; i++)
	{
	if (aicon[i].className=="treeicon") aicon[i].src="Images/plus.gif";
	break;
	}
}
function ToggleFolder(obj)
{
	if (document.getElementById(obj)!=null) obj=document.getElementById(obj);
	if (obj.className!="treefolder") return false;
	obj.blur();
	obj=findParent(obj,"tagName","LI");
	var afoldercontent=findChildren(obj,"tagName","UL");
	if (afoldercontent[0].style.display=="none") 
		OpenFolder(obj);
	else 
		CloseFolder(obj);
}
function ActivateItem(obj)
{
	if (document.getElementById(obj)!=null) obj=document.getElementById(obj);
	if ((obj.className!="treeitem") && (obj.className!="treefolder")) return false;
	if (obj.className=="treefolder")
	{
	var objli=findParent(obj,"tagName","LI");
	OpenFolder(objli);
	}
	if (obj.className=="treeitem")
	{
	var objli=findParent(obj,"tagName","LI");
	objli=findParent(objli,"tagName","LI");
	OpenFolder(objli);
	}
	// highlight the item
	obj.style.color="white";
	obj.style.background="#D1B6AF";
}
