$(document).ready(function(){
    $(".quantity1").keypress(function(event)
		{
			if (event.keyCode==13)
			{
                recount();
			}
		}
	);

    $(".refresh").click(recount);

    $(".delete").click(deleteGood);

	$(".button").click(order);

	$(".quantity").blur(function()
		{			
			if($(this).val()=="")
				$(this).val("0");
		}
	);
	

    $(".quantity").click(function() //Юзабилити! :)
		{
			if($(this).val()=="0")
				$(this).val("");
		}
	);
	
	

    $(".payer_type").change(function() //Юзабилити! :)
		{
        var vall = $(".payer_type").val();
			if(vall=="0") {
      	$("#org").show();
      	$("#fiz").hide();
      } else {
      	$("#org").hide();
      	$("#fiz").show();
      }
		}
	);

    $("tr.line:odd").css("background-color","#f0f0f0");

    $(".refresh,.delete").hover(function()
    {
        $(".refresh,.delete").css("cursor","pointer");
        if($(this).attr("class")=="delete")
            {
                $(this).attr("src","./images/remove_from_shopping_cart.png");
            } else $(this).attr("src","/images/shopping_cart_accept.png");
    },
    function()
    {
        $(".refresh,.delete").css("cursor","default");
        if($(this).attr("class")=="delete")
            {
                $(this).attr("src","./images/remove_from_shopping_cart_2.png");
            } else $(this).attr("src","/images/shopping_cart_accept_2.png");
    }); //hover ends

});


function explode( delimiter, string ) {    // Split a string by string
    // 
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: kenneth
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
 
    var emptyArray = { 0: '' };
 
    if ( arguments.length != 2
        || typeof arguments[0] == 'undefined'
        || typeof arguments[1] == 'undefined' )
    {
        return null;
    }
 
    if ( delimiter === ''
        || delimiter === false
        || delimiter === null )
    {
        return false;
    }
 
    if ( typeof delimiter == 'function'
        || typeof delimiter == 'object'
        || typeof string == 'function'
        || typeof string == 'object' )
    {
        return emptyArray;
    }
 
    if ( delimiter === true ) {
        delimiter = '1';
    }
 
    return string.toString().split ( delimiter.toString() );
}


function number_format( number, decimals, dec_point, thousands_sep ) {    // Format a number with grouped thousands
    // 
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://crestidg.com)
 
    var i, j, kw, kd, km;
 
    // input sanitation & defaults
    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;
}

function isvalidof(data,pattern) {
for (var i=0;i<data.length;i++) {
if (pattern.indexOf(data.substring(i,i+1),0)==-1) return false;
}
return true;
}

function order()
{
	$(".quantity").attr("disabled", "disabled");
	$(".haspcode").attr("disabled", "disabled");
	$(".button").attr("disabled", "disabled");

	var sku = new Array();
	var quantity = new Array();
	var haspcode = new Array();
	
	var num = ($(".quantity")).length;

	for(i=0;i<num;i++)
	{
		quantValue = $(".quantity:eq("+i+")").val();

    if (!(isvalidof (quantValue,"0123456789"))) {
        $(".quantity:eq("+i+")").attr("style","background-color: #F5DEB3");
        $(".quantity").attr("disabled", "");
	      $(".haspcode").attr("disabled", "");
      	$(".button").attr("disabled", "");

        exit; 
        } else {
         $(".quantity:eq("+i+")").attr("style","background-color: white");
        }
		

		if(quantValue > 0)
		{
			quantity[quantity.length] = quantValue;
			skuValue = $(".sku:eq("+i+")").val();
			sku[sku.length] = skuValue;
			haspcodeValue = $(".haspcode:eq("+i+")").val();
			haspcode[haspcode.length] = haspcodeValue;
			
		}
	}

	quantity=serialize(quantity);
	sku=serialize(sku);
	haspcode=serialize(haspcode);	

	$.ajax({
		type: "POST",
		url: "/a/m_cart_a.php",
		data: "sku="+escape(sku)+"&haspcode="+escape(haspcode)+"&quantity="+escape(quantity)+"&do=order",
		success: cartAddResponse
	});
}

function recount()
{
  $(".quantity1").attr("disabled", "disabled");
	$(".haspcode").attr("disabled", "disabled");
	$(".refresh").attr("disabled", "disabled");	
	$(".delete").attr("disabled", "disabled");	
  var sku = new Array();
	var quantity = new Array();
	var haspcode = new Array();


	num = ($(".quantity1")).length;
    
	for(i=0;i<num;i++)
	{
		quantValue = $(".quantity1:eq("+i+")").val();
    if (!(isvalidof (quantValue,"0123456789"))) {
        $(".quantity1:eq("+i+")").attr("style","background-color: #F5DEB3");
        $(".quantity1").attr("disabled", "");
	      $(".haspcode").attr("disabled", "");
      	$(".recount").attr("disabled", "");	
	      $(".delete").attr("disabled", "");	

        exit; 
        } else {
         $(".quantity1:eq("+i+")").attr("style","background-color: white");
        }
		
		quantity[quantity.length] = quantValue;
		skuValue = $(".sku:eq("+i+")").val();
		sku[sku.length] = skuValue;
 	  haspcodeValue = $(".haspcode:eq("+i+")").val();
		haspcode[haspcode.length] = haspcodeValue;
	}


 	  
	quantity=serialize(quantity);
	sku=serialize(sku);
	haspcode=serialize(haspcode);	
	

	$.ajax({
		type: "POST",
		url: "/a/m_cart_a.php",
		data: "sku="+escape(sku)+"&haspcode="+escape(haspcode)+"&quantity="+escape(quantity)+"&do=recount",
		success: cartRecountResponse
	});
}

function removeTr(obj) //удаление строки в таблице корзины
{
    var link=obj.parent().parent();
    link.css('background-color','#ff6666');
    link.remove();
}

function deleteGood() //удаление товара из корзины
{
    $(".quantity1").attr("disabled", "disabled");
	  $(".haspcode").attr("disabled", "disabled");
   	$(".refresh").attr("disabled", "disabled");	
    $(".delete").attr("disabled", "disabled");	
    
	var sku = $(this).parent().siblings().children(".sku").val();

    $.ajax({
		type: "POST",
		url: "/a/m_cart_a.php",
		data: "sku="+escape(sku)+"&do=delete",
		success: cartDeleteResponse
	});

    removeTr($(this));
}

function showNewPrice(textVal) //отображение новой цены
{
    var tmp = textVal.split(';');
	var tovar = tmp[0];
	var summa = tmp[1];

	$("#tovar").text(tovar);
	$("#summa").text(summa);
	$("#summa_cart").text(summa);	

    return summa; //она нам может понадобиться
}

function cartDeleteResponse(response)
{
  var summa = showNewPrice(response); //обновляем цену и кол-во в малой корзине
	if(summa == 0)
	{
	  $("#cartstr").html("В данный момент ваша корзина пуста. Для добавления товаров в козину воспользуйтесь формой на <A HREF='/index.html'>главной странице нашего сайта</A>.");
		$("#cart_table").remove();
		$("#cart_checkout").remove();		
	}
	else 
	{
    var num = ($("SPAN.idgoods")).length;
    for(var i=0;i<num;i++) {
	  
        $("SPAN.idgoods").eq(i).text(i+1);
    }

		$("#summa_cart").text(summa);
		$(".quantity1").attr("disabled", "");
	  $(".haspcode").attr("disabled", "");
   	$(".refresh").attr("disabled", "");	
    $(".delete").attr("disabled", "");
    	
  }
}

function cartAddResponse(response)
{
	showNewPrice(response); //обновляем цену и кол-во в малой корзине

	$(".quantity").attr("disabled", "");
	$(".haspcode").attr("disabled", "");	
	$(".button").attr("disabled", "");
    
    $(".quantity").val("0");
    $(".haspcode").val("");    
}

function cartRecountResponse(response)
{
    var num = ($(".quantity1")).length;
    var idnum = 0;

	for(var i=0;i<num;i++)
	{
        var quantVal = $(".quantity1:eq("+i+")").val();
        
		if(quantVal==0) //удаляем строки с нулевым количеством
        {
            removeTr($(".quantity1:eq("+i+")"));
        }
        else
        {
            idnum = idnum +1;
            $("SPAN.idgoods").eq(i).text(idnum);
            //далее считаем новую сумму по каждому товару
            var price = $(".price:eq("+i+")").val();
            var dollar = $(".dollar:eq("+i+")").val();
            dollar = Number(dollar)*1.02;
            var product_price_list = Array();
            product_price_list = explode(";",price);
            var product_price = 0;
            var l = product_price_list.length;
            if(l>1) {
              if (Number(quantVal) < 5) {product_price = product_price_list[0];}
              if ((Number(quantVal) > 4) && (Number(quantVal) < 21)) {product_price = product_price_list[1];} 
              if ((Number(quantVal) > 20) && (Number(quantVal) < 101)) {product_price = product_price_list[2];} 
              if ((Number(quantVal) > 100) && (Number(quantVal) < 201)) {product_price = product_price_list[3];}
              if (Number(quantVal) > 200) {product_price = product_price_list[4];}

            } else {
               product_price = product_price_list[0]; 
            }
                                   
            var valute = product_price.substring(product_price.length-1);

            if (valute == 'r') {
              product_price = product_price.substr(0,product_price.length-1);
              dollar = 1;
            } 
            var newSum = Number(quantVal)*Number(product_price)*Number(dollar);
            $(".sum:eq("+i+")").text(number_format(newSum,2,',',' '));
        }
	}

    cartDeleteResponse(response);
}

	



