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

Revision 3177, 3.5 KB checked in by alexandrecorreia, 14 years ago (diff)

Ticket #941 - Correcao de layout e carregamento do javascript para IE8 no modulo IM sem JAVA.

  • 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(pObj&&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)
12{pObj.removeEventListener(pEvent,pHandler,false);}
13else if(pObj.detachEvent)
14{pObj.detachEvent('on'+pEvent,pHandler);}}}}
15function _drag(e)
16{if(typeof e.preventDefault!='undefined')
17e.preventDefault();else
18e.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);}}
20function _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;}}
23function _load()
24{if(arguments.length>0)
25{var pId=arguments[0];_configEvent(document.getElementById(pId+"__draggable"),'onmousedown',_mouseDownShadow);}}
26function _getMouseOffset(e,el)
27{var docPos=_getPosition(el);var mousePos=_mouseCoords(e);return{'x':mousePos.x-docPos.x,'y':mousePos.y-docPos.y};}
28function _getPosition(_pObject)
29{var left=0;var top=0;while(_pObject.offsetParent)
30{left+=_pObject.offsetLeft;top+=_pObject.offsetTop;_pObject=_pObject.offsetParent;}
31left+=_pObject.offsetLeft;top+=_pObject.offsetTop;return{'x':left,'y':top};}
32function _mouseCoords(ev)
33{var CoordX="";var CoordY="";if(ev.pageX||ev.pageY)
34return{'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};}
35function _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';}}
39function _mouseUp()
40{if(_element)
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();}}
42function _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){}}
46function _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;}
49catch(e){}}
50function _drag_drop(){}
51_drag_drop.prototype.set=_load;window._drag_drop=_drag_drop;})();
Note: See TracBrowser for help on using the repository browser.