/*
 * jQuery.fn.autoResize 1.14
 * --
 * https://github.com/padolsey/jQuery.fn.autoResize
 * --
 * This program is free software. It comes without any warranty, to
 * the extent permitted by applicable law. You can redistribute it
 * and/or modify it under the terms of the Do What The Fuck You Want
 * To Public License, Version 2, as published by Sam Hocevar. See
 * http://sam.zoy.org/wtfpl/COPYING for more details. */
(function(a){function e(b,c){if(b.data("AutoResizer")){b.data("AutoResizer").destroy()}c=this.config=a.extend({},d.defaults,c);this.el=b;this.nodeName=b[0].nodeName.toLowerCase();this.originalHeight=b.height();this.previousScrollTop=null;this.value=b.val();if(c.maxWidth==="original")c.maxWidth=b.width();if(c.minWidth==="original")c.minWidth=b.width();if(c.maxHeight==="original")c.maxHeight=b.height();if(c.minHeight==="original")c.minHeight=b.height();if(this.nodeName==="textarea"){b.css({resize:"none",overflowY:"hidden"})}b.data("AutoResizer",this);c.animate.complete=function(a){return function(){c.onAfterResize.call(b);return a.apply(this,arguments)}}(c.animate.complete);this.bind()}function d(b){this.filter(d.resizableFilterSelector).each(function(){new e(a(this),b)});return this}var b="ar"+ +(new Date),c=d.defaults={onResize:function(){},onBeforeResize:function(){return 123},onAfterResize:function(){return 555},animate:{duration:200,complete:function(){}},extraSpace:50,minHeight:"original",maxHeight:500,minWidth:"original",maxWidth:500};d.cloneCSSProperties=["lineHeight","textDecoration","letterSpacing","fontSize","fontFamily","fontStyle","fontWeight","textTransform","textAlign","direction","wordSpacing","fontSizeAdjust","paddingTop","paddingLeft","paddingBottom","paddingRight","width"];d.cloneCSSValues={position:"absolute",top:-9999,left:-9999,opacity:0,overflow:"hidden"};d.resizableFilterSelector=["textarea:not(textarea."+b+")","input:not(input[type])","input[type=text]","input[type=password]","input[type=email]","input[type=url]"].join(",");d.AutoResizer=e;a.fn.autoResize=d;e.prototype={bind:function(){var b=a.proxy(function(){this.check();return true},this);this.unbind();this.el.bind("keyup.autoResize",b).bind("change.autoResize",b).bind("paste.autoResize",function(){setTimeout(function(){b()},0)});if(!this.el.is(":hidden")){this.check(null,true)}},unbind:function(){this.el.unbind(".autoResize")},createClone:function(){var c=this.el,e=this.nodeName==="textarea"?c.clone():a("<span/>");this.clone=e;a.each(d.cloneCSSProperties,function(a,b){e[0].style[b]=c.css(b)});e.removeAttr("name").removeAttr("id").addClass(b).attr("tabIndex",-1).css(d.cloneCSSValues);if(this.nodeName==="textarea"){e.height("auto")}else{e.width("auto").css({whiteSpace:"nowrap"})}},check:function(a,b){if(!this.clone){this.createClone();this.injectClone()}var c=this.config,d=this.clone,e=this.el,f=e.val();if(f===this.prevValue){return true}this.prevValue=f;if(this.nodeName==="input"){d.text(f);var g=d.width(),h=g+c.extraSpace>=c.minWidth?g+c.extraSpace:c.minWidth,i=e.width();h=Math.min(h,c.maxWidth);if(h<i&&h>=c.minWidth||h>=c.minWidth&&h<=c.maxWidth){c.onBeforeResize.call(e);c.onResize.call(e);e.scrollLeft(0);if(c.animate&&!b){e.stop(1,1).animate({width:h},c.animate)}else{e.width(h);c.onAfterResize.call(e)}}return}d.width(e.width()).height(0).val(f).scrollTop(1e4);var j=d[0].scrollTop;if(this.previousScrollTop===j){return}this.previousScrollTop=j;if(j+c.extraSpace>=c.maxHeight){e.css("overflowY","");j=c.maxHeight;b=true}else if(j<=c.minHeight){j=c.minHeight}else{e.css("overflowY","hidden");j+=c.extraSpace}c.onBeforeResize.call(e);c.onResize.call(e);if(c.animate&&!b){e.stop(1,1).animate({height:j},c.animate)}else{e.height(j);c.onAfterResize.call(e)}},destroy:function(){this.unbind();this.el.removeData("AutoResizer");this.clone.remove();delete this.el;delete this.clone},injectClone:function(){(d.cloneContainer||(d.cloneContainer=a("<arclones/>").appendTo("body"))).append(this.clone)}}})(jQuery)
