//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest(id) {
        var strId = id + "-city";
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById(strId).value);
                if(str.length >= 2){
                    searchReq.open("GET", 'http://www.bigtreeclimatefund.com/calc/searchSuggest.php?search=' + str, true);
                    if(id =="from"){
                        searchReq.onreadystatechange = handleSearchSuggestFrom;
                    }else if (id == "to"){
                        searchReq.onreadystatechange = handleSearchSuggestTo;
                    }
                    searchReq.send(null);
                }else if(str.length < 2){
                    searchReq.open("GET", 'http://www.bigtreeclimatefund.com/calc/searchSuggest.php?search=', true);
                    if(id =="from"){
                        searchReq.onreadystatechange = handleSearchSuggestFrom;
                    }else if (id == "to"){
                        searchReq.onreadystatechange = handleSearchSuggestTo;
                    }
                    searchReq.send(null);
                }
	}		
}

//Called when the AJAX response is returned.
function handleSearchSuggestFrom() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('from-suggest')
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearchFrom(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
        }
}

function handleSearchSuggestTo() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('to-suggest')
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearchTo(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
	}
}

//Mouse over function
function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}

//Click function
function setSearchFrom(value) {
	document.getElementById('from-city').value = value;
	document.getElementById('from-suggest').innerHTML = '';
}

function setSearchTo(value) {
	document.getElementById('to-city').value = value;
	document.getElementById('to-suggest').innerHTML = '';
}