var xmlhttp;
var first = true;
var lastsearch = "";
var lastlang = "";
var lastopen = "";
var stopload = 0;
var stop = false;

function GetXmlHttpObject()
{
	if (window.XMLHttpRequest)
	{
		return new XMLHttpRequest();
	}
	if (window.ActiveXObject)
	{
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
}

function getResults()
{
	if (stop) return;
	xmlhttp = GetXmlHttpObject();
	if (xmlhttp == null)
	{
		alert ("Your browser does not support AJAX.");
		return;
	}
	var search = document.getElementById("search").value;
	var lang = document.getElementById("lang").value;
	var opensource = checkStr(document.getElementById("opensource").checked);
	var url = "results.php";
	url += "?search="+numEnc(search);
	url += "&lang="+lang;
	url += "&opensource="+opensource;
	xmlhttp.onreadystatechange = resultState;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
	if (stopload == 1)
	{
		stopload = 2;
	}
}

function checkLoad()
{
	var doget = false;
	if (first)
	{
		doget = true;
		first = false;
	}
	var search = document.getElementById("search").value;
	if (lastsearch != search)
	{
		doget = true;
		lastsearch = search;
	}
	var lang = document.getElementById("lang").value;
	if (lastlang != lang)
	{
		doget = true;
		lastlang = lang;
	}
	var opensource = checkStr(document.getElementById("opensource").checked);
	if (lastopen != opensource)
	{
		doget = true;
		lastopen = opensource;
	}
	if (doget)
	{
		document.getElementById("loading").style.visibility = "visible";
		stopload = 1;
	}
	setTimeout("checkLoad()",100);
}

function resultState()
{
	if (xmlhttp.readyState == 4 && !stop)
	{
		if (stopload == 2)
		{
			document.getElementById("loading").style.visibility = "hidden";
			stopload = 0;
		}
		document.getElementById("results").innerHTML = xmlhttp.responseText;
		setTimeout("getResults()",1000);
	}
}

function checkStr(check)
{
	return ""+check;
}

function numEnc(str)
{
	return str;
}

function kill()
{
	stop = true;
}

setTimeout("getResults()",500);
setTimeout("checkLoad()",100);