_grabObj=null;function EventCtrl(div){this.div=div;this.type="";this.mask=0;this.pageX=0;this.pageY=0;}EventCtrl.prototype.linkCtrl=function(obj){if(obj&&!obj.eventCtrl){obj.eventCtrl=this;}return this;};EventCtrl.prototype.setThreshold=function(threshold){this.threshold=threshold;return this;};function getCtrlFromElementIE(el,tagName){for(;el;el=el.parentElement){if((tagName==null||el.tagName==tagName)&&el.eventCtrl){return el.eventCtrl;}}return null;}function getCtrlFromEventIE(e,tagName){var ctrl=_grabObj;var event=window.event;var fromCtrl,toCtrl;if(ctrl==null){var mask=0,type=event.type;switch(type){case"mouseover":fromCtrl=getCtrlFromElementIE(event.fromElement,tagName);toCtrl=getCtrlFromElementIE(event.toElement,tagName);if(fromCtrl!=toCtrl){ctrl=toCtrl;}if(!ctrl||(ctrl.mask&1)==0){ctrl=null;}break;case"mouseout":fromCtrl=getCtrlFromElementIE(event.fromElement,tagName);toCtrl=getCtrlFromElementIE(event.toElement,tagName);if(fromCtrl!=toCtrl){ctrl=fromCtrl;}if(!ctrl||(ctrl.mask&1)==0){ctrl=null;}break;case"mousedown":case"mousemove":case"mouseup":ctrl=getCtrlFromElementIE(event.srcElement,tagName);if(ctrl&&(ctrl.mask&2)!=0){break;}default:ctrl=null;break;}}if(ctrl){ctrl.pageX=document.body.scrollLeft+event.clientX;ctrl.pageY=document.body.scrollTop+event.clientY;ctrl.type=event.type;}return ctrl;}function getCtrlFromEventNN4(e,tagName){var ctrl=_grabObj;if(ctrl==null){ctrl=e.target.eventCtrl;}if(ctrl){var mask=0;switch(e.type){case"mouseover":case"mouseout":mask|=1;break;case"mousedown":case"mousemove":case"mouseup":mask|=2;break;}if((ctrl.mask&mask)!=0){ctrl.pageX=e.pageX;ctrl.pageY=e.pageY;ctrl.type=e.type;}else{ctrl=null;}}return ctrl;}function getCtrlFromEventMz(e,tagName){var ctrl=_grabObj;if(ctrl==null){for(var t=e.target;t!=null;t=t.parentNode){if((tagName==null||(t.nodeType==Node.ELEMENT_NODE&&t.tagName==tagName))&&("undefined"!=typeof(t.eventCtrl))){ctrl=t.eventCtrl;break;}}}if(ctrl){ctrl.pageX=e.clientX+window.scrollX;ctrl.pageY=e.clientY+window.scrollY;ctrl.type=e.type;}return ctrl;}function getCtrlFromEventNop(e,tagName){return null;}getCtrlFromEvent=(_dom==1||_dom==2)?getCtrlFromEventIE:(_dom==3?getCtrlFromEventNN4:(_dom==4?getCtrlFromEventMz:getCtrlFromEventNop));function ech_mouseover(e){var ctrl=getCtrlFromEvent(e,null);if(ctrl&&ctrl.mouseover&&!ctrl.mouseoverState){ctrl.mouseoverState=true;if(ctrl.mouseover){ctrl.mouseover(ctrl,ctrl.mouseoverClient);}}}function ech_mouseout(e){var ctrl=getCtrlFromEvent(e,null);if(ctrl&&ctrl.mouseover&&ctrl.mouseoverState){ctrl.mouseoverState=false;if(ctrl.mouseout){ctrl.mouseout(ctrl,ctrl.mouseoutClient);}}}function ech_mousedown(e){var ctrl=getCtrlFromEvent(e,null);if(ctrl&&!ctrl.dragging){_grabObj=ctrl;ctrl.dragging=true;ctrl.dragged=false;ctrl.startX=ctrl.curX=ctrl.pageX;ctrl.startY=ctrl.curY=ctrl.pageY;if(ctrl.mousedown){ctrl.mousedown(ctrl,ctrl.mousedownClient);}return false;}return true;}function ech_mousemove(e){var ctrl=getCtrlFromEvent(e,null);if(ctrl&&ctrl.dragging){if(ctrl.curX!=ctrl.pageX||ctrl.curY!=ctrl.pageY){if(Math.abs(ctrl.pageX-ctrl.startX)>ctrl.threshold||Math.abs(ctrl.pageY-ctrl.startY)>ctrl.threshold){ctrl.dragged=true;}if(ctrl.mousemove){ctrl.mousemove(ctrl,ctrl.mousemoveClient);}ctrl.curX=ctrl.pageX;ctrl.curY=ctrl.pageY;}return false;}return true;}function ech_mouseup(e){var ctrl=getCtrlFromEvent(e,null);if(ctrl&&ctrl.dragging){_grabObj=null;ctrl.dragging=false;if(ctrl.mouseup){ctrl.mouseup(ctrl,ctrl.mouseupClient);}if(!ctrl.dragged&&ctrl.mouseclick){ctrl.mouseclick(ctrl,ctrl.mouseclickClient);}ctrl.curX=ctrl.pageX;ctrl.curY=ctrl.pageY;return false;}return true;}function ech_attachMouseOverOut(div,ovrf,ovrc,outf,outc){if(!div.eventCtrl){div.eventCtrl=new EventCtrl(div);}var ctrl=div.eventCtrl;ctrl.mouseoverState=false;ctrl.mouseover=ovrf;ctrl.mouseoverClient=ovrc;ctrl.mouseout=outf;ctrl.mouseoutClient=outc;div.onmouseover=ech_mouseover;div.onmouseout=ech_mouseout;ctrl.mask|=1;return ctrl;}function ech_detachMouseOverOut(div){var ctrl=div.eventCtrl;if(ctrl){ctrl.div.onmouseover=null;ctrl.div.onmouseout=null;ctrl.mask=~1;}}function ech_attachMouseDrag(div,dwnf,dwnc,movf,movc,upf,upc,clkf,clkc){var doc;if(_dom==1||_dom==2){doc=div;doc.onmousedown=ech_mousedown;document.onmousemove=ech_mousemove;document.onmouseup=ech_mouseup;}else{if(_dom==3){doc=div.document;doc.onmousedown=ech_mousedown;doc.onmousemove=ech_mousemove;doc.onmouseup=ech_mouseup;doc.captureEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);}else{if(_dom==4){doc=div;div.onmousedown=ech_mousedown;document.body.onmousemove=ech_mousemove;document.body.onmouseup=ech_mouseup;}else{return null;}}}if(!doc.eventCtrl){doc.eventCtrl=new EventCtrl(div);}var ctrl=doc.eventCtrl;ctrl.dragging=false;ctrl.dragged=false;ctrl.startX=0;ctrl.startY=0;ctrl.curX=0;ctrl.curY=0;ctrl.mousedown=dwnf;ctrl.mousedownClient=dwnc;ctrl.mousemove=movf;ctrl.mousemoveClient=movc;ctrl.mouseup=upf;ctrl.mouseupClient=upc;ctrl.mouseclick=clkf;ctrl.mouseclickClient=clkc;ctrl.threshold=5;ctrl.mask|=2;return ctrl;}function ech_detachMouseDrag(div){var ctrl=null;if(_dom==1||_dom==2){ctrl=div.eventCtrl;if(ctrl){ctrl.div.onmousedown=null;}}else{if(_dom==3){ctrl=div.document.eventCtrl;if(ctrl){var doc=ctrl.div.document;doc.releaseEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);doc.onmousedown=null;doc.onmousemove=null;doc.onmouseup=null;}}else{if(_dom==4){ctrl=div.eventCtrl;if(ctrl){ctrl.div.onmousedown=null;}}}}if(ctrl){ctrl.mask&=~2;}}