// JavaScript Document
/*
* Stellt Verbindung zum Server her und laedt Quellcode aus txt-Datei nach
*/

var type = "text";
var url = "http://www.salatgurken.net/txtRBB/";
var output_id = "";

function loadPortrait(name) {
	url = "http://www.salatgurken.net/txtRBB/";
	url += name;
	url += ".txt";
	output_id = name;
	
	do_http_get_request(type, url, output_id);
}

/*
* Ajax-Kernel fuer WEB Hausarbeit von Novella Calow entnommen aus:
* Münz, Stefan: Webseiten professionell gestalten. Posting 15.1, 
* Seite 1040f. Addison-Wesley. 2008.
*/

// AJAX-Initialisierung
var ajax = false;

if(window.XMLHttpRequest)  // Mozilla, Safari,...
   ajax = new XMLHttpRequest();
else if(window.ActiveXObject) { // IE
   try {
      ajax = new ActiveXObject("Msxml2.XMLHTTP");
   }

   catch (e) {
      try {
         ajax = new ActiveXObject("Microsoft.XMLHTTP");
      }

      catch (e) {}
   }
}
// Ende AJAX-Initialisierung

/*
* Fordert ueber GET HTTP-Request an
* type text/xml
* url Scriptaufruf auf Server
* output_id Name des html-Elements
*/
function do_http_get_request(type, url, output_id) {   

   if(!ajax) return false;

   ajax.onreadystatechange = function() {
      if(ajax.readyState == 4) {
         if(ajax.status == 200) {		            
		    if(type == "text") handle_text_response(ajax.responseText, output_id);  
                else if(type == "xml") handle_xml_response(ajax.responseXML, output_id);
         } else return false;
      } else return false;
   } 
   
   ajax.open('GET', url, true); 
   ajax.send(null); 
}

/*
* fordert über POST HTTP-Request an 
* analog zu get
* post_field_ids id-Namen, der Felder, die übertragen werden
*/
function do_http_post_request(type, url, post_field_ids, output_id) {   
   if(!ajax) return false;
   
   var post_field_array = post_field_ids.split("+"); 
   post_field_str = "";
   
   for(i = 0; i < post_field_array.length; i++) {
          post_field_id = post_field_array[i];
          post_field_value = document.getElementById(post_field_id).value;
      post_field_str += post_field_id + "=" +  
                     encodeURIComponent(post_field_value) + "&";  
   }
   
   if(post_field_str.length > 1) post_field_str = post_field_str.substr(0, post_field_str.length - 1);

   ajax.onreadystatechange = function() {   
      if(ajax.readyState == 4) {
      	if(ajax.status == 200) {
           		if(type == "text") handle_text_response(ajax.responseText, output_id);
           		else if(type == "xml") handle_xml_response(ajax.responseXML, output_id);
          	} else return false;
      } else return false;
   } 
   

   ajax.open('POST', url, true);
   ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
   ajax.send(post_field_str);
}
 
/*
* Ausgabe der empfangenen Serverantwort im Inhalt des HTLM-Elements
*/
function handle_text_response(content, output_id) {

   if(!document.getElementById) return false;
   if(!document.getElementById(output_id)) return false;
   
   document.getElementById(output_id).innerHTML = content;
} 

/*
* Ausgabe der empfangenen Serverantwort an globale Variable xml_response_handler,
* wenn vorhanden, in der Funktion abgelegt sein sollte, die emfpangenes XML-Format 
* in HTML-Struktur überführen kann
*/
function handle_xml_response(content, output_id) {

   if(!document.getElementById) return false;
   if(!document.getElementById(output_id)) return false;
   
   if(xml_response_handler) xml_response_handler(ajax.responseXML, output_id);
}
