var activeField;

//controls the refresh time
var timestep = 250;
var isrunning = false;
var keypress = false;
var active;

//globale vars für später
var searchField = "ajaxSearch";
var inputLength = 0;

function doSearch() 
{
	inputLength = document.getElementById(searchField).value.length;
	
	if (inputLength > 2)
	{
		
			if (!isrunning) 
			{ 
				isrunning = true;
				keypress = true; 
				active = window.setInterval("check_keypress()", timestep); 
			}
			else 
			{ 
				keypress = true; 
			} 
	}
	else
	{
		document.getElementById('suggestList').style.visibility = "hidden";
	}
}

function check_keypress(enteredText) 
{
	if (!keypress) 
	{ 
  		isrunning = false;
  		keypress = false;
  		
  		window.clearInterval(active); 
  		
 			//do the ajax function
  		suggest(document.getElementById(searchField).value);
  		
  	} 
  	else 
  	{ 
  		keypress = false; 
  	}
}  

function setActiveField(fieldname)
{
	activeField = fieldname;
}


//function checkKeycode
//is responsible for the key-movements (see in-line-comments)

var aktKeyCode;
var aktPos = 0;
var typedText = '';

document.onkeydown = checkKeycode
function checkKeycode(e) 
{
	if (window.event) { aktKeyCode = window.event.keyCode; }
	else if (e) { aktKeyCode = e.which; }
	
	//escape, hide the list
		if (aktKeyCode == "27")		
		{
			tb_remove();
			document.getElementById('suggestList').style.visibility = "hidden"; 	
			aktPos = 0;
		}
}

//function suggest
//does the actuel AJAX request together with function showData()

var xmlHttp = null;
var xmlHttp2 = null;
var wert_global = "";

   
function suggest(wert) 
{	
	if ((aktKeyCode != "38") && (aktKeyCode != "40") && (aktKeyCode != "27")&& (aktKeyCode != "37") && (aktKeyCode != "39") && (aktKeyCode != "13"))
	{
	  //get the current text again, used for the marking later on
	  typedText = document.getElementById(searchField).value;
	      
	  wert_global = wert;
	  document.getElementById(searchField).focus();
	      
		// Internet Explorer
		if( window.ActiveXObject )
		{
			xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP" );
		}
		// Mozilla, Opera und Safari
		else if( window.XMLHttpRequest )
		{
			xmlHttp = new XMLHttpRequest();
		}	
	  xmlHttp.open('GET', 'lib/ajax_search.php?q=' + wert, true);
	  xmlHttp.onreadystatechange = showData;			//call function showData()
	  xmlHttp.send(null);
	}   
}

//function showData
//displays the response from the server

var text = '';
var ersterEintrag = '';
var textteile;
var searchResult = '';

function showData() 
{
  
  if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) 
  {
    searchResult = xmlHttp.responseText;
    
    document.getElementById('suggestList').innerHTML = searchResult;
  }
  if (searchResult != "") 
  {
    document.getElementById('suggestList').style.visibility = "visible";
  } 
  else 
  {
    document.getElementById('suggestList').style.visibility = "hidden";        
  }
}


   
function setHover(rowID) 
{
	document.getElementById('tr'+rowID).className = 'trnohover'; 
}
   
   
//wenn am anfang standard-feld-value z.B. "Suchen", dann leeren...
function ajaxActive(fieldID,fieldValue)
{
		if (document.getElementById(fieldID).value == fieldValue)
		{
			document.getElementById(fieldID).value = "";
		}
		
		if ((searchResult != "") && (inputLength > 2))
	  {
	    document.getElementById('suggestList').style.visibility = "visible";
	  } 
	  else 
	  {
	    document.getElementById('suggestList').style.visibility = "hidden";        
	  }
		
		setActiveField(fieldID);
}


function ajaxPassive(fieldID)
{
	    document.getElementById(fieldID).style.visibility = "hidden"; 	
	    setActiveField('');	
}