var Cart = Class.create(
{   
	initialize: function()
	{    
        var protocol = (("https:" == document.location.protocol) ? "https:" : "http:");
	    this._scriptUrl = protocol + '//' + window.location.hostname;
	},
        
    add: function(id, token)
    {   
        var script = document.createElement('script');
        script.id = 'cartScript';
        script.src = this._scriptUrl + '/cart/add?ItemId=' + id + '&Token=' + token;
        document.body.appendChild(script);
    },
    
    remove: function(id, token)
    {   
        var script = document.createElement('script');
        script.id = 'cartScript';
        script.src = this._scriptUrl + '/cart/remove?ItemId=' + id + '&Token=' + token;
        document.body.appendChild(script);
    },
    
    refreshCartHeader: function(numberOfItems)
    {   
        // update the cart header
        var numberOfItemsText = numberOfItems == 1 ? '1 item' : numberOfItems + ' items';
        $('cartHeaderItems').update(numberOfItemsText);
        
    },
    
    refreshCartBlock: function(responseText)
    {   
        // update the cart block and remove that cart script
        $('quoteList').update(responseText);
    },
    
    refreshCartAfterAdd: function(response)
    {
        var itemId = response.id;
        var numberOfItems = response.numberOfItems;
        var responseText = response.result;
        
        this.refreshCartHeader(numberOfItems);
        this.refreshCartBlock(responseText); 
        new Effect.Highlight('cartItem_' + itemId, { duration: 5.0, endcolor: '#ffdf3f' });
        
        $('cartScript').remove();
    },
    
    refreshCartAfterRemoval: function(response)
    {
        
        var numberOfItems = response.numberOfItems;
        var responseText = response.result;
        
        this.refreshCartHeader(numberOfItems);
        this.refreshCartBlock(responseText);
        
        $('cartScript').remove();
    }
});

var cart = new Cart();

document.observe('dom:loaded', function() 
{
});
