var hideIt;
var prefix = 0;

function disableEnterKey(e)
{
	var key;      
	if(window.event)
		key = window.event.keyCode;
	else
		key = e.which; 
	return (key != 13);
}

function hideMe(hideThis) {
	clearTimeout(hideIt);
	hideIt = setTimeout("document.getElementById('"+hideThis+"Suggestions').innerHTML=''", 5000);
}

function dontHideMe(dontHideThis) {
	clearTimeout(hideIt);
}

function lockUnlockItem(lockedFrom, fieldValue, useThis) {
	if((lockedFrom == 'medal' || lockedFrom == 'medalgroup') && document.getElementById('mainentry').value != 'true') {
		if(fieldValue == '') {
			document.getElementById(useThis).disabled=false;
			if(lockedFrom=='medalgroup') {
				document.getElementById('clasps').disabled=false;
			}
		} else {
			document.getElementById(useThis).disabled=true;
			if(lockedFrom=='medalgroup') {
				if(document.getElementById('clasps').value != 0) {
					document.getElementById('clasps').value = 0;
					changedNoClasps('0');
				}
				document.getElementById('clasps').disabled=true;
			}
		}
	} else if(lockedFrom=='mainentry') {
		if(fieldValue == 'not') {
			document.getElementById('group').disabled=true;
			document.getElementById('group').value='';
		} else {
			document.getElementById('group').disabled=false;
		}
		if(fieldValue == 'true') {
			document.getElementById('medalgroup').disabled=true;
			document.getElementById('medalgroup').value='';
			document.getElementById('medal').disabled=false;
			document.getElementById('clasps').disabled=false;
		} else {
			if(document.getElementById('medal').value == '') {
				document.getElementById('medalgroup').disabled=false;
			}
		}
	}
}

AutoComplete = function(input, suggestions)
{
	var timer;

	input.attachEvent("onkeyup", handleKeyUp);
	input.attachEvent("onkeydown", handleArrowKeys);
	suggestions.attachEvent("onclick", handleOnClick);

	function handleKeyUp(event)
	{
		
		if (timer)
			clearTimeout(timer);
		if (event.keyCode != 40 && event.keyCode != 38 && event.keyCode != 13)
		{
			if (input.value.length == 0)
				suggestions.innerHTML = "";

			if (input.value.length > 0) {
				timer = setTimeout(reload, 400);
			}
		}
		else if (event.keyCode == 13)
		{
			var cursor = getCursor();
			var parent = suggestions.firstChild;

			if (cursor != -1 && cursor < parent.childNodes.length)
			{
				if (IS_IE)
					input.value = parent.childNodes[cursor].innerText;
				else
					input.value = parent.childNodes[cursor].textContent;

				suggestions.innerHTML = "";
			}
		}
	}
	
	function handleOnClick(event) {
		var cursor = getCursor();
		var parent = suggestions.firstChild;
		input.value = parent.childNodes[cursor].id;
		suggestions.innerHTML = "";
	}

	function reload()
	{
		suggestions.reload({ prefix : input.value });
	}

	function handleArrowKeys(event)
	{
		try
		{
			var cursor = getCursor();
			var parent = suggestions.firstChild;

			if (cursor != -1 && (event.keyCode == 40 || event.keyCode == 38))
			{
				if (event.keyCode == 40)
				{
					if (cursor == parent.childNodes.length)
						parent.childNodes[0].style.backgroundColor = "#a3ceff";
					else if (cursor < parent.childNodes.length - 1)
					{
						parent.childNodes[cursor].style.backgroundColor = "";
						parent.childNodes[cursor + 1].style.backgroundColor = "#a3ceff";
					}
				}
				else
				{
					if (cursor > 0)
					{
						parent.childNodes[cursor].style.backgroundColor = "";
						parent.childNodes[cursor - 1].style.backgroundColor = "#a3ceff";
					}
				}
			}
		}
		catch (e) { }
	}

	function getCursor()
	{
		if (suggestions.innerHTML.length == 0)
			return -1;
		var parent = suggestions.firstChild;

		for (var i = 0; i < parent.childNodes.length; i++)
			if (
					parent.childNodes[i].style.backgroundColor == "#a3ceff" ||
					parent.childNodes[i].style.backgroundColor == "rgb(163, 206, 255)"
			   )
				return i;

		return parent.childNodes.length;
	}
}