var req;
var timerID;
var URL;
var IsVisible=false;

function Initialize()
{
	try
	{
		req=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			req=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(oc)
		{
			req=null;
		}
	}

	if(!req&&typeof XMLHttpRequest!="undefined")
	{
		req=new XMLHttpRequest();
	}
}

function CheckKey(key,list)
{
	key.value=key.value.substring(0,key.value.lastIndexOf(";")+1) + list.value;
	Goto(list, URL);
	list.selectedIndex = -1;
	HideDiv("autocomplete");
	key.focus();
}

function SendQuery(CURL, keyo, key, list, U)
{
	URL=U;
	if(timerID) {
		clearTimeout(timerID);
		timerID  = 0;
	}
	if (IsVisible && event.keyCode=="38")
	{
		list.selectedIndex = list.selectedIndex-1;
		if (list.selectedIndex!=-1)
		{
			key.value=key.value.substring(0,key.value.lastIndexOf(";")+1) + list.value;
		}
	}
	else if (IsVisible && event.keyCode=="40")
	{
		list.selectedIndex = list.selectedIndex+1;
		if (list.selectedIndex!=-1)
		{
			key.value=key.value.substring(0,key.value.lastIndexOf(";")+1) + list.value;
		}
	}
	else if (IsVisible && event.keyCode=="13" && list.selectedIndex!=-1)
	{
		key.value=key.value.substring(0,key.value.lastIndexOf(";")+1) + list.value;
		Goto(list, URL);
		list.selectedIndex = -1
		HideDiv("autocomplete");
	}
	else if (IsVisible && event.keyCode=="9" && list.selectedIndex!=-1)
	{
		key.value=key.value.substring(0,key.value.lastIndexOf(";")+1) + list.value;
		Goto(list, URL);
		list.selectedIndex = -1
		HideDiv("autocomplete");
	}
	else
	{
		if (keyo && keyo.value!="")
		{
			Initialize();
			var url= CURL + "&k="+keyo.value+"&c="+key.id;
			if(req!=null)
			{
				req.onreadystatechange = Process;
				req.open("GET", url, true);
				req.send(null);        
			}
		}
		else
		{
			HideDiv("autocomplete");
			//document.getElementById("autocomplete").innerHTML = "";
		}
	}
	if (event.keyCode=="13")
		return false;
}

var _key;
var _list;
var _keycode;

function SetKTimer(key, list)
{
	_key=key;
	_list=list;
	_keycode=event.keyCode;
	if (event.keyCode=="38" || event.keyCode=="40")
	{
		timerID  = setTimeout("Scroll()", 200);
	}
	if (event.keyCode=="13")
		return false;
}

function Scroll()
{
	if (_keycode=="38")
	{
		_list.selectedIndex = _list.selectedIndex-1;
		if (_list.selectedIndex!=-1)
			_key.value=_key.value.substring(0,_key.value.lastIndexOf(";")+1) + _list.value;
	}
	else if (_keycode=="40")
	{
		_list.selectedIndex = _list.selectedIndex+1;
		if (_list.selectedIndex!=-1)
			_key.value=_key.value.substring(0,_key.value.lastIndexOf(";")+1) + _list.value;
	}	
}

function Process()
{
	if (req.readyState == 4) 
        {
        // only if "OK"
			if (req.status == 200) 
			{
				if(req.responseText=="")
					HideDiv("autocomplete");
				else
				{
					ShowDiv("autocomplete");
					document.getElementById("autocomplete").innerHTML =req.responseText;
				}
			}
			else 
			{
				document.getElementById("autocomplete").innerHTML="There was a problem retrieving data:<br>"+req.statusText;
			}
		}
}

function ShowDiv(divid) 
{
	IsVisible=true;
   if (document.layers) document.layers[divid].visibility="show";
   else document.getElementById(divid).style.visibility="visible";
}

function HideDiv(divid) 
{
	IsVisible=false;
   if (document.layers) document.layers[divid].visibility="hide";
   else
   {
	   if (document.getElementById(divid))
	   {
		   document.getElementById(divid).style.visibility="hidden";
	   }
   }
}

function BodyLoad()
{
	HideDiv("autocomplete");
	//document.form1.keyword.focus();	
}

function GetLeft(X)
{
	if (X.offsetParent!=null)
	{
		return X.offsetLeft+GetLeft(X.offsetParent);
	}
	else
		return 0;
}

function GetTop(X)
{
	if (X.offsetParent!=null)
	{
		return X.offsetTop+GetTop(X.offsetParent);
	}
	else
		return 0;
}	

function Position(X)
{
	if (autocomplete!=null && document.all(X) !=null)
	{
		autocomplete.style.left = GetLeft(document.all(X));
		autocomplete.style.top = GetTop(document.all(X))+22;
	}
}

function Goto(list, url)
{
	window.navigate(url + list.options(list.selectedIndex).oid);
}

function focusout()
{
	HideDiv('autocomplete');
	if (document.all('aclist'))
		document.all('aclist').selectedIndex=-1;
}