// popup.js::
// javascript von franky::frank@f-a-f.de::2003
// alles frei verfügbar::
//
// die Popups werden z.B. so aufgerufen
// <div id="pop_layer" style="position:absolute; visibility:hidden; z-index:200"></div>
// <script type="text/javascript" src="popup.js"></script>
// <a href="#" onMouseOver="show_pop('<b>header</b>','&quot;content&quot;','#rahmenfarbe','#header-schriftfarbe','#header-hintergrund','#content-schriftfarbe','#content-hintergrund','schriftart','#schattenfarbe','schattenstärke(px)'); return true;" onMouseOut="kill(); return true;">
//
//

//        position an der maus
        var popwidth=150;                        // popup-fensterbreite
        var Xoffset=  10;                        // x-position an der maus
        var Yoffset=  10;                        // y-position an der maus

// id des verwendeten browsers
        var iex=(document.all);
        var nav=(document.layers);
        var old=(navigator.appName=="Netscape" && !document.layers && !document.getElementById);
        var n_6=(window.sidebar);
        var mac_ie = (iex && navigator.appVersion.indexOf("Mac") != -1);

// browser feststellen und layer-objekt auswählen
        var skin;
        if(nav) skin=document.pop_layer;
        if(iex) skin=pop_layer.style;
        if(n_6) skin=document.getElementById("pop_layer").style;

// standby-position
        var yyy=-1000;

// browser feststellen und mausbewegung auswählen
        if(nav)document.captureEvents(Event.MOUSEMOVE);
        if(n_6) document.addEventListener("mousemove",get_mouse,true);
        if(nav||iex)document.onmousemove=get_mouse;


function show(head,content)
{
   popup(head,content);
}


// dynamisch popup bewegen
function get_mouse(e)
{
  var x,y;

  if(nav || n_6) x=e.pageX;
  if(iex) x=event.x+document.body.scrollLeft;

  if(nav || n_6) y=e.pageY;
  if(iex)
  {
    y=event.y;
    if(navigator.appVersion.indexOf("MSIE 4")==-1)
      y+=document.body.scrollTop;
  }

  if(iex || nav)
  {
    skin.top=y+yyy;
    skin.left=x+Xoffset;
  }

  if(n_6)
  {
    skin.top=(y+yyy)+"px";
    skin.left=x+Xoffset+"px";
  }
  nudge(x);
}

// mehrfaches laden verhindern
function nudge(x)
{
  var extreme,overflow,temp;

  // rechts
  if(iex) extreme=(document.body.clientWidth-popwidth);
  if(n_6 || nav) extreme=(window.innerWidth-popwidth);

  if(parseInt(skin.left)>extreme)
  {
    overflow=parseInt(skin.left)-extreme;
    temp=parseInt(skin.left);
    temp-=overflow;
    if(nav || iex) skin.left=temp;
    if(n_6)skin.left=temp+"px";
  }

  // links
  if(parseInt(skin.left)<1)
  {
    overflow=parseInt(skin.left)-1;
    temp=parseInt(skin.left);
    temp-=overflow;
    if(nav || iex) skin.left=temp;
    if(n_6)skin.left=temp+"px";
  }
}


// ausgabe des popup-fensters
function popup(head,content)
{
        if(old || mac_ie)
  {
    return;
  }
  var content="<table class=\"popupbox\"><tr><th>"+head+"</th></tr><tr><td>"+content+"</td></tr></table>";
        


  yyy=Yoffset;
  skin.width=popwidth;

  if(nav)
  {
    skin.document.open();
    skin.document.write(content);
    skin.document.close();
    skin.visibility="visible";
  }

  if(iex)
  {
    pop_layer.innerHTML=content;
    skin.visibility="visible";
  }

  if(n_6)
  {
    document.getElementById("pop_layer").innerHTML=content;
    skin.visibility="visible";
  }
}

// ausblenden des popup-fensters
function kill()
{
  if(!old || mac_ie)
  {
    yyy=-1000;
    skin.visibility="hidden";
    skin.width=0;
  }
}
