function getCartStateArray()
{
    var empty = new Array();

    var soc = document.cookie.indexOf("Cartstate=");
    if(soc != -1)
    {
        var eoc = document.cookie.indexOf(";", soc);
        if(eoc == -1)
            eoc = document.cookie.length;

        return(unescape(document.cookie.substring(soc+10, eoc)).split(";"));
    }
    return(empty);
}

function setCartStateArray(CartState)
{
    document.cookie = "Cartstate=" + escape(CartState.join(";"));
}

function restoreCartState(CartID)
{
    var Cartstate = getCartStateArray();
    var i, j, CartNodeName, CartElements;

    CartElements = document.getElementById(CartID).getElementsByTagName("div");
    for(i = 0; i < CartElements.length; i++)
    {
        var sosuffix = CartElements[i].id.indexOf('-add');
        if(sosuffix == -1)
            sosoffix = CartElements[i].id.indexOf('-cart');
        if(sosuffix != -1)
        {
            var nodeName = CartElements[i].id.substring(0, sosuffix);
            var found = false;

            for(j = 0; j < Cartstate.length; j++)
            {
                if(Cartstate[j] == nodeName)
                    found = true;
            }
            if(found == true)
            {
                document.getElementById(nodeName + '-add').style.display = 'none';
                document.getElementById(nodeName + '-cart').style.display = 'block';
            }
            else
            {
                document.getElementById(nodeName + '-add').style.display = 'block';
                document.getElementById(nodeName + '-cart').style.display = 'none';
            }
        }
    }
}

function removeNodeFromCartState(nodeName)
{
    var Cartstate = getCartStateArray();
    var newCartState = new Array();
    var i, CartNodeName;

    for(i = 0; i < Cartstate.length; i++)
    {
        CartNodeName = Cartstate[i];
        if(CartNodeName != nodeName)
            newCartState.push(CartNodeName);
    }
    setCartStateArray(newCartState);
}

function addNodeToCartState(nodeName)
{
    var Cartstate = getCartStateArray();
    var newCartState = new Array();
    var i, CartNodeName;

    for(i = 0; i < Cartstate.length; i++)
    {
        CartNodeName = Cartstate[i];
        if(CartNodeName == nodeName)
            return;
        newCartState.push(CartNodeName);
    }
    newCartState.push(nodeName);
    setCartStateArray(newCartState);
}

function CartToggle(CartNodeName, CartNodeState)
{
    if(CartNodeState == 'add')
    {
        addNodeToCartState(CartNodeName);
        document.getElementById(CartNodeName + '-add').style.display = 'none';
        document.getElementById(CartNodeName + '-cart').style.display = 'block';
    }
    else
    {
        removeNodeFromCartState(CartNodeName);
        document.getElementById(CartNodeName + '-add').style.display = 'block';
        document.getElementById(CartNodeName + '-cart').style.display = 'none';
    }
}

