$(document).ready(function() {
  $(".column_qty input[type=submit]").addClass("hidden")

  var delay = (function(){
    var timer = 0;
    return function(callback, ms){
      clearTimeout (timer);
      timer = setTimeout(callback, ms);
    };
  })();

  $("input.update_item").keyup(function() {
    $(this).onChanged( function(event){
      var $target  = $(event.target)
      var form    = "form#" + $target.parents("form.update_cart").attr("id")
      var $loader = '<img src="images/core/ajax-loader.gif" alt="Updating Cart" width="43px" height="11px" class="cart_loading_img" />'

      delay(function(){
        var options = { 
          success:        update_cart_items,
          url:            '_ajax-updateCartItem.asp',
          type:           'get',
          dataType:       'json'
        }; 

        if ( !$target.parents("div.elements").find("img.cart_loading_img").length ) {
          //start loader
          $target.parents("div.elements").append($loader)
        }

        // bind form using 'ajaxForm' 
        $(form).ajaxSubmit(options);
      }, 500 );
    });
  });
  
  $("form.remove_cart").each(function() {
    $(this).bind("submit",function() {
      var product_name = $(this).parents("td.column_delete").parent("tr").find("td.column_product").html()

      if ( !confirm('Are you sure you want to delete ' + product_name + ' from your cart') ) {
        return false;
      }
    });
  });
});


function update_cart_items(data, statusText, xhr, $form) {
  if ( data.length > 0 ) {
    if ( data[0].Type == "error" ) {
      alert(data[0].Error)
      $form.parent("td").parent("tr").find(".item_count").val($form.parent("td").parent("tr").find("input[name=PrevQty]").val())

    } else {
      $(".cart_total_cost_ex").html("$" + data[0].CartTotal)
      $(".cart_total_cost_inc").html("$" + data[0].EndTotal)
      $(".cart_total_gst_cost").html("$" + data[0].CartGST)
      $(".cart_total_items").html(data[0].ItemsTotal)
      $form.parent("td").parent("tr").find(".item_count").val(data[0].ItemCount)
      $form.parent("td").parent("tr").find("input[name=PrevQty]").val(data[0].ItemCount)
      $form.parent("td").parent("tr").find(".item_unit_price").html("$" + data[0].UnitPrice)
      $form.parent("td").parent("tr").find(".item_unit_gst").html("$" + data[0].GSTPrice)
      $form.parent("td").parent("tr").find(".item_sub_total").html("$" + data[0].SubTotal)
    }

    //remove loader
    $form.find("img.cart_loading_img").remove()
  }
}
