/**
 * func.main.js
 *
 * Enthält JS-Funktionen für die Kommunikation mittels AJAX.
 * Mittels getAjaxRequest() wird die für den jeweiligen Browser passende XmlHttpRequest-
 * Instanz angefordert. Ein AJAX-Request wird dann mittels ajaxRequest(url) abgesendet.
 * Diese Funktion delegiert die Rückgabe dann an eine benutzerdefinierte Funktion
 * ajaxResponse.
 *
 * @author		Michael Becker	(becker@digitalzone.de)
 * @since		07.01.2007
 * @version		$Id: func.ajax.js 5779 2008-06-26 14:43:04Z anja.stiede $
 * @copyright	2007 digitalzone.de
 */
 
/**
 * @var	XmlHttpRequest	enthält den AJAX-Request, mit dem auf die Ergebnisse zugegriffen werden kann
 */
var request	= false;

/**
 * Liefert den XMLHttpRequest des Browsers oder false falls der Browser diesen nicht kennt.
 *
 * @return	XmlHttpRequest	den XmlHttpRequest des Browsers
 			bool			false wenn es einen Fehler gab 
 */
function getAjaxRequest() {
	var xmlHttp	= false;
	
	/*
	 * conditional compilation für den IE anstellen, spart etwas Verarbeitungszeit beim Check
	 * auf Ajax-Fähigkeiten (http://www.javascriptkit.com/javatutors/conditionalcompile.shtml)
	 */
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	try {
		  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		  try {
			    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		  } catch (e2) {
		    xmlHttp = false;
	  }
	}
	@end @*/
	
	if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlHttp	= new XMLHttpRequest();
		} catch (e) {
			xmlHttp	= false;
		}
	}
	
	return xmlHttp;
}

/**
 * Sendet einen AJAX-Request an die URL mit den angegebenen Parametern.
 * Wenn sich der Status des Requests ändert wird versucht eine Methode ajaxResponse
 * aufzurufen.
 *
 * @param	string	url		die URL an die der Request gesendet werden soll
 */
function ajaxRequest(url) {
	request	= getAjaxRequest();
	
	if (request) {
		request.open('GET', url, true);
		request.onreadystatechange = ajaxResponse;					
		request.send(null);		
	}
}


/**
 *
 * abgeänderter Ajax Request für func.advised_search_navi_object.js 
 * zur Verhinderung des Namensraumkonfliktes mit func.advised_search_object.js
 *
 */

var request	= false;

/**
 * Liefert den XMLHttpRequest des Browsers oder false falls der Browser diesen nicht kennt.
 *
 * @return	XmlHttpRequest	den XmlHttpRequest des Browsers
 			bool			false wenn es einen Fehler gab 
 */
function getAjaxRequest_navi() {
	var xmlHttp	= false;
	
	/*
	 * conditional compilation für den IE anstellen, spart etwas Verarbeitungszeit beim Check
	 * auf Ajax-Fähigkeiten (http://www.javascriptkit.com/javatutors/conditionalcompile.shtml)
	 */
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	try {
		  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		  try {
			    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		  } catch (e2) {
		    xmlHttp = false;
	  }
	}
	@end @*/
	
	if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlHttp	= new XMLHttpRequest();
		} catch (e) {
			xmlHttp	= false;
		}
	}
	
	return xmlHttp;
}

/**
 * Sendet einen AJAX-Request an die URL mit den angegebenen Parametern.
 * Wenn sich der Status des Requests ändert wird versucht eine Methode ajaxResponse
 * aufzurufen.
 *
 * @param	string	url		die URL an die der Request gesendet werden soll
 */
function ajaxRequest_navi(url) {
	request	= getAjaxRequest_navi();
	
	if (request) {
		request.open('GET', url, true);
		request.onreadystatechange = ajaxResponse_navi;					
		request.send(null);		
	}
}
