function getRequest() {
  var http_request = false;

  // Testen ob der Browser ein XMLHttpRequest Objekt
  // zur Verfugung stellt. (Mozilla und andere)
  if (window.XMLHttpRequest) {
	 http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
      //Das Ergebnis soll als XML-Dokument betrachtet werden.
      http_request.overrideMimeType('text/xml');
    }
  // Wenn der Browser ein IE ist,
  // dann mussen andere Objekte benutzt werden.
  } else if (window.ActiveXObject) {
    try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }
  // Falls kein Request Objekt zur Verfugung steht
  // funktioniert das ganze nicht
  if (!http_request) {
    alert('Es kann kein Request Objekt erzeugt werden.');
    return false;
  }
  return http_request;
}

// doRequest stellt eine Anfrage an die ubergebene URL
function doLandRequest(lang) {
  if (!requestLand) requestLand=getRequest();
  if (!requestLand) return;
  requestLand.onreadystatechange = handlerLand;
  var scripts = lang=='r' ? 'http://www.ruslink.de/rusweb/scripts/' : 'http://www.rusweb.de/scripts/';
  requestLand.open('GET', scripts+"baum.php?lang="+lang+"&feld=land", true);
  requestLand.send(null);
}

// doRequest stellt eine Anfrage an die ubergebene URL
function doRegionRequest(lang, land) {
  requestRegion=getRequest();
  if (!requestRegion) return;
  requestRegion.onreadystatechange = handlerRegion;
  var scripts = lang=='r' ? 'http://www.ruslink.de/rusweb/scripts/' : 'http://www.rusweb.de/scripts/';
  requestRegion.open('GET', scripts+"baum.php?lang="+lang+"&feld=region&high="+land, true);
  requestRegion.send(null);
}

// doRequest stellt eine Anfrage an die ubergebene URL
function doCityRequest(lang, land, region) {
  requestCity=getRequest();
  if (!requestCity) return;
  requestCity.onreadystatechange = handlerCity;
  var scripts = lang=='r' ? 'http://www.ruslink.de/rusweb/scripts/' : 'http://www.rusweb.de/scripts/';
  requestCity.open('GET', scripts+"baum.php?lang="+lang+"&feld=city&high="+land+"&middle="+region, true);
  requestCity.send(null);
}

// doRequest stellt eine Anfrage an die ubergebene URL
function doTypRequest(lang) {
  if (!requestTyp) requestTyp=getRequest();
  if (!requestTyp) return;
  requestTyp.onreadystatechange = handlerTyp;
  var scripts = lang=='r' ? 'http://www.ruslink.de/rusweb/scripts/' : 'http://www.rusweb.de/scripts/';
  requestTyp.open('GET', scripts+"baum.php?lang="+lang+"&feld=typ", true);
  requestTyp.send(null);
}

// doRequest stellt eine Anfrage an die ubergebene URL
function doTargetRequest(lang, typ) {
  requestTarget=getRequest();
  if (!requestTarget) return;
  requestTarget.onreadystatechange = handlerTarget;
  var scripts = lang=='r' ? 'http://www.ruslink.de/rusweb/scripts/' : 'http://www.rusweb.de/scripts/';
  requestTarget.open('GET', scripts+"baum.php?lang="+lang+"&feld=target&high="+typ, true);
  requestTarget.send(null);
}

// doRequest stellt eine Anfrage an die ubergebene URL
function doGroupRequest(lang, typ, target) {
  requestGroup=getRequest();
  if (!requestGroup) return;
  requestGroup.onreadystatechange = handlerGroup;
  var scripts = lang=='r' ? 'http://www.ruslink.de/rusweb/scripts/' : 'http://www.rusweb.de/scripts/';
  requestGroup.open('GET', scripts+"baum.php?lang="+lang+"&feld=group&high="+typ+"&middle="+target, true);
  requestGroup.send(null);
}

// doRequest stellt eine Anfrage an die ubergebene URL
function doLanguageRequest(lang) {
  if (!requestLanguage) requestLanguage=getRequest();
  if (!requestLanguage) return;
  requestLanguage.onreadystatechange = handlerLanguage;
  var scripts = lang=='r' ? 'http://www.ruslink.de/rusweb/scripts/' : 'http://www.rusweb.de/scripts/';
  requestLanguage.open('GET', scripts+"baum.php?lang="+lang+"&feld=language", true);
  requestLanguage.send(null);
}

// doRequest stellt eine Anfrage an die ubergebene URL
function doResultRequest(lang, local, group, language, text) {
  requestResult=getRequest();
  if (!requestResult) return;
  requestResult.onreadystatechange = handlerResult;
  var scripts = lang=='r' ? 'http://www.ruslink.de/rusweb/scripts/' : 'http://www.rusweb.de/scripts/';
  var search  = scripts+"search.php?lang="+lang+"&local="+local+"&group="+group+"&language="+language+"&text="+text;
  requestResult.open('GET', search, true);
  requestResult.send(null);
}

// doRequest stellt eine Anfrage an die ubergebene URL
function doHeadRequest(lang, local, group, language, text) {
  requestHead=getRequest();
  if (!requestHead) return;
  requestHead.onreadystatechange = handlerHead;
  var scripts = lang=='r' ? 'http://www.ruslink.de/rusweb/scripts/' : 'http://www.rusweb.de/scripts/';
  requestHead.open('GET', scripts+"head.php?lang="+lang+"&local="+local+"&group="+group+"&language="+language+"&text="+text, true);
  requestHead.send(null);
}

function handler(http_request, feld) {
  // Testen ob das Request objekt mit dem laden fertig ist
  if (http_request.readyState == 4) {
    // War die Anfrage erfolgreich / die URL erreichbar ?
    if (http_request.status == 200) {
	  ergebnisdiv= document.getElementById("div"+feld);
	  ergebnisdiv.innerHTML=http_request.responseText;
    }
    else {
	   alert('Die URL konnte nicht geoffnet werden.');
    }
  }
}

function handlerLand() {
 	return handler(requestLand, "land");
}

function handlerRegion() {
 	return handler(requestRegion, "region");
}

function handlerCity() {
 	return handler(requestCity, "city");
}

function handlerTyp() {
 	return handler(requestTyp, "typ");
}

function handlerTarget() {
 	return handler(requestTarget, "target");
}

function handlerGroup() {
 	return handler(requestGroup, "group");
}

function handlerHead() {
 	return handler(requestHead, "head");
}

function handlerLanguage() {
 	return handler(requestLanguage, "language");
}

function handlerResult() {
 	return handler(requestResult, "result");
}

function doClear(feld) {
  document.getElementById("div"+feld).innerHTML="";
}

function search(lang) {
  var lcarray = new Array('city', 'region', 'land');
  var grarray = new Array('group', 'target', 'typ');
  var lc='', gr='', language='', text='', elem;
  for (i=0; i<lcarray.length; i++) {
  	if (lc==null || lc.length==0 || lc=='0') {
  	  elem = document.getElementById(lcarray[i]);
  	  if (elem) lc=elem.value;
  	}
  }
  for (i=0; i<grarray.length; i++) {
  	if (gr==null || gr.length==0 || gr=='0') {
  	  elem = document.getElementById(grarray[i]);
  	  if (elem) gr=elem.value;
  	}
  }
  elem = document.getElementById('language');
  if (elem) language=elem.value;
  elem = document.getElementById('freetext');
  if (elem) text=elem.value;
  // lang - Sprache der Antwort, language - Parameter im Formular 
  doResultRequest(lang, lc, gr, language, text);
  doHeadRequest(lang, lc, gr, language, text);
}


