var Cart = {

	proccessorUri: cart_proc_url,
	showOverlay: true,
	successMessage: 'Добавление в корзину прошло успешно...',
	
	add: function(id, type, namet, anchor) {
		
		var self = this;
		
		var quantity = 1;
		

		if(anchor) {
			jQuery(anchor).addClass('in_process');
			jQuery(anchor).blur();
		}

		var options = {id: id, quantity: quantity, action: 'add', type: type};
		this.proccessSending(namet, options, 0, function(transport) {
			var newQuantity = parseInt(transport.responseText.replace("ok\n", ''));

			self.updateItemCartLabel(newQuantity, id, type);
			self.updateCartBlock(0);

			if(anchor) {
				jQuery(anchor).removeClass('in_process');
			}
		});
	},
	
	proccessSending: function(namet, parameters, noneMessage, callback) {
		var self = this;
		
		var options = {
			method: 'POST',
			parameters: parameters,
			
			onComplete: function(transport) {
				if(self.showOverlay) {
//					Messages.overlayHide();
				}
				
				if(transport.responseText.substring(0, 2) == 'ok') {
					if(self.showOverlay) {
						if (!noneMessage) {
							jQuery.growlUI('Товар '+namet+' добавлен в корзину');
//							alert('Товар '+namet+' добавлен в корзину');
						}	
					}
					
					if(typeof callback == 'function') {
						callback(transport);
					}
				} else {
					alert('Во время обращения к корзине произошла ошибка: ' + transport.responseText);
				}
			}
		};
		
		if(this.showOverlay) {
//			Messages.overlayShow_waitBox();
		}
		
		new Ajax.Request(Cart.proccessorUri + '?nocache=' + (new Date()).getTime(), options);		
	},

	updateItemCartLabel: function(newQuantity, id, type) {
		var cartLabel = $('in_cart' + id + '_' + type);
		if(!cartLabel.innerText) {
			cartLabel.hide();
			cartLabel.update(newQuantity +'&nbsp;шт.');
			new Effect.Appear(cartLabel, {duration: 1});
		} else {
			cartLabel.update(newQuantity +'&nbsp;шт.');
		}
		
		//$('how_many' + id).value = '';
	},
	
	multipleAdd: function() {
		var checked = $H();
		$A($$('input.quantity')).each(function(input) {
			if(parseInt(input.value) > 0) {
				checked[parseInt(input.id.replace('how_many', ''))] = parseInt(input.value);
			}
		});
		
		if(checked.keys().length == 0) {
			alert('Введите желаемое количество в специальных полях у товаров...');
			return false;
		}
		
		var options = {
			id: checked.keys().toString(),
			value: checked.values().toString(),
			action: 'addMultiple'
		}
		
		var self = this;
		
		this.proccessSending(' ', options, 0, function(transport) {
			var response = transport.responseText.replace("ok\n", '');
			response = response.split(',');
			
			$A(response).each(function(value) {
				var value = value.split(':');
				
				self.updateItemCartLabel(value[1], value[0]);
				
				new Effect.Highlight($('in_cart' + value[0]));
			});
			
			self.updateCartBlock(0);
		});
	},
	
	updateCartBlock: function(realCart) {
		var options = {
			action: 'getInfo'
		};
		var self = this;
		
		this.showOverlay = false;
		this.proccessSending('', options, 0, function(transport) {
			var response = transport.responseText.replace("ok\n", '');
			response = response.split("\n");
			
			// обновления мим-козины сверху
			$('cart_itemsCount').update(response[0] + '');
			$('cart_sum').update(response[1] + ' руб.');

			// Если это нормальная страница корзины
			if(realCart == 1) {
				// new naming
				// суммарное кол-во товаров
				$('сartTotalQty').update(response[0]);
				$('сartTotalCost').update(response[1]);

				//$('сartDeliveryId').update(response[3]);

				// информация по доставке
				if (response[4]) {
					$('сartDeliveryName').update(response[4]);
					$('сartDeliveryPrice').update(response[5]);
					$('сartDeliveryCost').update(response[2]);
				} else {
					$('сartDeliveryName').update('Доставка не выбрана');
					$('сartDeliveryPrice').update('-');
					$('сartDeliveryCost').update('-');
				}
			}
			//new Effect.Highlight($('cart_itemsCount'));
			//new Effect.Highlight($('cart_sum'));
			
			self.showOverlay = true;
		});
	},
	
	deleteItem: function(id) {
		if (!confirm('Вы уверены, что желаете удалить эту позицию из корзины?')) {
			return false;
		}
		
		var options = {
			action: 'deleteItem',
			id:	id
		};
		var self = this;
		
		this.successMessage = 'Удаление из корзины прошло успешно';
		this.proccessSending('', options, 0, function(transport) {
			/*if(Prototype.Browser.Gecko) {
				new Effect.Fade($('tritem' + id));
			} else {
			/**/
				$('tritem' + id).remove();
			//s}
		});	
		
		self.updateCartBlock(1);	
	},
	
	// deliveryId - id of Delivery entity
	setDelivery: function(deliveryId, detailsId) {
		var self = this;
		var quantity = 1;
		var type = 99;
		var options = {action: 'setDelivery', id: deliveryId, details_id: detailsId};
		this.proccessSending('', options, 1, function(transport) {
			self.updateCartBlock(1);
			
		});

/*
		// динамически меняем
		if (deliveryId)
		{
			// показываем строку с информацией о доставке
			$('deliveryRow').style.display = 'table-row';
			// отображаем информацию о доставке
			$('deliveryName').innerHTML = deliveryItem.name;
			$('deliveryPrice').innerHTML = deliveryItem.price;
			$('deliveryCost').innerHTML = deliveryItem.price;
		}
		else
		{
			// скрываем
			$('deliveryRow').style.display = 'none';
		}
*/

	},

	showSuccessMessage: function(name) {
		alert('Товар ' + name + ' добавлен в корзину');
		/*
		Lightview.show({ href: '#itemAdded', rel: 'inline', options: {
	      topclose: true, width: 300, height: 200
		 }});
		 /**/
	}
}
