Class("sfs.ui.layer",{element:null,modules:null,onload:null,onloadend:null,onunload:null,onunloadend:null,onresizeW:null,onresizeH:null,onmoverX:null,onmoverY:null,onmoverZ:null,mouseover:null,mouseout:null,mousedown:null,mouseup:null,mousemover:null,click:null,dblclick:null,contextmenu:null,layer:function(){this.modules=[];this.element=sfs.page.root.select("<div style=\"position:absolute;display:none;overflow:hidden;"+"left:0px;top:0px;width:12px;height:12px;z-index:0;\"></div>");this.onload=new sfs.delegate();this.onloadend=new sfs.delegate();this.onunload=new sfs.delegate();this.onunloadend=new sfs.delegate();this.onresizeW=new sfs.delegate();this.onresizeH=new sfs.delegate();this.onmoverX=new sfs.delegate();this.onmoverY=new sfs.delegate();this.onmoverZ=new sfs.delegate();this.mouseover=new sfs.delegate();this.mouseout=new sfs.delegate();this.mousedown=new sfs.delegate();this.mouseup=new sfs.delegate();this.mousemover=new sfs.delegate();this.click=new sfs.delegate();this.dblclick=new sfs.delegate();this.contextmenu=new sfs.delegate();this.element.onclick=this.click.execute.bindAsEventListener(this.onclick);this.element.ondblclick=this.dblclick.execute.bindAsEventListener(this.dblclick);this.element.oncontextmenu=this.contextmenu.execute.bindAsEventListener(this.contextmenu);this.element.onmouseover=this.mouseover.execute.bindAsEventListener(this.mouseover);this.element.onmouseout=this.mouseout.execute.bindAsEventListener(this.mouseout);this.element.onmousedown=this.mousedown.execute.bindAsEventListener(this.mousedown);this.element.onmouseup=this.mouseup.execute.bindAsEventListener(this.mouseup);this.element.onmousemover=this.mousemover.execute.bindAsEventListener(this.mousemover);this.onload.execute();this.show();this.onloadend.execute()},close:function(){this.onloadend.execute();this.element.remove();this.onloadendend.execute()},show:function(){this.element.show()},hide:function(){this.element.hide()},_width:12,width:method(function($){if($<=this._minWidth)$=this._minWidth;if($>=this._maxWidth)$=this._maxWidth;this.element.Width($);this._width=$;this.onresizeW.execute($)},function(){return this._width}),_height:12,height:method(function($){if($<=this._minHeight)$=this._minHeight;if($>=this._maxHeight)$=this._maxHeight;this.element.Height($);this._height=$;this.onresizeH.execute($)},function(){return this._height}),_x:0,x:method(function($){this.element.x($);this._x=$;this.onmoverX.execute($)},function(){return this._x}),_y:0,y:method(function($){this.element.y($);this._y=$;this.onmoverY.execute($)},function(){return this._y}),_z:0,z:method(function($){this.element.z($);this._z=$;this.onmoverZ.execute($)},function(){return this._z}),_minWidth:12,minWidth:method(function($){this._minWidth=$;if(this._width<$)this.width($)},function(){return this._minWidth}),_maxWidth:2000,maxWidth:method(function($){this._maxWidth=$;if(this._width>$)this.width($)},function(){return this._maxWidth}),_minHeight:12,minHeight:method(function($){this._minHeight=$;if(this._height<$)this.height($)},function(){return this._minHeight}),_maxHeight:2000,maxHeight:method(function($){this._maxHeight=$;if(this._height>$)this.height($)},function(){return this._maxHeight}),add:function($){this.modules.add($);this.element.addSub($.element)},remove:function($){this.modules.removeKey($);sfs.root.addSub($.element)}});Class("sfs.ui.movementLayer",{triggers:null,onStartMover:null,onStopMover:null,onStartSize:null,onStopSize:null,moverObject:null,saveX:null,saveY:null,saveWidth:null,saveHeight:null,savePosX:null,savePosY:null,movementLayer:function(){this.layer();this.onStartMover=new sfs.delegate();this.onStopMover=new sfs.delegate();this.onStartSize=new sfs.delegate();this.onStopSize=new sfs.delegate();this.triggers={};this.element.update("<div sid=\"top\" style=\"overflow:hidden;cursor:n-resize;font-size:1px;position:absolute;z-index:1000;width:38px;height:6px;top:0px;left:6px;\"></div>"+"<div sid=\"leftTop\" style=\"overflow:hidden;cursor:nw-resize;font-size:1px;position:absolute;z-index:1000;width:6px;height:6px;top:0px;left:0px;\"></div>"+"<div sid=\"right\" style=\"overflow:hidden;cursor:e-resize;font-size:1px;position:absolute;z-index:1000;width:6px;height:38px;top:6px;left:44px;\"></div>"+"<div sid=\"rightTop\" style=\"overflow:hidden;cursor:ne-resize;font-size:1px;position:absolute;z-index:1000;width:6px;height:6px;top:0px;left:44px;\"></div>"+"<div sid=\"bottom\" style=\"overflow:hidden;cursor:n-resize;font-size:1px;position:absolute;z-index:1000;width:38px;height:6px;top:44px;left:6px;\"></div>"+"<div sid=\"leftBottom\" style=\"overflow:hidden;cursor:ne-resize;font-size:1px;position:absolute;z-index:1000;width:6px;height:6px;top:44px;left:0px;\"></div>"+"<div sid=\"left\" style=\"overflow:hidden;cursor:e-resize;font-size:1px;position:absolute;z-index:1000;width:6px;height:38px;top:6px;left:0px;\"></div>"+"<div sid=\"rightBottom\" style=\"overflow:hidden;cursor:nw-resize;font-size:1px;position:absolute;z-index:1000;width:6px;height:6px;top:44px;left:44px;\"></div>");this.triggers=select("$sid");this.triggers.top.onmousedown=this.action.bindAsEventListener(this,"t");this.triggers.leftTop.onmousedown=this.action.bindAsEventListener(this,"lt");this.triggers.right.onmousedown=this.action.bindAsEventListener(this,"r");this.triggers.rightTop.onmousedown=this.action.bindAsEventListener(this,"rt");this.triggers.bottom.onmousedown=this.action.bindAsEventListener(this,"b");this.triggers.leftBottom.onmousedown=this.action.bindAsEventListener(this,"lb");this.triggers.left.onmousedown=this.action.bindAsEventListener(this,"l");this.triggers.rightBottom.onmousedown=this.action.bindAsEventListener(this,"rb");this.mousedown.add(this.action.bindAsEventListener(this,"xy"),"defaultXyAction");this.moverObject=this;this.onresizeW.add(this._resize_W.bind(this));this.onresizeH.add(this._resize_H.bind(this))},_resize_W:function($){this.triggers.top.Width($-12);this.triggers.bottom.Width($-12);this.triggers.right.x($-6);this.triggers.rightTop.x($-6);this.triggers.rightBottom.x($-6)},_resize_H:function($){this.triggers.left.Height($-12);this.triggers.right.Height($-12);this.triggers.bottom.y($-6);this.triggers.leftBottom.y($-6);this.triggers.rightBottom.y($-6)},_isSize:true,isSize:method(function(){return this._isSize},function($){if($){this.triggers.top.show();this.triggers.leftTop.show();this.triggers.right.show();this.triggers.rightTop.show();this.triggers.bottom.show();this.triggers.leftBottom.show();this.triggers.left.show();this.triggers.rightBottom.show()}else{this.triggers.top.hide();this.triggers.leftTop.hide();this.triggers.right.hide();this.triggers.rightTop.hide();this.triggers.bottom.hide();this.triggers.leftBottom.hide();this.triggers.left.hide();this.triggers.rightBottom.hide()}this._isSize=$}),_moverStatus:false,moverStatus:method(function(){return this._moverStatus},function($){this._moverStatus=$}),_sizeStatus:false,sizeStatus:method(function(){return this._sizeStatus},function($){this._sizeStatus=$}),_isMover:true,isMover:method(function(){return this._isMover},function($){this._isMover=$}),_alpha:40,alpha:method(function(){return this._alpha},function($){this._alpha=$}),saveCurrentStatus:function(){this.saveX=this._x;this.saveY=this._y;this.saveWidth=this._width;this.saveHeight=this._height;this.savePosX=sfs.page.mouseStatus.x_;this.savePosY=sfs.page.mouseStatus.y_},executeSizeActiont:function(_){if(!this._isSize||this._moverStatus)return;this.sizeStatus(true);this.saveCurrentStatus();sfs.page.openCoverLayer();if(this._alpha!=100)this.element.alpha(this._alpha);var $=this.GUID+"MoverSize";sfs.page.onmousemove.add(this.onMouseDownExecute.bind(this,_,this.stopSizeActiont.bind(this,$)),$);this.onStartSize.execute()},stopSizeActiont:function($){sfs.page.onmousemove.remove($);this.sizeStatus(false);if(this._alpha!=100)this.element.alpha(100);this.onStopSize.execute()},onMouseDownExecute:function(_,$){if(sfs.page.mouseStatus.buttonKey==0)_();else{sfs.page.closeCoverLayer();$()}},action:function(_,$){switch($){case"t":this.executeSizeActiont(this.__Tsize.bind(this));break;case"lt":this.executeSizeActiont(this.__LTsize.bind(this));break;case"r":this.executeSizeActiont(this.__Rsize.bind(this));break;case"rt":this.executeSizeActiont(this.__RTsize.bind(this));break;case"b":this.executeSizeActiont(this.__Bsize.bind(this));break;case"lb":this.executeSizeActiont(this.__LBsize.bind(this));break;case"l":this.executeSizeActiont(this.__Lsize.bind(this));break;case"rb":this.executeSizeActiont(this.__RBsize.bind(this));break;case"x":this.executePosActiont(this.__Xmover.bind(this));break;case"y":this.executePosActiont(this.__Ymover.bind(this));break;case"xy":this.executePosActiont(this.__XYmover.bind(this));break}},__Tsize:function(){this.height(this.saveHeight+this.savePosY-sfs.page.mouseStatus.y_);this.y(this.saveY-this._height+this.saveHeight)},__LTsize:function(){this.width(this.saveWidth+this.savePosX-sfs.page.mouseStatus.x_);this.height(this.saveHeight+this.savePosY-sfs.page.mouseStatus.y_);this.y(this.saveY-this._height+this.saveHeight);this.x(this.saveX-this._width+this.saveWidth)},__Rsize:function(){this.width(this.saveWidth+sfs.page.mouseStatus.x_-this.savePosX)},__RTsize:function(){this.width(this.saveWidth+sfs.page.mouseStatus.x_-this.savePosX);this.height(this.saveHeight+this.savePosY-sfs.page.mouseStatus.y_);this.y(this.saveY-this._height+this.saveHeight)},__Bsize:function(){this.height(this.saveHeight+sfs.page.mouseStatus.y_-this.savePosY)},__LBsize:function(){this.width(this.saveWidth+this.savePosX-sfs.page.mouseStatus.x_);this.height(this.saveHeight+sfs.page.mouseStatus.y_-this.savePosY);this.x(this.saveX-this._width+this.saveWidth)},__Lsize:function(){this.width(this.saveWidth+this.savePosX-sfs.page.mouseStatus.x_);this.x(this.saveX-this._width+this.saveWidth)},__RBsize:function(){this.width(this.saveWidth+sfs.page.mouseStatus.x_-this.savePosX);this.height(this.saveHeight+sfs.page.mouseStatus.y_-this.savePosY)},executePosActiont:function(_){if(!this._isMover||this._sizeStatus)return;this.moverStatus(true);this.saveCurrentStatus();sfs.page.openCoverLayer();if(this._alpha!=100)this.element.alpha(this._alpha);var $=this.GUID+"Mover";sfs.page.onmousemove.add(this.onMouseDownExecute.bind(this,_,this.stopPosActiont.bind(this,$)),$);this.onStartMover.execute()},stopPosActiont:function($){sfs.page.onmousemove.remove($);this.moverStatus(false);if(this._alpha!=100)this.element.alpha(100);this.onStopMover.execute()},__Xmover:function(){this.moverObject.x(this.saveX+sfs.page.mouseStatus.x_-this.savePosX)},__Ymover:function(){this.moverObject.y(this.saveY+sfs.page.mouseStatus.y_-this.savePosY)},__XYmover:function(){this.__Xmover();this.__Ymover()}},sfs.ui.layer)