﻿var Basket = {
	basketHolder: null,
	onRefresh: null,
	init: function(basketHolderId, onRefresh) {
		Basket.basketHolder = $("#" + basketHolderId);
		Basket.onRefresh = onRefresh;
		Basket.refresh();
	},
	getGoods: function() {
		var goodIds = [];
		for (var i = 0; i < Goods.length; i++) {
			if ($.cookie("good_" + i) != null)
				goodIds.push({
					"id": i,
					"count": parseInt($.cookie("good_" + i))
				});
		}
		return goodIds;
	},
	getTotalCount: function() {
		var totalCount = 0;
		var goods = Basket.getGoods();

		for (var i = 0; i < goods.length; i++) {
			totalCount += goods[i].count;
		}
		return totalCount;
	},
	getTotalPrice: function() {
		var totalPrice = 0;
		var goods = Basket.getGoods();

		for (var i = 0; i < goods.length; i++) {
			totalPrice += Goods[goods[i].id].price * goods[i].count;
		}
		return totalPrice;
	},
	add: function(goodId, count) {
		if (Goods[goodId].outOfStock) {
			alert("К сожалению, этот товар сейчас отсутствует на складе.");
			return;
		}
		var totalCount = $.cookie("good_" + goodId) == null ? 0 : parseInt($.cookie("good_" + goodId));
		$.cookie("good_" + goodId, totalCount + count);

		$.noticeAdd({
			text: "Товар добавлен в корзину",
			stay: false
		});
		
		Basket.refresh();
	},
	remove: function(goodId, count) {
		if (typeof count == "undefined") {
			$.cookie("good_" + goodId, null);
		} else {
			var totalCount = $.cookie("good_" + goodId) == null ? 0 : parseInt($.cookie("good_" + goodId));
			if (totalCount > 0 && totalCount - count > 0)
				$.cookie("good_" + goodId, totalCount - count);
			else
				$.cookie("good_" + goodId, null);
		}
		Basket.refresh();
	},
	clear: function() {
		if (confirm("Уверены, что хотите очистить корзину?")) {
			Basket.clearWithoutConfirm();
		}
	},
	clearWithoutConfirm: function() {
		for (var i = 0; i < Goods.length; i++) {
			$.cookie("good_" + i, null);
		}
		Basket.refresh();
	},
	refresh: function() {
		var totalCount = Basket.getTotalCount();

		if (totalCount == 0)
			Basket.basketHolder.html("<img src=\"/img/basket_icon.gif\" width=\"20\" height=\"17\" style=\"vertical-align:middle\"/>&nbsp;Ваша корзина пуста");
		else
			Basket.basketHolder.html("<img src=\"/img/basket_icon.gif\" width=\"20\" height=\"17\" style=\"vertical-align:middle\"/>&nbsp;Товаров в корзине: " + totalCount + ", на сумму " + Basket.getTotalPrice() + " руб.<br/><a href=\"/order.aspx\" class=\"menuLink\">Оформить заказ</a>&nbsp;&nbsp;&nbsp;<a href=\"\javascript:Basket.clear()\" class=\"menuLink\">Очистить корзину</a>");

		if (typeof Basket.onRefresh == "function")
			Basket.onRefresh();
	}
};
