source: branches/2.2/jabberit_messenger/jmessenger/js/dragdrop.mini.js @ 3102

Revision 3102, 3.6 KB checked in by amuller, 14 years ago (diff)

Ticket #986 - Efetuado merge para o Branch 2.2( atualizacao do modulo)

  • Property svn:executable set to *
Line 
1
2(function()
3{var _element=null;var _elementA=null;var _elementB=null;var _parent=null;function _configEvent(pObj,pEvent,pHandler)
4{if(typeof pObj=='object')
5{if(pEvent.substring(0,2)=='on')
6pEvent=pEvent.substring(2,pEvent.length);if(arguments.length==3)
7{if(pObj.addEventListener)
8pObj.addEventListener(pEvent,pHandler,false);else if(pObj.attachEvent)
9pObj.attachEvent('on'+pEvent,pHandler);}
10else if(arguments.length==4)
11{if(pObj.removeEventListener&&pObj.removeEventListener!='undefined')
12pObj.removeEventListener(pEvent,pHandler,false);else if(pObj.detachEvent)
13pObj.detachEvent('on'+pEvent,pHandler);}}}
14function _drag(e)
15{if(typeof e.preventDefault!='undefined')
16e.preventDefault();else
17e.onselectstart=new Function("return false;");_element=(e.target)?e.target:e.srcElement;if(_element)
18{_configEvent(_element,'onmousemove',_mouseMove);_configEvent(top.document,'onmousemove',_mouseMove);_configEvent(_element,'onmouseup',_mouseUp);_configEvent(top.document,'onmouseup',_mouseUp);}}
19function _elementShadow(pId)
20{if(_elementA)
21{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;}}
22function _load()
23{if(arguments.length>0)
24{var pId=arguments[0];_configEvent(document.getElementById(pId+"__draggable"),'onmousedown',_mouseDownShadow);}}
25function _getMouseOffset(e,el)
26{var docPos=_getPosition(el);var mousePos=_mouseCoords(e);return{'x':mousePos.x-docPos.x,'y':mousePos.y-docPos.y};}
27function _getPosition(_pObject)
28{var left=0;var top=0;while(_pObject.offsetParent)
29{left+=_pObject.offsetLeft;top+=_pObject.offsetTop;_pObject=_pObject.offsetParent;}
30left+=_pObject.offsetLeft;top+=_pObject.offsetTop;return{'x':left,'y':top};}
31function _mouseCoords(ev)
32{var CoordX="";var CoordY="";if(ev.pageX||ev.pageY)
33return{'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};}
34function _mouseMove(e)
35{if(_element)
36{if(_element.mouseOffset==null)
37_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';}}
38function _mouseUp()
39{if(_element)
40{_mouseUpShadow();_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;_element=null;}}
41function _mouseDownShadow(e)
42{try
43{if(arguments.length>0)
44{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){}}
45function _mouseUpShadow()
46{try
47{_elementA.style.top=_elementB.style.top;_elementA.style.left=_elementB.style.left;var _B=_parent.removeChild(_elementB);_elementA=null;_elementB=null;_element=null;}
48catch(e){}}
49function _drag_drop(){}
50_drag_drop.prototype.set=_load;window._drag_drop=_drag_drop;})();
Note: See TracBrowser for help on using the repository browser.