_grabObj=null;function EventCtrl(A){this.div=A;this.type="";this.mask=0;this.pageX=0;this.pageY=0}EventCtrl.prototype.linkCtrl=function(A){if(A&&!A.eventCtrl){A.eventCtrl=this}return this};EventCtrl.prototype.setThreshold=function(A){this.threshold=A;return this};function getCtrlFromElementIE(B,A){for(;B;B=B.parentElement){if((A==null||B.tagName==A)&&B.eventCtrl){return B.eventCtrl}}return null}function getCtrlFromEventIE(H,B){var F=_grabObj;var E=window.event;var G,D;if(F==null){var A=0,C=E.type;switch(C){case"mouseover":G=getCtrlFromElementIE(E.fromElement,B);D=getCtrlFromElementIE(E.toElement,B);if(G!=D){F=D}if(!F||(F.mask&1)==0){F=null}break;case"mouseout":G=getCtrlFromElementIE(E.fromElement,B);D=getCtrlFromElementIE(E.toElement,B);if(G!=D){F=G}if(!F||(F.mask&1)==0){F=null}break;case"mousedown":case"mousemove":case"mouseup":F=getCtrlFromElementIE(E.srcElement,B);if(F&&(F.mask&2)!=0){break}default:F=null;break}}if(F){F.pageX=document.body.scrollLeft+E.clientX;F.pageY=document.body.scrollTop+E.clientY;F.type=E.type}return F}function getCtrlFromEventNN4(D,B){var C=_grabObj;if(C==null){C=D.target.eventCtrl}if(C){var A=0;switch(D.type){case"mouseover":case"mouseout":A|=1;break;case"mousedown":case"mousemove":case"mouseup":A|=2;break}if((C.mask&A)!=0){C.pageX=D.pageX;C.pageY=D.pageY;C.type=D.type}else{C=null}}return C}function getCtrlFromEventMz(D,B){var C=_grabObj;if(C==null){for(var A=D.target;A!=null;A=A.parentNode){if((B==null||(A.nodeType==Node.ELEMENT_NODE&&A.tagName==B))&&("undefined"!=typeof (A.eventCtrl))){C=A.eventCtrl;break}}}if(C){C.pageX=D.clientX+window.scrollX;C.pageY=D.clientY+window.scrollY;C.type=D.type}return C}function getCtrlFromEventNop(B,A){return null}getCtrlFromEvent=(_dom==1||_dom==2)?getCtrlFromEventIE:(_dom==3?getCtrlFromEventNN4:(_dom==4?getCtrlFromEventMz:getCtrlFromEventNop));function ech_mouseover(B){var A=getCtrlFromEvent(B,null);if(A&&A.mouseover&&!A.mouseoverState){A.mouseoverState=true;if(A.mouseover){A.mouseover(A,A.mouseoverClient)}}}function ech_mouseout(B){var A=getCtrlFromEvent(B,null);if(A&&A.mouseover&&A.mouseoverState){A.mouseoverState=false;if(A.mouseout){A.mouseout(A,A.mouseoutClient)}}}function ech_mousedown(B){var A=getCtrlFromEvent(B,null);if(A&&!A.dragging){_grabObj=A;A.dragging=true;A.dragged=false;A.startX=A.curX=A.pageX;A.startY=A.curY=A.pageY;if(A.mousedown){A.mousedown(A,A.mousedownClient)}return false}return true}function ech_mousemove(B){var A=getCtrlFromEvent(B,null);if(A&&A.dragging){if(A.curX!=A.pageX||A.curY!=A.pageY){if(Math.abs(A.pageX-A.startX)>A.threshold||Math.abs(A.pageY-A.startY)>A.threshold){A.dragged=true}if(A.mousemove){A.mousemove(A,A.mousemoveClient)}A.curX=A.pageX;A.curY=A.pageY}return false}return true}function ech_mouseup(B){var A=getCtrlFromEvent(B,null);if(A&&A.dragging){_grabObj=null;A.dragging=false;if(A.mouseup){A.mouseup(A,A.mouseupClient)}if(!A.dragged&&A.mouseclick){A.mouseclick(A,A.mouseclickClient)}A.curX=A.pageX;A.curY=A.pageY;return false}return true}function ech_attachMouseOverOut(F,B,C,E,A){if(!F.eventCtrl){F.eventCtrl=new EventCtrl(F)}var D=F.eventCtrl;D.mouseoverState=false;D.mouseover=B;D.mouseoverClient=C;D.mouseout=E;D.mouseoutClient=A;F.onmouseover=ech_mouseover;F.onmouseout=ech_mouseout;D.mask|=1;return D}function ech_detachMouseOverOut(B){var A=B.eventCtrl;if(A){A.div.onmouseover=null;A.div.onmouseout=null;A.mask=~1}}function ech_attachMouseDrag(C,D,G,H,I,B,F,K,E){var J;if(_dom==1||_dom==2){J=C;J.onmousedown=ech_mousedown;document.onmousemove=ech_mousemove;document.onmouseup=ech_mouseup}else{if(_dom==3){J=C.document;J.onmousedown=ech_mousedown;J.onmousemove=ech_mousemove;J.onmouseup=ech_mouseup;J.captureEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP)}else{if(_dom==4){J=C;C.onmousedown=ech_mousedown;document.body.onmousemove=ech_mousemove;document.body.onmouseup=ech_mouseup}else{return null}}}if(!J.eventCtrl){J.eventCtrl=new EventCtrl(C)}var A=J.eventCtrl;A.dragging=false;A.dragged=false;A.startX=0;A.startY=0;A.curX=0;A.curY=0;A.mousedown=D;A.mousedownClient=G;A.mousemove=H;A.mousemoveClient=I;A.mouseup=B;A.mouseupClient=F;A.mouseclick=K;A.mouseclickClient=E;A.threshold=5;A.mask|=2;return A}function ech_detachMouseDrag(C){var A=null;if(_dom==1||_dom==2){A=C.eventCtrl;if(A){A.div.onmousedown=null}}else{if(_dom==3){A=C.document.eventCtrl;if(A){var B=A.div.document;B.releaseEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);B.onmousedown=null;B.onmousemove=null;B.onmouseup=null}}else{if(_dom==4){A=C.eventCtrl;if(A){A.div.onmousedown=null}}}}if(A){A.mask&=~2}};
