[3102] | 1 | |
---|
| 2 | (function() |
---|
| 3 | {var _element=null;var _elementA=null;var _elementB=null;var _parent=null;function _configEvent(pObj,pEvent,pHandler) |
---|
[3177] | 4 | {if(pObj&&typeof pObj=='object') |
---|
[3102] | 5 | {if(pEvent.substring(0,2)=='on') |
---|
| 6 | pEvent=pEvent.substring(2,pEvent.length);if(arguments.length==3) |
---|
| 7 | {if(pObj.addEventListener) |
---|
| 8 | pObj.addEventListener(pEvent,pHandler,false);else if(pObj.attachEvent) |
---|
| 9 | pObj.attachEvent('on'+pEvent,pHandler);} |
---|
| 10 | else if(arguments.length==4) |
---|
[3177] | 11 | {if(pObj.removeEventListener) |
---|
| 12 | {pObj.removeEventListener(pEvent,pHandler,false);} |
---|
| 13 | else if(pObj.detachEvent) |
---|
| 14 | {pObj.detachEvent('on'+pEvent,pHandler);}}}} |
---|
[3102] | 15 | function _drag(e) |
---|
| 16 | {if(typeof e.preventDefault!='undefined') |
---|
| 17 | e.preventDefault();else |
---|
| 18 | e.onselectstart=new Function("return false;");_element=(e.target)?e.target:e.srcElement;if(_element) |
---|
| 19 | {_configEvent(_element,'onmousemove',_mouseMove);_configEvent(top.document,'onmousemove',_mouseMove);_configEvent(_element,'onmouseup',_mouseUp);_configEvent(top.document,'onmouseup',_mouseUp);}} |
---|
| 20 | function _elementShadow(pId) |
---|
| 21 | {if(_elementA) |
---|
| 22 | {var _elShadow=document.createElement("div");_elShadow.id=_elementA.id+"__Shadow";_elShadow.setAttribute("onselectstart","return false");_elShadow.style.width=_elementA.style.width;_elShadow.style.height=_elementA.style.height;_elShadow.style.top=_elementA.style.top;_elShadow.style.left=_elementA.style.left;_elShadow.style.zIndex=_elementA.style.zIndex;_elShadow.className="x-shadow_Div";return _elShadow;}} |
---|
| 23 | function _load() |
---|
| 24 | {if(arguments.length>0) |
---|
| 25 | {var pId=arguments[0];_configEvent(document.getElementById(pId+"__draggable"),'onmousedown',_mouseDownShadow);}} |
---|
| 26 | function _getMouseOffset(e,el) |
---|
| 27 | {var docPos=_getPosition(el);var mousePos=_mouseCoords(e);return{'x':mousePos.x-docPos.x,'y':mousePos.y-docPos.y};} |
---|
| 28 | function _getPosition(_pObject) |
---|
| 29 | {var left=0;var top=0;while(_pObject.offsetParent) |
---|
| 30 | {left+=_pObject.offsetLeft;top+=_pObject.offsetTop;_pObject=_pObject.offsetParent;} |
---|
| 31 | left+=_pObject.offsetLeft;top+=_pObject.offsetTop;return{'x':left,'y':top};} |
---|
| 32 | function _mouseCoords(ev) |
---|
| 33 | {var CoordX="";var CoordY="";if(ev.pageX||ev.pageY) |
---|
| 34 | return{'x':ev.pageX,'y':ev.pageY};CoordX=ev.clientX+document.body.scrollLeft-document.body.clientLeft;CoordY=ev.clientY+document.body.scrollTop-document.body.clientTop;return{'x':CoordX,'y':CoordY};} |
---|
| 35 | function _mouseMove(e) |
---|
| 36 | {if(_element) |
---|
| 37 | {if(_element.mouseOffset==null) |
---|
| 38 | _element.mouseOffset=_getMouseOffset(e,_element);var mousePos=_mouseCoords(e);var x=mousePos.x-_element.mouseOffset.x;var y=mousePos.y-_element.mouseOffset.y;_element.style.left=((x<0)?0:x)+'px';_element.style.top=((y<0)?0:y)+'px';}} |
---|
| 39 | function _mouseUp() |
---|
| 40 | {if(_element) |
---|
[3177] | 41 | {_configEvent(_element,'onmousemove',_mouseMove,'remove');_configEvent(top.document,'onmousemove',_mouseMove,'remove');_configEvent(_element,'onmouseup',_mouseUp,'remove');_configEvent(top.document,'onmouseup',_mouseUp,'remove');_element.mouseOffset=null;_mouseUpShadow();}} |
---|
[3102] | 42 | function _mouseDownShadow(e) |
---|
| 43 | {try |
---|
| 44 | {if(arguments.length>0) |
---|
| 45 | {var _el=(e.target)?e.target:e.srcElement;var _id=(_el.id.substring(0,_el.id.indexOf("__draggable")));_elementA=document.getElementById(_id+"__parent");_elementB=_elementShadow(_id+"__parent");_elementA.style.left='-1500px';_parent=_elementA.parentNode;var _B=_parent.appendChild(_elementB);_configEvent(_elementB,'onmouseup',_mouseUpShadow);_configEvent(_elementB,'onmousemove',_drag);}}catch(e){}} |
---|
| 46 | function _mouseUpShadow() |
---|
| 47 | {try |
---|
| 48 | {_elementA.style.top=_elementB.style.top;_elementA.style.left=_elementB.style.left;var _B=_parent.removeChild(_elementB);_elementA=null;_elementB=null;_element=null;} |
---|
| 49 | catch(e){}} |
---|
| 50 | function _drag_drop(){} |
---|
| 51 | _drag_drop.prototype.set=_load;window._drag_drop=_drag_drop;})(); |
---|