var sOldSearchText = "";
var xmlInfo;
if (window.ActiveXObject) {
	xmlInfo = new ActiveXObject("Microsoft.XMLDom");
}
else {
	xmlInfo = document.implementation.createDocument("", "", null);
}

function GetInfo(sText) {
	var xmlhttp;
	if (window.ActiveXObject) {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	else {
		xmlhttp = new XMLHttpRequest();
		}

	xmlhttp.open("POST","http://www.utilityboardsupply.com/SuggestedSearches.asp?sw2="+escape(sText), false);
	xmlhttp.send(null);

	xmlInfo = xmlhttp.responseXML;

//alert(xmlhttp.responseText);
}




function ShowOrHideDiv(bShow, sShowHTML) {
	var oShowDiv = document.getElementById("divShowLink");
	if (bShow == true) {
		var cCoordinate = GetElCoordinate(document.getElementById("c_SearchBox"));
		oShowDiv.innerHTML = sShowHTML;
		oShowDiv.style.display = "";
		oShowDiv.style.top = cCoordinate.bottom + "px";
		oShowDiv.style.left = cCoordinate.left + "px";
		}
	else {
		oShowDiv.style.display = "none";
		}
}




function EliminateAndShow(oObject, sText) {
	var eElements = xmlInfo.getElementsByTagName("i");
	var sDivShowText = "<b>Search Suggestions:</b><br>";
	var sf = 0;

//debugger
	for (var i = 0;i < eElements.length;i++) {
		var sXmlText = window.ActiveXObject ? eElements.item(i).text : eElements.item(i).textContent;
		var sNValue = eElements[i].getAttribute("n");

		if (sXmlText.indexOf(sText) >= 0) {
			sDivShowText += "<a href='http://www.utilityboardsupply.com/searchresults.asp?criteria="+escape(sXmlText)+"' title='See Results for " + sXmlText + "'>" + sXmlText + "</a><br>";
			sf++;
			}
		}


	if (sf==0) {
		ShowOrHideDiv(false, '');
		//sDivShowText += "<i>No suggestions available</i>";
		}
	else {
		ShowOrHideDiv(true, sDivShowText);
		}



}




function SearchKeyUp() {
	var sNewSearchText = '';

	if (sNewSearchText.length < 2)	{
		ShowOrHideDiv(false, "");
		return;
		}

	if (sNewSearchText != sOldSearchText) {
		// process
		var sFirstNewWord = sNewSearchText.length > 0 ? sNewSearchText.substring(0, 1) : null;
		var sFirstOldWord = sOldSearchText.length > 0 ? sOldSearchText.substring(0, 1) : null;
		
		if (sFirstNewWord != sFirstOldWord) {
			GetInfo(sNewSearchText);
			}
		
		EliminateAndShow(oObject, sNewSearchText);
		
		// set the old search text value
		sOldSearchText = sNewSearchText;
		}
}




function GetElCoordinate(e) {
	var t = e.offsetTop;
	var l = e.offsetLeft;
	var w = e.offsetWidth;
	var h = e.offsetHeight;
	while (e = e.offsetParent) {
		t += e.offsetTop;
		l += e.offsetLeft;
		}

	return {
		top: t,
		left: l,
		width: w,
		height: h,
		bottom: t + h,
		right: l + w
		}
}


var sFld = document.getElementById("c_SearchBox");
if (sFld != undefined) {
	sFld.onkeyup = function() {
		var sNewSearchText = sFld.value;
		if (sNewSearchText.length < 2)	{
			ShowOrHideDiv(false, "");
			return;
			}

		if (sNewSearchText != sOldSearchText) {
			// process
			var sFirstNewWord = sNewSearchText.length > 0 ? sNewSearchText.substring(0, 1) : null;
			var sFirstOldWord = sOldSearchText.length > 0 ? sOldSearchText.substring(0, 1) : null;



			if (sFirstNewWord != sFirstOldWord) {
				GetInfo(sNewSearchText);
				}
		
			EliminateAndShow(sFld, sNewSearchText);
		
			// set the old search text value
			sOldSearchText = sNewSearchText;
			}
		}
	}