
// 
// Diese Funktion schreibt den übergebenen String an den Body - soll so eine Art Ersatz für System.out.println sein.
// 
function writeToDocumentBody(string)
{
     var ausgabeDiv = document.getElementById( "DasTemporaereAusgabeDiv");
     if (ausgabeDiv == null )
     {
         ausgabeDiv = document.createElement('div');
         document.getElementsByTagName("body")[0].appendChild(ausgabeDiv);
         ausgabeDiv.id = "DasTemporaereAusgabeDiv";
     }
     ausgabeDiv.appendChild(document.createTextNode( string ));
     ausgabeDiv.appendChild(document.createElement('br'));
     return ausgabeDiv;    
}


// 
// Diese Funktion schreibt den übergebenen String an den Body - soll so eine Art Ersatz für System.out.println sein.
// 
var m_mouseButtonIsDown = "false";
var m_DragXRichtung;
var m_DragYRichtung;

function writeKeyValuesToFixedDiv(key, string)
{
	  // Ausgabe-Div mit weissem Hintergrund und Fensterleiste kreieren
     var ausgabeDiv = document.getElementById( "DasTemporaereSchwebendeAusgabeDiv");
	  var fensterLeisteDiv;
     if (ausgabeDiv == null )
     {
         ausgabeDiv = document.createElement('div');
         document.getElementsByTagName("body")[0].appendChild(ausgabeDiv);
         ausgabeDiv.id = "DasTemporaereSchwebendeAusgabeDiv";
         fensterLeisteDiv = document.createElement('div');
         fensterLeisteDiv.style.height = "20px";
			ausgabeDiv.appendChild(fensterLeisteDiv);
 	      ausgabeDiv.style.backgroundColor = "white";
 	      ausgabeDiv.style.border          = "1px solid black";
 	      ausgabeDiv.style.zIndex          = 10000; 
 		   ausgabeDiv.style.position        = 'absolute'; 
 		   ausgabeDiv.style.top             = '0px';
     }
	  ausgabeDiv.ondblclick = function() {document.getElementsByTagName("body")[0].removeChild(ausgabeDiv);};
     
     // Key-Values ausgeben. Der Key ist die ID des DIVs und das Label.
     var keyValueDiv = document.getElementById("IdKeyValueDiv"+key);
     if (keyValueDiv == null )
     {
         keyValueDiv = document.createElement( "DIV" );
         keyValueDiv.id = "IdKeyValueDiv"+key;
         ausgabeDiv.appendChild(keyValueDiv);
     }
     keyValueDiv.innerHTML = "<p>" + key + ": " + string + "</p>";
     return ausgabeDiv;    
}

function writeKeyValuesToFloatingDiv(key, string)
{
	  // Ausgabe-Div mit weissem Hintergrund und Fensterleiste kreieren
     var ausgabeDiv = document.getElementById( "DasTemporaereSchwebendeAusgabeDiv");
	  var fensterLeisteDiv;
     if (ausgabeDiv == null )
     {
         ausgabeDiv = document.createElement('div');
         document.getElementsByTagName("body")[0].appendChild(ausgabeDiv);
         ausgabeDiv.id = "DasTemporaereSchwebendeAusgabeDiv";
         fensterLeisteDiv = document.createElement('div');
         fensterLeisteDiv.style.height = "20px";
			ausgabeDiv.appendChild(fensterLeisteDiv);
 	      ausgabeDiv.style.backgroundColor = "white";
 	      ausgabeDiv.style.border          = "1px solid black";
 	      ausgabeDiv.style.zIndex          = 10000; 
 		   ausgabeDiv.style.position        = 'absolute'; 
 		   ausgabeDiv.style.top             = '0px';
     }
	  
	  ausgabeDiv.onmousedown = function(event)
	                           {
											event = event || window.event;                                       // event überprüfen und IE-kompatibel machen
											m_mouseButtonIsDown = "true";
											m_DragXRichtung = getMouseCoords(event).x - ausgabeDiv.offsetLeft;           
                                 m_DragYRichtung = getMouseCoords(event).y - ausgabeDiv.offsetTop;
											ausgabeDiv.style.left = (getMouseCoords(event).x - m_DragXRichtung) + "px";  // DragObjekt in x-Richtung verschieben
                                 ausgabeDiv.style.top = (getMouseCoords(event).y  - m_DragYRichtung) + "px";   // DragObjekt in y-Richtung verschiebe
                                 return false;
								      };
										
										
	  ausgabeDiv.onmousemove = function(event)
	                           {
											 	event = event || window.event; // event überprüfen und IE-kompatibel machen
												if (m_mouseButtonIsDown == "true") 
												{
                                        ausgabeDiv.style.left = (getMouseCoords(event).x - m_DragXRichtung) + "px";  // DragObjekt in x-Richtung verschieben
												    ausgabeDiv.style.top = (getMouseCoords(event).y  - m_DragYRichtung) + "px";   // DragObjekt in y-Richtung verschieben
                                        return false;
												}
									   };
										
	  document.onmouseup = function(event)
	                         {
											 event = event || window.event;                                      // event überprüfen und IE-kompatibel machen
											 m_mouseButtonIsDown = "false";
                                  return true;
								    };
	  
	  ausgabeDiv.ondblclick = function() {document.getElementsByTagName("body")[0].removeChild(ausgabeDiv);};
	  
	  // Key-Values ausgeben. Der Key ist die ID des DIVs und das Label.
	  var keyValueDiv = document.getElementById("IdKeyValueDiv"+key);
	  if (keyValueDiv == null )
	  {
	  	   keyValueDiv = document.createElement( "DIV" );
	  	   keyValueDiv.id = "IdKeyValueDiv"+key;
			ausgabeDiv.appendChild(keyValueDiv);
	  }
	  keyValueDiv.innerHTML = "<p>" + key + ": " + string + "</p>";
     return ausgabeDiv;    
}

 
//
// Diese Funktion hängt ein DIV mit der übergebenen ID an das BODY-Element. 
// Dies wird nur dann gemacht, wenn das Element mit dieser ID noch nicht existiert.
// Existiert dieses Element schon, aber hängt nicht am BODY-Knoten, so wird es dorthin verschoben.
//    
function appendFloatingDivToBody(id)
{
   var documentBody = document.getElementsByTagName("body")[0];
   var dasDiv = document.getElementById(id);                      // schauen ob das Element mit der übergebenen ID vorhanden ist 
   if (dasDiv == null )                                           // wenn nicht wird es erzeugt
   {
       dasDiv = document.createElement('div');       
       documentBody.appendChild(dasDiv); 
       dasDiv.id = id;
   } 
   else if(dasDiv.parentNode != documentBody)                     // wenn das Element vorhanden ist, aber kein Kind vom Body ist
   {                                                              // wird es dorthin verschoben, bzw. kopiert und das original gelöscht
       documentBody.appendChild(dasDiv); 
   }
   return dasDiv;
}
    

