﻿(function($){$.fn.extend({counter:function(g){var h={type:'char',count:'down',goal:140,message:null,target:null};var g=$.extend({},h,g);var j=false;return this.each(function(){var c;var d=$(this);function limitWordLength(){var a=$.trim(d.val()).replace(/\s+/g," ").split(' ');var b='';for(var i=0;i<g.goal;i++){(i>0?b+=' '+a[i]:b+=a[i])}d.val(b);d.putCursorAtEnd()}function get_msg_equation(a){if(typeof g.type!=='string'){}else{switch(g.type){case'char':if(g.count==='down'){c=(g.message==null?" character(s) left":g.message);return(g.goal-a)}else if(g.count==='up'){c=(g.message==null?" characters ("+g.goal+" max)":g.message);return a}break;case'word':if(g.count==='down'){c=(g.message==null?" word(s) left":g.message);return(g.goal-a)}else if(g.count==='up'){c=(g.message==null?" words ("+g.goal+" max)":g.message);return a}break;default:}}}var e=$('<div id=\"'+this.id+'_'+g.type+'counter\" class=\"'+g.type+'Left\"><span>'+get_msg_equation($(d).val().length)+'</span>'+c+'</div>');if(g.target==null){e.insertAfter(d)}else{$(g.target).append(e)}var f=$("#"+this.id+"_"+g.type+"counter"+" span");d.bind('keyup click blur focus change paste',function(b){switch(g.type){case'char':b=$(d).val().length;break;case'word':if(d.val()===''){b=0}else{b=$.trim(d.val()).replace(/\s+/g," ").split(' ').length}break;default:}switch(g.count){case'up':if(get_msg_equation(b)>=g.goal&&g.type==='char'){$(this).val($(this).val().substring(0,g.goal));j=true;break}if(get_msg_equation(b)===g.goal&&g.type==='word'){j=true;break}else if(get_msg_equation(b)>g.goal&&g.type==='word'){limitWordLength();j=true;break}break;case'down':if(get_msg_equation(b)<=0&&g.type==='char'){$(this).val($(this).val().substring(0,g.goal));j=true;break}if(get_msg_equation(b)===0&&g.type==='word'){j=true;break}else if(get_msg_equation(b)<0&&g.type==='word'){limitWordLength();j=true;break}break;default:}d.keydown(function(a){if(j){this.focus();if((a.keyCode!==46&&a.keyCode!==8)){if($(this).val().length>g.goal&&g.type==='char'){$(this).val($(this).val().substring(0,g.goal));return false}else if(a.keyCode!==32&&a.keyCode!==8&&g.type==='word'){return true}else{return false}}else{j=false;return true}}});f.text(get_msg_equation(b))})})}})})(jQuery);(function($){$.fn.extend({putCursorAtEnd:function(b){return this.each(function(){$(this).focus();if(this.setSelectionRange){var a=$(this).val().length*2;this.setSelectionRange(a,a)}else{$(this).val($(this).val())}this.scrollTop=999999})}})})(jQuery);
