
jQuery(document).ready(function(){
	$('.cart-btn > a').click(function(){
		var cnt = jQuery('.product-table-list #count_for_' + jQuery(this).attr('rel')).val();
		move2Cart(this, cnt>1?cnt:1, 'pluss');
	});
	if($('#product-form')){
		$('input.amount').keyup(function(){
			var id = this.name.split('[');
			id = id[1].split(']');
			id = id[0];
			if(id){
				cartItemAction(id, this.value, 'equal');
			}
		})
	}
	
	if(jQuery('.product-table-list'))
	{
		jQuery('.product-table-list a.arrow-left').bind('click', function() {
			var id = jQuery(this).attr('rel');
			var cnt = jQuery('.product-table-list #count_for_' + id).val();
			cnt = isNaN(parseInt(cnt)) ? 1 : parseInt(cnt);
			cnt = cnt>1 ? cnt - 1 : 1;
			jQuery('.product-table-list #count_for_' + id).val(cnt);
			setNewPrice(id);
			return false;
		});

		jQuery('.product-table-list a.arrow-right').bind('click',function(){
			var id = jQuery(this).attr('rel');
			var cnt = jQuery('.product-table-list #count_for_' + id).val();
			cnt = isNaN(parseInt(cnt)) ? 1 : parseInt(cnt)+1;
			jQuery('.product-table-list #count_for_' + id).val(cnt);
			setNewPrice(id);
			return false;
		});
		
		function setNewPrice(id)
		{
			var cnt = jQuery('#count_for_' + id).val();
			var price = jQuery('#price_for_' + id).val();
			var total = (cnt*price).toFixed(2);
			jQuery('#price_total_for_' + id).html(total);
		}
	}
});


/*
*	Adding item to cart by sending Ajax request
*/
function move2Cart(item, howmuch, action){
	
	// possible actions with cart
	if(!in_array(action,new Array(
		'pluss'
	))) return;
	
	var obj = jQuery(item).parent().parent().parent().find('.image img:last');
	var itemId = jQuery(item).attr('rel');

	
	var cartItem = obj.clone();
	cartItem.css({
		opacity: '0.7',
		position: 'absolute',
		zIndex: '9999'
	});
	obj.before(cartItem);
	var cartDiv = jQuery('#path .cart');
	var left = cartDiv.offset().left - (cartItem.offset().left-cartItem.position().left) + cartDiv.width()/2;
	var top = cartDiv.offset().top - (cartItem.offset().top-cartItem.position().top);
	cartItem.animate({
		height: '20px',
		width: '20px',
		left: left + 'px',
		top: top + 'px'
	}, 1000, function() {
		cartItem.remove();
		
		cartDiv.animate({
			opacity: '0.1'
		}, 100, function() {
			cartAction( itemId, howmuch, action);
		});
	});

	
	return false;
}



function cartAction(itemId, howmuch, action){

	if(!in_array(action,new Array(
		'pluss', 'minuss', 'remove', 'equal'
	))) return;

	var cartDiv = jQuery('#path .cart');
	
	jQuery.ajax({
		type: "POST",
		url: "/ll/controller/ajax.cart",
		data: "action=" + action + "&itemId=" + itemId + "&howMuch=" + howmuch,
		success: function( resp ){
			cartDiv.html(resp);
			jQuery(cartDiv).animate({
				opacity: '1'
			}, 500, function(){
				
			});
			
		}
	});
	
}


function cartItemAction(itemId, howmuch, action){
	var tr = jQuery('#cart_item_tr_' + itemId);
	if(tr){
		if(action=='remove'){
			
			tr.css({"background": "#F77"})
				.fadeTo(1000, 0, function () {
					tr.remove();
					
					cartAction(itemId, howmuch, action);
					
					if(!recalcSumm()){
						window.location.reload();
					} else {
					
					}
				});


		
		} else {
			var inputQ = jQuery('input[name^=cart-item]', tr);
			var inputC = jQuery('input[name^=item_'+itemId+'_price]', tr);
			newValue = cartArithmetics(inputQ.val(),howmuch,action)
			inputQ.val(newValue);

			var priceSumm = newValue*inputC.val();
			jQuery('#price_' + itemId).html( priceSumm.toFixed(2).replace('.',',') );

			cartAction(itemId, howmuch, action);
		
			recalcSumm();
		}
	}
}

function cartArithmetics(oldValue, newValue, action){

	if(action=='pluss'){
		return oldValue = parseFloat(oldValue) + newValue;
	} else if(action=='minuss') {
		oldValue = parseFloat(oldValue) - newValue;
		return oldValue>0 ? oldValue : 1; 
	} else if(action=='equal') {
		return newValue>0 ? newValue : 1; 
	}

}


function recalcSumm(){
	var summ=0;
	var trs = $('.product-table tr[id^=cart_item_tr_]');
	
	trs.each(function(){
		itemId = parseInt(this.id.replace('cart_item_tr_',''));
		var inputQ = jQuery('input[name^=cart-item]', this);
		var inputC = jQuery('input[name^=item_'+itemId+'_price]', this);
		var priceSumm = inputQ.val()*inputC.val();
		summ+=priceSumm;
	});


	jQuery('#cartSumm').html(summ.toFixed(2).replace('.',','));
	
	return !trs ? 0 : summ;
}