(function(jQuery) {
    jQuery.fn.extend({
        limit: function(limit, element) {
            var interval;
            var self = jQuery(this);

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

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

