var cart = null;

$(document).ready(function()
{



	$(".cart-line").click(function()
	{
		re_create_cart(true);
		return false;
	});

	$(".selfshipment").live('click', function()
	{
		if ($(this).attr("checked")) $(this).prev("input").val('самовывоз');
		else $(this).prev("input").val('');
	});

	$(".process-order").live('click', order_process);

	$(".btn-add-cart-small,.btn-add-cart-big").click(function()
	{
        $('body').scrollTop(0)
		var id = $(this).attr('id').split('_')[1]*1;
		update_cart(id, 1, true, 0);

		return false;
	});

	$(".del-item-from-cart").live('click',function()
	{
		var row = $(this).parents("tr");
		var id = row.attr("id").split("_")[1]*1;
		var count = row.find(".itemcount").val();
		row.fadeOut('fast', function(){ update_cart(id,-count, false); });
		
		return false;
	});

	$(".itemcount").live({
			blur:  function()  { update_count($(this)) },
			keydown:function(e){ if (e.keyCode==13) update_count($(this))  }
		});

  $('#samov').live('change', function () {
    if ($(this).is(':checked')) {
      $('#addr').slideUp('fast')
    }
    else {
      $('#addr').slideDown('fast')
    }
  });

  $('#showprimech').live('click', function(){
    $('#primech').slideToggle('fast');
  });

	function update_count(e)
	{
		var m = e.val()*1;
		var n = e.attr("dvalue")*1;
		var delta = m - n;

//		var id = e.parents("tr").attr('id').split('_')[1];
		var id = e.closest('tr').attr('id').substr(5)*1;
        var vendorId = e.closest('.p-c-content').attr('id').substr(7)*1;
		update_cart (id, delta, false, vendorId);
	}
});

function order_process(e)
{
	var data = {};
	var company_id = $(this).parent(".p-c-content").attr('id').split("_")[1];

	$("#o-company").val(company_id);

	if (! $(this).attr('formed'))
	{
	
	$(".order-processing-form").remove();
	$(".process-order").removeAttr('formed');
	
	

	var form = $("#orderForm").tmpl(data)
	$(this).before(form);
	$(this).attr('formed','formed');

	focus_blur($('#o-email'));
	focus_blur($('#o-phone'));
	focus_blur($('#o-fname'));
	focus_blur($('#o-lname'));
	focus_blur($('#o-address'));

	form.slideDown();
	}
	else
	{
		data.f_name = un_focus($('#o-fname'));
		data.l_name = un_focus($('#o-lname'));
		data.email = un_focus($('#o-email'));
		data.phone = un_focus($('#o-phone'));
		data.phone_number = un_focus($('#o-phone'));		

		var flag = false;
		for (var i in data)
		{
			if (data[i].length == 0) flag = true;
		}
		
		if (flag) { alert("Заполните все поля перед отправкой сообщения."); return false; }

		data.company = $("#o-company").val();

		data.comment = $("#o-message").val();
		var delivery_type = $("#selfshipment").attr("checked")?"0":"1";
		data.delivery_type = delivery_type;
		data.payment_type = $("#o-pay option:selected").val();
		data.delivery_address = $("#o-address").val();
		data.csrftoken = getCookie('csrftoken');

		data.captcha_0 = $("#captcha_0").val();
		data.captcha_1 = $("#ccc").val();

console.log(data)


		var items = "";

		// Get items from order table

		var content = $(this).parents(".p-c-content").children("table");
		content.find("tr").each(function()
		{			
			var attr = $(this).attr("id");
			if (attr)
			{
				attr = attr.split("_")[1];
				var count = $(this).find(".itemcount").val();
				items += attr+","+count+";";
			}
		});

		data.content = items;


		// console.log (data);
		var self = this;
		$.ajax({
			headers: {"X-CSRFToken":data.csrftoken},
			url:'/order/',
			async:false,
            cache: false,
			data:data,
			type:'POST',
			error: function() { alert ("Ошибка сервера. Попробуйте позже."); },
			success: function(ret){
				console.log (ret);
				if (ret.captcha)
				{
					$("#captcha_0").val(ret.captcha_0);
//                    console.log($("#captcha_0").val(), ":",$("#ccc").val(), 'werwerwer')
                    $("#ccc").val("");
					$("#captcha_img").empty();
              var img = '<img src="/'+ret.captcha+'" />'
					$("#captchaI").html(img);
					$(".captcha-div").slideDown();
					return;
				}
				if (ret.error) {
					if (ret.error == "duplicate_email") { 
						alert("Пользователь с указанным email уже зарегистрирован."); 
					} else { 
						alert(ret.error)
					}
					return false;
				}
                if (ret.email) {
                    alert("Правильно укажите ваш email.");
                }
				if (ret=="ok")
				{
					var p = $(self).parents('.p-c-content');
					p.slideUp();
					p.after("<div style='text-align:center;'>Заказ оформлен</div>");
				}
			}
		});
		
	}
}

function update_cart(id, count, drop, vendorid)
{

	$.ajax({
		url:'/order/product/?product_id='+id+'&count='+count,
        cache: false,
		async:false,
		error: function() { alert ("Ошибка сервера. Попробуйте позже."); },
		success: function(data){
			if (data.error)
			{
				alert (data.error); return;
			}
			if (data == "ok") re_create_cart(drop, vendorid);

		}
	});
}

function getCookie(name) {
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }

function re_create_cart(drop, vendorid)
{
	if (cart == null)
	{
		$.ajax({
			url: '/cart_json/',
			type: 'GET',
            cache: false,
			async: true,
			error: function(){ alert ("Ошибка сервера. Попробуйте позже."); },
			success: function(data){
				if (data.error)
				{
					alert (data.error); return;
				}
				fill(data, drop, vendorid);
			}
		});
	}
}

function fill(data, drop, vendorid)
{
	if ($.isEmptyObject(data))
	{
        $('.p-c-content').detach()
		$('body').createOverlay("Корзина заказа","<div id='cart' class='empty-cart'>Корзина пуста.</div><br />");
	}
	else
	{
		if (drop)
		{
			$('body').createOverlay("Корзина заказа","<div id='cart'></div><br />");
			$("#cartElement").tmpl(data).appendTo("#cart");
		} else
		{
			$("#cart").empty();
			$("#cartElement").tmpl(data).appendTo("#cart");

		}

		var total_price = 0;
		var total_count = 0;
        var vendor_sum = 0;

		$.each(data, function(i,vendor){

			$.each(vendor.cart, function(ii, item)
			{	
				total_price += item.count * item.price;
				total_count += item.count;
                vendor_sum += item.count * item.price;
                $('#vendor_'+vendor.id).find(".subtotal").text(ins1000Sep(vendor_sum.toString()) +' руб.');
            });
            vendor_sum = 0;
        });

		$(".cart-count").text(total_count);
		$(".cart-price").text(ins1000Sep(total_price.toString()));

        // Если произошло обновление количества товара, то проскроллиться к поставщику, в котором произошло обновление
        if(vendorid) $('#cart').scrollTo('#vendor_'+vendorid);
	}
	
}
