// Copyright (C) 2003 PowerUp ASP Limited. All rights reserved.

function __WebTree_ImageExpand(element, imageSrc, expandedImageSrc)
{
	var image = document.getElementById(element);

	if (__WebTree_EndsWith(image.src, imageSrc))
		image.src = __WebTree_Replace(image.src, imageSrc, expandedImageSrc);
	else
		image.src = __WebTree_Replace(image.src, expandedImageSrc, imageSrc);
}

function __WebTree_ExpandSingle(element)
{
	var row = document.getElementById(element);
	
	var table = row.parentNode;
		
	if (table != null && table.rows != null)
	{
		for (var i = 0; i < table.rows.length; i++)
		{
			var child = table.rows[i];
		
			if (child.id.length > 1)
			{
				if (child == row)
					__WebTree_Expand(child.id);
				else if (__WebTree_IsExpanded(child))
					__WebTree_Expand(child.id);
			}
		}
	}
}

function __WebTree_PreLoadImage(src)
{
	var image = new Image();
	
	image.src = src;
}

function __WebTree_EndsWith(text, match)
{
	var index = text.toLowerCase().lastIndexOf(match.toLowerCase());
	
	if (index > -1)
		return index == text.length - match.length;
	
	return false;
}

function __WebTree_IsExpanded(row)
{
	return new String(row.style["display"]).toLowerCase() != "none";
}

function __WebTree_Expand(element)
{
	var row = document.getElementById(element);
	
	if (row == null)
		return;
	
	var image = document.getElementById(element + "__img");
	
	if (image == null)
		return;
		
	var expanded = __WebTree_IsExpanded(row);
	
	row.style["display"] = expanded ? "none" : "";

	if (expanded)
		image.src = __WebTree_Replace(image.src, "Minus", "Plus");
	else
		image.src = __WebTree_Replace(image.src, "Plus", "Minus");
	
	var id = element + "__exp";
	
	for (var i = 0; i < document.forms.length; i++)
	{
		var field = document.forms[i][id];
		
		if (field != null)
		{
			field.value = expanded ? "N" : "Y";
			
			break;
		}
	}
}

function __WebTree_Replace(text, match, replacement)
{
	var index = text.toLowerCase().lastIndexOf(match.toLowerCase());
	
	if (index > -1)
	{
		var start = text.substring(0, index);
	
		var end = text.substring(index + match.length);
		
		text = start + replacement + end;
	}
	
	return text;
}