function mouseCoords(ev){ if(ev.pageX || ev.pageY){ return {x:ev.pageX, y:ev.pageY}; } if(ev.clientX || ev.clientY) { return {x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, y:ev.clientY + document.body.scrollTop - document.body.clientTop }; } return false; } function getMouseOffset(target, ev){ ev = ev || window.event; var docPos = getPosition(target); var mousePos = mouseCoords(ev); //alert(mousePos.x+" "+mousePos.y); return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y}; } function getPosition(e){ var left = 0; var top = 0; while (e.offsetParent){ //alert("x:"+e.offsetLeft+" y:"+e.offsetTop+" "+e.outerHTML); try{ left += e.offsetLeft; top += e.offsetTop-e.scrollTop; }catch(ev){} e = e.offsetParent; } try{ left += e.offsetLeft; top += e.offsetTop; }catch(ev){} return {x:left, y:top}; } function Mouse() { this.checkRClick = function checkRClick (e) { if (!e)e = window.event; if ((e.button && e.button == 2) || (e.which && e.which == 3)) { return true; }else{ return false; } } this.coords = function coords(ev){ if(ev.pageX || ev.pageY){ return {x:ev.pageX, y:ev.pageY}; } if(ev.clientX || ev.clientY) { return {x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, y:ev.clientY + document.body.scrollTop - document.body.clientTop }; } return false; } } var Mouse = new Mouse();