var suggestions = new Array();
var suggestBox = document.getElementById("suggestBox");
// Work out if this page is based on a MasterPage by checking the BodyTag ID and adjust the control IDs accordingly
var usesMasterPage = document.getElementById("_ctl0_BodyTag") != null;

var controlPrefix = usesMasterPage ? "_ctl0_TopBannerPlaceHolder_TopBanner2_EndecaSearch1_": "TopBanner2_EndecaSearch1_";

var searchBox = document.getElementById(controlPrefix + "txtEndecaSearch");

var chkSearchWithin = document.getElementById(controlPrefix + "chkSearchWithin");

var ajaxObj = getXmlHttpObj();

var lastsearch = searchBox.value

// var lastsearch = document.getElementById("TopBanner2_EndecaSearch1_txtEndecaSearch").value;
var polldelay = window.setInterval("poll()", 1000);

function poll() {
	if(searchBox.value != lastsearch)
		suggest();
}

function getOffset(element, offsetType) {
	var offset = 0;
	while(element) {
		offset += element[offsetType];
		element = element.offsetParent;
	}
	return offset;
}

function suggest() {
	var keywords = searchBox.value;
	if(keywords == '') {
		suggestBox.style.display = 'none';
		return;
	}
	var searchWithin = null != chkSearchWithin && chkSearchWithin.checked;
	if(ajaxObj == null)
		var ajaxObj = getXmlHttpObj();
	if(!searchWithin && (ajaxObj.readyState == 4 || ajaxObj.readyState == 0)) {
		lastsearch = keywords;
		ajaxObj.onreadystatechange = function() {
			if(ajaxObj.readyState == 4) {
				suggestBox.innerHTML = '';
				suggestions = ajaxObj.responseText.split("~");
				showSuggestBox(suggestions);
			}
		}
		ajaxObj.open("GET", "/suggestAjax.aspx?keywords="+keywords, true);
		ajaxObj.send(null);
	}
}

function showSuggestBox(suggestions) {
	if(suggestions[0] == "") {
		suggestBox.style.display = 'none';
		return;
	}
	for(var i=0; i < suggestions.length-1; i++) {
		var suggestion = suggestions[i];
		if (suggestion.indexOf(")") != suggestion.length-1)
			suggestion = suggestion.replace(")", "");
		var suggestion = '<div class="suggest_link" onmouseover="suggestOver(this)" onmouseout="suggestOut(this)" onclick="setSearch(this.innerHTML)">' + suggestion + '</div>';
		suggestBox.innerHTML += suggestion;
	}
	suggestBox.style.top = (getOffset(searchBox, 'offsetTop') + searchBox.offsetHeight-1) + 'px';
	suggestBox.style.left = getOffset(searchBox, 'offsetLeft') + 'px';
	suggestBox.style.display = '';
}

function suggestOver(div) {
	div.className = 'suggest_link_over';
}

function suggestOut(div) {
	div.className = 'suggest_link';
}

function setSearch(value) {
	var keywords = value.substring(0, value.lastIndexOf(" "));
	if(navigator.appName == "Microsoft Internet Explorer")
		window.location.replace("/Category-/results.aspx?Ntk=all&Ntt="+keywords+"&Ntx=mode+matchallpartial&Nty=1");
	else
		window.location="/Category-/results.aspx?Ntk=all&Ntt="+keywords+"&Ntx=mode+matchallpartial&Nty=1";
}