
var shoppingBags = new Hash();

var showShoppingBag = function(id, closeTime, openType) 
{
    var bag = shoppingBags.get('bag_' + id);

    if(bag.openType != 'fixed')
        bag.openType = openType;

    bag.closeTime = closeTime;

    if(bag.state == 'closed')
    {
        bag.state = 'opening';
        Effect.BlindDown(id, 
            {
                duration:0.2,
                afterFinish: function(e) { 
                        var bag = shoppingBags.get('bag_' + e.element.id);
                        bag.state = 'open';
                        bag.showLink.innerHTML = 'Hide';
                        if(bag.openType == 'autoclose')
                        {
                            bag.timeoutId = setTimeout("autoCloseShoppingBag('" + bag.bagId +"');", bag.closeTime);         
                        }
                    }
            });
    }
    else if(bag.state == 'open' && (openType == 'close' || openType == 'fixed'))
    {
        if(bag.timeoutId != 0)
        {
            clearTimeout(bag.timeoutId);
            bag.timeoutId = 0;
        }
            
        bag.state = 'closing';
        bag.openType = 'none';
        Effect.BlindUp(id, 
            {
                duration:0.2,
                afterFinish: function(e) { 
                        var bag = shoppingBags.get('bag_' + e.element.id);
                        bag.state = 'closed';
                        bag.showLink.innerHTML = 'Show';
                    }
            });
    } 
    else if(bag.state == 'open' && (bag.openType == 'fixed'))
    {
        bag.state = 'opening';
        Effect.BlindDown(id, 
            {
                duration:0.2,
                afterFinish: function(e) { 
                        var bag = shoppingBags.get('bag_' + e.element.id);
                        bag.state = 'open';
                        bag.showLink.innerHTML = 'Hide';
                    }
            });
    }

}

var autoCloseShoppingBag = function(id)
{
    showShoppingBag(id, 0, 'close');
}

var initializeShoppingBag = function(id, link) 
{
    shoppingBags.set('bag_' + id, { bagId: id, state: 'closed', openType: 'none', showLink: prototypeJs(link), closeTime:3, timeoutId:0});
}
