var lastStr;
var usedSug;
var listIndex = -1;
var timeout;
var useArrows = false;

function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function suggest()
{
	clearTimeout(timeout);
	var str = document.getElementById('sugSuche').value;
	var sugBox = document.getElementById("sugBox");
	if (str == "")
	{ 
		sugBox.innerHTML="";
		sugBox.style.display = 'none';
		useArrows = false;
		return;
	}
	else if(str == lastStr || str == usedSug)
	{
		sugBox.style.display = "block";
		useArrows = true;
	}
	else
	{
		document.getElementById("sugLoader").style.display = "block";
		lastStr = str;
		xmlHttp=GetXmlHttpObject();
		xmlHttp.onreadystatechange = function() {
			if (xmlHttp.readyState == 4) {
				if(xmlHttp.responseText == "") {
					sugBox.style.display = "none";
					document.getElementById("sugLoader").style.display = "none";
				}
				else {
					sugBox.innerHTML=xmlHttp.responseText;
					listIndex = -1;
					sugBox.style.display = "block";
					document.getElementById("sugLoader").style.display = "none";
					useArrows = true;
				}
			}
		}
		xmlHttp.open("GET","/games/suggest.php?str="+escape(lastStr),true);
		xmlHttp.send(null);
	}
}

function hidesuggest()
{
	timeout = setTimeout("document.getElementById('sugBox').style.display = 'none';", 1000);
}

function keySug(event)
{
	if(useArrows)
	{
		var liArray = document.getElementById('sugBox').getElementsByTagName('li');
		// UP
		if(event.keyCode == 38)
		{
			if(listIndex == -1)
				listIndex = liArray.length;
			else
				removeClass(liArray[listIndex], "active");
			
			listIndex--;
			
			if(listIndex >= 0)
			{
				addClass(liArray[listIndex], "active");
				usedSug = liArray[listIndex].getAttribute("name");
				document.getElementById('sugSuche').value = usedSug;
			}
			else
			{
				document.getElementById('sugSuche').value = lastStr;
				usedSug = "";
			}
		}
		// DOWN
		else if(event.keyCode == 40)
		{
			if(listIndex != -1)
				removeClass(liArray[listIndex], "active");
			
			if(listIndex == liArray.length-1)
				listIndex = -2;
			
			listIndex++;
			
			if(listIndex >= 0)
			{
				addClass(liArray[listIndex], "active");
				usedSug = liArray[listIndex].getAttribute("name");
				document.getElementById('sugSuche').value = usedSug;
			}
			else
			{
				document.getElementById('sugSuche').value = lastStr;
				usedSug = "";
			}
		}
	}
}

// CLASS-MANIPULATION
function hasClass(ele,cls) {
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls) {
	if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
}

// BIGPOINT TEASER
var teaserInterval;
var teaserCount = 0;

function changeTeaser(nr)
{
	if(nr == null)
	{
		if(teaserCount == 2)
			teaserCount = 0;
		else
			teaserCount++;
		nr = teaserCount;
	}
	else
	{
		teaserCount = nr;
		clearInterval(teaserInterval);
		startInterval();
	}
	
	document.getElementById("overlayImg").style.top = (nr*30)+"px";
	document.getElementById("largeImgObj").src = document.getElementById("smallImg"+nr).src;
	document.getElementById("textSpanner").style.marginTop = "-"+(nr*90)+"px";
	document.getElementById("largeImgLink").href = document.getElementById("gameLink"+nr).href;
	document.getElementById("largeImgObj").alt = document.getElementById("smallImg"+nr).alt;
}
function startInterval()
{
	if(document.getElementById("overlayImg"))
		teaserInterval = setInterval("changeTeaser();", 5000);
}
window.onload = startInterval;