function gibFormWerte( $oForm ) {
	var $iInputAnz, $aUrlParams, $i1
	
	// Daten aus dem Formular holen
	$iInputAnz= $oForm.elements.length;
	$aUrlParams= new Array();
	for( $i1=0; $i1<$iInputAnz; $i1++ ) {
		if($oForm.elements[$i1].name!='') {
			// Daten URL-kodieren
			$aUrlParams[$oForm.elements[$i1].name]= $oForm.elements[$i1].value;
		}
	} // for - alle Formular Elemente - ENDE

	return $aUrlParams;
} // function - gibFormWerte - ENDE


// Klasse zum fuellen von HTML-Containern per Ajax
function fuelleDiv($sDivIdLoc, $sDname, $aUrlParams, $sGPMethod, $sCallback) {
	// lokale Variablen deklarieren
	var $sDnameUrl, $sSend, $sKey;

	// Eigenschaften festlegen
	this.sDivId= $sDivIdLoc; // ID des Ausgabebereiches
	this.sDname= $sDname; // Dateiname der PHP-Datei fuer die HTTP-Anfrage
	this.sUrlParams= ''; // URL-Parameterliste
	this.sGPMethod= $sGPMethod; // Methode GET|POST mit der die URL-Parameter gesendet werden
	this.sCallback= $sCallback; // Callback-JS-code, der ausgefuehrt wird bei fertig gestellter Ubertragung
	
	// URL-Parameter URL-codieren
	var $aParams= new Array();
	for( $sKey in $aUrlParams ) {
		$aParams[$aParams.length]= encodeURIComponent($sKey) + '=' + encodeURIComponent($aUrlParams[$sKey]);
	} // for in - fuer alle Parameter - ENDE
	this.sUrlParams= $aParams.join('&');

	// XMLHttp-Objekt erzeugen
	if( window.XMLHttpRequest ) {
		this.oHttp= new window.XMLHttpRequest();
	}
	else if( window.ActiveXObject ) { // fuer IE < Version 7
		this.oHttp= new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	// falls Objekt nicht erzeugt werden konnte
	if(this.oHttp==null) {
		alert('Keine XMLHttp Unterstützung.');
		return false;
	}
	
	// GET-POST unterscheiden
	if(this.sGPMethod.toLowerCase()=='post') {
		$sDnameUrl= this.sDname;
		$sSend= this.sUrlParams;
	} // if - wenn POST - ENDE
	else { // wenn GET oder anders
		$sDnameUrl= this.sDname + '?' + this.sUrlParams;
		$sSend= null;
	} // else - wenn GET - ENDE
	
	// Verbindung zum Server definieren
	this.oHttp.open( this.sGPMethod, $sDnameUrl, true );
	
	// dieses Objekt als Elternelement von oHttp deklarieren
	this.oHttp.parent= this;
	// Referenz fuer Kind-Objekt erstellen (wg. Kompatibilitaet zu FF2, IE6)
	var $oHttp= this.oHttp;
	
	// Callback-Funktion festlegen
	this.oHttp.onreadystatechange= function() {
		var $oAusgBox;
		$oAusgBox= document.getElementById($oHttp.parent.sDivId);
		// Antwort auswerten
		if( $oHttp.readyState == 4  &&  $oHttp.status == 200 ) {
			$oAusgBox.innerHTML= $oHttp.responseText;
			if($oHttp.parent.sCallback != null) {
				eval($oHttp.parent.sCallback);
			}
		}
	} // onreadystatechange - ENDE
	
	if(this.sGPMethod.toLowerCase()=='post') {
		this.oHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	} // if - wenn POST - ENDE

	// Anfrage senden
	this.oHttp.send($sSend);

} // function - fuelleDiv - ENDE

// Klasse zur Uebertragung von Daten-Objekten per Ajax/JSON
function JSON($sDname, $aUrlParams, $sGPMethod, $sCallback) {
	var $sDnameUrl, $sSend, $sKey;

	// Eigenschaften
	this.sDname= $sDname; // Dateiname der Server-Datei, die die JSON-Daten liefert
	this.sUrlParams= ''; // URL-codierte Parameterliste
	this.sGPMethod= $sGPMethod; // Uebertragungsmethode GET|POST
	this.sCallback= $sCallback; // Funktion, die nach fertiger Uebertragung aufgerufen wird
	this.oHttp= null; // Objekt fuer das XMLHTTP-Objekt
	this.json= null; // Objekt fuer das JSON-Array/-Objekt
	this.jsonString= ''; // JSON-String

	// URL-Parameter URL-codieren
	var $aParams= new Array();
	for( $sKey in $aUrlParams ) {
		$aParams[$aParams.length]= encodeURIComponent($sKey) + '=' + encodeURIComponent($aUrlParams[$sKey]);
	} // for in - fuer alle Parameter - ENDE
	this.sUrlParams= $aParams.join('&');
	
	// XMLHttp-Objekt erzeugen
	if( window.XMLHttpRequest ) {
		this.oHttp= new window.XMLHttpRequest();
	}
	else if( window.ActiveXObject ) { // fuer IE < Version 7
		this.oHttp= new ActiveXObject("Microsoft.XMLHTTP");
	}

	// falls Objekt nicht erzeugt werden konnte
	if(this.oHttp==null) {
		alert('Keine XMLHttp Unterstützung.');
		return false;
	}

	// GET-POST unterscheiden
	if(this.sGPMethod.toLowerCase()=='post') {
		$sDnameUrl= this.sDname;
		$sSend= this.sUrlParams;
	} // if - wenn POST - ENDE
	else { // wenn GET oder anders
		$sDnameUrl= this.sDname + '?' + this.sUrlParams;
		$sSend= null;
	} // else - wenn GET - ENDE

	// Verbindung zum Server definieren
	this.oHttp.open( this.sGPMethod, $sDnameUrl, true );
	
	// dieses Objekt als Elternelement von oHttp deklarieren
	this.oHttp.parent= this;
	// Referenz fuer Kind-Objekt erstellen (wg. Kompatibilitaet zu FF2, IE6)
	var $oHttp= this.oHttp;

	// Callback-Funktion festlegen
	this.oHttp.onreadystatechange= function() {
		// Antwort auswerten
		if( $oHttp.readyState == 4  &&  $oHttp.status == 200 ) {
			$oHttp.parent.jsonString= $oHttp.responseText;
			if($oHttp.parent.jsonString!=''){
			$oHttp.parent.json= eval('(' + $oHttp.parent.jsonString + ')' );
			}
			else{
				$oHttp.parent.json= false;
			}
			if($oHttp.parent.sCallback != null) {
				eval($oHttp.parent.sCallback);
			}
		}
	} // onreadystatechange - ENDE

	if(this.sGPMethod.toLowerCase()=='post') {
		this.oHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	} // if - wenn POST - ENDE

	// Anfrage senden
	this.oHttp.send($sSend);

	// Methoden
	this.gibJson= function() {
		return this.json;
	}
	
	this.gibJsonString= function() {
		return this.jsonString;
	}
	
} // function - JSON - ENDE

