puffer = ''; 
busy = false;
res_size = 0;
res_pos = 0;

function stripHTML(str){

	var tmp = str.replace(/(<.*['"])([^'"]*)(['"]>)/g, 

	function(x, p1, p2, p3) { return  p1 + p3;}

	);
	
	return tmp.replace(/<\/?[^>]+>/gi, '');

};

function sendPostRequest(str)
    {
		if (! busy) {
		
        if (window.XMLHttpRequest)
        {
          ajax_obj = new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {
          //return;
		  ajax_obj = new ActiveXObject("Microsoft.XMLHTTP");
        }
      else {
			return;
	  }
	  // Zufallswert, um den IE am Cachen zu hindern
      ie_rand = parseInt(Math.random() * 999999);
      // Asynchrone Übertragung mit Zufallswert als GET-Parameter
      ajax_obj.open (
                      'POST',                    
                      'input.php?rand=' + ie_rand, 
                      true
                    );
      
      ajax_obj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      
	  
	  // Daten senden
	  busy = true;
	  
	  ajax_obj.send(str);
	  
      ajax_obj.onreadystatechange = function ()
      {  
        if (ajax_obj.readyState == 4 && ajax_obj.status == 200)
        {            
          var result = ajax_obj.responseText; 
          showResult(result);
		  }
      }
	} // if busy
	}
	
function mark(id) {
document.getElementById(id).className = "opmarked";
}
function unmark(id) {
document.getElementById(id).className = 'op';
}

function reset_result(input) {
document.getElementById('axresult').style.visibility  = "hidden";
res_pos = 0;
res_size = 0;
puffer = '';
document.getElementById('axresult').innerHTML = '';	
if (input) {
document.getElementById('axinput').value = '';
}
}

function moveup() {
if (res_pos == 0) {
return;
} else {
var cid = "o" + res_pos;
unmark(cid);
res_pos -= 1;
var nid = "o" + res_pos;
if (res_pos >= 1) {
mark(nid);
}
}
}

function movedown() {
//alert("DOWN " + res_pos + "SIZE " + res_size);
if (res_pos >= res_size) {
return;
} else {
var cid = "o" + res_pos;
if (res_pos > 0) {
unmark(cid);
}
res_pos += 1;
var nid = "o" + res_pos;
mark(nid);
}
}

function send(id) {
var keywords = stripHTML(document.getElementById(id).innerHTML);
var lid = document.getElementById('lid').value;
if (lid == '2') {
keywords = keywords.split('Treffer');
} else {
keywords = keywords.split('Hits');
}
document.getElementById('axinput').value = keywords[0];
document.getElementById('axresult').innerHTML = '';
document.forms['quick_find'].submit();
}

function showResult(result) {
busy  = false;
var output = '';
if (result != '') {
var resarray = result.split('<x3z>');

for (var i = 0; i < resarray.length - 1; i++) {
var x = i + 1;
output += '<div id="o' + x + '" class="op" onclick="send(this.id)">';
output += resarray[i];
output += '</div>';
}
document.getElementById('axresult').style.visibility  = "visible";
res_size = i;
document.getElementById('axresult').innerHTML = output;
} else {
reset_result(false);

}



// falls zu schnell getippt sofort wieder
if (document.getElementById('axinput').value != puffer) {
	puffer = input.value;
	poststr = '&str=' + puffer;
	sendPostRequest(poststr);
}

}

// IE!

//window.captureEvents(Event.KEYDOWN);
document.onkeydown = function (Ereignis) {

var key = (window.event) ? event.keyCode : Ereignis.keyCode;

 if (key == '40') {
	 movedown();
 }
 if (key == '38') {
	 moveup();
 }
 if (key == '13') {
	 var id ='o' + res_pos;
	 send (id);
 }
 if (key == '27') {
	 reset_result(true);
 }
 
}

window.onload = function() {
	document.getElementById('axinput').focus();
	var input = document.getElementById('axinput'); 
	input.onkeyup = function(Ereignis) {
	var key = (window.event) ? event.keyCode : Ereignis.keyCode;
	if (key != '13') {
	if(input.value != puffer) {
	var lang = document.getElementById('lid').value;
	puffer = input.value;
	poststr = '&str=' + puffer + '&lid=' + lang;
	sendPostRequest(poststr);
	}
	} // if
	} // onkeyup
	} // onload
	
	

