		var resultindex = 0;
		var resultitems = $('search_autocomplete').getElementsByTagName('li');
		function suggest() {			
			if ($('search').value !='') {
				result = new Ajax.Updater('search_autocomplete', '/catalogsearch/ajax/suggest/?q=' + $('search').value, {method: 'get'})
			}
			else {
				clearitems();
			}
			resultindex = 0;			
		}
		function setevents() {
			resultitems = $('search_autocomplete').getElementsByTagName('li');
			var i, n = resultitems.length;
			for ( i = 0; i < n; i++ ) {	
				resultitems[i].onmouseover = function() {autocompleteHover(this)};	
				resultitems[i].onmouseout = function() {autocompleteHover()};	
				resultitems[i].onmousedown = function() {autocompleteSelect(this)};					
			}
		}
		function autocompleteHover(item) {
			resultitems = $('search_autocomplete').getElementsByTagName('li');
				var i, n = resultitems.length;
				for ( i = 0; i < n; i++ ) {	
					resultitems[i].id = "";
				}
				//alert(typeof resultindex);
				item.id = "autocomplete-highlight";
		}
		function autocompleteSelect(item) {
			$('search').value = item.lastChild.nodeValue;
			$('search').focus();	
			clearitems();
		}
		function autoComplete(e) { 
			if (!e) e = event; 			
			if (keycapture(e)) {
				return false;
			} else {
				suggest();				
			}
		}
		function clearitems() {
			resultindex = 0;
			$('search_autocomplete').innerHTML = '';
		}
		function keycapture(e){
			switch (e.keyCode) { 
		      // Return/Enter 
		      case 13:
				if(resultindex>0) {
					autocompleteSelect(resultitems[resultindex])					
				}  else {
					return false;
				}
		          break; 	 
		      // Escape 
		      case 27:
					clearitems();
		          break; 		 
		      // Up arrow 
		      case 38:
				if(resultindex>0) {
					resultindex = resultindex - 1;
					autocompleteHover(resultitems[resultindex]);
				}
		          break; 		 
		      // Down arrow 
		      case 40:
				if(resultindex<(resultitems.length-1)) {
					resultindex++;
					autocompleteHover(resultitems[resultindex]);
				}
				else {suggest()}
		          break; 		 
		      // left & right arrow keys. Absorb them. 
		      case 37: 
		      case 39: 
		          break; 		 
		      default: 		 
		          return false;
			}
			return true; 
		}
