
	var xmlHttp;
	var hintSelected = 0;

	function clearSelected()
	{
		var step = 1;
		var t = document.getElementById('hint_'+step);
		var t2 = document.getElementById('hint2_'+step);
		var t0 = document.getElementById('hint0_'+step);
		var last;
		while ( t != null )
		{
			last = step;
			t.className = "hint";
			t2.className = "hint2";
			t0.className = "hint0";
			step = step + 1;
			t = document.getElementById('hint_'+step);
			t2 = document.getElementById('hint2_'+step);
			t0 = document.getElementById('hint0_'+step);
		}
		return last;
	}
	
	function goHint(event)
	{
		var str = document.getElementById("phraseField").value;
		var k  = event.keyCode;
		if ( k == 13 )
		{
			if ( hintSelected > 0 )
			{
				return hintClicked(hintSelected);
			}
		}
		if ( str.length==0)
		{
			document.getElementById("txtHint").innerHTML="";
			document.getElementById("txtHint").style.visibility="hidden";
			hintSelected = 0;
			return;
		}
	}

	function showHint(event)
	{
		var str = document.getElementById("phraseField").value;
		var k  = event.keyCode;
		
		if ( k == 27 || str.length==0)
		{
			document.getElementById("txtHint").innerHTML="";
			document.getElementById("txtHint").style.visibility="hidden";
			hintSelected = 0;
			return;
		}
		
		if ( k == 13 )
		{
			return false;
		}

		// up
		if ( k == 38 )
		{
			var last = clearSelected();
			n = hintSelected - 1;
			t = document.getElementById('hint_'+n);
			if ( t != null )
			{
				hintOver( n );
				temp = document.getElementById('txtHint');
				if ( temp.scrollTop > 0 )
				{
					temp.scrollTop=temp.scrollTop-16;
				}
				else
				{
					temp.scrollTop=0;
				}
			}
			else
			{
				n = last;
				t = document.getElementById('hint_'+n);
				if ( t != null )
				{
					hintOver( n );
					temp.scrollTop=temp.scrollTop+(16*last);
				}
			}
			return;
		}

		// down
		if ( k == 40 )
		{
			clearSelected();
			n = hintSelected + 1;
			t = document.getElementById('hint_'+n);
			if ( t != null )
			{
				hintOver( n );
				if ( n > 13 )
				{
					temp = document.getElementById('txtHint');
					temp.scrollTop=temp.scrollTop+16;
				}
			}
			else
			{
				n = 1;
				t = document.getElementById('hint_'+n);
				if ( t != null )
				{
					hintOver( n );
					temp = document.getElementById('txtHint');
					temp.scrollTop=0;
				}
			}
			return;
		}

		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
			return;
		} 
		var url="gethint.php";
		url=url+"?l="+lang;
		url=url+"&q="+str;
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange=stateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	} 

	function stateChanged() 
	{ 
		if (xmlHttp.readyState==4 )
		{ 
			if ( xmlHttp.responseText != '')
			{
				t=document.getElementById("txtHint");
				t.innerHTML=xmlHttp.responseText;
				t.style.visibility="visible";
				t2 = document.getElementById('hint_16');
				if ( t2 != null )
				{
					t.style.height='236px';
					t.style.width='355px';
				}
				else
				{
					t.style.height='auto';
					t.style.width='338px';
				}

				hintOver( hintSelected );
			}
			else
			{
				document.getElementById("txtHint").innerHTML="";
				document.getElementById("txtHint").style.visibility="hidden";
				hintSelected = 0;
			}
		}
	}

	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;
	}
	
	function hintOver(n)
	{
		clearSelected();
		t = document.getElementById('hint_'+n);
		t2 = document.getElementById('hint2_'+n);
		t0 = document.getElementById('hint0_'+n);
		if ( t != null )
			t.className = "hint_selected";
		if ( t2 != null )
			t2.className = "hint2_selected";
		if ( t0 != null )
			t0.className = "hint0_selected";
		hintSelected = n;
	}

	function hintOut(n)
	{
		t = document.getElementById('hint_'+n);
		t2 = document.getElementById('hint2_'+n);
		t0 = document.getElementById('hint0_'+n);
		t.className = "hint";
		t2.className = "hint2";
		t0.className = "hint0";
		hintSelected = 0;
	}
	
	function hintClicked(n)
	{
		p = document.getElementById("phraseField");
		t = document.getElementById('hint_'+n);
		p.value = t.innerHTML;
		document.getElementById("phraseField").focus();
		document.getElementById("txtHint").style.visibility="hidden";
		hintSelected = 0;
		return false;
	}
	
	function lostFocus()
	{
//		document.getElementById("txtHint").innerHTML="";
//		document.getElementById("txtHint").style.visibility="hidden";
//		hintSelected = 0;
	}


