var frontEndBasket = {
	replaceBasket: function (id) {
		return function (e) {
			var text, rem_item = true, item_total_price;
			var add_basket_button_text = 'Добавить в корзину';
			var detect_options = {};
			if (e.summary.amount > 0) {
				text = e.summary.price.actual;
				for (var i in e.items.item) {
					var item = e.items.item[i];
					if (item.id == id) {
						rem_item = false;
						item_total_price = item["total-price"].actual;
					}
					if (item.page.id == id) {
						if (detect_options.amount) {
							detect_options.amount = detect_options.amount + item.amount;
						}
						else detect_options = {'id':id, 'amount':item.amount};
					}
				}
				if (detect_options.amount) {
					var add_basket_button = jQuery('#add_basket_' + detect_options.id);
					if (add_basket_button[0].tagName.toUpperCase() == 'A') {
						add_basket_button.text(add_basket_button_text + ' (' + detect_options.amount + ')');
					}
					else add_basket_button.val(add_basket_button_text + ' (' + detect_options.amount + ')');
				}
				if (rem_item) {
					if (jQuery('.cart_item_' + id)) {
						jQuery('.cart_item_' + id).remove();
						jQuery('.cart_summary').text(text);
					}
				}
				else {
					jQuery('.cart_item_price_' + id).text(item_total_price);
					jQuery('.cart_summary').text(text);
				}
				text = e.summary.amount + ' шт товаров на сумму ' + text;
			}
			else {
				text = 'В корзине нет ни одного товара.';
				if (jQuery('.basket')) {
					jQuery('.basket').text(text);
				}
			}
			jQuery('.basket_info_summary').text(text);
		};
	},
	add: function (id, form, popup) {
		var e_name, options = {};
		if (form) {
			var elements = jQuery(':radio:checked', form);
			for (var i = 0; i < elements.length; i++) {
				e_name = elements[i].name.replace(/^options\[/, '').replace(/\]$/, '');
				options[e_name] = elements[i].value;
			}
		}
		basket.putElement(id, options, frontEndBasket.replaceBasket(id));
		if (popup) jQuery('#add_options').remove();
	},
	addFromList: function (id, is_options) {
		if (is_options) {
			jQuery.ajax({
				url: '/upage//' + id + '?transform=modules/catalog/popup-add-options.xsl',
				dataType: 'html',
				success: function (data) {
					frontPopup({
						id: 'add_options',
						header: 'Выбор опций',
						width: '400px',
						content: data
					});
				}
			});
		}
		else {
			frontEndBasket.add(id);
		}
	},
	modify: function (id, amount_new, amount_old) {
		if (amount_new.replace(/[\d]+/) == 'undefined' && amount_new != amount_old) {
			basket.modifyItem(id, { amount: amount_new }, frontEndBasket.replaceBasket(id));
		}
	},
	remove: function (id) {
		basket.removeItem(id, frontEndBasket.replaceBasket(id));
	}
};
