
var _oldInputFieldValue = "";			// inputField value
var da = false;
var _currentInputFieldValue = "";		// also inputField value (was g)
var G = "";
var _eventKeycode = "";					// event keycode... (was m)
var _highlightedSuggestionIndex = -1;	// currently hightlighted suggestion index (was j)
var _highlightedSuggestionDiv = null;	// currently highlisted suggestion div... (was h)
var _completeDivRows = -1;				// completeDiv rows at time of keypress... (was Z)
var _completeDivDivList = null;			// completeDiv div list at time of keypress (was za)
var _completeDivRows2 = 5;				// was Ca... initially 5? not sure difference between this and _completeDivRows...
var q = "";
var _divTag = "div";					// Was Lb
var _spanTag = "span";					// Was Bb
var _documentForm = null;				// Form on html page... (was la...)
var _inputField = null;					// Input field on form... (was a)
var _inputCountryField = null;			// Input field on the Form for country
var _inputAdmin1Field = null;			// Input field on the Form for country
var _inputAdmin2Field = null;			// Input field on the Form for country
var _completeDiv = null;				// document.completeDiv (was b)
var X = null;
var _cursorUpDownPressed = false;		// Was ra...
var _resultCache = new Object();		// This is a cache of results from google... (was Ua)
var Y = false;
var _lastKeyCode = -1;					// Gets set on keyDown... Was na... 
var Va = (new Date()).getTime();
var _hasXMLHTTP =false;					// Gets set to true if XMLHTTP Supported (was Q)
var _xmlHttp = null;					// This is the XMLHttp Object... (was k) 
var B = null;
var aa = null;
var Ba = false;
var Ka = false;
var p = 60;
var ya = null;
var _timeoutAdjustment = 0;				// timeout adjustment... (was W)... gets adjusted over time...
var _path;

okuh = function(e)
{
	_eventKeycode = e.keyCode;
	aa = _inputField.value;
	Oa();
};

// strip CR from string...
function stripCRFromString(va)
{
	for (var f = 0,oa = "",zb = "\n\r"; f<va.length; f++) {
		if (zb.indexOf(va.charAt(f)) == -1) {
			oa += va.charAt(f);
		} else {
			oa += " ";
		}
	}
	return oa;
}

// Find span value with className = dc...
function findSpanValueForClass(i, dc)
{
	var ga = i.getElementsByTagName(_spanTag);
	if (ga) {
		for (var f = 0; f < ga.length; ++f) {
			if (ga[f].className == dc) {
				var value = ga[f].innerHTML;
				if (value == "&nbsp;") {
					return "";
				} else {
					var z = stripCRFromString(value);
					return z;
				}
			}
		}
	} else {
		return "";
	}
}

// Return null if i undefined...
// otherwise return value of span cAutoComplete...
function valueOfCAutoComplete(i)
{
	if (!i) {
		return null;
	}
	return findSpanValueForClass(i, "cAutoComplete");
}

// Return null if i undefined...
// otherwise return value of span dAutoComplete...
function valueOfDAutoComplete(i)
{
	if (!i) {
		return null;
	}
	return findSpanValueForClass(i, "dAutoComplete")
}

function Oa()
{
	// 38 is up cursor key, 40 is down cursor key...
	if(_eventKeycode == 40 || _eventKeycode == 38) {
		blurThenGetFocus();
	}
	var N = lb(_inputField);
	var v = bb(_inputField);
	var V = _inputField.value;
	if(X && _eventKeycode != 0) {
		if (N > 0 && v != -1) {
			V = V.substring(0, v);
		} 
		if (_eventKeycode == 13 || _eventKeycode == 3) { 
			var d = _inputField; 
			if (d.createTextRange) {
				var t = d.createTextRange();
				t.moveStart("character", d.value.length);
				t.select();
			} else if (d.setSelectionRange) {
				d.setSelectionRange(d.value.length, d.value.length);
			}
		} else { 
			if (_inputField.value != V) {
				selectEntry(V);
			}
		}
	}
	_currentInputFieldValue = V;
	if (handleCursorUpDownEnter(_eventKeycode) && _eventKeycode != 0) {
		Pa(_completeDiv, valueOfCAutoComplete);
	}
}

//Called when Form is submitted
function Fa()
{
	da = true;
	hideCompleteDiv();
	return true;
}

// Basically converts a string to a valid uri... (spaces become %20, etc, etc..)
function escapeURI(La)
{
	if (encodeURIComponent) {
		return encodeURIComponent(La);
	}
	if (escape) {
		return escape(La);
	}
}

function lb(n)
{
	var N = -1;
	if (n.createTextRange) {
		var fa = document.selection.createRange().duplicate();
		N = fa.text.length;
	} else if (n.setSelectionRange) {
		N = n.selectionEnd - n.selectionStart;
	}
	return N;
}

function bb(n)
{
	var v = 0;
	if (n.createTextRange) {
		var fa = document.selection.createRange().duplicate();
		fa.moveEnd("textedit", 1);
		v = n.value.length - fa.text.length;
	} else if (n.setSelectionRange) {
		v = n.selectionStart;
	} else {
		v = -1;
	}
	return v;
}

function cc(d)
{
	if (d.createTextRange) {
		var t = d.createTextRange();
		t.moveStart("character", d.value.length);
		t.select();
	} else if (d.setSelectionRange) {
		d.setSelectionRange(d.value.length, d.value.length)
	}
}

function db()
{
	p = 65;
	var wb = 110;
	var Sa = calculateWidth();
	var tb = (Sa - wb) / Sa * 100;
	p = tb;
	if (ya) {
		p = 99.99;
	}
}

function Gb(i)
{
	db();
	var Ub = "font-size: 13px; font-family: arial,sans-serif; word-wrap:break-word; ";
	var Vb = "display: block; padding-left: 3; padding-right: 3; height: 16px; overflow: hidden; ";
	var bc = "background-color: white; ";
	var qb = "background-color: #3366cc; color: white ! important; ";
	var ub = "display: block; margin-left: 0%; width: " + p + "%; float: left; ";
	var Ga = "display: block; margin-left: " + p + "%; ";
	Ga += "font-size: 10px; text-align: right; color: green; padding-top: 3px; "
	D(".mAutoComplete", Ub);
	D(".lAutoComplete", Vb);
	D(".aAutoComplete *", bc);
	D(".bAutoComplete *", qb);
	D(".cAutoComplete", ub);
	D(".dAutoComplete", Ga);
	setStyleForElement(i, "mAutoComplete");
}

function D(name, gb)
{
	if (Ka) {
		var I = document.styleSheets[0];
		if (I.addRule) {
			I.addRule(name, gb);
		} else if (I.insertRule) {
			I.insertRule(name + " { " + gb + " }", I.cssRules.length);
		}
	}
}




/****************************************************************************************************************************************************************************************
*
*	Setup Functions
*
*****************************************************************************************************************************************************************************************/

//Setup
InstallAC = function (frm, fld, country, admin1, admin2, path)
{
	_documentForm = frm;
	_inputField = fld;
	_inputCountryField = country;
	_inputAdmin1Field = admin1;
	_inputAdmin2Field = admin2;
	_path = path;
	X = false;
	Y = true;
	Ba = true
	ya = false;

	if (getXMLHTTP()) {
		_hasXMLHTTP = true;
	} else {
		_hasXMLHTTP = false;
	}

	_inputField.autocomplete = "off";
	_inputField.onblur = onBlurHandler;
	if (_inputField.createTextRange) {
		_inputField.onkeyup = new Function("return okuh(event);");
	} else {
		_inputField.onkeyup = okuh;
	}
	_inputField.onsubmit = Fa;
	_currentInputFieldValue = _inputField.value;
	_oldInputFieldValue = _currentInputFieldValue;
	_completeDiv = document.createElement("DIV");
	_completeDiv.id = "completeDiv";
	_completeDiv.style.borderRight = "black 1px solid";
	_completeDiv.style.borderLeft = "black 1px solid";
	_completeDiv.style.borderTop = "black 1px solid";
	_completeDiv.style.borderBottom = "black 1px solid";
	_completeDiv.style.zIndex = "1";
	_completeDiv.style.paddingRight = "0";
	_completeDiv.style.paddingLeft = "0";
	_completeDiv.style.paddingTop = "0";
	_completeDiv.style.paddingBottom = "0";
	setCompleteDivSize();
	_completeDiv.style.visibility = "hidden";
	_completeDiv.style.position = "absolute";
 	_completeDiv.style.zIndex = "200";
	_completeDiv.style.backgroundColor = "white";
	document.body.appendChild(_completeDiv);
	cacheResults("", new Array(), new Array());
	Gb(_completeDiv);
	var s = document.createElement("DIV");
	s.style.visibility = "hidden";
	s.style.position = "absolute";
	s.style.left = "-10000";
	s.style.top = "-10000";
	s.style.width = "0";
	s.style.height = "0";
	var M = document.createElement("IFRAME");
	M.completeDiv = _completeDiv;
	M.name = "completionFrame";
	M.id = "completionFrame";
	M.src = "/complete/search?hl=en";
	s.appendChild(M);
	document.body.appendChild(s);
	if (frames && (frames["completionFrame"] && frames["completionFrame"].frameElement)) {
		B = frames["completionFrame"].frameElement;
	} else {
		B = document.getElementById("completionFrame");
	}
	window.onresize = resizeHandler;
	document.onkeydown = keyDownHandler;
	setupKeydown1()
}




/****************************************************************************************************************************************************************************************
*
*	Time Loops
*
*****************************************************************************************************************************************************************************************/

idkc = function(e)
{
	if (Ba) {
		var Ta = _inputField.value;
		if (Ta != aa) {
			_eventKeycode = 0;
			Oa()
		}
		aa = Ta;
		setTimeout("idkc()",10);
	}
};
setTimeout("idkc()", 10);

function recalculateTimeout(Mb)
{
	// If Mb is 0, will return 150...
	// If Mb is 3, will return 250...
	// If Mb is 4, will return 450...
	// If Mb is X, will return 850...
	var H = 100;
	for (var o = 1; o <= (Mb - 2) / 2; o++) {
		H = H * 2;
	}
	H = H + 50;
	return H;
}

function mainLoop()
{
	if (_oldInputFieldValue != _currentInputFieldValue) {
		if (!da) {
			var Za = escapeURI(_currentInputFieldValue);
			var ma = _resultCache[_currentInputFieldValue];
			if (ma) {
				// Found in our cache...
				Va = -1;
				sendRPCDone(B, _currentInputFieldValue, ma[0], ma[1], B.completeDiv.prefixStrings);
			} else {
				_timeoutAdjustment++;
				Va = (new Date()).getTime();
				if (_hasXMLHTTP) {
					callLookup(Za);
				}
			}
			_inputField.focus();
		}
		da = false;
	}
	_oldInputFieldValue = _currentInputFieldValue;
	setTimeout("mainLoop()", recalculateTimeout(_timeoutAdjustment));
	return true;
};
setTimeout("mainLoop()", 10);




/****************************************************************************************************************************************************************************************
*
*	Event Handlers
*
*****************************************************************************************************************************************************************************************/

function keyDownHandler(event)
{
	if (!event && window.event) {
		event = window.event;
	}
	if (event) {
		_lastKeyCode = event.keyCode;
	}

	// We are backspacing here...
	if (event && event.keyCode == 8) {
		if (X && (_inputField.createTextRange && (event.srcElement == _inputField && (bb(_inputField) == 0 && lb(_inputField) == 0)))) {
			cc(_inputField);
			event.cancelBubble = true;
			event.returnValue = false;
			return false;
		}
	}
}

function resizeHandler()
{
	setCompleteDivSize();
}

function onBlurHandler(event)
{
	if (!event && window.event) {
		event=window.event;
	}
	if (!_cursorUpDownPressed) {
		hideCompleteDiv();
		// check if tab pressed...
		if (_lastKeyCode == 9) {
			_lastKeyCode = -1;
		}
	}
	_cursorUpDownPressed = false;
}

// blurs focus, then sets focus again... 
// This is getting aclled when we press cursor up / cursor down...
function blurThenGetFocus()
{
	_cursorUpDownPressed = true;
	_inputField.blur();
	setTimeout("setInputFieldFocus();", 10);
	return;
}

// setup a keydown event...
function setupKeydown1()
{
	if (document.createEventObject) {
		var y = document.createEventObject();
		y.ctrlKey = true;
		y.keyCode = 70;
		document.fireEvent("onkeydown", y);
	}
}

// returns false if cursor up / cursor down or enter pressed...
function handleCursorUpDownEnter(eventCode)
{
	if (eventCode == 40) {
		highlightNewValue(_highlightedSuggestionIndex + 1);
		return false;
	} else if (eventCode == 38) {
		highlightNewValue(_highlightedSuggestionIndex - 1);
		return false;
	} else if (eventCode == 13 || eventCode == 3) {
		return false;
	}
	return true;
}

// Pa(completeDiv,H)
// This function gets called for every keypress I make...
function Pa(localCompleteDiv, ib)
{
	var localInputField = _inputField;
	var T = false;
	_highlightedSuggestionIndex = -1;
	// This becomes the rows in our suggestion list...
	var J = localCompleteDiv.getElementsByTagName(_divTag);
	// # of rows in list...
	var O = J.length;
	_completeDivRows = O;
	_completeDivDivList = J;
	_completeDivRows2 = O;
	G = _currentInputFieldValue;
	if (_currentInputFieldValue == "" || O == 0) {
		hideCompleteDiv();
	} else {
		showCompleteDiv();
	}
	var Ab = "";
	if (_currentInputFieldValue.length > 0) {
		var f;
		var o;
		// My prefixStrings was always an empty array...
		// So local variable T never would be set to true...
		// And the local variable Ab would remain empty...
		for (var f = 0; f < O; f++) {
			for(o = 0; o < localCompleteDiv.prefixStrings.length; o++) {
				var Ib = localCompleteDiv.prefixStrings[o] + _currentInputFieldValue;
				if (Y || ib(J.item(f)).toUpperCase().indexOf(Ib.toUpperCase()) == 0) {
					Ab = localCompleteDiv.prefixStrings[o]; 
					T = true; 
					break;
				}
			}
			if (T) {
				break;
			}
		}
	}
	if (T) {
		_highlightedSuggestionIndex = f;
	}
	for (var f = 0; f < O; f++) {
		setStyleForElement(J.item(f), "aAutoComplete");
	}
	if (T) {
		_highlightedSuggestionDiv = J.item(_highlightedSuggestionIndex);
		q = valueOfDAutoComplete(_highlightedSuggestionDiv);
	} else {
		q = _currentInputFieldValue;
		_highlightedSuggestionIndex = -1;
		_highlightedSuggestionDiv = null;
	}
	var ab = false;
	switch (_eventKeycode) {
		// cursor left, cursor right, others??
		case 8:
		case 33:
		case 34:
		case 35:
		case 35:
		case 36:
		case 37:
		case 39:
		case 45:
		case 46:
			ab = true;
			break;
		default:
			// regular keypress ...
			break;
	}
	//alert("ab: " + ab);
	if (!ab && _highlightedSuggestionDiv) {
		var Da = _currentInputFieldValue;
		setStyleForElement(_highlightedSuggestionDiv, "bAutoComplete");
		var z;
		if (T) {
			z = ib(_highlightedSuggestionDiv).substr(localCompleteDiv.prefixStrings[o].length);
		} else {
			z = Da;
		}
		if (z != localInputField.value) {
			if (localInputField.value != _currentInputFieldValue) {
				return;
			}
			if (X) {
				if (localInputField.createTextRange || localInputField.setSelectionRange) {
					selectEntry(z);
				}
				if (localInputField.createTextRange) {
					var t = localInputField.createTextRange();
					t.moveStart("character", Da.length);
					t.select();
				} else if (localInputField.setSelectionRange) {
					localInputField.setSelectionRange(Da.length, localInputField.value.length);
				}
			}
		}
	} else {
		_highlightedSuggestionIndex = -1;
		q = _currentInputFieldValue;
	}
}

// This is onMouseDown function...
var Cb = function()
{
	selectEntry(valueOfCAutoComplete(this));
	q = valueOfDAutoComplete(this);
	da = true;
	Fa();
};

// on mouseover...
var pb = function()
{
	if (_highlightedSuggestionDiv) {
		setStyleForElement(_highlightedSuggestionDiv, "aAutoComplete");
	}
	setStyleForElement(this, "bAutoComplete");
};

// On Mouse out...
var ec = function()
{
	setStyleForElement(this, "aAutoComplete");
};

// Called when cursor up/down pressed... selects new entry in completeDiv...
function highlightNewValue(C)
{
	_currentInputFieldValue = G;
	selectEntry(G);
	q = G;
	if (!_completeDivDivList || _completeDivRows <= 0) {
		return;
	}
	showCompleteDiv();
	if (C >= _completeDivRows) {
		C = _completeDivRows - 1;
	}
	if (_highlightedSuggestionIndex != -1 && C != _highlightedSuggestionIndex) {
		setStyleForElement(_highlightedSuggestionDiv, "aAutoComplete"); 
		_highlightedSuggestionIndex = -1;
	}
	if (C < 0) {
		_highlightedSuggestionIndex = -1;
		_inputField.focus();
		return;
	}
	_highlightedSuggestionIndex = C;
	_highlightedSuggestionDiv = _completeDivDivList.item(C);
	setStyleForElement(_highlightedSuggestionDiv, "bAutoComplete");
	_currentInputFieldValue = G;
	q = valueOfDAutoComplete(_highlightedSuggestionDiv);
	selectEntry(valueOfCAutoComplete(_highlightedSuggestionDiv));
}




/****************************************************************************************************************************************************************************************
*
*	Style Functions
*
*****************************************************************************************************************************************************************************************/

// Ex: setStyleForElement(document.createElement("DIV"), "aAutoComplete");
function setStyleForElement(c, name)
{
	db();
	c.className = name;
	if (Ka) {
		return;
	}
	switch (name.charAt(0)) {
		case "m":
			c.style.fontSize = "13px";
			c.style.fontFamily = "arial,sans-serif";
			c.style.wordWrap = "break-word";
			break;
		case "l":
			c.style.display = "block";
			c.style.paddingLeft = "3";
			c.style.paddingRight = "3";
			c.style.height = "16px";
			c.style.overflow = "hidden";
			break;
		case "a":
			c.style.backgroundColor = "white";
			c.style.color = "black";
			if (c.displaySpan) {
				c.displaySpan.style.color = "green";
			}
			break;
		case "b":
			c.style.backgroundColor = "#3366cc";
			c.style.color = "white";
			if (c.displaySpan) {
				c.displaySpan.style.color = "white"
			}
			break;
		case "c":
			c.style.width = p + "%";
			c.style.cssFloat = "left";
			break;
		case "d":
			c.style.cssFloat = "right";
			c.style.width = 100 - p + "%";
			c.style.fontSize = "10px";
			c.style.textAlign = "right";
			c.style.color = "green";
			c.style.paddingTop = "3px"
			break
	}
}




/****************************************************************************************************************************************************************************************
*
*	AutoComplete Div Functions
*
*****************************************************************************************************************************************************************************************/

//Hides AutoComplete Div
function hideCompleteDiv()
{
	document.getElementById("completeDiv").style.visibility = "hidden";
}

//Shows AutoComplete Div
function showCompleteDiv()
{
	document.getElementById("completeDiv").style.visibility = "visible";
	setCompleteDivSize();
}

//Set Size & Position of AutoComplete Div
function setCompleteDivSize()
{
	if (_completeDiv) {
		_completeDiv.style.left = calculateOffsetLeft(_inputField) + "px";
		_completeDiv.style.top = calculateOffsetTop(_inputField) + _inputField.offsetHeight - 1 + "px";
		_completeDiv.style.width = calculateWidth() + "px";
	}
}




/****************************************************************************************************************************************************************************************
*
*	InputField Functions
*
*****************************************************************************************************************************************************************************************/

//Gets Left Offset of r
function calculateOffsetLeft(r)
{
	return getParentOffset(r, "offsetLeft");
}

//Gets Top Offset of r
function calculateOffsetTop(r)
{
	return getParentOffset(r, "offsetTop");
}

//Determines offset of r from document
function getParentOffset(r, attr)
{
	var kb = 0;
	while (r) {
		kb += r[attr];
		r = r.offsetParent;
	}
	return kb;
}

//Calculates Width of InputField
function calculateWidth()
{
	if (navigator && navigator.userAgent.toLowerCase().indexOf("msie") == -1) {
		return _inputField.offsetWidth - 1 * 2;
	} else {
		return _inputField.offsetWidth;
	}
}

setInputFieldFocus = function()
{
	_inputField.focus();
};

// Select suggested entry...
// wa is the value to set the inputfield to...
function selectEntry(Wa)
{
	_inputField.value = Wa;
	aa = Wa;
}




/****************************************************************************************************************************************************************************************
*
*	XMLHTTP Functions
*
*****************************************************************************************************************************************************************************************/

//Gets an XMLHTTP Object
function getXMLHTTP()
{
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return(req);
}

//Calls Lookup
function callLookup(Rb)
{
	if (_xmlHttp && _xmlHttp.readyState != 0) {
		_xmlHttp.abort();
	}
	_xmlHttp = getXMLHTTP();
	if (_xmlHttp) {
		if (_inputAdmin2Field && _inputAdmin2Field.options[_inputAdmin2Field.selectedIndex].text != "Select..." && _inputAdmin2Field.options[_inputAdmin2Field.selectedIndex].text != "Not Applicable") {
			_xmlHttp.open("GET", _path + "?Country=" + escapeURI(_inputCountryField.options[_inputCountryField.selectedIndex].value) + "&Admin1=" + escapeURI(_inputAdmin1Field.options[_inputAdmin1Field.selectedIndex].value) + "&Admin2=" + escapeURI(_inputAdmin2Field.options[_inputAdmin2Field.selectedIndex].value) + "&City=" + Rb,true);
		} else if (_inputAdmin1Field.options[_inputAdmin1Field.selectedIndex].text != "Select..." && _inputAdmin1Field.options[_inputAdmin1Field.selectedIndex].text != "Not Applicable") {
			_xmlHttp.open("GET", _path + "?Country=" + escapeURI(_inputCountryField.options[_inputCountryField.selectedIndex].value) + "&Admin1=" + escapeURI(_inputAdmin1Field.options[_inputAdmin1Field.selectedIndex].value) + "&City=" + Rb,true);
		} else {
			_xmlHttp.open("GET", _path + "?Country=" + escapeURI(_inputCountryField.options[_inputCountryField.selectedIndex].value) + "&City=" + Rb,true);
		}
		
		_xmlHttp.onreadystatechange = function()
	    {
			if (_xmlHttp.readyState == 4 && _xmlHttp.responseText) {
				var frameElement = B;
				if (_xmlHttp.responseText.charAt(0) == "<") {
					var evalstring = "sendRPCDone(frameElement, \"" + Rb + "\"" + ", ";
					var xml = _xmlHttp.responseXML;
					var nodes = xml.firstChild.childNodes;
					var xmlLabel = null;
					var citystring;
					var countstring;
					if (xml.firstChild.attributes.length > 1) {
						xmlLabel = xml.firstChild.attributes.item(1);
					}

					if (nodes.length > 0) {
						for (var i = 0; i < nodes.length; i++) {
							if (i == 0) {
								citystring = "\"" + nodes.item(i).attributes.item(0).text + "\", ";
								countstring = "\"\", ";
							} else {
								citystring = citystring + "\"" + nodes.item(i).attributes.item(0).text + "\", ";
								countstring = countstring + "\"\", ";
							}
						}
						citystring = citystring.substring(0, citystring.length - 2);
						countstring = countstring.substring(0, countstring.length - 2);

						evalstring = evalstring + "new Array(" + citystring + "), new Array(" + countstring + "), new Array(\"\"));";
						eval(evalstring);
					}
				} else {
					_timeoutAdjustment--;
				}
			}
		};
		_xmlHttp.send(null)
	}
}




/****************************************************************************************************************************************************************************************
*
*	Lookup Results Functions
*
*****************************************************************************************************************************************************************************************/

//Inserts Lookup Results into Cache
function cacheResults(is, cs, ds)
{
	_resultCache[is] = new Array(cs, ds)
}

//Processes Lookup Results
sendRPCDone = function(fr, is, cs, ds, pr)
{
	if (_timeoutAdjustment > 0) {
		_timeoutAdjustment--;
	}
	var lc = (new Date()).getTime();
	if (!fr) {
		fr = B;
	}
	cacheResults(is, cs, ds);
	var b = fr.completeDiv;
	b.completeStrings = cs;
	b.displayStrings = ds;
	b.prefixStrings = pr;
	displaySuggestedList(b, b.completeStrings, b.displayStrings);
	Pa(b, valueOfCAutoComplete);
	if (_completeDivRows2 > 0) {
		b.height = 16 * _completeDivRows2 + 4;
	} else {
		hideCompleteDiv();
	}
}

//Displays Results in AutoCompleteDiv
function displaySuggestedList(i, cs, Hb)
{
	while (i.childNodes.length > 0) {
		i.removeChild(i.childNodes[0]);
	}
	// For each element in our list, we create:
	// <DIV (u) - mousedown/mouseover/mouseout aAutoComplete>
	//   <SPAN (ka) lAutoComplete>
	//     <SPAN (ua) cAutoComplete>
	//        bug tracking
	//     </SPAN (ua)>
	//     <SPAN (ea) dAutoComplete>
	//        500,000 results
	//     </SPAN (ea)>
	//   </SPAN>
	// </DIV (u)>
	for (var f = 0; f < cs.length; ++f) {
		var u = document.createElement("DIV");
		setStyleForElement(u, "aAutoComplete");
		u.onmousedown = Cb;
		u.onmouseover = pb;
		u.onmouseout = ec;
		var ka = document.createElement("SPAN");
		setStyleForElement(ka, "lAutoComplete");
		var ua = document.createElement("SPAN");
		ua.innerHTML = cs[f];		// the text for the suggested result...
		var ea = document.createElement("SPAN");
		setStyleForElement(ea, "dAutoComplete");
		setStyleForElement(ua, "cAutoComplete");
		u.displaySpan = ea;
		if (!ya) {
			ea.innerHTML = Hb[f];	// the text for # results for suggested result...
		}
		ka.appendChild(ua);
		ka.appendChild(ea);
		u.appendChild(ka);
		i.appendChild(u);
	}
}
