﻿$(document).ready(UpdateCartState);

function ClearSelectionProducts() {
    $.each(GetSelectedProducts(), function(i) 
    {
        var cbObj = $('#cb_' + this);
        var trObj = $('#tr_' + this);
        if (cbObj.length)
            cbObj.attr("checked", false);
        if (trObj.length)
            trObj.removeClass("prodrow_selected");
    }
    );
}

function UpdateCartState() {
    //ClearSelectionProducts();
    //CheckCartButton();
    $.post("/Cart/Get/", null, GetCart, "json");
}

function CheckCartButton() {
    if (GetSelectedProducts().length > 0) {
        //alert('enabled');
        $('#cartButton').attr("disabled", false);
        //$('#cartButton').fadeIn();
    } else {
        $('#cartButton').attr("disabled", true);
        //$('#cartButton').fadeOut(10);
    }
}

function SelectProduct(code) {
    var cbObj = $('#cb_' + code);
    var trObj = $('#tr_' + code);
    //$("div", body).css("background-color", "green");
    if (cbObj.length) 
    {
        if (cbObj.attr("checked")) {
            cbObj.attr("checked", false);
            trObj.removeClass("prodrow_selected");
        } else {
            cbObj.attr("checked", true);
            //trObj.css("background-color", "red");
            trObj.addClass("prodrow_selected");
        }
    } else {
        trObj.removeClass("prodrow_selected");
    }
    CheckCartButton();
}



function GetCart(cart) {
    //ClearSelectionProducts();
    $.each(cart, function(i) {
        //AddRemoveProductButton(this);
        AddProductRemoveLink(this.ProductID, this.Count);
    }
    );
    //CheckCartButton();
    //alert('GetCart');
    UpdateCart(cart);
}

function UpdateCart(cart) {
    var cartObj = $('#smallCart');
    if (cart.length > 0) {
        cartObj.html(cart.length);
    } else {
        cartObj.html('0');
    }
}

function AddRemoveProductButton(code) {
    var tdObj = $('#prodtd_' + code);
    if (tdObj.length) {
        tdObj.empty();
        tdObj.append('<div onclick="RemoveProduct(' + code + '); return false;">Отменить</div>');
    }
}

function AddProductCheckBox(code) {
    var tdObj = $('#prodtd_' + code);
    if (tdObj.length) {
        tdObj.empty();
        tdObj.append('<input id="cb_' + code + '" type="checkbox" onclick="javascript: SelectProduct(\'' + code + '\')"/>');
    }
}

function GetSelectedProducts() {
    var products = new Array();
    $("input:checkbox").each(
      function() {
          if (this.id.indexOf('cb') == 0) {
              var code = this.id.split('_')[1];
              if (code) {
                  var cbObj = $('#cb_' + code);
                  if (cbObj.length) {
                      if (cbObj.attr("checked")) {
                          products.push(code);
                      }
                  }

              }
          }
      }
    );
    return products;
}

function AddProductRemoveLink(code, count) {

    $('#count_'+code).hide();

    var liObj = $('#prodli_' + code);
    if (liObj.length) {
        liObj.empty();
        liObj.append('<div class="button green" onclick="RemoveProduct(' + code + '); return false;" >Удалить из корзины ('+count+' шт.)</div>');
    }

}

function AddProductCartLink(code) {
    
	$('#count_'+code).show();
	
    var liObj = $('#prodli_' + code);
     if (liObj.length) {
         liObj.empty();
         liObj.append('<div class="button green" onclick="AddProductToCart(' + code + ', $(\'#count_' + code + '\').attr(\'value\')); return false;" > Добавить в корзину </div>');
    }

}

function AddProductToCart(code, count) {
    $.post("/Cart/Add/", { Products: code, Count: count }, UpdateCart, "json");
    AddProductRemoveLink(code, count);
}

function RemoveProduct(code) {
    $.post("/Cart/Remove", { ProductID: code }, UpdateCart, "json");
    AddProductCartLink(code);
}


function SubmitCart() {
    $.post("/Cart/Add/", { Products: GetSelectedProducts() }, GetCart, "json");
}
