define([

], function () {

function MinimumInputLength (decorated, $e, options) {
  this.minimumInputLength = options.get('minimumInputLength');

  decorated.call(this, $e, options);
}

MinimumInputLength.prototype.query = function (decorated, params, callback) {
  params.term = params.term || '';

  if (params.term.length < this.minimumInputLength) {
    this.trigger('results:message', {
      message: 'inputTooShort',
      args: {
        minimum: this.minimumInputLength,
        input: params.term,
        params: params
      }
    });

    return;
  }

  decorated.call(this, params, callback);
};

return MinimumInputLength;

});