//Initialize any "global" variables
var lastPing = 0;

function requestGatewayData(input_string){
	if(input_string != ""){
		var req = newXMLHttpRequest();
		//register the callback handler function
		var callbackHandler = getReadyStateHandler(req, updateResults);
		req.onreadystatechange = callbackHandler;
		req.open("GET", "/gateways/recommend.aspx?input="+input_string+"&r='"+ Math.floor(Math.random()*1000), true);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		
		req.send(null);
	}else{
		document.getElementById("search-dropdown-wrapper").style.display = "none";
	}
}

function clearForm(){
	var search_element = getElementById("q");
	search_element.value = "";
}

function updateResults(XML_Data){
	var keywords_array = new Array();
	var xml_recommend_element = XML_Data.getElementsByTagName("recommendation")[0];
		
	//Gather attribute data for this xml document.
	var timestamp = xml_recommend_element.getAttribute("timestamp");
	var input_text = xml_recommend_element.getAttribute("input");	
	var xml_item_elements = XML_Data.getElementsByTagName("item");
	var xml_keyword_elements = XML_Data.getElementsByTagName("keyword");
	
	var item_count = xml_keyword_elements.length;
	
	for(var k = 0; k < item_count; k++){
		keywords_array[k] = xml_keyword_elements[k].firstChild.nodeValue;
	}
	
	//document.getElementById("search-dropdown-wrapper").style.display = "block";
	showBox();
	
	if(timestamp > lastPing){
		lastPing = timestamp;	
						
		var contentDiv = document.getElementById("all-content-wrapper");
		
		if(item_count > 0){		
			//Display the keywords		
				var keyword_container = document.getElementById("search-dropdown-solutions-content");
				keyword_container.innerHTML = "";
				var limit = 10;
				if(item_count < limit){
					limit = item_count;
				}
				for(var i = 0; i < limit; i++){
					keyword_container.innerHTML = keyword_container.innerHTML + "<div class=\"search-dropdown-item-wrapper\" style=\"cursor:pointer;\" onmouseover=\"this.style.backgroundImage = \'url(/images/search-dropdown-bg-on.png)\'\" onmouseout=\"this.style.backgroundImage = \'url(/images/search-dropdown-bg.png)\'\" onclick=\"window.location=\'/gateways/count.aspx?q=" + keywords_array[i] + "\';\">" + keywords_array[i] + "</div>\r";
				}
			contentDiv.style.display = "inline";
				
		}else{
			contentDiv.style.display = "none";
		}
	}
}



//create a XMLHTTPRequest
function newXMLHttpRequest() {
	var xmlreq = false;
	if (window.XMLHttpRequest) {
		xmlreq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
    		// Try ActiveX
		try { 
			xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) { 
			// first method failed 
			try {
				xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				 // both methods failed 
			} 
		}
 	}
   	return xmlreq;
} 

//Register a listner callback function
function getReadyStateHandler(req, responseXmlHandler) {
	return function () {
		if (req.readyState == 4) {
			if (req.status == 200) {
					responseXmlHandler(req.responseXML);
			}
		}
	}
}
