/*
	Diese Funktion wird aufgerufen, um eine per AJAX realisierte fachliche
	Funktion durchzufuehren.
	Parameter: Der Suchbegriff.
*/
function loadPossibleResults(text) {
	if (text != "") {
		// Wir muessen eine vollstaendige URL bauen, relative Pfade
		// funktionieren nicht. Daher holen wir uns vom Browser die aktuelle
		// URL und holen uns alles bis auf den Dateinamen und etwaige Parameter.
		var uri = document.URL;
		uri = uri.substring(0, uri.lastIndexOf('/') + 1);
		
		// Jetzt noch dranhaengen, was wir eigentlich aufrufen.
		uri = uri + "search.do?search=" + text;
		makeAjaxCall(uri, showPossibleResults);
	}
}

/*
	Diese Methode ist dafuer zustaendig, aus der Antwort des Servers die Ergebnisse
	zu entnehmen und per dHTML anzuzeigen. Dies korrespondiert stark mit dem HTML-Code
	in navbar.jsp.
	Erwartet wird eine XML-Struktur in dieser Form:
	<results>
		<result key="Eintragsschluessel">Eintragsname</result>
		...
	</results> 
*/
function showPossibleResults() {
	answer = req.responseXML;
	var results = answer.getElementsByTagName("result");
	if (results.length > 0) {
		resObj = document.getElementById("results");

		/* Zunaechst eine Ueberschrift setzen, falls sie nicht schon existiert. */
		var h4 = resObj.getElementsByTagName("h4");
		if (h4.length == 0) {
			h4 = document.createElement("h4");
			resObj.appendChild(h4);
			h4.appendChild(document.createTextNode("Passende Daten:"));
			h4.setAttribute("title", "Hierfuer wurde nur in den Namen der Datensaetze gesucht, nicht im Volltext!");
		}

		/* Jetzt loeschen wir alle etwaigen alten Ergebnisse in der Liste */
		for (i = resObj.childNodes.length - 1; i > 0 ; i--) {
			resObj.removeChild(resObj.childNodes[i]);
		}
		
		for (i = 0; i < results.length; i++) {
			link = document.createElement("a");
			resObj.appendChild(link);
			link.appendChild(document.createTextNode(results[i].firstChild.data));
			link.setAttribute("href", "main.jsp?page=" + results[i].getAttribute("key"));
		}
	} else {
		clearList();
	}
}

/* 
	Hilfsmethode, loescht zuvor ausgegebene Ergebnisse.   
*/
function clearList() {
	resObj = document.getElementById("results");

	for (i = resObj.childNodes.length - 1; i >= 0 ; i--) {
		resObj.removeChild(resObj.childNodes[i]);
	}
}
