/* A J A X */
var sugg_size = 0;
var sugg_pos = 0;
var sugg_beg = '';

var sugg_box = document.getElementById('vorschlag');
var sugg_inp = document.getElementById('suche')

var xmlHttp;

function showSuggestions(str,sid)
{ 
	xmlHttp=GetXmlHttpObject();
	/*if (xmlHttp==null)
	{
		alert ("Dein Browser AJAX!");
		return;
	} */
	var url="suche_vorschlag.php?str=" + str + "&sid=" + sid;

	sugg_pos = 0;
	sugg_beg = '';
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged() 
{ 
	if (xmlHttp.readyState==4)
	{ 		
		if(xmlHttp.responseText.length > 0) 
		{
			var regex = /(.+)\$([0-9]+)/;
			regex.exec(xmlHttp.responseText);
			var text = RegExp.$1;
			var size = RegExp.$2;
			if(size > 8) size = 8;
			sugg_size = size;
			
			document.getElementById("vorschlag").innerHTML=text;
			document.getElementById("vorschlag").style.visibility = 'visible';
			document.getElementById("vorschlag").style.height = (size * 15) + 'px';
		}
		else
		{
			document.getElementById("vorschlag").innerHTML='';
			document.getElementById("vorschlag").style.visibility = 'hidden';
		}
	}
}

function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}


/*AutoSuggestion*/

/*Key Code Overview
-------------------
13 	= Enter
27	= Escape
38	= Key up
40	= Key down
*/

sugg_inp.focus();

sugg_inp.onkeydown = function(ev) 
{
  try 
	{ 
		sugg_key_down(event.keyCode); 
	}
  catch(e)
	{
		sugg_key_down(ev.keyCode); 
	}
};

sugg_inp.onkeyup = function(ev) 
{
  try
	{
		sugg_key_up(event.keyCode);
	}
  catch(e)
	{
		sugg_key_up(ev.keyCode); 
	}
};

function sugg_hide()
{
	sugg_box.style.visibility = 'hidden';
	sugg_pos = 0;
	sugg_beg = '';
}

function sugg_over(id,begriff,key)
{
	if(sugg_pos > 0) document.getElementById('sugg_' + sugg_pos).style.backgroundColor = '#C6BB77';
	
	if(begriff=='')
	{
		begriff = document.getElementById('sugg_' + id).firstChild.nodeValue;
	}
	
	if(key==1) document.getElementById('suche').value = begriff;
	
	sugg_pos = id;
	sugg_beg = begriff;
	
	document.getElementById('sugg_' + id).style.backgroundColor = '#D1C88F';
}

function sugg_key_down(key)
{
	if(sugg_box.style.visibility == 'visible') 
	{
		//if(kc != 38 && kc != 40) sugg_pos = 0;
	
		if(key == 38 && sugg_pos != 0)
		{
		 sugg_over(sugg_pos-1,'',1);
		}
	
		if(key == 40 && sugg_pos < sugg_size)
		{
		 sugg_over(sugg_pos+1,'',1);
		}
		
		if(key == 13 && sugg_pos > 0)
		{
			document.getElementById('suche').value = sugg_beg;
		}
	}
}

function sugg_key_up(key)
{
	if((sugg_inp.value == '' || key == 27) && sugg_box.style.visibility == 'visible') sugg_hide();
	
	if(sugg_inp.value != '' && key != 13 && key != 27 && key != 38 && key != 40) showSuggestions(sugg_inp.value,'abcd');
}
