var frontEndBasket = {
	replaceBasket : function(id) {
		return function(e) {
			var text, rem_item = true, item_total_price;
			if (e.summary.amount > 0) {
				text = e.summary.price.actual + ' ' + e.summary.price.suffix + '.';
				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 + ' ' + item["total-price"].suffix + '.';
					}
				}
				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) {
					jQuery("<div/>", {
						"id": "add_options",
						"class": "infoblock",
						html: "<div class=\"title\">\
							<img src=\"/images/cms/eip/close.png\" alt=\"Закрыть\" title=\"Закрыть\" />\
							<h2>Выбор опций</h2></div><div class=\"body\">"+data+"</div>"}).appendTo("body");
					var popup = jQuery('#add_options');
					var windowHeight = window.innerHeight || window.document.documentElement.offsetHeight;
					var topPosition  = $(window.document.documentElement).scrollTop() || $(window.document).scrollTop();
					topPosition      = topPosition + (windowHeight - popup.height()) / 2;
					popup.css('top', topPosition+ 'px');
					jQuery('div.title img', '#add_options').click(function(){popup.remove();});
				}
			});
		}
		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));
	}
};

function number_format( number, decimals, dec_point, thousands_sep ) {	// Format a number with grouped thousands
	var i, j, kw, kd, km;

	if( isNaN(decimals = Math.abs(decimals)) ){
		decimals = 2;
	}
	if( dec_point == undefined ){
		dec_point = ",";
	}
	if( thousands_sep == undefined ){
		thousands_sep = ".";
	}

	i = parseInt(number = (+number || 0).toFixed(decimals)) + "";

	if( (j = i.length) > 3 ){
		j = j % 3;
	} else{
		j = 0;
	}

	km = (j ? i.substr(0, j) + thousands_sep : "");
	kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
	//kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).slice(2) : "");
	kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");


	return km + kw + kd;
};
