$.fn.extend({
  characterLimiter: function(limit, label) {
    this.on("keyup focus show", function() {
      setCount(this, label);
    });

    // TODO: append label container after $this, instead of hard HTML
    function setCount(src, label) {
      if(src !== undefined) {
        var chars = src.value.length;
        if (chars >= limit) {
          src.value = src.value.substr(0, limit);
          chars = limit;
        }
        label.html(limit - chars);
      }
    }

    setCount(this[0], label);
  }
});

$(document).ready(function() {
  $('textarea').characterLimiter(1000, $(".chars span"));
});
