/**
 *  controls cart actions
 */ 
function cartController()
{
  /**
   *  empty cart contents
   */     
  this.empty_cart = function() {
    var url = siteUrl + 'popup/cart_gal/empty';

    var ajax = new Ajax.Request(
      url,
      {
        method: 'post',
        onSuccess : updateCartNodes
      });
  }
  
  /**
   *  adds a gallery product to the cart
   */
  this.add_gal = function() {
    var url = siteUrl + 'popup/cart_gal/add';
    var galObj = arguments[0];

    var params;
    params = 'type=gallery_image';
    params += '&gallery_id=' + galObj.gallery_id;
    params += '&ref_code=' + galObj.ref_code;
    params += '&category=' + galObj.category;
    params += '&size=' + galObj.size.id;
    params += '&size_label=' + galObj.size.label;
    params += '&price=' + galObj.size.price;
    params += '&total_price=' + galObj.total_price;
    params += '&title=' + galObj.image_title;
    params += '&frame_code=' + galObj.frame.id;
    
    if (galObj.frame.id != 'none') {
      params += '&frame_price=' + galObj.frame.price;
      params += '&frame_label=' + galObj.frame.label;
//       params += '&glaze_code=' + galObj.glaze.id;
//       params += '&glaze_price=' + galObj.glaze.price;
//       params += '&glaze_label=' + galObj.glaze.label;
      params += '&matt_code=' + galObj.matt.id;
      params += '&matt_label=' + galObj.matt.label;
    }

//     var self = this;
    var ajax = new Ajax.Request(
      url,
      {
        method: 'post',
        postBody: params,
        onSuccess: updateCartNodes
      }
    );
  }
  
  this.add_prod = function() {
    var prodObj = arguments[0];
    var url = siteUrl + 'popup/cart_prod/add';
    
    var params;
    params = 'type='+prodObj.product_type;
    params += '&ref_code=' + prodObj.ref_code;
    params += '&title=' + prodObj.product_title;
    params += '&option=' + prodObj.option.id;
    params += '&option_label=' + prodObj.option.label;
    params += '&price=' + prodObj.option.price;
    
//       var self = this;
    var ajax = new Ajax.Request(
      url,
      {
        method: 'post',
        postBody: params,
        onSuccess: updateCartNodes
      }
    );
}
  
    
} // cartController
var cart = new cartController();


var cartNodes = new Array();
/**
 *  nodes that report cart data
 */ 
function setCartNode(nodeId,nodeType) 
{
  cartNodes[cartNodes.length] = [nodeId,nodeType];
}


/**
 *  called after cart action is processed
 */
function updateCartNodes(request) 
{
  cartNodes.each( function(value) {
    var url = siteUrl + 'popup/cart_report/' + value[1]
    var box = $(value[0]);
    Element.update(box,'Loading...');
    var ajax = new Ajax.Updater(
      box,
      url,
      {
        method: 'post'
      }); // end ajax call
  }); // end loop

}

