var addToCart = function(id, anchor) {
	var parent = $(anchor).parent()
	parent.addClass('in_process');
	
	var size = 0;
	if($('#size' + id).length > 0) {
		size = $('#size' + id).val();
	}
	
	var data = {id: id, quantity: 1, size: size, action: 'add'};
	$.getJSON(cart_proc_url, data, function(json) {

		showCartDialog(function() {
			$('#totalSum').html(json.totalSum);
			$('#itemsCount').html(json.itemsCount);
			
			$.growlUI('Товар добавлен в корзину');

			parent.removeClass('in_process');

			if(json.hasSizes == 0){
				parent.html('В корзине <span id="incart_' + data.id + '_' + data.size + '">'+json.itemQuantity+'</span> шт. ' +
						'<a href="' + cart_url + '" class="pass">Оформить заказ</a>');
			}
			else{
				parent.parent().find('.add_info').html('В корзине <span id="incart_' + data.id + '_' + data.size + '">' + json.itemFullQuantity + '</span> шт. ' +
						'<a href="' + cart_url + '" class="pass">Оформить заказ</a>');

				parent.parent().find('.add_info').fadeIn(300);
			}
		});
	});
}

function showCartDialog(callback) {
	$('#cart_dialog').load(cart_dialog_url, function() {
		if(callback) {
			callback();
		}
		$('#cart_dialog a.delete').click(function() {
			if(!confirm('Вы уверены что хотите удалить этот товар из корзины?')) {
				return false;
			}

			$.ajax({
				url: this.href,
				success: function() {
					$(this).parent()
				}
			});
		});
		$.blockUI({ message: $('#cart_dialog'), 'css': {width: '450px', top: '20%'}});
		$('.blockUI .close').click(function(){
			$.unblockUI(); return false;
		});
		$('.blockUI .continue_shop').click(function(){
			$.unblockUI(); return false;
		});
		$('.blockOverlay').click(function(){
			$.unblockUI(); return false;
		});
	});
}

function preOrderForm(id) {
	$.blockUI({ 
            message: '<p>Пожалуйста, подождите...</p>'
	});
	
	$.ajax({
		type: "GET",
		url: preorderUrl + '?p=' + id,
		success: function(data) {
			$.blockUI({ 
		            message: data
			});
			
			$('.blockOverlay').click($.unblockUI);
		}
	});
}

function processPreOrderForm(form) {
	if(!preOrderFormIsValid(form)) {
		return false;
	}
	
	$.blockUI({ 
            message: '<p>Пожалуйста, подождите...</p>'
	});
	
	$.ajax({
		type: "POST",
		url: preorderUrl,
		data: $(form).serialize(),
		success: function(data) {
			$.blockUI({ 
		            message: data
			});
			
			$('.blockOverlay').click($.unblockUI);
		}
	});
	
	return false;
}

function preOrderFormIsValid(form) {
	var errors = [];
	
	if(!form.name.value) {
		errors.push('Вы не ввели имя');
	}
	
	if(!form.phone.value) {
		errors.push('Вы не ввели телефон');
	}
	
	if(errors.length > 0) {
		var message = '';
		for(var i in errors) {
			message += errors[i] + "\n";
		}
		alert(message);
		return false;
	} else {
		return true;
	}
}

function processShipment() {
    $('.shipment_info').hide();
    if($('#shipinfo' + $(this).attr('id'))) {
        $('#shipinfo' + $(this).attr('id')).show();
    }

	exclude_fields = new Array();

    if($(this).attr('no_index')) {
        $('tr.f_index').hide();
		exclude_fields.push('post_index');
    } else {
		$('tr.f_index').show();
	}

    if($(this).attr('no_city')) {
        $('tr.f_city').hide();
        exclude_fields.push('city');
    } else {
		$('tr.f_city').show();
	}

    if($(this).attr('no_address')) {
        $('tr.f_address').hide();
        exclude_fields.push('address');
    } else {
		$('tr.f_address').show();
	}

	if(exclude_fields.length >= 2) {
		$('.address_caption').hide();
	} else {
		$('.address_caption').show();
	}

	jQuery('[name="shipmentId"]').val($(this).attr('id'));

	var shipment = Math.ceil(jQuery(this).attr('price'));
	var order = Math.ceil(jQuery('[name="totalSum"]').val()); //console.log(order);
	var total = Math.ceil(order) + Math.ceil(shipment); //console.log(total);

	jQuery('#deliverySpan').html(formatPrice(shipment));
	jQuery('#totalSpan').html(formatPrice(total));
}

function formatPrice(str){
	str = str.toString();
	return str.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
}


function processDiscountForm() {
	if(!$('#discount_field').val()) {
		$('.discount_error').html('Вы не ввели код скидки').addClass('error');
		return false;
	} else {
		$('.discount_form input.submit').get(0).disabled = true;
		return true;
	}
}

function showAdvInfoAboutShipment(e) {
	e.preventDefault();
	$('.ship_adv_info_box').toggle();

}

function setPrices(json, item_id, size_id) {

	var total_sum;
		var total_sum_new;

		if(jQuery(".ajax_totalSum_old")) {
			total_sum		=	jQuery(".ajax_totalSum_old");
			total_sum_new	=	jQuery(".ajax_totalSum");
		} else {
			total_sum = jQuery(".ajax_totalSum");
		}

	jQuery('#totalSum').html(json.totalSum_discount);
	jQuery('#itemsCount').html(json.itemsCount);
		if(jQuery('[name="shipment_type"]:checked')) {
			var price = parseInt(jQuery('[name="shipment_type"] option:selected').attr('price'));
			price += parseInt(json._totalSum);
			jQuery('#totalSpan').html(formatPrice(price));
		}

		total_sum.html(json.totalSum);
		if(total_sum_new) {
			total_sum_new.html(json.totalSum_discount);
		}

		jQuery(".ajax_itemsCount").html(json.itemsCount);

		jQuery("#quantity_" + item_id + "_" + size_id + ", #incart_" + item_id + '_' + size_id).html(json.itemQuantity);
		jQuery("#quantity_" + item_id + "_" + size_id + '_input').val(json.itemQuantity);

		var current_sum;
		var current_sum_new;

		if(jQuery("#sum_old_" + item_id + "_" + size_id)) {
			current_sum		=	jQuery("#sum_old_" + item_id + "_" + size_id);
			current_sum_new	=	jQuery("#sum_" + item_id + "_" + size_id);
		} else {
			current_sum		=	jQuery("#sum_" + item_id + "_" + size_id);
		}

		current_sum.html(json.itemSum);
		if(total_sum_new) {
			current_sum_new.html(json.itemSum_discount);
		}
}

$(function() {
	$('a.ship_adv_info_link').click(showAdvInfoAboutShipment);
	$('.ship_adv_info div.close').click(showAdvInfoAboutShipment);
});

function ajax_increase(item_id, size_id) {

	var city = jQuery('#shipment_city option:selected');
	var data = {id: item_id, quantity: 1, size: size_id, action: 'add'};

	jQuery.getJSON(cart_proc_url, data, function(json) {
		var result = function() {
			setPrices(json, item_id, size_id);
		};
		if(typeof applyShippingCity == 'function') {
			applyShippingCity(city, result);
		} else {
			result();
		}
	});

	return false;
}

function ajax_decrease(item_id, size_id) {

	var city = jQuery('#shipment_city option:selected');
	var data = {id: item_id, quantity: 1, size: size_id, action: 'decrease'};

	var proceed = true;
	var empty = false;

	if((jQuery('#quantity_' + item_id + '_' + size_id + '_input').val() == 1) || (parseInt(jQuery('#quantity_' + item_id + '_' + size_id).html()) == 1)) {
		if(!confirm("У вас в коризне всего один товар этого вида, он будет удален. Удалить?")) {
			proceed = false;
		} else {
			jQuery('#incart_' + item_id + '_' + size_id).parents('.buy-link').empty()
			.append('<a class="buy_btn gallery_buy_btn" onclick="addToCart(' + item_id + ', this);return false;" href="/Cart/add' + item_id + '/"></a>');
		}
	}

	if(proceed) {
		jQuery.getJSON(cart_proc_url, data, function(json) {
			var result = function() {
				setPrices(json, item_id, size_id);

				if(!json.itemQuantity) {
					jQuery('#row_' + item_id + '_' + size_id).remove();
					jQuery('#item_row_' + item_id + '_' + size_id).remove();

					if(jQuery('.cart_row').length == 0 ) {

						if(current_key == 'Cart') {
							window.location.reload();
						} else {
							$.unblockUI(); return false;
						}

					}
				}
			};

			if(typeof applyShippingCity == 'function') {
				applyShippingCity(city, result);
			} else {
				result();
			}
		});
	}

	return false;
}


function pickpointCallback(result) {
	jQuery('input[name="pickpoint"]').val(result['address']);
	jQuery('#pickpoint_address').html('Выбранный адрес: <span>' + result['address'] + '</span>');
	jQuery('a.pickpoint_anchor').html('Выбрать другой адрес');
}

jQuery(document).ready(function($) {
	$('.selectedcity.ajax').click(function(event) {
		event.stopPropagation();
		var $this = $(this), url = $this.attr('href'), $pp = $this.next('.selectcity-list');
		if($pp.is(':visible')) {
			$pp.slideUp();
			return false;
		}
		if($pp.size() == 0) {
			$pp = $('<div></div>').addClass('selectcity-list').insertAfter($this);
			$pp.append('<ul></ul>').append('<ul></ul>').append('<ul></ul>');
			var $ul = $pp.find('ul');
			$.getJSON(url, {}, function(data) {
				$.each(data, function(id, name) {
					$ul.eq(0).append('<li><a href="' + url + '?city=' + id + '">' + name + '</a></li>');
				});
				var $li = $ul.find('li'),
					rows = $li.size() / 3,
					i = 0;
				$li.each(function() {
					$ul.eq(parseInt(i / rows)).append(this);
					i++;
				});
				$pp.slideDown();
			});
		} else {
			$pp.slideDown();
		}
		$('body').one('click', function() {
			$pp.slideUp();
		});
		return false;
	});
});
