function suggest() {
	var xmlHttp = null;
	var searchBox = document.getElementById('dlsearch');
	var suggestBox = document.getElementById('dlsuggest');

	if (!searchBox|| !suggestBox) return -1;
	var q = searchBox.value;

	if (q.length == 0) {
		suggestBox.style.visibility = 'hidden';
		return -1;
	}
	else suggestBox.style.visibility = 'visible';


	// normal way
	if (typeof XMLHttpRequest != 'undefined') {
 		xmlHttp = new XMLHttpRequest();
	}
	
	// older IEs
	if (!xmlHttp) xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
	if (!xmlHttp) xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");

	if (xmlHttp) {
		xmlHttp.open('GET', 'downloads.php?view=json&q='+q, true);
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				setSuggestions(xmlHttp.responseText);
			}
		};
		xmlHttp.send(null);
	}
}

function setSuggestions(jsonText) {
	var suggestBox = document.getElementById('dlsuggest');
	var list = eval('(' + jsonText + ')');
	var searchBox = document.getElementById('dlsearch');


	// delete all rows
	for (i = suggestBox.rows.length-1; i >= 0; i--) {
		suggestBox.deleteRow(i);
	}

	var i = 0;
	for (s in list) {
		if (i++ > 10) break;
		var row = suggestBox.insertRow(suggestBox.rows.length);

		var cell = row.insertCell(0);
		cell.appendChild(document.createTextNode(s));

		cell = row.insertCell(1);
		cell.className = 'size';
		cell.appendChild(document.createTextNode(Math.round(list[s].size/104857.6)/10.+" MB"));
		
		row.onmouseover = function(e) {
			this.className = 'selected';
		}
		
		row.onmouseout = function(e) {
			this.className = '';
		}
		
		row.onclick = function(e) {
			var c = this.cells[0].childNodes[0];
			searchBox.value = c.nodeValue;
			suggestBox.style.visibility = 'hidden';
			searchBox.focus();
		}
	}
	
}

function hideSuggest() {
	setTimeout('_hideSuggest()', 100);
}

function _hideSuggest() {
	var suggestBox = document.getElementById('dlsuggest');
	if (suggestBox) suggestBox.style.visibility = 'hidden';
}

