/**
	@base Panagora.Class
	@constructor
	@author Niklas Bergius
*/
Panagora.CartComponent = new (Panagora.Class.create(
/** @lends Panagora.CartComponent */
function CartComponent() {
	var self = this;
	var gui = {};

	function init() {
		gui.totalsContainer = $j('#cart-component p.totals');
		gui.totals = $j('#cart-component span.totals');
		gui.emptyMessage = $j('#cart-component p.empty');
		
		if (gui.totalsContainer.attr('panagora:itemcount')*1 > 0)
			revealTotals();
	}
	
	function revealTotals() {
		gui.totalsContainer.show();
		gui.emptyMessage.hide();
	}
	
	function checkForRedirectPayment(data) {
		
		if (Panagora.Site.updateCartSubmitButton)
			Panagora.Site.updateCartSubmitButton(data.Cart.WillRedirect);
		
	}
	
	this.refresh = function refresh(data) {
		if (!data) {
			Panagora.post({
				url: '/cart/view',
				data: 'partial=',
				success: function (json) { refresh(json.Response); }
			});
			
			return;
		}
		
		if (typeof data == 'object') {
			if (data.Cart.Items.length > 0) {
				// show totals
				revealTotals();
				checkForRedirectPayment(data);
			}
			// update totals text
			gui.totals.text(data.TotalFormatted.InclVAT);
		} else if (typeof data == 'string') {
			$j('#cart-component').replaceWith(data);
			$j('#cart-component').show('highlight', {}, 1000);
		}
	}

	Panagora.ready(init);
}))();
