if(!JsNamespace.exist("Eco.XComp.Event")){JsNamespace.declare("Eco.XComp.Event",{"add":function(_a,_b,_c){for(var _d in _b){if(_b.hasOwnProperty(_d)){_a.addEventHandler(_d,_b[_d],_c);}}},"remove":function(_a,_b,_c){for(var _d in _b){if(_b.hasOwnProperty(_d)){_a.removeEventHandler(_d,_b[_d],_c);}}},"makeDraggable":function(_a,_b,_c,_d,_e,_f){if(Eco.isObject(_b)){_a._dragFuncs={"draggingFunc":_b.dragging,"draggingStartFunc":_b.start,"draggingEndFunc":_b.end,"args":_d,"isOffsetFromStart":_e};}else{_a._dragFuncs={"draggingFunc":_b,"args":_d,"isOffsetFromStart":_e};}Eco.XComp.Event.add(_a,{"onlbuttondown":Eco.XComp.Event._dragDownHandler,"onlbuttonup":Eco.XComp.Event._dragUpHandler},_c);_a.__scope=_c;if(_f){_a._delayDragProc=true;}else{_a._delayDragProc=null;}},"clearDraggable":function(_a){if(_a._dragFuncs){_a._dragFuncs=null;_a._delayDragProc=null;Eco.XComp.Event.remove(_a,{"onlbuttondown":Eco.XComp.Event._dragDownHandler,"onlbuttonup":Eco.XComp.Event._dragUpHandler});var _b=Eco.XComp.getTopLevelForm(_a.parent);var _c=_a._unique_id;var _d=false;var _e=_b.__makeDraggableTargets;for(var _f in _e){if(_e.hasOwnProperty(_f)){if(_f==_c){delete _e[_f];}else{_d=true;}}}if(!_d&&_b.findEventHandler("onmousemove",Eco.XComp.Event._dragMoveHandler)> -1){_b.__makeDraggableTargets=null;_b.__makeDraggableCurComp=null;delete _b.__makeDraggableTargets;delete _b.__makeDraggableCurComp;_b.removeEventHandler("onmousemove",Eco.XComp.Event._dragMoveHandler);}}},"_dragDownHandler":function(_a,_b){var _c=Eco.XComp.getTopLevelForm(_a.parent);if(_c.findEventHandler("onmousemove",Eco.XComp.Event._dragMoveHandler)<0){_c.addEventHandler("onmousemove",Eco.XComp.Event._dragMoveHandler);}if(!_c.__makeDraggableTargets){_c.__makeDraggableTargets={};}_c.__makeDraggableTargets[_a._unique_id]=true;Eco.XComp.Event._lockMouseEvent(_c);var _d={x:_b.screenX,y:_b.screenY};_a._drag={"startPt":_d,"offsetX":0,"offsetY":0,"isOffsetFromStart":false};_c.__makeDraggableCurComp=_a;if(!_a.__scope){_a.__scope=_c;}var _e=_a._dragFuncs,_f;if(_e){if(_e.isOffsetFromStart===true){_a._drag.isOffsetFromStart=true;}_f=_e.args;_e=_e.draggingStartFunc;}if(_e){var _g=[];if(_f){_g=_g.concat(_f);}var _h=_e.apply(this,_g);if(_h===false){_a._drag=null;}}},"_dragUpHandler":function(_a,_b){var _c=_a._drag;var _d=Eco.XComp.getTopLevelForm(_a.parent);_d.__makeDraggableCurComp=null;if(_c){Eco.XComp.Event.cancelAnimationFrame(_a._reqDragId);_a._reqDragId=null;_a._drag=null;var _e=_a._dragFuncs,_f;if(_e){_f=_e.args;_e=_e.draggingEndFunc;}if(_e){var _g=[];if(_f){_g=_g.concat(_f);}_e.apply(this,_g);}}},"_dragMoveHandler":function(_a,_b){var _c=_a.__makeDraggableCurComp;if(_c){var _d=_c._drag;if(_d){_c._dragCurPt={x:_b.screenX,y:_b.screenY};if(_c._delayDragProc){Eco.XComp.Event.cancelAnimationFrame(_c._reqDragId);_c._reqDragId=null;}_c._reqDragId=Eco.XComp.Event.requestAnimationFrame(Eco.XComp.Event._dragProcess,_c.__scope,_c);}}},"_dragProcess":function(_a){var _b=_a._dragCurPt,_c=_a._drag;if(_c==null){return;}_c.offsetX=_b.x-_c.startPt.x;_c.offsetY=_b.y-_c.startPt.y;if(!_c.isOffsetFromStart){_c.startPt=_b;}var _d=_a._dragFuncs,_e;if(_d){_e=_d.args;_d=_d.draggingFunc;}if(_d){var _f=[_c.offsetX,_c.offsetY];if(_e){_f=_f.concat(_e);}_d.apply(this,_f);}},"_lockMouseEvent":function(_a){var _b=_a._getWindow();_b._mouseLockComp=_a;_b._on_sys_lbuttonup=Eco.XComp.Event._on_default_sys_lbuttonup;_b._on_sys_mousemove=Eco.XComp.Event._on_default_sys_mousemove;},"_on_default_sys_lbuttonup":function(_a,_b,_c,_d,_e,_f,_g,_h,_i){nexacro.Window.prototype._on_default_sys_lbuttonup.call(this,_a,_b,_c,_d,_e,_f,_g,_h,_i);this._on_sys_lbuttonup=nexacro.Window.prototype._on_default_sys_lbuttonup;this._on_sys_mousemove=nexacro.Window.prototype._on_default_sys_mousemove;this._mouseLockComp=null;},"_on_default_sys_mousemove":function(_a,_b,_c,_d,_e,_f,_g,_h,_i){_a=this._mouseLockComp._control_element;nexacro.Window.prototype._on_default_sys_mousemove.call(this,_a,_b,_c,_d,_e,_f,_g,_h,_i);},"makeRepeatable":function(_a,_b,_c,_d){if(Eco.isObject(_b)){_a._repeatFuncs={"repeatStartFunc":_b.start,"repeatEndFunc":_b.end,"repeatingFunc":_b.repeating,"repeatStopFunc":_b.repeatingStop,"args":_d};}else{_a._repeatFuncs={"repeatingFunc":_b,"args":_d};}Eco.XComp.Event.add(_a,{"onlbuttondown":Eco.XComp.Event._repeatDownHandler,"onlbuttonup":Eco.XComp.Event._repeatUpHandler,"onmouseenter":Eco.XComp.Event._repeatEnterHandler,"onmouseleave":Eco.XComp.Event._repeatLeaveHandler},_c);},"clearRepeatable":function(_a){if(_a._repeatFuncs){_a._repeatFuncs=null;Eco.XComp.Event.remove(_a,{"onlbuttondown":Eco.XComp.Event._repeatDownHandler,"onlbuttonup":Eco.XComp.Event._repeatUpHandler,"onmouseenter":Eco.XComp.Event._repeatEnterHandler,"onmouseleave":Eco.XComp.Event._repeatLeaveHandler});}},"_cancelRepeatable":function(_a){var _b=_a._repeat;if(_b){Eco.XComp.Event.cancelAnimationFrame(_a._reqRepeatId);_a._reqRepeatId=null;_a._repeat=null;}},"_repeatDownHandler":function(_a,_b){Eco.XComp.Event.add(_a,{"onmousemove":Eco.XComp.Event._repeatMoveHandler},this);var _c=Eco.XComp.PositionSize.convertXY(_a.parent,[_b.clientX,_b.clientY],_a);_a._repeat={"curPoint":{x:_c[0],y:_c[1]}};var _d=_a._repeatFuncs,_e,_f;if(_d){_f=_d.args;_d=_d.repeatStartFunc;if(!_d){_d=null;}}if(_d){var _g=_a._repeat.curPoint;_e=[_g.x,_g.y];if(_f){_e=_e.concat(_f);}_d.apply(this,_e);}Eco.XComp.Event._repeatProcess.call(this,_a);},"_repeatUpHandler":function(_a,_b){Eco.XComp.Event._cancelRepeatable(_a);Eco.XComp.Event.remove(_a,{"onmousemove":Eco.XComp.Event._repeatMoveHandler},this);var _c=_a._repeatFuncs,_d;if(_c){_d=_c.args;_c=_c.repeatEndFunc;if(!_c){_c=null;}}if(_c){if(!_d){_d=[];}_c.apply(this,_d);}},"_repeatEnterHandler":function(_a,_b){var _c=_a._repeat;if(_c&&_c.curPoint){var _d=Eco.XComp.PositionSize.convertXY(_a.parent,[_b.clientX,_b.clientY],_a);_c.curPoint={x:_d[0],y:_d[1]};if(_a._reqRepeatId===null){Eco.XComp.Event._repeatProcess.call(this,_a);}}else{_a._repeat=null;}},"_repeatMoveHandler":function(_a,_b){var _c=_a._repeat;if(_c&&_c.curPoint){var _d=Eco.XComp.PositionSize.convertXY(_a.parent,[_b.clientX,_b.clientY],_a);_c.curPoint={x:_d[0],y:_d[1]};}else{_a._repeat=null;}},"_repeatLeaveHandler":function(_a,_b){var _c=_a._repeat;if(_c&&_c.curPoint){Eco.XComp.Event.cancelAnimationFrame(_a._reqRepeatId);_a._reqRepeatId=null;var _d=_a._repeatFuncs,_e;if(_d){_e=_d.args;_d=_d.repeatStopFunc;if(!_d){_d=null;}}if(_d){if(!_e){_e=[];}_d.apply(this,_e);}}else{_a._repeat=null;}},"_repeatProcess":function(_a){_a._reqRepeatId=Eco.XComp.Event.requestAnimationFrame(Eco.XComp.Event._repeatProcess,this,_a);var _b=_a._repeatFuncs,_c,_d;if(_b){_d=_b.args;_b=_b.repeatingFunc;if(!_b){_b=null;}}if(_b){var _e=_a._repeat;if(_e&&_e.curPoint){_c=[_e.curPoint.x,_e.curPoint.y];}else{_c=[ -1, -1];}if(_d){_c=_c.concat(_d);}_b.apply(this,_c);}},"requestAnimationFrame":function(_a,_b){var _c;if(arguments.length>2){_c=Eco.array.toArray(arguments,2);}else{_c=[];}var _d=nexacro._init_platform_runtime;var _e=Eco.XComp.Event._requestAnimationFrameUseSetTimer;if(_e===undefined){_e=false;}var _f=Eco.XComp.Event._requestAnimationFrame;if(!_f){if(_d){_f=function(_h,_a,_i){var _j=_i.lastTime;var _k=(Date.now?Date.now():(new Date).getTime());var _l=(1000/60)+_j-_k;if(_l<0){_l=0;}var _g=nexacro.OnceCallbackTimer.callonce(_h,function(){_i.lastTime=(Date.now?Date.now():(new Date).getTime());_a();},_l);return _g;};}else{var _h=JsNamespace.getGlobalContext();_f=_h.requestAnimationFrame;if(!_f){var _i=['ms','moz','webkit','o'];for(var _j=0;_j<_i.length&&!_f; ++_j){_f=_h[_i[_j]+'RequestAnimationFrame'];}if(!_f){_f=function(_a,_k){var _l=_k.lastTime;var _m=(Date.now?Date.now():(new Date).getTime());var _n=(1000/60)+_l-_m;if(_n<0){_n=0;}var _g=_h.setTimeout(function(){_k.lastTime=(Date.now?Date.now():(new Date).getTime());_a();},_n);return _g;};Eco.XComp.Event._requestAnimationFrameUseSetTimer=true;_e=true;}}}Eco.XComp.Event._requestAnimationFrame=_f;}if(!Eco.XComp.Event._requestAnimationFrameLastTimeInfo){Eco.XComp.Event._requestAnimationFrameLastTimeInfo={};}var _g;if(_d){var _k=Eco.XComp.Event._getRequestAnimationFrameForm(_b);var _l=_a.toString();var _m=Eco.XComp.Event._requestAnimationFrameLastTimeInfo[_l];if(_m===undefined){Eco.XComp.Event._requestAnimationFrameLastTimeInfo[_a.toString()]={'lastTime':0,'timers':[]};_m=Eco.XComp.Event._requestAnimationFrameLastTimeInfo[_l];}var _n=_f(_k,function(){_a.apply(_b,_c);},_m);_g=_n._handle;_m.id=_g;_m.timers.push(_n);}else if(_e){var _l=_a.toString();var _m=Eco.XComp.Event._requestAnimationFrameLastTimeInfo[_a.toString()];if(_m===undefined){Eco.XComp.Event._requestAnimationFrameLastTimeInfo[_l]={'lastTime':0};_m=Eco.XComp.Event._requestAnimationFrameLastTimeInfo[_l];}_g=_f(function(){_a.apply(_b,_c);},_m);_m.id=_g;}else{_g=_f(function(){_a.apply(_b,_c);});}return _g;},"_getRequestAnimationFrameForm":function(_a){var _b;if(_a._getReferenceContext){_b=_a._getReferenceContext();}else{var _c=application.mainframe.all[0];do{if(_c instanceof ChildFrame){break;}_c=_c.all[0];}while(true)_b=_c.form;}return _b;},"cancelAnimationFrame":function(_a){var _b=Eco.XComp.Event._cancelAnimationFrame;if(!_b){if(nexacro._init_platform_runtime){_b=function(_a){var _c=Eco.XComp.Event._requestAnimationFrameLastTimeInfo;if(_c){for(var _d in _c){if(_c.hasOwnProperty(_d)){if(_a==_c[_d].id){var _e=_c[_d].timers;for(var _f=0,_g=_e.length;_f<_g;_f++ ){_e[_f].destroy();_e[_f]=null;}_c[_d]=null;delete _c[_d];break;}}}}};}else{var _c=JsNamespace.getGlobalContext();_b=_c.cancelAnimationFrame;if(!_b){var _d=['ms','moz','webkit','o'];for(var _e=0;_e<_d.length&&!_b; ++_e){_b=_c[_d[_e]+'CancelAnimationFrame']||_c[_d[_e]+'CancelRequestAnimationFrame'];}if(!_b){_b=function(_a){_c.clearTimeout(_a);var _f=Eco.XComp.Event._requestAnimationFrameLastTimeInfo;if(_f){for(var _g in _f){if(_f.hasOwnProperty(_g)){if(_a==_f[_g].id){_f[_g]=null;delete _f[_g];break;}}}}};}}}Eco.XComp.Event._cancelAnimationFrame=_b;}_b(_a);}});}