(function($){
$.fn.maxlength=function(_2){
if(typeof _2=="string"){
_2={feedback:_2};
}
_2=$.extend({},$.fn.maxlength.defaults,_2);
function _3(el){
var _5=el.value;
if(_2.words){
_5=el.value.length?_5.split(/\s+/):{length:0};
}
return _5.length;
};
return this.each(function(){
var _6=this,_7=$(_6),_8=$(_6.form),_9=_2.useInput?_8.find("input[name=maxlength]").val():_7.attr("maxlength"),_a=_8.find(_2.feedback);
function _b(_c){
var _d=_3(this),_e=_d>=_9,_f=_c.keyCode;
if(!_e){
return;
}
switch(_f){
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 _2.words&&_f!=32&&_f!=13&&_d==_9;
}
};
var _10=function(){
var len=_3(_6),_12=_9-len;
_a.html(_12||"0");
if(_2.hardLimit&&_12<0){
_6.value=_2.words?_6.value.split(/(\s+)/,(_9*2)-1).join(""):_6.value.substr(0,_9);
_10();
}
};
_7.keyup(_10).change(_10);
if(_2.hardLimit){
_7.keydown(_b);
}
_10();
});
};
$.fn.maxlength.defaults={useInput:false,hardLimit:true,feedback:".charsLeft",words:false};
})(jQuery);

