(function(a){a.fn.charCounter=function(g,f){g=g||100;f=a.extend({container:"<span></span>",classname:"charcounter",format:"(%1 characters remaining)",pulse:true,delay:0},f);var b,c;function d(h,i){h=a(h);if(h.val().length>g){h.val(h.val().substring(0,g));if(f.pulse&&!b){e(i,true)}}if(f.delay>0){if(c){window.clearTimeout(c)}c=window.setTimeout(function(){i.html(f.format.replace(/%1/,(g-h.val().length)))},f.delay)}else{i.html(f.format.replace(/%1/,(g-h.val().length)))}}function e(i,h){if(b){window.clearTimeout(b);b=null}i.animate({opacity:0.1},100,function(){a(this).animate({opacity:1},100)});if(h){b=window.setTimeout(function(){e(i)},200)}}return this.each(function(){var h=(!f.container.match(/^<.+>$/))?a(f.container):a(f.container).insertAfter(this).addClass(f.classname);a(this).bind("keydown",function(){d(this,h)}).bind("keypress",function(){d(this,h)}).bind("keyup",function(){d(this,h)}).bind("focus",function(){d(this,h)}).bind("mouseover",function(){d(this,h)}).bind("mouseout",function(){d(this,h)}).bind("paste",function(){var i=this;setTimeout(function(){d(i,h)},10)});if(this.addEventListener){this.addEventListener("input",function(){d(this,h)},false)}d(this,h)})}})(jQuery);
