
var Mouse = {elementX: 0, elementY: 0, windowX: 0, windowY: 0};

function getMousePosByElement(evt, el) {

  var element = document.getElementById(el);
  var elementDimension;

  if(!evt) {
    evt = window.event;
  }

  var b = Compat.getBody();

  if(browser.isIE) { //Ermittlung der Position im IE
    Mouse.elementX = evt.offsetX;
    Mouse.elementY = evt.offsetY;

    //Die -2 ist nötig, weil der IE den Schatten des Fensters nicht
    //selbstständig abzieht.
    Mouse.windowX = evt.x + b.scrollLeft - 2;
    Mouse.windowY = evt.y + b.scrollTop - 2;

  } else { //Firefox, Opera und Co

    elementDimension = this.getElementDimension(element);
    Mouse.elementX = evt.clientX - elementDimension.x + b.scrollLeft;
    Mouse.elementY = evt.clientY - elementDimension.y + b.scrollTop;

    Mouse.windowX = evt.pageX;
    Mouse.windowY = evt.pageY;

  }

}

function getElementDimension(element) {

  var rd = {x:element.offsetLeft,y:element.offsetTop, x0:0, y0:0}, tEl=element.offsetParent;

  if(browser.isIE) {

    while (tEl){

      rd.x += tEl.offsetLeft;
      if(parseInt(tEl.style.borderLeftWidth)) {
        rd.x += parseInt(tEl.style.borderLeftWidth);
      }

      if(tEl.offsetLeft == 0) {
        rd.x0++;
      }
      rd.y += tEl.offsetTop;
      if(parseInt(tEl.style.borderTopWidth)) {
        rd.y += parseInt(tEl.style.borderTopWidth);
      }

      if(tEl.offsetTop == 0) {
        rd.y0++;
      }
      tEl = tEl.offsetParent;
    }

  } else {

    while (tEl){
      rd.x += tEl.offsetLeft;
      if(tEl.offsetLeft == 0) {
        rd.x0++;
      }
      rd.y += tEl.offsetTop;
      if(tEl.offsetTop == 0) {
        rd.y0++;
      }
      tEl = tEl.offsetParent;
    }

  }
  return rd;
}


function getMousePosition(evt) {

  if(!evt) {
    evt = window.event;
  }

  if(browser.isIE) {
    var b = Compat.getBody();
    Mouse.windowX = evt.x + b.scrollLeft - 2;
    Mouse.windowY = evt.y + b.scrollTop - 2;
  } else {
    Mouse.windowX = evt.pageX;
    Mouse.windowY = evt.pageY;
  }

//  window.status = Mouse.windowX + ":" + Mouse.windowY;

}

Compat.addEventHandler(document, "mousemove", getMousePosition);
