var ajax = false;

// Firefox Klasse XMLHttpRequest.
if (window.XMLHttpRequest) {
	ajax=new XMLHttpRequest;
}

// Internet Explorer Klasse ActiveX-Objekt.
else if (window.ActiveXObject) {
	try { ajax=new ActiveXObject('Microsoft.XMLHTTP'); }
	catch (e) { }
}

// Funktion für den Abruf der Daten.
function sAjaxLoad( sMethod, sURL, sId, sCompleteFunction ) {
	// Konnte zu Beginn kein Objekt erzeugt werden, wird das Skript nicht gestartet.
	if( ajax ) {
		var opensuccess;
		var nStrPos = sURL.search(/\?/);

		// Anfrage mit GET
		// Die angegebene URL muss vom selben Server stammen.
		try {
			if( sMethod == "POST" ) {
				if( nStrPos >= 0 ) {
					opensuccess = ajax.open( sMethod, sURL.substr( 0, nStrPos ) );
				} else {
					opensuccess = ajax.open( sMethod, sURL );
				}
			} else {
				opensuccess = ajax.open( sMethod, sURL );
			}
		}
		catch (e) { alert('Beim Senden der Anfrage trat leider ein Fehler auf. Bitte laden Sie die Seite erneut und versuchen Sie es noch einmal.'); }

		if (! opensuccess) {
			// Das Ereignis onreadystatechange tritt ein, wenn sich dieser ändert.
			ajax.onreadystatechange=function() {
				// Diese Eigenschaft enthält einen Code für den aktuellen Status.
				// Der Wert 4 steht dabei für complete.
				if (ajax.readyState==4) {
					var responseText = ajax.responseText.replace(/^\\s+|\\s+\$/g,"");
					// alert( '0 -> ' + sId );
					if( typeof( sId ) != "undefined" ) {
						if( document.getElementById( sId ) ) {
							var sResponse = ajax.responseText;
							document.getElementById( sId ).innerHTML = sResponse;
						}
					}
					if( typeof( sCompleteFunction ) != "undefined" ) {
						eval( sCompleteFunction );
					}
				}
			}

			// Die Anfrage wird gesendet.
			if( sMethod == "POST" ) {
				ajax.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
				try { ajax.send( sURL.substr( nStrPos + 1 ) ); }
				catch (e) { }
			} else {
				try { ajax.send( null ); }
				catch (e) { }
			}
			
		} // ende if opensuccess
		else {
			alert( 'Beim Senden der Anfrage trat leider ein Fehler auf. Bitte laden Sie die Seite erneut und versuchen Sie es noch einmal.' );
		}
	}
} // ende load()

function trim( stringToTrim ) {
	return stringToTrim.replace(/^\\s+|\\s+\$/g,"");
}
