(function(b){b.widget("ui.resizable",b.extend({},b.ui.mouse,{_init:function(){var e=this,k=this.options;this.element.addClass("ui-resizable");b.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&b.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(b('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});
this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!b(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var h=this.handles.split(",");this.handles={};for(var g=0;g<h.length;g++){var f=b.trim(h[g]),d="ui-resizable-"+f;var j=b('<div class="ui-resizable-handle '+d+'"></div>');if(/sw|se|ne|nw/.test(f)){j.css({zIndex:++k.zIndex})}if("se"==f){j.addClass("ui-icon ui-icon-gripsmall-diagonal-se")
}this.handles[f]=".ui-resizable-"+f;this.element.append(j)}}this._renderAxis=function(m){m=m||this.element;for(var o in this.handles){if(this.handles[o].constructor==String){this.handles[o]=b(this.handles[o],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var i=b(this.handles[o],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(o)?i.outerHeight():i.outerWidth();var n=["padding",/ne|nw|n/.test(o)?"Top":/se|sw|s/.test(o)?"Bottom":/^e$/.test(o)?"Right":"Left"].join("");m.css(n,l);this._proportionallyResize()}if(!b(this.handles[o]).length){continue}}};this._renderAxis(this.element);this._handles=b(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();b(this.element).addClass("ui-resizable-autohide").hover(function(){b(this).removeClass("ui-resizable-autohide");
e._handles.show()},function(){if(!e.resizing){b(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){b(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(f){var d=false;for(var e in this.handles){if(b(this.handles[e])[0]==f.target){d=true}}return this.options.disabled||!!d},_mouseStart:function(h){var e=this.options,j=this.element.position(),g=this.element;this.resizing=true;this.documentScroll={top:b(document).scrollTop(),left:b(document).scrollLeft()};if(g.is(".ui-draggable")||(/absolute/).test(g.css("position"))){g.css({position:"absolute",top:j.top,left:j.left})
}if(b.browser.opera&&(/relative/).test(g.css("position"))){g.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var f=a(this.helper.css("left")),i=a(this.helper.css("top"));if(e.containment){f+=b(e.containment).scrollLeft()||0;i+=b(e.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:f,top:i};this.size=this._helper?{width:g.outerWidth(),height:g.outerHeight()}:{width:g.width(),height:g.height()};this.originalSize=this._helper?{width:g.outerWidth(),height:g.outerHeight()}:{width:g.width(),height:g.height()};this.originalPosition={left:f,top:i};this.sizeDiff={width:g.outerWidth()-g.width(),height:g.outerHeight()-g.height()};this.originalMousePosition={left:h.pageX,top:h.pageY};this.aspectRatio=(typeof e.aspectRatio=="number")?e.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var d=b(".ui-resizable-"+this.axis).css("cursor");b("body").css("cursor",d=="auto"?this.axis+"-resize":d);g.addClass("ui-resizable-resizing");this._propagate("start",h);
return true},_mouseDrag:function(l){var d=this.helper,q=this.options,g={},n=this,f=this.originalMousePosition,i=this.axis;var p=(l.pageX-f.left)||0,k=(l.pageY-f.top)||0;var e=this._change[i];if(!e){return false}var j=e.apply(this,[l,p,k]),h=b.browser.msie&&b.browser.version<7,m=this.sizeDiff;if(this._aspectRatio||l.shiftKey){j=this._updateRatio(j,l)}j=this._respectSize(j,l);this._propagate("resize",l);d.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(j);this._trigger("resize",l,this.ui());return false},_mouseStop:function(m){this.resizing=false;var d=this.options,h=this;if(this._helper){var l=this._proportionallyResizeElements,j=l.length&&(/textarea/i).test(l[0].nodeName),k=j&&b.ui.hasScroll(l[0],"left")?0:h.sizeDiff.height,f=j?0:h.sizeDiff.width;var i={width:(h.size.width-f),height:(h.size.height-k)},e=(parseInt(h.element.css("left"),10)+(h.position.left-h.originalPosition.left))||null,g=(parseInt(h.element.css("top"),10)+(h.position.top-h.originalPosition.top))||null;
if(!d.animate){this.element.css(b.extend(i,{top:g,left:e}))}h.helper.height(h.size.height);h.helper.width(h.size.width);if(this._helper&&!d.animate){this._proportionallyResize()}}b("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",m);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(c(d.left)){this.position.left=d.left}if(c(d.top)){this.position.top=d.top}if(c(d.height)){this.size.height=d.height}if(c(d.width)){this.size.width=d.width}},_updateRatio:function(f,d){var e=this.options,h=this.position,i=this.size,g=this.axis;if(f.height){f.width=(i.height*this.aspectRatio)}else{if(f.width){f.height=(i.width/this.aspectRatio)}}if(g=="sw"){f.left=h.left+(i.width-f.width);f.top=null}if(g=="nw"){f.top=h.top+(i.height-f.height);f.left=h.left+(i.width-f.width)}return f},_respectSize:function(l,k){var h=this.helper,q=this.options,r=this._aspectRatio||k.shiftKey,p=this.axis,e=c(l.width)&&q.maxWidth&&(q.maxWidth<l.width),n=c(l.height)&&q.maxHeight&&(q.maxHeight<l.height),m=c(l.width)&&q.minWidth&&(q.minWidth>l.width),s=c(l.height)&&q.minHeight&&(q.minHeight>l.height);
if(m){l.width=q.minWidth}if(s){l.height=q.minHeight}if(e){l.width=q.maxWidth}if(n){l.height=q.maxHeight}var g=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height;var i=/sw|nw|w/.test(p),f=/nw|ne|n/.test(p);if(m&&i){l.left=g-q.minWidth}if(e&&i){l.left=g-q.maxWidth}if(s&&f){l.top=j-q.minHeight}if(n&&f){l.top=j-q.maxHeight}var d=!l.width&&!l.height;if(d&&!l.left&&l.top){l.top=null}else{if(d&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var h=this.options;if(!this._proportionallyResizeElements.length){return}var d=this.helper||this.element;for(var j=0;j<this._proportionallyResizeElements.length;j++){var f=this._proportionallyResizeElements[j];if(!this.borderDif){var g=[f.css("borderTopWidth"),f.css("borderRightWidth"),f.css("borderBottomWidth"),f.css("borderLeftWidth")],e=[f.css("paddingTop"),f.css("paddingRight"),f.css("paddingBottom"),f.css("paddingLeft")];this.borderDif=b.map(g,function(m,k){var i=parseInt(m,10)||0,l=parseInt(e[k],10)||0;
return i+l})}if(b.browser.msie&&!(!(b(d).is(":hidden")||b(d).parents(":hidden").length))){continue}f.css({height:(d.height()-this.borderDif[0]-this.borderDif[2])||0,width:(d.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var d=this.element,g=this.options;this.elementOffset=d.offset();if(this._helper){this.helper=this.helper||b('<div style="overflow:hidden;"></div>');var h=b.browser.msie&&b.browser.version<7,e=(h?1:0),f=(h?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++g.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(d,f,e){return{width:this.originalSize.width+f}},w:function(f,i,h){var g=this.options,d=this.originalSize,e=this.originalPosition;return{left:e.left+i,width:d.width-i}},n:function(f,i,h){var g=this.options,d=this.originalSize,e=this.originalPosition;
return{top:e.top+h,height:d.height-h}},s:function(d,f,e){return{height:this.originalSize.height+e}},se:function(d,f,e){return b.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[d,f,e]))},sw:function(d,f,e){return b.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[d,f,e]))},ne:function(d,f,e){return b.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[d,f,e]))},nw:function(d,f,e){return b.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[d,f,e]))}},_propagate:function(e,d){b.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));b.extend(b.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});
b.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=b(this).data("resizable"),g=d.options;_store=function(h){b(h).each(function(){b(this).data("resizable-alsoresize",{width:parseInt(b(this).width(),10),height:parseInt(b(this).height(),10),left:parseInt(b(this).css("left"),10),top:parseInt(b(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{b.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(g,e){var k=b(this).data("resizable"),d=k.options,i=k.originalSize,j=k.originalPosition;var h={height:(k.size.height-i.height)||0,width:(k.size.width-i.width)||0,top:(k.position.top-j.top)||0,left:(k.position.left-j.left)||0},f=function(l,m){b(l).each(function(){var n=b(this),o=b(this).data("resizable-alsoresize"),q={},p=m&&m.length?m:["width","height","top","left"];b.each(p||["width","height","top","left"],function(r,t){var s=(o[t]||0)+(h[t]||0);
if(s&&s>=0){q[t]=s||null}});if(/relative/.test(n.css("position"))&&b.browser.opera){k._revertToRelativePosition=true;n.css({position:"absolute",top:"auto",left:"auto"})}n.css(q)})};if(typeof(d.alsoResize)=="object"&&!d.alsoResize.nodeType){b.each(d.alsoResize,function(l,m){f(l,m)})}else{f(d.alsoResize)}},stop:function(f,d){var e=b(this).data("resizable");if(e._revertToRelativePosition&&b.browser.opera){e._revertToRelativePosition=false;el.css({position:"relative"})}b(this).removeData("resizable-alsoresize-start")}});b.ui.plugin.add("resizable","animate",{stop:function(k,e){var f=b(this).data("resizable"),l=f.options;var j=f._proportionallyResizeElements,g=j.length&&(/textarea/i).test(j[0].nodeName),h=g&&b.ui.hasScroll(j[0],"left")?0:f.sizeDiff.height,n=g?0:f.sizeDiff.width;var i={width:(f.size.width-n),height:(f.size.height-h)},m=(parseInt(f.element.css("left"),10)+(f.position.left-f.originalPosition.left))||null,d=(parseInt(f.element.css("top"),10)+(f.position.top-f.originalPosition.top))||null;
f.element.animate(b.extend(i,d&&m?{top:d,left:m}:{}),{duration:l.animateDuration,easing:l.animateEasing,step:function(){var o={width:parseInt(f.element.css("width"),10),height:parseInt(f.element.css("height"),10),top:parseInt(f.element.css("top"),10),left:parseInt(f.element.css("left"),10)};if(j&&j.length){b(j[0]).css({width:o.width,height:o.height})}f._updateCache(o);f._propagate("resize",k)}})}});b.ui.plugin.add("resizable","containment",{start:function(q,s){var i=b(this).data("resizable"),k=i.options,e=i.element;var r=k.containment,l=(r instanceof b)?r.get(0):(/parent/.test(r))?e.parent().get(0):r;if(!l){return}i.containerElement=b(l);if(/document/.test(r)||r==document){i.containerOffset={left:0,top:0};i.containerPosition={left:0,top:0};i.parentData={element:b(document),left:0,top:0,width:b(document).width(),height:b(document).height()||document.body.parentNode.scrollHeight}}else{var m=b(l),h=[];b(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=a(m.css("padding"+o))});i.containerOffset=m.offset();
i.containerPosition=m.position();i.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=i.containerOffset,j=i.containerSize.height,g=i.containerSize.width,f=(b.ui.hasScroll(l,"left")?l.scrollWidth:g),d=(b.ui.hasScroll(l)?l.scrollHeight:j);i.parentData={element:l,left:n.left,top:n.top,width:f,height:d}}},resize:function(l,p){var e=b(this).data("resizable"),r=e.options,h=e.containerSize,j=e.containerOffset,n=e.size,d=e.position,q=e._aspectRatio||l.shiftKey,f={top:0,left:0},m=e.containerElement;if(m[0]!=document&&(/static/).test(m.css("position"))){f=j}if(d.left<(e._helper?j.left:0)){e.size.width=e.size.width+(e._helper?(e.position.left-j.left):(e.position.left-f.left));if(q){e.size.height=e.size.width/r.aspectRatio}e.position.left=r.helper?j.left:0}if(d.top<(e._helper?j.top:0)){e.size.height=e.size.height+(e._helper?(e.position.top-j.top):e.position.top);if(q){e.size.width=e.size.height*r.aspectRatio}e.position.top=e._helper?j.top:0}e.offset.left=e.parentData.left+e.position.left;
e.offset.top=e.parentData.top+e.position.top;var k=Math.abs((e._helper?e.offset.left-f.left:(e.offset.left-f.left))+e.sizeDiff.width),g=Math.abs((e._helper?e.offset.top-f.top:(e.offset.top-j.top))+e.sizeDiff.height);var i=e.containerElement.get(0)==e.element.parent().get(0),s=/relative|absolute/.test(e.containerElement.css("position"));if(i&&s){k-=e.parentData.left}if(k+e.size.width>=e.parentData.width){e.size.width=e.parentData.width-k;if(q){e.size.height=e.size.width/e.aspectRatio}}if(g+e.size.height>=e.parentData.height){e.size.height=e.parentData.height-g;if(q){e.size.width=e.size.height*e.aspectRatio}}},stop:function(e,m){var p=b(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=b(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){b(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){b(this).css({left:q.left-d.left-l.left,width:n,height:j})
}}});b.ui.plugin.add("resizable","ghost",{start:function(e,f){var h=b(this).data("resizable"),g=h.options,d=h.size;h.ghost=h.originalElement.clone();h.ghost.css({opacity:0.25,display:"block",position:"relative",height:d.height,width:d.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof g.ghost=="string"?g.ghost:"");h.ghost.appendTo(h.helper)},resize:function(e,f){var d=b(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=b(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});b.ui.plugin.add("resizable","grid",{resize:function(g,d){var f=b(this).data("resizable"),j=f.options,m=f.size,k=f.originalSize,l=f.originalPosition,e=f.axis,n=j._aspectRatio||g.shiftKey;j.grid=typeof j.grid=="number"?[j.grid,j.grid]:j.grid;var i=Math.round((m.width-k.width)/(j.grid[0]||1))*(j.grid[0]||1),h=Math.round((m.height-k.height)/(j.grid[1]||1))*(j.grid[1]||1);
if(/^(se|s|e)$/.test(e)){f.size.width=k.width+i;f.size.height=k.height+h}else{if(/^(ne)$/.test(e)){f.size.width=k.width+i;f.size.height=k.height+h;f.position.top=l.top-h}else{if(/^(sw)$/.test(e)){f.size.width=k.width+i;f.size.height=k.height+h;f.position.left=l.left-i}else{f.size.width=k.width+i;f.size.height=k.height+h;f.position.top=l.top-h;f.position.left=l.left-i}}}}});var a=function(d){return parseInt(d,10)||0};var c=function(d){return !isNaN(parseInt(d,10))}})(jQuery);