var searchReq = getXmlHttpRequestObject();
var pos = -1;
var focused = false;
document.onkeydown = keygetter; //needed for Opera...
document.onkeyup = keyHandler;

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function activate(){
  focused = true;
}

function suggest(){    
    var str = escape(document.getElementById("search_input").value);
		searchReq.open("GET", 'tools/ajax/suggest.php?search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
}

function handleSearchSuggest() {  
	if (searchReq.readyState == 4) {	
		var ss = document.getElementById('search_suggest')
		ss.innerHTML = '';		
		var str = searchReq.responseText.split("\n");
		if( str == "")
		  ss.style.border = "0px solid #000000";
		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.			
			var suggest = '<div id="s' + i + '" onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
			ss.style.border = "1px solid #000000";
			ss.style.visibility = "visible";
		}
	}
}

function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}

function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}

function setSearch(value) {
	document.getElementById('search_input').value = value;
	blurDiv();
	document.getElementById('search_input').focus()
}

function blurDiv(){
  ss = document.getElementById('search_suggest');
  ss.style.border = "0px solid #000000";
  ss.innerHTML = "";
  ss.style.visibility = "hidden";
}

function setText(text){
  si = document.getElementById('search_input');
	si.value = text;
}

function keygetter(event){
		if (!event && window.event) event = window.event;
		if (event) key = event.keyCode;
		else key = event.which;
	}
		
function keyHandler(event){
	 ss = document.getElementById('search_suggest');
	 if(focused){
		if (key == 40){ //Key down
		  if(document.getElementById("s" + pos)){
		    var active = document.getElementById("s" + pos);
        active.className = 'suggest_link';		
      }
			pos = pos +1;
      var active = document.getElementById("s" + pos);
      active.className = 'suggest_link_over';
			setText(document.getElementById("s" + pos).innerHTML);	
		}
		else if (key == 38){ //Key up
      var active = document.getElementById("s" + pos);
      active.className = 'suggest_link';		
			pos = pos -1;
      var active = document.getElementById("s" + pos);
      active.className = 'suggest_link_over';
      setText(document.getElementById("s" + pos).innerHTML);	
		}
		else if (key == 27){ // Esc
			blurDiv()
		}
    else suggest();		
	}
	}
