var pfad = "http://www.javanita.com/";

function init(){

    var dfns = document.getElementsByTagName("dfn");
    if(!dfns) return false;

    for(var i=0;i<dfns.length;i++){

        var dfn =  dfns[i].firstChild.nodeValue;

        if(dfn!=null){

                   dfns[i].onclick = new Function("ereignis","info.position_ermitteln(ereignis);infobox('" + dfn +"');");


        }
    }

}

//    infobox aufrufen

function infobox(begriff){

    var url= pfad + "ajax/gloss.php?begriff=" + begriff;


    if(info.container) info.schliessen();
    document.getElementsByTagName("body")[0].appendChild(info.create());
    info.about.nodeValue = begriff;
    info.holen(url);

}

// **********************************************************************
//         container bauen fuer die infobox
// **********************************************************************

// Object erzeugen

var info={
  container: null,
  textabsatz: null,
  xmlhttp: false,

 mausX: 0,			// horizontale und ...
 mausY: 0,			// vertikale Mausposition
 div_breite: 300,		// Breite und ...
 div_hoehe: 100,			// Hoehe des info-Containers
 abstandX: 20,			// horizontaler und ...
 abstandY: 20,			// vertikaler Abstand von Mauszeiger
 rollX: 0,			// horizontale und ...
 rollY: 0,			// vertikale Scrollposition

//   container bauen

  create: function(){

     info.container = document.createElement("div");
     info.container.id = "box";
     info.container.style.width = info.div_breite + "px";
     info.container.style.height = "auto";

     var pos_x = (info.mausX + info.abstandX + info.div_breite < window.innerWidth || info.div_breite +       info.abstandX > info.mausX)?
     info.mausX + info.abstandX :	// rechts von Mauszeiger
     info.mausX - info.div_breite - info.abstandX;	// links
     // Der Kasten soll ueber dem Mauszeiger erscheinen, wenn Platz ist
     var pos_y = (info.div_hoehe + info.abstandY > info.mausY)?
     info.mausY + info.abstandY :	// unter Mauszeiger
     info.mausY - info.div_hoehe - info.abstandY;	// darueber


     info.container.style.left = info.rollX + pos_x + "px";
     info.container.style.top = info.rollY + pos_y + "px";

     info.titel = document.createElement("h1");
     info.about = document.createTextNode(info.infotitel);
     info.titel.appendChild(info.about);

     var shutdown=document.createElement("a");
     shutdown.setAttribute("href","javascript:info.schliessen()");
     info.titel.appendChild(shutdown);

     info.container.appendChild(info.titel);

     info.textabsatz = document.createElement("p");

     info.textabsatz.style.fontSize= "1.2em";
     info.textabsatz.style.margin= "3px";
     info.textabsatz.style.overflow= "auto";

     info.container.appendChild(info.textabsatz);

     info.anfasser = info.titel;
     info.anfasser.onmousedown = info.ziehen_vorbereiten;
     info.anfasser.style.cursor="move";

     return info.container;
  },

  holen: function(url){

// XMLHttpObject erzeugen
           try{
                xmlhttp=new XMLHttpRequest();
          }
          catch(error){
               try{
                      xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");  // IE 6.0
               }
               catch(error){
                      try{
                            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");   // IE 5.x
                      }
                      catch(error){
                             return false;
                      }
               }
          }

// Datei anfordern (asynchron)

      xmlhttp.open('GET',url,true);
      xmlhttp.setRequestHeader('Content-Type', 'text/xml');
      xmlhttp.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
      xmlhttp.send(null);

      xmlhttp.onreadystatechange = function(){

      if(xmlhttp.readyState==4){


           if ( xmlhttp.status == 200) {
			// daten erfolgreich geladen: starte Verarbeitung

                    var inhalt= xmlhttp.responseText;
                    var zeichen=inhalt.length;

                    for(var i=0;i<zeichen;i++){

                    inhalt=inhalt.replace("&Auml;","Ä");
                    inhalt=inhalt.replace("&Ouml;","Ö");
                    inhalt=inhalt.replace("&Uuml;","Ü");
                    inhalt=inhalt.replace("&auml;","ä");
                    inhalt=inhalt.replace("&ouml;","ö");
                    inhalt=inhalt.replace("&uuml;","ü");
                    inhalt=inhalt.replace("&szlig;","ß");
               //     inhalt=inhalt.replace(""\n\r",<br/>");

                    }

                    var infotext = document.createTextNode(inhalt);
                    info.textabsatz.appendChild(infotext);


                    info.textabsatz.innerHTML = inhalt;


		} else {
			// fehler
			alert("Fehler beim Abrufen der Daten");
		}

      }
     }

  },

//  holen-function-ende

   schliessen: function(){

              document.getElementsByTagName("body")[0].removeChild(info.container);
              info.container=null;

    },

    ziehen_vorbereiten: function(ereignis){

           if (!ereignis) var ereignis = window.event;
           info.position_ermitteln(ereignis);
           document.onmousemove = info.ziehen;
           document.onmouseup = info.stopp;
    },

  position_ermitteln: function(ereignis){

       if(!ereignis){ var ereignis= window.event; }
       info.mausX=ereignis.clientX;
       info.mausY=ereignis.clientY;

       info.roll();
  },

  roll: function(){

       if (isFinite(self.pageYOffset)) {	// DOM
                info.rollX = self.pageXOffset;
                info.rollY = self.pageYOffset;
      }
      else if (isFinite(document.documentElement && document.documentElement.scrollTop)) {		// IE neu
  	 	info.rollX = document.documentElement.scrollLeft;
   		info.rollY = document.documentElement.scrollTop;
  	} else if (isFinite(document.body.scrollTop)) {	// IE alt
   		info.rollX = document.body.scrollLeft;
   		info.rollY = document.body.scrollTop;
  	}
  },

    ziehen: function(ereignis){

           if (!ereignis) var ereignis = window.event;
           document.onmousedown = info.stopp;

           // 1.) aktuelle Position ermitteln
           var kastenX = parseInt(info.container.style.left.slice(0,-2));
           var kastenY = parseInt(info.container.style.top.slice(0,-2));

           // 2.) alte Mausposition speichern
           var mausX_alt = info.mausX;
           var mausY_alt = info.mausY;

           // 3.) neue Mausposition ermitteln
           info.position_ermitteln(ereignis);

           // 4.) um die Differenz verschieben
           info.container.style.left = kastenX + info.mausX - mausX_alt + "px";
           info.container.style.top = kastenY + info.mausY - mausY_alt + "px";

    },

    stopp: function(ereignis){

           document.onmousemove = null;
           document.onmouseup = null;

           if (document.onmousedown) {
           // *korrigiert* gegenÃ¼ber ursprÃ¼nglicher Version
                   document.onmousedown = null;
                  info.anfasser.onmousedown = info.ziehen_vorbereiten;
           }
    }

//  ende der var info
  }


// Aufruf der init-Funktion beim Laden
 window.onload = init;