(function(a){a.fn.maxlength=function(c){if(typeof c=="string"){c={feedback:c}}c=a.extend({},a.fn.maxlength.defaults,c);function b(d){var e=d.value;if(c.words){e=d.value.length?e.split(/\s+/):{length:0}}return e.length}return this.each(function(){var j=this,f=a(j),e=a(j.form),d=c.useInput?e.find("input[name=maxlength]").val():f.attr("maxlength"),i=e.find(c.feedback);function g(m){var k=b(this),n=k>=d,l=m.keyCode;if(!n){return}switch(l){case 8:case 9:case 17:case 36:case 35:case 37:case 38:case 39:case 40:case 46:case 65:return;default:return c.words&&l!=32&&l!=13&&k==d}}var h=function(){var k=b(j),l=d-k;i.html(l||"0");if(c.hardLimit&&l<0){j.value=c.words?j.value.split(/(\s+)/,(d*2)-1).join(""):j.value.substr(0,d);h()}};f.keyup(h).change(h);if(c.hardLimit){f.keydown(g)}h()})};a.fn.maxlength.defaults={useInput:false,hardLimit:true,feedback:".charsLeft",words:false}})(jQuery);