var requestURL = "/news/search_results_ajax.php?suchart=0&suchtext=";
var ContentID = 'content';
var ErrorText = 'Suchanfrage fehlgeschlagen. Bitte benutzen Sie den Go!-Button. Falls das nicht funktioniert hat Uli mist gebaut';
var currentlysearching = 'currentlysearching';
var show = 'display: block';
var hide = 'display: none';

var http_request = false;
var lastRequest = 0;
var waiting = 0;
var lastSearchText = "";
var firstSearch = true;
var oldContent;
var timer = 0;
var searchtext;

function httpStatusChanged() {
	var content = document.getElementById(ContentID);
	if (http_request.readyState == 4) {
		if(firstSearch == true) {
			oldContent = content.innerHTML;
			firstSearch = false;
		}
		waiting = 0;
		if(http_request.status == 200) {
			content.innerHTML = http_request.responseText;
		} else {
			content.innerHTML = ErrorText;
		}
		http_request = false;
		var node = document.getElementById(currentlysearching);
		if(node)
			node.setAttribute('style', hide);
	}
}

function Request() {
	var Now = new Date();
	timer = 0;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
		http_request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	http_request.onreadystatechange = httpStatusChanged;

	http_request.open('GET', requestURL+searchtext, true);
	http_request.send(null);
	lastRequest = Now.getTime();
	waiting = 1;

	lastSearchText = searchtext;
}

function SearchTextChanged() {
	searchtext = this.value;
	var content = document.getElementById(ContentID);
	var node = document.getElementById(currentlysearching);

	if(!content) {
		alert('mist...BUG!');
		return;
	}

	if(searchtext == lastSearchText)
		return;

	if(timer != 0) {
		clearTimeout(timer);
		timer = 0;
	}

	if(searchtext.length < 3) {
		http_request = false;
		if(firstSearch != true) {
			content.innerHTML = oldContent;
		}
		if(node)
			node.setAttribute('style', hide);
		return;
	}

	var Now = new Date();
	if(node)
		node.setAttribute('style', show);

	if(http_request != false || Now.getTime() - lastRequest > 2000){
		Request();
	} else { // zu frueh, timer starten
		timer = setTimeout("Request()", 2100-(Now.getTime() - lastRequest));
	}
}

window.onload = function () {
	document.forms["searchform"].elements[1].onkeyup = SearchTextChanged;
}
