﻿/* UWEBSHOP CLASS */

if (typeof SuperSimpleWebshop === 'undefined') { var SuperSimpleWebshop = {}; }

(function () {

  /* UWEBSHOP PUBLIC METHODS */

  SuperSimpleWebshop.addUpdateOrderLine = function (shopAlias,pricingId, action, quantity, variants, success, error) {    
    var params = [shopAlias,pricingId,action,quantity,variants], formData = null;
    return ssws_service.callBase('AddUpdateOrderLine', params, formData, success, error);
  };
  
  SuperSimpleWebshop.getDictionaryItem = function (shopAlias,key, success, error) {
    var params = [shopAlias,key], formData = null;
    return ssws_service.callBase('GetDictionaryItem', params, formData, success, error);
  };

  SuperSimpleWebshop.GetJSONForCategory = function (shopAlias,CategoryId, success, error) {
    var params = [shopAlias,CategoryId], formData = null;
    return ssws_service.callBase('GetJSONForCategory', params, formData, success, error);
  };
  
  SuperSimpleWebshop.GetJSONForProduct = function (shopAlias,ProductId, success, error) {
    var params = [shopAlias,ProductId], formData = null;
    return ssws_service.callBase('GetJSONForProduct', params, formData, success, error);
  };
  
  SuperSimpleWebshop.GetJSONForPricing = function (shopAlias,PricingId, success, error) {
    var params = [shopAlias,PricingId], formData = null;
    return ssws_service.callBase('GetJSONForPricing', params, formData, success, error);
  };
  
  /* UWEBSHOP PRIVATE SERVICE OBJECT */

  var SuperSimpleWebshopService = function () {
    var superSimpleWebshopService = this;
    
    superSimpleWebshopService.callBase = function (methodName, args, data, success, error, dataType) {
      jQuery.ajax({
        type: 'POST',
        url: superSimpleWebshopService.createUrl(methodName, args),
        data: data,
        async: false,
        success: function (data, status, xmlHttpRequest) {
          if (success) {
            success(data);
          }
        },
        error: function(xmlHttpRequest, status, errorThrown) {
          if(error){
            error(data);
          }
        },
        cache: false,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json'
      });
    };

    superSimpleWebshopService.createUrl = function (method, args) {
      var baseUrl = '/Base/SuperSimpleWebshop/' + method;
      if (args) {
        for (var i = 0; i < args.length; i++) {
          baseUrl += '/' + args[i];
        }
      }
      
      return baseUrl + '.aspx';
    };
  };
  var ssws_service = new SuperSimpleWebshopService();

})();
