var xmlHttp;

function suggest(input) {
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
	alert ("Browser does not support HTTP Request");
	return;
    }
var url="/code/suggest.php";
    url=url+"?input="+input;
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
} 

function correct(str) {
	var elem = document.getElementById("inputtext");
	var trimmed = str.replace(/^\s+|\s+$/g, '') ;
	elem.value=trimmed;
	document.getElementById("suggestions").style.display = 'none';
}

function stateChanged() {
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
	var split = xmlHttp.responseText.replace(/^\s+|\s+$/g, '') ;
	split = split.replace(',', '') ;
	if (split.length > 2) {
		var split = split.split(",");
		var list = "";
		
		if(split[0] != "") {
			for(var i = 0; i < split.length; i++) {
				list+="<li><a href=\"#\" onclick=\"javascript: correct('"+split[i]+"');\" onmouseover=\"this.className='active' \" onmouseout=\"this.className='notactive' \">"+split[i]+"</a></li>";
			}
			
			if(list != "") {
				list +="</ul>";
				list = "<ul>" + list;
			}
		}
			
		document.getElementById("suggestions").innerHTML=list;
		document.getElementById("suggestions").style.display = 'block';
	} else {
		document.getElementById("suggestions").style.display = 'none';
	}
    }
}

function GetXmlHttpObject() {
    var xmlHttp=null;
    try{
	xmlHttp=new XMLHttpRequest();
    }catch (e){
	try {
	    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	}catch (e){
	    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
    }
    return xmlHttp;
}