var inputarea = document.getElementById('unitinput');
var resultsarea = document.getElementById('results');
var suggestarea = document.getElementById('suggesttext');
var sendtimeout1, sendtimeout2;
var currsuggest = -1;
var numsuggest = 0;
var suggeststatus = 0;

function requestConversion(showall, sortby){
	var inputarea = document.getElementById('unitinput');
	var resultsarea = document.getElementById('results');
	var overlayarea = document.getElementById('overlay');
	var overlaytextarea = document.getElementById('overlaytext');
	var suggestarea = document.getElementById('suggest');
	
	overlayarea.style.display = "block";
	overlaytextarea.style.display = "block";
	
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null) {
        alert("Your browser does not support AJAX!");
        return;
    }
    var input = inputarea.value;
    
    var url = "process.php";
    url = url + "?q=" + input;
    url = url + "&sid=" + Math.random();
	if(showall==true)
		url = url + "&showall=true";
	url = url + "&sortby="+sortby;
	
    xmlHttp.onreadystatechange = function(){
        if (xmlHttp.readyState == 4) {
			var response = xmlHttp.responseText;
			response = response.split("%%!%%");	//Split the response up into the bits that matter
            resultsarea.innerHTML = response[0];	//The result that shall be displayed
			overlayarea.style.display = "none";	//Remove the loading overlay
			overlaytextarea.style.display = "none";
			suggestarea.innerHTML = response[1];
			if(response[2]=="1") {
				suggestarea.style.display = "none";
				suggeststatus = 0;
				numsuggest = 0;
				currsuggest = -1;
			}
			else if(response[1]!="No input") {
				suggestarea.style.display = "block";
				numsuggest = document.getElementById('suggestlist').children.length;
				suggeststatus = 1;
				currsuggest = -1;
			}
        }
    }
	clearTimeout(sendtimeout1);
	clearTimeout(sendtimeout2);
    sendtimeout1 = setTimeout("xmlHttp.open(\"GET\", \""+url+"\", true)", 300);
	sendtimeout2 = setTimeout("xmlHttp.send(null)", 300);
}

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 getKeyNum(key) {
	var keynum;
	
	if(window.event) {	//IE
		keynum = key.keyCode;
	}
	else {	//Firefox/Opera
		keynum = key.which;
	}
	
	return keynum;
}

$(document).ready(function(){
	$("#unitinput").keydown(function(key) {
		keynum = getKeyNum(key);
		if(keynum == 13) {
			if(currsuggest >= 0) {
				$("#unitinput").val(document.getElementById("sla_"+currsuggest).innerHTML);
			}
			requestConversion(false, 'default');
			return false;
		}
		else if(keynum == 40) { //Down arrow
			if(numsuggest > currsuggest + 1) {
				if(currsuggest >= 0)
					document.getElementById("suggestlist_"+currsuggest).className = "";
				currsuggest++;
				document.getElementById("suggestlist_"+currsuggest).className = "active";
				return false;
			}
		}
		else if(keynum == 38) { //Down arrow
			if(currsuggest >= 0) {
				document.getElementById("suggestlist_"+currsuggest).className = "";
				currsuggest--;
				if(currsuggest>=0)
					document.getElementById("suggestlist_"+currsuggest).className = "active";
				document.getElementById("unitinput").value = document.getElementById("unitinput").value;
				return false;
			}
		}
		else {
			setTimeout("requestConversion(false, 'default');", 40);
		}
	});
});
