function AutoComplete(oText, oDiv, nMaxSize)
{
	// initialize member variables
	this.oText = oText;
	this.oDiv = oDiv;
	this.nMaxSize = nMaxSize;
	
	// attach handlers to the text-box
	oText.AutoComplete = this;
	oText.onkeyup = AutoComplete.prototype.onTextChange;
	oText.onblur = AutoComplete.prototype.onTextBlur;
}

AutoComplete.prototype.onTextBlur = function()
{
	this.AutoComplete.onblur();
}

AutoComplete.prototype.onblur = function()
{
	this.oDiv.style.visibility = "hidden";
}

AutoComplete.prototype.onTextChange = function()
{
	this.AutoComplete.onchange();
}

AutoComplete.prototype.onDivMouseDown = function()
{
	this.AutoComplete.oText.value = this.innerHTML;
}

AutoComplete.prototype.onDivMouseOver = function()
{
	this.className = "AutoCompleteHighlight";
}

AutoComplete.prototype.onDivMouseOut = function()
{
	this.className = "AutoCompleteBackground";
}

AutoComplete.prototype.onchange = function()
{
	var txt = this.oText.value;

	// if a suitable number then show the popup-div
	if (txt.length>0)
	{

		// clear the popup-div.
		while ( this.oDiv.hasChildNodes() )
			this.oDiv.removeChild(this.oDiv.firstChild);
		
		searchPattern=undefined
		
		var script = document.createElement('script');
		script.type = 'text/javascript';
		script.src = '/ajax/section/search.php?searchKey='+txt;
		document.getElementsByTagName('head')[0].appendChild(script);
		currentObject=this;
		setTimeout('finishRequest();',10);
	}
	else // hide the popup-div
	{
		this.oDiv.innerHTML = "";
		this.oDiv.style.visibility = "hidden";
	}
}

function finishRequest()
{
	if (searchPattern==undefined)
	{
		setTimeout('finishRequest();',10);
	}
	else
	{
		// add each string to the popup-div
		var i, n = searchPattern.length;
		for ( i = 0; i < n; i++ )
		{
			var oDiv = document.createElement('div');
			currentObject.oDiv.appendChild(oDiv);
			oDiv.innerHTML = searchPattern[i];
			oDiv.onmousedown = AutoComplete.prototype.onDivMouseDown;
			oDiv.onmouseover = AutoComplete.prototype.onDivMouseOver;
			oDiv.onmouseout = AutoComplete.prototype.onDivMouseOut;
			oDiv.AutoComplete = currentObject;			
		}
		currentObject.oDiv.style.visibility = "visible";
	}
}

function createAutoComplete()
{
	new AutoComplete(document.getElementById('rightSearchInput'), document.getElementById('resultDiv'), 25);
	document.getElementById('resultDiv').style.opacity=0.6;
	document.getElementById('resultDiv').style.visibility = "hidden";
	/*
	document.getElementById('resultDiv').style.position='absolute';
	document.getElementById('resultDiv').style.top='400px';
	document.getElementById('resultDiv').style.left='830px';
	document.getElementById('resultDiv').style.width='250px';	
	document.getElementById('resultDiv').style.backgroundColor='#F3F3F3';
	document.getElementById('resultDiv').style.textAlign='right';
	document.getElementById('resultDiv').style.zindex='100';
	
	
	document.getElementById('resultDiv').style.cursor = "pointer";
	document.getElementById('resultDiv').style.height = "18px";
	document.getElementById('resultDiv').style.paddingLeft = "5px";
	document.getElementById('resultDiv').style.paddingRight = "5px";
	document.getElementById('resultDiv').style.paddingTop = "2px";	
	*/
}
