if (typeof(eCartPanelObject) == 'undefined') 
{
    eCartPanelObject = function(objectName, ajaxEventUID)
    {
        this.objectName    = objectName;
    	this.container     = '#' + objectName;
    	this.updateControl = '#' + objectName + '_update';
    	this.clearControl  = '#' + objectName + '_clear';
    	
    	this.cartManager = new eCartManagerObject(objectName + '__ajaxEventUID', ajaxEventUID);  
    }
}
eCartPanelObject.prototype.init = function()
{
    var currentObject = this;
    
    $(this.clearControl).bind('click', function() {
        currentObject.clear();
    });
    
    $(this.updateControl).bind('click', function() {
        currentObject.update();        
    });
    
    $('input[id^="' + this.objectName + '_quantity"]').setEnterHandler(function() { currentObject.update() } );		    
}
eCartPanelObject.prototype.setInfoPanel = function(infoPanelObject)
{
	this.cartManager.setInfoPanel(infoPanelObject);
}
eCartPanelObject.prototype.setCartPanel = function(cartPanelObject)
{
	this.cartManager.setCartPanel(cartPanelObject);
}
eCartPanelObject.prototype.loadInfo = function(content)
{
	$(this.container).html(content);
}
eCartPanelObject.prototype.clear = function()
{
	this.cartManager.clear();
}
eCartPanelObject.prototype.remove = function(id)
{
	this.cartManager.removeItem(id);
}
eCartPanelObject.prototype.update = function()
{
    var quantities = {};
    
    var valid = true;
    
    $('input[id^="' + this.objectName + '_quantity"]').each(function() {

	    if (!valid) return;
	    
	    quantity = $(this).val();

    	var reg = /^[0-9]*$/;
	    if (!reg.test(quantity) || (quantity <= 0))
	    {
	        alert('Please enter a valid quantity!'); 
	        $(this).focus();
	        
	        valid = false;
	    }
	    quantities[$(this).attr('name')] = quantity;
	});
	
    if (valid)
    {
    	this.cartManager.updateItems(quantities);	        
    }
}