var tsh_suggest_text=false;
var tsh_suggest_select=false;
var tsh_suggest_disa=false;
var tsh_suggest_xmlhttp=false;
var tsh_suggest_url='';
var tsh_suggest_loa=false;
var tsh_suggest_load=false;

/*@cc_on @*/
/*@if(@_jscript_version>=5)
	try
	{
		tsh_suggest_xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			tsh_suggest_xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(E)
		{
			tsh_suggest_xmlhttp=false;
		}
	}
@end @*/

if(!tsh_suggest_xmlhttp && typeof XMLHttpRequest!='undefined') tsh_suggest_xmlhttp=new XMLHttpRequest();

function tsh_suggest(e, obj, id, url)
{
	if(!e)
		var e=window.event;

	obj.autocomplete='off';

	tsh_suggest_url=url;
	tsh_suggest_text=obj;
	tsh_suggest_select=document.getElementById(id);

	if(e.keyCode==27)
	{
		tsh_suggest_dis();
		setTimeout('tsh_suggest_text.focus()', 100);
	}
	else if(e.keyCode==40)
	{
		tsh_suggest_down();
	}
	else if(e.keyCode==38)
	{
		tsh_suggest_select.style.display='block';
		tsh_suggest_up();
	}
	else if(e.keyCode==13)
	{
		form_is_blocked=true;
		tsh_suggest_aply();
	}
	else if(e.keyCode==9 || e.keyCode==39)
	{
		tsh_suggest_aply();
	}
	else if(e.keyCode!=37)
	{
		tsh_suggest_select.style.display='none';
		if(tsh_suggest_load)
		{
			clearTimeout(tsh_suggest_load);
			tsh_suggest_load=false;
		}
		tsh_suggest_load=setTimeout('tsh_suggest_start()', 300);
		tsh_suggest_select.selectedIndex=-1;
	}
	return false;
}

function tsh_suggest_start()
{
	if(!tsh_suggest_loa)
	{
		tsh_suggest_loa=true;
		try
		{
			params='s='+tsh_suggest_text.value;
			tsh_suggest_xmlhttp.open('POST', tsh_suggest_url+Math.random(), true);
			tsh_suggest_xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
			tsh_suggest_xmlhttp.setRequestHeader('Content-length', params.length);
			tsh_suggest_xmlhttp.setRequestHeader('Connection', 'close');
			tsh_suggest_xmlhttp.onreadystatechange=function()
			{
				if(tsh_suggest_xmlhttp.readyState==4)
				{
					if(tsh_suggest_xmlhttp.responseText)
					{
						dta=tsh_suggest_xmlhttp.responseText.split('[|]');
						if(dta)
						{
							tsh_suggest_select.innerHTML='';
							for(c=0;c<dta.length;c++)
							{
								tsh_suggest_select.options[tsh_suggest_select.options.length]=new Option(dta[c], dta[c]);
							}
							tsh_suggest_select.style.display='block';
						}
						else
							tsh_suggest_select.style.display='none';
					}
					else
						tsh_suggest_select.style.display='none';
					tsh_suggest_loa=false;
				}
			};
			tsh_suggest_xmlhttp.send(params);
		}
		catch(e)
		{
			setTimeout('tsh_suggest_start()', 300);
		}
	}
	else
	{
		tsh_suggest_xmlhttp.Abort();
		setTimeout('tsh_suggest_start()', 100);
	}
}


function tsh_suggest_aply()
{
	if(tsh_suggest_select.style.display=='block' && tsh_suggest_select.selectedIndex>=0)
	{
		tsh_suggest_text.value=tsh_suggest_select[tsh_suggest_select.selectedIndex].value;
		tsh_suggest_select.style.display='none';
	}
}


function tsh_suggest_down()
{
	if(tsh_suggest_select.style.display=='block')
	{
		act=tsh_suggest_select.selectedIndex;
		if(act>=0)
			tsh_suggest_select[act].selected=false;
		act=(act+1)%tsh_suggest_select.length;
		tsh_suggest_select[act].selected=true;
	}
}

function tsh_suggest_up()
{
	if(tsh_suggest_select.style.display=='block')
	{
		act=tsh_suggest_select.selectedIndex;
		if(act>=0)
			tsh_suggest_select[act].selected=false;
		else
			tsh_suggest_select.selectedIndex=-1;
		act--;
		if(act>=0)
			tsh_suggest_select[act].selected=true;
	}
}

function tsh_suggest_dis()
{
	tsh_suggest_select.style.display='none';
}
function tsh_suggest_ena()
{
	if(tsh_suggest_disa)
	{
		clearTimeout(tsh_suggest_disa);
		tsh_suggest_disa=false;
	}
	tsh_suggest_select.style.display='block';
}

