!function(t){t.fn.simplyCountable=function(i){i=t.extend({counter:"#counter",countType:"characters",maxCount:140,strictMax:!1,countDirection:"down",safeClass:"safe",overClass:"over",thousandSeparator:",",onOverCount:function(){},onSafeCount:function(){},onMaxCount:function(){}},i);var e=[33,34,35,36,37,38,39,40];return t(this).each(function(){var a=t(this),s=t(i.counter);if(!s.length)return!1;var n=function(){var e,n,r=function(t){return t-2*t+i.maxCount},o=function(){return"up"===i.countDirection?n:e},h=function(t){var e="";if(i.thousandSeparator){t=t.toString(),t.match(/^-/)&&(t=t.substr(1),e="-");for(var a=t.length-3;a>0;a-=3)t=t.substr(0,a)+i.thousandSeparator+t.substr(a)}return e+t},l=function(t){a.val(t).trigger("change")};if("words"===i.countType?(e=i.maxCount-t.trim(a.val()).split(/\s+/).length,""===a.val()&&(e+=1)):e=i.maxCount-a.val().length,n=r(e),i.strictMax&&0>=e){var u=a.val();if(0>e&&i.onMaxCount(o(),a,s),"words"===i.countType){var g=u.match(new RegExp("\\s?(\\S+\\s+){"+i.maxCount+"}"));g&&l(g[0])}else l(u.substring(0,i.maxCount));e=0,n=i.maxCount}s.text(h(o())),s.hasClass(i.safeClass)||s.hasClass(i.overClass)?0>e&&s.hasClass(i.safeClass)?(s.removeClass(i.safeClass).addClass(i.overClass),i.onOverCount(o(),a,s)):e>=0&&s.hasClass(i.overClass)&&(s.removeClass(i.overClass).addClass(i.safeClass),i.onSafeCount(o(),a,s)):0>e?s.addClass(i.overClass):s.addClass(i.safeClass)};n(),a.on("keyup blur paste",function(i){switch(i.type){case"keyup":t.inArray(i.which,e)<0&&n();break;case"paste":setTimeout(n,"paste"===i.type?5:0);break;default:n()}})})}}(jQuery);