function getStyle(x,styleProp)
{
	if (x.currentStyle)
      var y = x.currentStyle[styleProp];
    if (y) return y;
    
	if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
    if (y) return y;
    
    var y = x.style[styleProp];
    if (y) return y;
    if (!x.style.getPropertyValue) return null;
    y = x.style.getPropertyCSSValue(styleProp);
	return y;
}

function findPosX(obj)
{
  var curleft = 0;
  if(obj.offsetParent)
      while(1) 
      {
        curleft += obj.offsetLeft;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.x)
      curleft += obj.x;
  return curleft;
}

function findPosY(obj)
{
  var curtop = 0;
  if(obj.offsetParent)
      while(1)
      {
        curtop += obj.offsetTop;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.y)
      curtop += obj.y;
  return curtop;
}

function MousePosition(x,y) {
  this.Xcoord = x;
  this.Ycoord = y;
}
MousePosition.prototype.toString = function() {
  return "Mouse position: X=" + this.Xcoord + ", Y=" + this.Ycoord;
};

function getMouseXY(e) {
  var xcoord, ycoord;
  
  if (!e) e = window.event || window.Event || top.event || top.Event;
  if (!e) { return; }
  
  if (typeof( e.pageX ) == 'number') {
    xcoord = e.pageX;
    ycoord = e.pageY;
  }
  else if (typeof( e.clientX ) == 'number') {
    xcoord = e.clientX;
    ycoord = e.clientY;
    if (document.body &&
        ( document.body.scrollLeft || document.body.scrollTop ) ) {
      xcoord += document.body.scrollLeft;
      ycoord += document.body.scrollTop;
    }
    else if (document.documentElement &&
             ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
      xcoord += document.documentElement.scrollLeft;
      ycoord += document.documentElement.scrollTop;
    }
  }
  else { return; }

  return new MousePosition(xcoord,ycoord);
}
