//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
// readyStates: 0	Object is not initialized with data.
//              1	Object is loading its data.
//              2	Object has finished loading its data.
//              3	User can interact with the object even though it is not fully loaded.
//              4	Object is completely initialized.
function searchSuggest() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
                var ss = document.getElementById('search_suggest')
                ss.style.visibility="visible";
		var str = escape(document.getElementById('txtSearch').value);
		searchReq.open("GET", '/suche/searchSuggest.php?search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
	}		
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest');
		ss.innerHTML = '';
                ss.style.visibility="visible";
//                 alert(searchReq.responseText);
		var str = searchReq.responseText.split("\n");
//                 alert(str);
		for(i=0; i < str.length - 1; i++) {
                        if(str[i].lastIndexOf(",n")!=-1){
	 			str[i]= str[i].substring(0,str[i].length-2);
				var suggest = '<div onclick="javascript:setSearch(this.innerHTML);suchform.submit();" ';
				suggest += ' onmouseover="javascript:suggestOverOffline(this);" ';
				suggest += ' onmouseout="javascript:suggestOutOffline(this);" ';
				suggest += 'class="suggest_link_offline">' + str[i] + '</div>';
				ss.innerHTML += suggest;
                        }else{
				str[i]= str[i].substring(0,str[i].length-2);
				var suggest = '<div onclick="javascript:setSearch(this.innerHTML);suchform.submit();" ';
				suggest += ' onmouseover="javascript:suggestOverOnline(this);" ';
				suggest += ' onmouseout="javascript:suggestOutOnline(this);" ';
				suggest += 'class="suggest_link_online">' + str[i] + '</div>';
				ss.innerHTML += suggest;
			}
		}
	}
}

//Mouse over function
function suggestOverOnline(div_value) {
	div_value.className = 'suggest_hover_online';
}

function suggestOverOffline(div_value) {
	div_value.className = 'suggest_hover_offline';
}

//Mouse out function
function suggestOutOnline(div_value) {
	div_value.className = 'suggest_link_online';
}

function suggestOutOffline(div_value) {
	div_value.className = 'suggest_link_offline';
}

//Click function
function setSearch(value) {
	document.getElementById('txtSearch').value = value;
	document.getElementById('search_suggest').innerHTML = '';
}
