var UrlParamsFactory = function($location) {
  var params = $location.search;
  return function(data) {
    for (k in data) {
      var validator = data[k];
      if (params[k] == undefined) {
        data[k] = undefined;
        return false;
      }
      var val = params[k];
      if (validator == "") {
        data[k] = val;
      } else if (validator == "int") {
        var vv = parseInt(val);
        if (isNaN(vv) || val.toString() != vv.toString()) {
          return false;
        }
        data[k] = vv;
      } else if (angular.isFunction(validator)) {
        if (!validator(val)) {
          return false;
        }
        data[k] = val;
      }
    }
    return true;
  };
};

angular.service('UrlParams', UrlParamsFactory, { $inject : ['$location'] });

