var isIE=!!document.all,dobj=function(t){return"string"==typeof t?document.getElementById(t):t},Class={create:function(){return function(){this.initialize.apply(this,arguments)}}},Extend=function(t,i){for(var e in i)t[e]=i[e]},Bind=function(t,i){return function(){return i.apply(t,arguments)}},BindAsEventListener=function(i,e){var s=Array.prototype.slice.call(arguments).slice(2);return function(t){return e.apply(i,[t||window.event].concat(s))}},CurrentStyle=function(t){return t.currentStyle||document.defaultView.getComputedStyle(t,null)};function addEventHandler(t,i,e){t.addEventListener?t.addEventListener(i,e,!1):t.attachEvent?t.attachEvent("on"+i,e):t["on"+i]=e}function removeEventHandler(t,i,e){t.removeEventListener?t.removeEventListener(i,e,!1):t.detachEvent?t.detachEvent("on"+i,e):t["on"+i]=null}var Resize=Class.create();Resize.prototype={initialize:function(t,i){this._obj=t.get(0),this._styleWidth=this._styleHeight=this._styleLeft=this._styleTop=0,this._sideRight=this._sideDown=this._sideLeft=this._sideUp=0,this._fixLeft=this._fixTop=0,this._scaleLeft=this._scaleTop=0,this._mxSet=function(){},this._mxRightWidth=this._mxDownHeight=this._mxUpHeight=this._mxLeftWidth=0,this._mxScaleWidth=this._mxScaleHeight=0,this._fun=function(){};var e=CurrentStyle(this._obj);this._borderX=(parseInt(e.borderLeftWidth)||0)+(parseInt(e.borderRightWidth)||0),this._borderY=(parseInt(e.borderTopWidth)||0)+(parseInt(e.borderBottomWidth)||0),this._fR=BindAsEventListener(this,this.Resize),this._fS=Bind(this,this.Stop),this.SetOptions(i),this.Max=!!this.options.Max,this._mxContainer=$(this.options.mxContainer).get(0)||null,this.mxLeft=Math.round(this.options.mxLeft),this.mxRight=Math.round(this.options.mxRight),this.mxTop=Math.round(this.options.mxTop),this.mxBottom=Math.round(this.options.mxBottom),this.Min=!!this.options.Min,this.minWidth=Math.round(this.options.minWidth),this.minHeight=Math.round(this.options.minHeight),this.Scale=!!this.options.Scale,this.Ratio=Math.max(this.options.Ratio,0),this.onResize=this.options.onResize,this._obj.style.position="absolute",this._mxContainer&&"relative"!=CurrentStyle(this._mxContainer).position&&(this._mxContainer.style.position="relative")},SetOptions:function(t){this.options={Max:!1,mxContainer:"",mxLeft:0,mxRight:9999,mxTop:0,mxBottom:9999,Min:!1,minWidth:50,minHeight:50,Scale:!1,Ratio:0,onResize:function(){}},Extend(this.options,t||{})},Set:function(t,i){var e;if(t){switch(i.toLowerCase()){case"up":e=this.Up;break;case"down":e=this.Down;break;case"left":e=this.Left;break;case"right":e=this.Right;break;case"left-up":e=this.LeftUp;break;case"right-up":e=this.RightUp;break;case"left-down":e=this.LeftDown;break;case"right-down":default:e=this.RightDown}addEventHandler(t.get(0),"mousedown",BindAsEventListener(this,this.Start,e))}},Start:function(t,i,e){if(t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,this._fun=i,this._styleWidth=this._obj.clientWidth,this._styleHeight=this._obj.clientHeight,this._styleLeft=this._obj.offsetLeft,this._styleTop=this._obj.offsetTop,this._sideLeft=t.clientX-this._styleWidth,this._sideRight=t.clientX+this._styleWidth,this._sideUp=t.clientY-this._styleHeight,this._sideDown=t.clientY+this._styleHeight,this._fixLeft=this._styleLeft+this._styleWidth,this._fixTop=this._styleTop+this._styleHeight,this.Scale&&(this.Ratio=Math.max(this.Ratio,0)||this._styleWidth/this._styleHeight,this._scaleLeft=this._styleLeft+this._styleWidth/2,this._scaleTop=this._styleTop+this._styleHeight/2),this.Max){var s=this.mxLeft,h=this.mxRight,n=this.mxTop,o=this.mxBottom;this._mxContainer&&(s=Math.max(s,0),n=Math.max(n,0),h=Math.min(h,this._mxContainer.clientWidth),o=Math.min(o,this._mxContainer.clientHeight)),h=Math.max(h,s+(this.Min?this.minWidth:0)+this._borderX),o=Math.max(o,n+(this.Min?this.minHeight:0)+this._borderY),this._mxSet=function(){this._mxRightWidth=h-this._styleLeft-this._borderX,this._mxDownHeight=o-this._styleTop-this._borderY,this._mxUpHeight=Math.max(this._fixTop-n,this.Min?this.minHeight:0),this._mxLeftWidth=Math.max(this._fixLeft-s,this.Min?this.minWidth:0)},this._mxSet(),this.Scale&&(this._mxScaleWidth=2*Math.min(this._scaleLeft-s,h-this._scaleLeft-this._borderX),this._mxScaleHeight=2*Math.min(this._scaleTop-n,o-this._scaleTop-this._borderY))}addEventHandler(document,"mousemove",this._fR),addEventHandler(document,"mouseup",this._fS),isIE?(addEventHandler(this._obj,"losecapture",this._fS),this._obj.setCapture()):(addEventHandler(window,"blur",this._fS),t.preventDefault())},Resize:function(e){with(window.getSelection?window.getSelection().removeAllRanges():document.selection.empty(),this._fun(e),this._obj.style)width=this._styleWidth+"px",height=this._styleHeight+"px",top=this._styleTop+"px",left=this._styleLeft+"px";this.onResize()},Up:function(t){this.RepairY(this._sideDown-t.clientY,this._mxUpHeight),this.RepairTop(),this.TurnDown(this.Down)},Down:function(t){this.RepairY(t.clientY-this._sideUp,this._mxDownHeight),this.TurnUp(this.Up)},Right:function(t){this.RepairX(t.clientX-this._sideLeft,this._mxRightWidth),this.TurnLeft(this.Left)},Left:function(t){this.RepairX(this._sideRight-t.clientX,this._mxLeftWidth),this.RepairLeft(),this.TurnRight(this.Right)},RightDown:function(t){this.RepairAngle(t.clientX-this._sideLeft,this._mxRightWidth,t.clientY-this._sideUp,this._mxDownHeight),this.TurnLeft(this.LeftDown)||this.Scale||this.TurnUp(this.RightUp)},RightUp:function(t){this.RepairAngle(t.clientX-this._sideLeft,this._mxRightWidth,this._sideDown-t.clientY,this._mxUpHeight),this.RepairTop(),this.TurnLeft(this.LeftUp)||this.Scale||this.TurnDown(this.RightDown)},LeftDown:function(t){this.RepairAngle(this._sideRight-t.clientX,this._mxLeftWidth,t.clientY-this._sideUp,this._mxDownHeight),this.RepairLeft(),this.TurnRight(this.RightDown)||this.Scale||this.TurnUp(this.LeftUp)},LeftUp:function(t){this.RepairAngle(this._sideRight-t.clientX,this._mxLeftWidth,this._sideDown-t.clientY,this._mxUpHeight),this.RepairTop(),this.RepairLeft(),this.TurnRight(this.RightUp)||this.Scale||this.TurnDown(this.LeftDown)},RepairX:function(t,i){if(t=this.RepairWidth(t,i),this.Scale){var e=this.RepairScaleHeight(t);if(this.Max&&e>this._mxScaleHeight)e=this._mxScaleHeight,t=this.RepairScaleWidth(e);else if(this.Min&&ethis._mxScaleWidth)e=this._mxScaleWidth,t=this.RepairScaleHeight(e);else if(this.Min&&e