var HttpReq = false;
if(navigator.appName.indexOf("Microsoft") != -1){
		try {HttpReq = new ActiveXObject("Msxml12.XMLHTTP");}
		catch(e) {
		    try{HttpReq = new ActiveXObject("Msxml2.XmlHttp.4.0");}
		    catch(e) {HttpReq = null;}
		}
}

if(navigator.appName.indexOf("Netscape") != -1){HttpReq = new XMLHttpRequest();}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}


function getLoad(e, qtype)
{

	if(navigator.appName.indexOf("Microsoft") != -1)
	{
		var keyValue = e.keyCode;
	}
	if(navigator.appName.indexOf("Netscape") != -1)
	{
		var keyValue = e.which;
	}

	var trimmedVal = trim(obj.key.value);

	if(trimmedVal.length < 2 || keyValue==27)
	{
		HideElements(true);
	}
	else
	{
		if(keyValue!=9 && keyValue!=13 && keyValue!=20 && keyValue!=37 && keyValue!=38 && keyValue!=39 && keyValue!=40)
		{
			if(HttpReq)
			{
				HttpReq.open("GET", "scripts/Get_Field_List.php?key="+trimmedVal+"&type="+qtype, true);
				HttpReq.onreadystatechange = getList;
				HttpReq.send(null);
			}
			VariableReset();
		}
		else
		{
			if(keyValue==13)
			{
				KeyEvents(keyValue);
			}
		}
	}
}

function getList(){
	if(HttpReq.readyState == 4){
		var response = HttpReq.responseText;
		obj.mainDiv.style.display = "";
		obj.mainDiv.style.left = obj.divleft;
		obj.mainDiv.style.width = obj.key.offsetWidth;
		obj.div_visible = true;
		obj.myDiv.innerHTML = response;
		obj.tdiv = document.getElementById("NumRec").value;
	}
}

function Init()
{
	this.group = new Array();
	this.currentid="";
	this.dcounter=0;
	this.tdiv=0;
	this.div_visible=false;
	this.divleft=0;
	this.keyCode=0;
	this.key = "";
	this.myDiv = "";
	this.mainDiv = "";
}
var obj = new Init();

function InitComponent(txtId, index)
{
	obj.key = document.getElementById(txtId);
	obj.mainDiv = document.getElementById(obj.group[index]);
	var xid = obj.mainDiv.id;
	obj.myDiv = document.getElementById(xid + xid);

	var xPos = obj.key;
	obj.divleft = obj.key.offsetLeft;
	do {
		xPos = xPos.offsetParent;
		obj.divleft	+= xPos.offsetLeft;
	} while(xPos.tagName!="BODY");

}

function UpDown(e)
{
	if(navigator.appName.indexOf("Microsoft") != -1)
		var keyValue = e.keyCode;
	else
	if(navigator.appName.indexOf("Netscape") != -1)
		var keyValue = e.which;
	if(keyValue==38 || keyValue==40)
		KeyEvents(keyValue);
	else
		return false;
}

function KeyEvents(keyValue)
{
	switch(keyValue)
	{
		case 38 :	if( (obj.dcounter>=0) && (obj.tdiv>0) )
					{
						if(obj.keyCode==40 && obj.dcounter==0)
						{	obj.dcounter=obj.tdiv;	}

						obj.dcounter = (obj.dcounter>=1) ? obj.dcounter-1 : obj.dcounter;

						if(obj.dcounter==0) obj.dcounter=obj.tdiv;
						if(obj.dcounter==obj.tdiv)document.getElementById("key_div_1").className="keyDivOut";

						document.getElementById("key_div_"+obj.dcounter).className="keyDivOver";
						obj.currentid = "key_div_"+obj.dcounter;
						if(obj.dcounter < obj.tdiv)
						{
							document.getElementById("key_div_"+(obj.dcounter+1)).className="keyDivOut";
						}

						obj.keyCode=38;
					}
					break;

		case 40	:	if( (obj.dcounter<=obj.tdiv) && (obj.tdiv>0) )
					{
						if(obj.keyCode==38 && obj.dcounter==10)
						{	obj.dcounter=0;	}

						obj.dcounter = (obj.dcounter < obj.tdiv) ? obj.dcounter+1 : obj.dcounter;
						obj.currentid = "key_div_"+obj.dcounter;
						document.getElementById("key_div_"+obj.dcounter).className="keyDivOver";
						if(obj.dcounter>1)
						{
							document.getElementById("key_div_"+(obj.dcounter-1)).className="keyDivOut";
						}
						if(obj.dcounter==1)document.getElementById("key_div_"+obj.tdiv).className="keyDivOut";
						if(obj.dcounter==obj.tdiv) obj.dcounter=0;

						obj.keyCode=40;
					}
					break;

		case 13	:	if(obj.currentid!="")
					{
						obj.key.value = document.getElementById(obj.currentid).innerHTML;
					}
					HideElements(true);
					break;
	}
}

function HideElements(Focus, divText){

	obj.myDiv.innerHTML="";
	obj.mainDiv.style.display="none";
	VariableReset();
	if(Focus){
		obj.key.focus();
		if(divText)
		obj.key.value = divText;
	}
	obj.div_visible = false;
	obj.tdiv=0;
}

function SetStyle(divid, GetLost){
	if(obj.currentid!="")
	document.getElementById(obj.currentid).className = "keyDivOut";
	document.getElementById(divid).className = GetLost ? "keyDivOver" : "keyDivOut";
}

function VariableReset(){obj.currentid="";obj.dcounter=0;}

