var sgChart = {
  debug: false,

  addItem: function(url, itemObj) {
    sgChart._remoteCall(url, 'PUT', itemObj);
  },

  updateQty: function(url, idItem, qty) {
    sgChart._remoteCall(url, '', {'idItem': idItem, 'qty': qty});
  },

  delItem: function(url, idItem) {
    sgChart._remoteCall(url, 'DELETE', {'idItem': idItem});
  },

  empty: function(url) {
    sgChart._remoteCall(url, 'DELETE', {'action': 'empty'});
  },

  _remoteCall: function(url, method, data) {
    frmRef = sgChart._getForm();
    frmRef.action = url;
    frmRef.meth.value = method;
    frmRef.data.value = JSON.stringify(data);
    if (! sgChart.debug) {
      frmRef.submit();
    }
  },

  _getForm: function() {
    if (document.getElementById('sgChartForm')) {
      return document.getElementById('sgChartForm');
    } else {
      // build the form and return it
      var frmStr = '<form name="sgChartForm" id="sgChartForm" action="" method="POST">';
      frmStr += '<input type="hidden" name="meth" value="" />';
      frmStr += '<input type="hidden" name="data" value="" />';
      frmStr += '</form>';
      jQuery("body").append(frmStr);
      return document.getElementById('sgChartForm');
    }
  }
};
