
Masdings.basket = Masdings.basket ? Masdings.basket : {};

Masdings.basket.edit = (function() {
   var bol_updating,

   initialise = function() {
      //Line Update Actions
      $('TR.basket_line_row').each(function() {
         var obj_basket_line_row = $(this);
         $('INPUT.quantity', obj_basket_line_row).blur(function() {
            if (!bol_updating) Masdings.basket.edit.update_line(obj_basket_line_row);
         });
//         $('INPUT.gift_wrap', obj_basket_line_row).click(function() {
//            if (!bol_updating) Masdings.basket.edit.update_line(obj_basket_line_row);
//         });
         $('TD.basket_line_remove A', obj_basket_line_row).click(function () {
            if (!bol_updating) Masdings.basket.edit.remove_line(obj_basket_line_row);
         })
      });
   }, parse_basket_response = function(obj_response) {
      // Update Main Basket Details (total, item count etc...)
      if ($('basket', obj_response).size() > 0) {
         var obj_basket = $('basket', obj_response);
         //if ($('int_item_count', obj_basket).text() < 1) {
            window.location.href = '/basket/view';
            return;
         //}

//         $('#basket_line_count').val($('int_item_count', obj_basket).text());
//         $('#basket TD.basket_total').html($('str_display_price', obj_basket).text());
//         $('#basket TD.basket_delivery').html($('str_delivery', obj_basket).text());
//         $('#basket TD.basket_discount').html($('str_total_discount', obj_basket).text());

         // Update Lines
//         $('basket_line', obj_response).each(function () {
//            var obj_basket_line_row = $('#basket_line_row_' + $('str_basket_line_id', this).text());
//            $('INPUT.quantity', obj_basket_line_row).val($('int_quantity', this).text());
//            $('TD.basket_line_unit_price', obj_basket_line_row).html($('str_unit_display_price', this).text());
//            $('TD.basket_line_total_price', obj_basket_line_row).html($('str_line_display_price', this).text());

            // Gift Wrap
//            if ($('bol_gift_wrap', this).text() == '1') {
//               $('INPUT.gift_wrap', obj_basket_line_row).get(0).checked = true;
//            } else {
//               $('INPUT.gift_wrap', obj_basket_line_row).get(0).checked = false;
//            }
//         });
      }
   };

   Masdings.modules.add(initialise);

   var obj_public = {
      update_line: function(obj_basket_line_row) {
         bol_updating = true;
         var str_basket_line_id = obj_basket_line_row.attr('id').substr(16);
         //Masdings.modal_window.show('basket_updating_content');
         AjaxHandler.reset('/ajax-basket/update-line');
         AjaxHandler.add_data('str_basket_line_id', str_basket_line_id);
         AjaxHandler.add_data('int_quantity', $('INPUT.quantity', obj_basket_line_row).val());
         //AjaxHandler.add_data('bol_gift_wrap', $('INPUT.gift_wrap', obj_basket_line_row).get(0).checked);
         AjaxHandler.dispatch(function(obj_response) {
            parse_basket_response(obj_response);
            //Masdings.modal_window.hide();
            bol_updating = false;
         }, function(obj_response) {
            //Masdings.modal_window.hide();
            alert($('message', obj_response).text());
            bol_updating = false;
         });
      },
      remove_line: function(obj_basket_line_row) {
         bol_updating = true;
         var str_basket_line_id = obj_basket_line_row.attr('id').substr(16);
         //Masdings.modal_window.show('basket_updating_content');
         AjaxHandler.reset('/ajax-basket/remove-line');
         AjaxHandler.add_data('str_basket_line_id', str_basket_line_id);
         AjaxHandler.dispatch(function(obj_response) {
         	//if ($('#basket_line_count').val() > 1) {
            //	$('#basket_line_row_' + str_basket_line_id).remove();
            //}
            parse_basket_response(obj_response);
            //Masdings.modal_window.hide();
            bol_updating = false;
         }, function(obj_response) {
            //Masdings.modal_window.hide();
            alert($('message', obj_response).text());
            bol_updating = false;
         });
      }
   };

        return obj_public;
}());
