/**
 * Created by shadeeka on 11/28/15.
 */
angular.module('app.services')
  // =========================================================================
// Page layout definitions
// =========================================================================

  .service('layoutConfig', ['$resource', function ($resource) {
    this.getLayout = function (template) {
      var categoryitemList="";
      if(configData.factoryType=="type2") {//nvs,intimo
        categoryitemList = $resource("data/view-config.json");
      }else if(configData.factoryType=="type9"){
        categoryitemList = $resource("data/view-config-impress.json");
      }else {//aitc ,leisureline,ama
        categoryitemList = $resource("data/view-config-aitc.json");
      }
      return categoryitemList.get();
    }
  }])
// =========================================================================
// Defect categories Data
// =========================================================================

  .service('defectCategories', ['$resource', function ($resource) {
    this.getCategories = function (id, name, subcategories) {
      console.log("get categories");
      var categoryitemList = $resource("data/defect-categories.json");

      return categoryitemList.get({
        id: id,
        name: name,
        subcategories: subcategories
      })
    }
  }])
// =========================================================================
// Filter for unique Data
// =========================================================================
  .filter('unique', function () {
    return function (collection, keyname) {
      var output = [],
        keys = [];

      angular.forEach(collection, function (item) {
        var key = item[keyname];
        if (keys.indexOf(key) === -1) {
          keys.push(key);
          output.push(item);
        }
      });

      return output;
    };
  })
// =========================================================================
// Filter for bygroup Data
// =========================================================================
  .filter('bygroup', function () {
    return function (issues, groups) {
      var items = {
        groups: groups,
        out: []
      };
      angular.forEach(issues, function (value, key) {
        if (this.groups && this.groups.all) {
          this.out.push(value);
        }
        else if (this.groups && this.groups[value.group_id] === true) {
          this.out.push(value);
        }
      }, items);
      return items.out;
    };
  })
// =========================================================================
// Filter for spaces
// =========================================================================
  .filter('removeSpaces', [function() {
    return function(string) {
      if (!angular.isString(string)) {
        return string;
      }
      return string.replace(/[\s]/g, '');
    };
  }])

