(function($){
  $.fn.extend({
    limit: function(limit,element) {

      var interval;
      var self = $(this);

      $(this).focus(function(){
        interval = window.setInterval(substring,100);
      });

      $(this).blur(function(){
        clearInterval(interval);
        substring();
      });

      function substring(){
        var val = $(self).val();
        if (val) {
          var length = val.length;
          if(typeof element != 'undefined')
            $(element).html((limit-length<=0)?'0':limit-length);
          if(length > limit)
            $(self).val($(self).val().substring(0,limit));
        }
      }
      substring();
    }
  });
})(jQuery);