!function(t){"use strict";var s=function(s,e){this.el=s,this.$el=t(s),this._initialized=!1,this.init(e)};s.prototype={init:function(t){return this.type="Tally",this._setOptions(t),this._events="focusin.tally focusout.tally keyup.tally input.tally paste.tally",this._buildTallyObject(),this._bindEvents(),this.count=0,this.x=0,this.y=0,this.$el.data("Tally",this),this.$el},destroy:function(){this._initialized&&(this.$tally.remove(),this.$tally=void 0,this.$el.off(".tally"))},_setOptions:function(s){var e,i=this.$el.data("tally"),n=this.$el.attr("maxlength");this.options=t.extend(!0,{},t.fn.tally.defaults,s),i&&(this.options=t.extend(!0,{},this.options,i)),e=this.options,this.options.maxlength=n?n-0:e.maxlength-0,this.options.countDirection=e.countDirection.toLowerCase(),-1==="updown".indexOf(e.countDirection)&&(this.options.countDirection="up")},_updateTally:function(t){var s=this.options,e="focusout"===t?"static":"relative",i="focusout"===t?"static":"absolute";this.$tally.css({position:i,zIndex:s.position.zIndex}),this.$tallyBar.css({position:e,zIndex:s.position.zIndex+1}),this.$tallyText.css({position:e,zIndex:s.position.zIndex+2}),this._setXY()},_bindEvents:function(){var t=this,s=t.options,e=t._events,i=t.$tallyText;t.$el.on(e,function(e){i.text("focusout"===e.type?"":t._buildText()),t._updateClasses(e),s.showProgressBar&&t._updateProgressBar(),s.setPosition&&t._updateTally(e.type)})},_updateProgressBar:function(){this.$tallyBar.css("background-width",this._getPercentage()+"%")},_fireEvent:function(t){this.$el.trigger("warning"===t?"tallyWarning":"tallyPass")},_hasWarning:function(){return this.$tally.hasClass(this.options.classes.warning)},_updateClasses:function(s){var e,i=this,n=i.$tally,a=t(s.target),l=s.type,o=this.options,r=o.classes.field,h=o.warnAt,c=o.countDirection,p=this._countChars(),u=o.maxlength;l.indexOf("focus")>-1&&(i._setClasses(n,"add"),"focusin"===l?n.addClass(o.classes.main).show():(n.removeClass(o.classes.main+" "+o.classes.warning).hide(),a.removeClass(r))),this._fireEvent(this._hasWarning()?"pass":"warning"),e="up"===c?u-h>p:p>h,this._setClasses(a,e?"remove":"add")},_setClasses:function(t,s){var e=this.options.classes;s="add"===s?"addClass":"removeClass",t[s](e.field),this.$tally[s](e.warning)},_buildText:function(){var t=this.options,s=t.pattern,e=t.maxlength,i=this._countWords(),n=this._pad(this._countChars()),a=this._getPercentage(n,e),l=e-n;return s=s.replace("{{c}}",n).replace("{{m}}",e).replace("{{r}}",l).replace("{{w}}",i).replace("{{p}}",this._pad(a,3),"")},_countChars:function(){var t=this.$el.val().length,s=this.options;return"down"===s.countDirection?s.maxlength-t:t},_getPercentage:function(t,s){var e=parseInt(Math.floor(t/s*100),10);return"down"===this.options.countDirection?100-e:e},_countWords:function(){var t=this.$el.val();return t.match(/\S+/g)?t.match(/\S+/g).length:t?1:0},_buildTallyObject:function(){var s,e,i=this.options,n=t("#"+i.id);this._initialized||0!==n.length?(this.$tally=n,this.$tallyText=n.find("."+i.classes.text),this.$tallyBar=n.find("."+i.classes.progressBar)):(s=t("
",{id:i.id}).hide(),this.$tally=s,e=t("",{"class":i.classes.progressBar,display:"block"}),e.appendTo(s),this.$tallyBar=e,e=t("",{"class":i.classes.text,display:"block"}).appendTo(s),s.appendTo("body"),this.$tallyText=e,this._initialized=!0)},_setXY:function(){var t=0,s=0,e=this.options.position,i=e.x,n=e.y,a=parseInt(e.offsetX,10),l=parseInt(e.offsetY,10),o=this.$el.offset().left,r=this.$el.width(),h=this.$el.offset().top,c=this.$el.height(),p=this.$tally.outerWidth(),u=this.$tally.outerHeight();switch(i){case"left":t=o;break;case"center":t=o+r/2-p/2;break;case"right":t=o+r-p+6;break;default:t=parseInt(i,10)}switch(n){case"top":s=h-u-8;break;case"center":s=h+c/2-u/2;break;case"bottom":s=h+c+7;break;default:s=parseInt(n,10)}"left"===i&&"center"===n&&(t-=p+13),"right"===i&&"center"===n&&(t+=p+12),"number"==typeof a&&(t+=parseInt(a,10)),"number"==typeof l&&(s+=parseInt(l,10)),this.$tally.css({top:s,left:t})},_pad:function(t,s,e){var i=this.options.maxlength+"";for(s=s||i.length,e=e||"0",t+="";t.length