/*
<div id="popup-bg"><!--[if lte IE 6.5]><iframe></iframe><![endif]--></div>
<div id="popup">
</div>
*/

//globals
var offsetX = 5;
var offsetY = 5;
var bgOffsetX = 5;
var bgOffsetY = 5;
var popupName = 'popup';
var popupBgName = 'popup-bg';
var popupBgWidth = 312; //für Out-of-Window Check, komplette Breite inkl. padding/border etc.
var popupBgHeight = 112; //für Out-of-Window Check, komplette Höhe inkl. padding/border etc.
var popupOowOffset = 30; //für Out-of-Window Check, damit nix hinter Scrollbars verschwindet
// Mauspositionen
var mouseX = 0;
var mouseY = 0;
var windowX = 0;
var windowY = 0;

// Browser: IE oder nicht?.
var IE = document.all?true:false;

// Wenn NS -- also !IE -- captureEvents benutzen - Netscape? Was'n das? ;-)
// if (!IE) document.captureEvents(Event.MOUSEMOVE);

function initPopup(){
	document.onmousemove = getMouseXY;
  document.onresize = getWindowXY;
  getWindowXY(0);
}

function getWindowXY(e){
  if (self.innerHeight) // all except Explorer
  {
  	windowX = self.innerWidth;
  	windowY = self.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientHeight)
  	// Explorer 6 Strict Mode
  {
  	windowX = document.documentElement.clientWidth;
  	windowY = document.documentElement.clientHeight;
  }
  else if (document.body) // other Explorers
  {
  	windowX = document.body.clientWidth;
  	windowY = document.body.clientHeight;
  }
}

// Handler zum Holen der Mausposition
function getMouseXY(e) {
  if (IE) {
    mouseX = event.clientX; //+ document.body.scrollLeft;
    mouseY = event.clientY; //+ document.body.scrollTop;
  } else {
    mouseX = e.pageX;
    mouseY = e.pageY;
  }
  
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant - ja ja..
    //scrOfY = window.pageYOffset;
    //scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  
  mouseX += scrOfX;
  mouseY += scrOfY;
  
  // negative Werte in NS möglich
  if (mouseX < 0){mouseX = 0;}
  if (mouseY < 0){mouseY = 0;}

  if( typeof( window.pageYOffset ) == 'number' ) {
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  }
  else {
    scrOfY = 0;
    scrOfX = 0;
  }
  
  if (mouseX-scrOfX+popupBgWidth > windowX) mouseX = mouseX-popupBgWidth-offsetX;
  if (mouseY-scrOfY+popupBgHeight > windowY) mouseY = mouseY-popupBgHeight-offsetY;

  return true;
}

function popup(e){
  var x = e.getElementsByTagName('*')[0].innerHTML;
  document.getElementById(popupName).innerHTML = x;
  document.getElementById(popupBgName).style.left = (mouseX+offsetX)+"px";
  document.getElementById(popupBgName).style.top = (mouseY+offsetY)+"px";
  document.getElementById(popupName).style.left = (mouseX+offsetX+bgOffsetX)+"px";
  document.getElementById(popupName).style.top = (mouseY+offsetY+bgOffsetY)+"px";
  document.getElementById(popupBgName).style.display = "block";
  document.getElementById(popupName).style.display = "block";
  return true;
}

// Element-gebundene Funktion für mouseOut
// setzt Display-Props
function popdown(){
  document.getElementById(popupBgName).style.display = "none";
  document.getElementById(popupName).style.display = "none";
  return true;
}
