

var tmi = -1;
var searchVal = "";
var currentindex  = -1;
menunameArray = new Array();
menulinkArray = new Array();		
// Stellt server anfrage	
function ajaxsearch(){
	params = "b="+escape(searchVal);
	http_request = false;
	if (window.XMLHttpRequest){
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {http_request.overrideMimeType('text/xml');}
		}
	else if (window.ActiveXObject){
		try {http_request = new ActiveXObject("Msxml2.XMLHTTP");}
		catch(e) {try {http_request = new ActiveXObject("Microsoft.XMLHTTP");} catch(e) {}}
		}
	if (!http_request) {return false;}
	http_request.onreadystatechange = getresponse;
	http_request.open('POST', ajsrc, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", params.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(params);
	}
// wartet auf serverantwort	
function getresponse() {if (http_request.readyState == 4 && http_request.responseText) processresponse(http_request.responseText);}
// verarbeitet antwort
function processresponse(answer){
	if(answer == "") return;
	answer = unescape(answer);

	menunameArray = new Array();
	menutypeArray = new Array();
	menulinkArray = new Array();
	
	var xmlobject = (new DOMParser()).parseFromString(answer, "text/xml");
	var root = xmlobject.getElementsByTagName('ajs')[0];
	if (root) {
		for(var i = 0; i < root.getElementsByTagName("tip").length; i++){
			menunameArray[i] = root.getElementsByTagName("tip")[i].attributes[0].nodeValue;
			menutypeArray[i] = root.getElementsByTagName("tip")[i].attributes[1].nodeValue;
			menulinkArray[i] = root.getElementsByTagName("tip")[i].attributes[2].nodeValue;
			}
		}
	drawsearchmenu();		
}
// verzögert serveranfrage
function dntime() {
	if(tmi == 0) { ajaxsearch(); }		
	if(tmi > -1) tmi--;
	}
// überprüft tastendruck
function searchcheckinput(e){		
	var keyCode;
	if (!e) var e = window.event;
	if (!e) return;
	if (e.which) keyCode = e.which;
	else if (e.keyCode) keyCode = e.keyCode;			
	switch(keyCode){
		case 38: 
			currentindex--;
			if(currentindex < 0) currentindex = 0;
			drawsearchmenu();
			break;
		case 40:
			currentindex++;
			if(currentindex > menunameArray.length - 1) currentindex = menunameArray.length - 1;
			drawsearchmenu();
			break;
		default:
			if(document.getElementById("quick_find_keywords").value == "") return;
			currentindex = -1;				
			searchVal = document.getElementById("quick_find_keywords").value;					
			tmi = 3;				
			break;
		}		
	}
// prüft mousebewegung
function checkmouse(index) {if(currentindex != index) {currentindex = index; drawsearchmenu();}}
// versteck menu
function hidesearchmenu() {document.getElementById("ajsearchcontent").style.visibility = "hidden";}
// erstellt das menu
function drawsearchmenu() {
	var output = '';
	var tempObject = document.getElementById("ajsearchcontent");
	if (menunameArray.length > 1) {
		output += '<table style="cursor: pointer; cursor: hand;">';
		for(var i = 0; i < menunameArray.length; i++) {
			var mouseover  = ' onmouseover="checkmouse('+i+')"';			
			if(currentindex == i){
				output += '<tr class="active"' + mouseover + '><td width="90%">';
				document.getElementById("quick_find_keywords").value = menunameArray[i];
				document.getElementById("quick_find_url").value = menulinkArray[i];
				}
			else { output += '<tr' + mouseover + '><td width="90%">'; }
			output += menunameArray[i];
			output += '</td><td width="10%">';
			output += menutypeArray[i];
			output += "</td></tr>";
			}
		output += "</table>";
		if(tempObject.innerHTML != output) {
			tempObject.innerHTML = output;
		}
		tempObject.style.visibility = "visible";		
		tempObject.style.left = findPosLeft(document.getElementById("ajsearchcontent"));
		tempObject.style.top = findPosTop(document.getElementById("ajsearchcontent"));
	} else {
		output = 'Derzeit keine Treffer';
		tempObject.style.visibility = "hidden";
	}

}
// interval für verzögerung
window.setInterval("dntime()",200);
document.onkeyup = searchcheckinput;

