function ToggleItems(WindowID)
{
    var Container = document.getElementById(WindowID);
    
    if (typeof Container != "undefined")
    {
		var Elements = Container.getElementsByTagName('DIV');
		
        for (var Iterator = 0 ; Iterator < Elements.length ; Iterator++) 
        {
            var Item = Elements[Iterator];
			switch (Item.className)
			{
				case 'linkerHeader':
					ToggleControl(Item.getElementsByTagName('DIV')[0]);
					break;
				case 'linkerItem':
					ToggleVisibility(Item);
			}
        }
        SaveToggleState(WindowID);
    }
}

function GetToggleState(WindowID)
{
    var Cookie = document.cookie.toString();

    var Position = Cookie.indexOf(WindowID);
    if (Position == -1)
        return "false";
    
    var EndPosition = Cookie.indexOf(';', Position);
    if (EndPosition == -1)
        EndPosition = Cookie.length;

    return Cookie.substring(Position + WindowID.length + 1, EndPosition);    
}

function SaveToggleState(WindowID)
{
    var State = (GetToggleState(WindowID) == "false")? true : false;

    var Now = new Date();
	var ExpireDate = new Date();
	ExpireDate.setTime(Now.getTime() + 3600000 * 24 * 365);
     
    document.cookie = WindowID + "=" + State + ";expires=" + ExpireDate.toGMTString();
}

function ToggleControl(Container)
{
	for (var Iterator = 0 ; Iterator < Container.childNodes.length ; Iterator++) 
	{
    	var Element = Container.childNodes[Iterator];
		switch (Element.nodeName)
		{
			case 'IMG':
				ToggleControlImage(Element)
				break;
			case '#text':
				if (Element.nodeValue == 'X' || Element.nodeValue == '[]')
				{
					ToggleControlText(Element);
				}
		}
	}
}

function GetHiddenSibling(Element)
{
    var Parent = Element.parentNode;
    for (var Iterator = 0 ; Iterator < Parent.childNodes.length ; Iterator++)
    {
        if (Parent.childNodes[Iterator].nodeName == Element.nodeName && Parent.childNodes[Iterator].style.display == "none")
            return Parent.childNodes[Iterator];
    }
    return null;
}

function ToggleControlImage(Element)
{
    var AltElement = GetHiddenSibling(Element);
    if (AltElement != null)
    {
        var OldSource = Element.src;
        Element.src = AltElement.src;
        AltElement.src = OldSource;
    }
}

function ToggleControlText(Element)
{
    Element.nodeValue = (Element.nodeValue == "X")? "[]" : "X";
}

function ToggleVisibility(Element)
{
    Element.style.display = (!Element.style.display || Element.style.display == "block")? "none" : "block";
}
