function getXmlHttpRequestObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if(window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
    }
}

function initSuggestField(field) {
	var searchReq = getXmlHttpRequestObject();
  
	//if(document.getElementsByTagName('sugwindow') == null){
    var sugwindow = document.createElement('div');
	
    sugwindow.className = 'search_suggest';
		var obj = field;
		var curtop = 0;
		var curleft = 0;
		while (obj.offsetParent)
			{
				curtop += obj.offsetTop;
				curleft += obj.offsetLeft;
				obj = obj.offsetParent;
			}

	sugwindow.style.left = curleft + 'px';
	sugwindow.style.top	 = curtop + 23 + 'px';
    document.body.appendChild(sugwindow); 
 

    field.onkeyup = function () {
        if(searchReq.readyState == 4 || searchReq.readyState == 0) {
			var str = encodeURIComponent(field.value); 
            searchReq.open("GET", 'inc/geo.php?s=' + str, true);
            searchReq.onreadystatechange = handleSearchSuggest; 
            searchReq.send(null);
       }       
    }
	
	function ClickHandle()
	{
		field.value = this.innerHTML; 
		sugwindow.style.visibility = 'hidden';
	}

	function handleSearchSuggest() {
        if (searchReq.readyState == 4) {
            var str = searchReq.responseText.split("\n");
			if(str != '')
				{
				sugwindow.innerHTML = '';
				sugwindow.style.visibility = 'visible';
				sugwindow.style.width = '302px';
				sugwindow.style.height = '100px';
				sugwindow.style.overflow = 'scroll';
				for(i=0; i < str.length; i++) {
					var suggest = document.createElement('a');
					suggest.appendChild(document.createTextNode(str[i]));
					suggest.className = 'suggest_link';
					suggest.href = 'javascript: void(0);';
					suggest.onclick = ClickHandle;
					//suggest.onKeyUp = select_key();
					sugwindow.appendChild(suggest);
					}
			    }
			else { sugwindow.style.visibility = 'hidden'; }
        }
    }
	
}
