var is_ie = navigator.appName == 'Microsoft Internet Explorer'; var is_op = navigator.appName == 'Opera' ? true : false; var is_ns = !is_ie && !is_op ? true : false; function js_drag(e,elemento) { e||window.event; var e = e; var Obj = new Object(); var body = document.getElementsByTagName('body')[0]; Obj.zI = 0; Obj.Elemento = typeof(elemento) == 'object' ? elemento : document.getElementById(elemento); js_position = function(ly,x,y) { x = is_ie||is_op ? e.clientX + document.documentElement.scrollLeft + body.scrollLeft : e.clientX + window.scrollX; y = is_ie||is_op ? e.clientY + document.documentElement.scrollTop + body.scrollTop : e.clientY + window.scrollY; Obj.startX=x; Obj.startY=y; Obj.startL=parseInt(Obj.Elemento.style.left,10); Obj.startT=parseInt(Obj.Elemento.style.top,10); Obj.startL=isNaN(Obj.startL) ? 0 : Obj.startL; Obj.startT=isNaN(Obj.startT) ? 0 : Obj.startT; Obj.Elemento.style.zIndex = ++Obj.zI; js_addEvent(document,'mousemove',startdrag); js_addEvent(document,'mouseup',enddrag); js_addEvent(document,'keypress',enddrag); if(is_ie){ e.cancelBubble = true; e.returnValue = false; } else { e.preventDefault(); } }; startdrag = function(e) { var x, y; e||event; x = is_ie||is_op ? e.clientX + document.documentElement.scrollLeft + body.scrollLeft : e.clientX + window.scrollX; y = is_ie||is_op ? e.clientY + document.documentElement.scrollTop + body.scrollTop : e.clientY + window.scrollY; ILeft = ( Obj.startL + x - parseInt(Obj.startX) ); ITop = ( Obj.startT + y - parseInt(Obj.startY) ); js_moveTo(Obj.Elemento,ILeft,ITop); if(is_ie){ e.cancelBubble = true; e.returnValue = false; }else { e.preventDefault(); } }; enddrag = function (e) { js_detEvent(document,'mousemove',startdrag); js_detEvent(document,'mouseup',enddrag); }; js_position(Obj.Elemento,e.clientX,e.clientY); }; js_moveTo = function(element,Left,Top) { element.style.left = Left + "px"; element.style.top = Top + "px"; }; js_addEvent = function(Layer,eventype,func) { if( is_ns ) Layer.addEventListener( eventype, func, true ); else if( is_ie ) Layer.attachEvent( "on" + eventype, func ); else Layer[ "on" + eventype ] = func; }; js_detEvent = function(Layer,typef,func) { if(is_ie) Layer.detachEvent("on" + typef, func); else if(is_ns) Layer.removeEventListener( typef, func, true); else Layer["on" + typef] = null; }; var IEx = document.all?true:false if (!IEx) document.captureEvents(Event.MOUSEMOVE) document.onmousemove = getMouseXY; function getMouseXY(e) { if(IEx){ coorX=event.clientX+document.documentElement.scrollLeft; coorY=event.clientY+document.documentElement.scrollTop; }else{ coorX=e.pageX; coorY=e.pageY; } if (coorX<0){coorX=0} if (coorY<0){coorY=0} return true }