var Cart = {
	cart : Array(),
	init : function() {
		if ($.cookie('cart')) {
			this.cart = JSON.parse($.cookie('cart'));
		}
	},
	add : function(id, title, count, price, unit) {
		this.init();
		var good = this.find(id);
		if (good !== false) {
			this.remove(id);
		}
		if (id && count && price && count>0 && price>=0) {
			this.cart.push({'id': id, 'title': title, 'count': Math.round(count*1000)/1000, 'price': price, 'unit': unit});
		}

		$.cookie('cart', JSON.stringify(this.cart), {path: '/', expires: 14});
		this.afterFunc();
	},
	setCount : function(id, count) {
		this.init();
		var good = this.find(id);
		if (good !== false) {
			this.cart[good].count = count;
			$.cookie('cart', JSON.stringify(this.cart), {path: '/', expires: 14});
			this.afterFunc();
			return true;
		}
		else {
			return false;
		}
	},
	giveMeMore : function(id, title, count, price, unit) {
		this.init();
		var good = this.find(id);
		if (good !== false) {
			this.setCount(id, Math.round((count*1 + this.cart[good].count*1)*10000)/10000);
		}
		else {
			this.add(id, title, count, price, unit);
		}
	},
	remove : function(id) {
		this.init();
		for ( var good in this.cart) {
			if (this.cart[good].id == id) {
				this.cart.splice(good, 1);
			}
		}
		$.cookie('cart', JSON.stringify(this.cart), {path: '/', expires: 14});
		this.afterFunc();
	},
	find : function(id) {
		this.init();
		for (var good in this.cart) {
			if (this.cart[good].id == id) {
				return good;
			}
		}
		return false;
	},
	afterFunc : function() {
		this.init();
		if (Cart.cart.length > 0) {
			var str = '';
			var total = 0;
			for ( var i = 0; i < Cart.cart.length; i++) {
				var good = Cart.cart[i];
				str += '<tr><td>'+good.title+'</td><td class="cart-amount">'+good.count+' '+good.unit+'</td></tr>';
				total += Math.round(good.count*good.price*100)/100;
			}
			$('#clearcart').show();
			$('#cart-table').html(str);
			$('#cart-total, #cart-total2').text(Math.round(total*100)/100);
		}
	}
};
