/**
	@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() {
		Panagora.CartComponent.updateShipmentPromo();
	}
	
	this.updateShipmentPromo = function _updateShipmentPromo() {
		var limit = typeof(freeshippinglimit) == "undefined" ? 0 : freeshippinglimit;
		if (limit != 0) {
			gui.CampaignTotal = limit;
			gui.CartTotal = $j('#sub-totals .totals .total').text().replace(/,/g,'.').replace(/[^0-9\.]/g,'');
	
			var remaining = parseFloat(gui.CampaignTotal) - parseFloat(gui.CartTotal);
	
			if (remaining <= 0) {
				$j('#shipping-campaign-total-1').text(remaining);
				$j('.shipping-1').hide();
			 	$j('.shipping-2').show();
			} else {
				$j('#shipping-campaign-total-1').text(remaining);
				$j('.shipping-1').show();
			 	$j('.shipping-2').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) {
				checkForRedirectPayment(data);
			}
		} else if (typeof data == 'string') {
			$j('.cart-component').replaceWith(data);
			Panagora.CartComponent.updateShipmentPromo();
		}
	}

	Panagora.ready(init);
}))();