var filtersFactory = (function () {
  var ob = {};
  ob.createFilter = createFilter;
  ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;

  function createFilter(filId) {
    var fil = createNS('filter');
    fil.setAttribute('id', filId);
    fil.setAttribute('filterUnits', 'objectBoundingBox');
    fil.setAttribute('x', '0%');
    fil.setAttribute('y', '0%');
    fil.setAttribute('width', '100%');
    fil.setAttribute('height', '100%');
    return fil;
  }

  function createAlphaToLuminanceFilter() {
    var feColorMatrix = createNS('feColorMatrix');
    feColorMatrix.setAttribute('type', 'matrix');
    feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');
    feColorMatrix.setAttribute('values', '0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1');
    return feColorMatrix;
  }

  return ob;
}());
