// Methode zur browserspezifischen Erzeugung eines XmlHttpRequest-Objekts
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Bitte Browser updaten");
	}
}
// globales XMLHttpRequest-Objekt erzeugen
var searchReq = getXmlHttpRequestObject(); // (1)
// Wir bei onkeyup im Suchfeld aufgerufen. Startet den AJAX-Request

var indicator ="";
var suid ="";
var form_id = "";

function searchSuggest(site_url,url,id,ab,min,indi) {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) { // (2)
		
		
		var str = escape(document.getElementById(id).value); // (3)
		
		if(str.length < ab) {
			return;
		}
		
		theurl =  site_url+url+'=' + escape(str)+'&min='+min;
	
		indicator = indi;
		suid = "search_suggest_"+id;
		form_id = id;
		
		AJS.getElement(indicator).style.display = 'block';
		searchReq.open("GET",theurl, true); // (4)
		searchReq.onreadystatechange = handleSearchSuggest; // (5)
		searchReq.send(null); // (6)
	}
}

// Handler für Rückgabe der Suchvorschläge
function handleSearchSuggest() {
	
	if (searchReq.readyState == 4) {
		var ss = document.getElementById(suid) // (1)
		
		ss.innerHTML = ''; // (2)
		ss.style.display = 'block'; // (2)
		
		var str = searchReq.responseText.split("\n"); // (3)
		if(str == '') {
			document.getElementById(suid).style.display = "none";
		}
		var suggest = '<div onmouseover="javascript:suggestOver(this);"';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:resetSuche(this.innerHTML);" ';
			suggest += 'class="suggest_link" style="background: red; color: white;text-align: center; border-bottom: 1px #000000 solid; z-index:99;"><b>Auswahl schliessen</b></div>';
			ss.innerHTML += suggest;
		for(i=0; i < str.length - 1; i++) {
			// Element-String zusammenbauen
			var suggest = '<div onmouseover="javascript:suggestOver(this);"';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'class="suggest_link" onblur="javascript:resetSuche();" style=" z-index:99;">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
		
		AJS.getElement(indicator).style.display = 'none';
	}
}

// Mouse-Over-Funktion Suchvorschlag
function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}// Mouse-Over-Funktion Suchvorschlag
function resetSuche() {
	AJS.getElement(suid).style.display = "none";
}
// Mouse-Out-Funktion Suchvorschlag
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}

function setSearch(value) {
	document.getElementById(form_id).value = value;
	document.getElementById(suid).innerHTML = '';
	document.getElementById(suid).style.display = "none";
}