/**
 * NavList 990702
 * by nigel white March, 2001
 *
 *  To create a navigation bar
 *
 *  Main = new NavList();
 *
 *  then to create a link:
 *  Main.addItem(String Text, String URL)
 *
 *  or to create a new level:
 *  Sub = new NavList(String HeaderText);
 *  Sub.addItem(String Text, String URL);
 *  Main.addItem(Sub);
 *  
 *  finally to output the DIV containing the navigation list:
 *  main.createNavList()
 */
var nonword = new RegExp("\\W");    // Create IDs on the fly by removing non-printables from text
var NavlistWidth = 220;
//var debug = window.open("","");
var linkids = new Array();

function NavList()
{
    var args = NavList.arguments;
    if (args.length == 0)
    {
        this.TopLevel = true;
    }
    else
    {
        this.TopLevel = false;
    }
    
    if (!this.TopLevel)
    {
        var IdentString = args[0];
        IdentString = IdentString.replace(nonword, "");
        IdentString = IdentString.replace(" ", "");
        IdentString = IdentString.toLowerCase();
        var TmpID = IdentString;
        for (var i = 1; linkids[IdentString]; i++)
			IdentString = TmpID + i;
		linkids[IdentString] = true;
        this.Title = args[0];
        this.ListID = IdentString;
    }

    this.ItemIDs = new Array();
    this.ItemTitle = new Array();
    this.ItemLink = new Array();
    this.addItem = addItem;
    this.createNavList = createNavList;
}

function addItem(Title, Link)
{
    var i = this.ItemLink.length;
	var IdentString = Title;
	IdentString = IdentString.replace(nonword, "");
    IdentString = IdentString.replace(" ", "");
	IdentString = IdentString.toLowerCase();
/*    var TmpID = IdentString;
    for (var i = 1; linkids[IdentString]; i++)
    {
		IdentString = TmpID + i;
	}
	linkids[IdentString] = true;*/
	this.ItemIDs[i] = IdentString;
    this.ItemTitle[i] = Title;
    this.ItemLink[i] = Link;
}

function createNavList(ListIndentLevel, ListBackgroundColor)
{

	if (typeof(ListBackgroundColor) == "undefined")
		var ListBackgroundColor = 0x334477;
	if (typeof(ListIndentLevel) == "undefined")
		var ListIndentLevel = 0;

    if (this.TopLevel)
    {
		document.writeln("<style type=\"text/css\">");
        document.writeln("a {display:block;font-family:arial;font-size:80%;margin-bottom:2px;width:220px;text-decoration:none}");
        document.writeln("img {border:none;margin:none}");
		var i;
		for (i = 0; i < 10; i++)
		{
			var c = ListBackgroundColor.toString(16);
			document.writeln(".a" + i + " {background-color:#" + c +
				((i == 0) ? ";font-weight:bold;color:lightblue" : ";font-weight:normal;color:white") + "}");
			document.writeln(".a" + i + " * {margin-left:" + (i * 22) + "px}");
			ListBackgroundColor +=  0x181818;
		}
        document.writeln("a:hover {background-color:#2e8b57}");
        document.writeln("</style>");
        document.writeln("<div>");
        ListIndentLevel -= 1;
    }
    else
    {
		var Click = "\"expand('" + this.ListID + "');return false\"";
		document.writeln("<a class=\"a" + ListIndentLevel + "\" href=\"\" onclick=" + Click +  ">");
		document.writeln("<img id=\"" + this.ListID + "icon\" src=\"icons/TreeClosed.gif\">");
		document.writeln(this.Title);
		document.writeln("</a>");
		document.writeln("<div id=\"" + this.ListID + "links\" style=\"display:none\">");
    }

    for (var i = 0; i < this.ItemLink.length; i++)
    {
        if (typeof(this.ItemLink[i]) == "string")
        {
			document.writeln("<a class=\"a" + (ListIndentLevel + 1) + "\" href=\"" + this.ItemLink[i] + "\">");
			document.writeln("<span>" + this.ItemTitle[i] + "</span>");
			document.writeln("</a>");
        }
        else
        {
            this.ItemLink[i].createNavList((ListIndentLevel + 1));
        }
    }

    document.writeln("</div>");
	if (this.TopLevel)
    {
	}
}

function expand(name)
{
	LinkDiv = document.getElementById(name + "links");
	IconImage = document.getElementById(name + "icon");
    if (LinkDiv.style.display == "none") // Open the links
    {
        IconImage.src = "icons/TreeOpen.gif";
        LinkDiv.style.display = "block";
    }
    else
    {
        IconImage.src = "icons/TreeClosed.gif";
        LinkDiv.style.display = "none";
    }
}
