	var quickSearchForm_language="EN";
	var quickSearchForm_itemnameResults="15";

	function quickSearchForm_setLanguage(language) {
		quickSearchForm_language = language;
	}
	
	function quickSearchForm_setItemnameResults(results) {
		quickSearchForm_itemnameResults = results;
	}

	function quickSearchForm_checkNameOrNumber() {	
		var temp = quickSearchForm_SearchBar.AutoComplete.oText.value
        temp = temp.replace("#", "");
        
		if (!isNaN(temp)) {
			document.getElementById("quickSearchForm").ITEM_NUMBER.value=temp;
		} else {
			document.getElementById("quickSearchForm").ITEM_NUMBER.value="";
		}
	}

	function quickSearchForm_visible (oVisible) {
		quickSearchForm_SearchBar.visible =  oVisible;
		if (oVisible) {
			quickSearchForm_SearchBar.AutoComplete.oDiv.style.visibility = "visible";
		} else {
			quickSearchForm_SearchBar.AutoComplete.oDiv.style.visibility = "hidden";
			quickSearchForm_SearchBar.selectedIndex = -1;
		}
	}
 	
	function quickSearchForm_isVisible (oVisible) {
		return quickSearchForm_SearchBar.visible;
	}
 	
	function quickSearchForm_enable (oEnabled) {
		quickSearchForm_SearchBar.enabled = oEnabled;
		if (!oEnabled)
			quickSearchForm_visible(false);
	}

	function quickSearchForm_isEnabled () {
		return quickSearchForm_SearchBar.enabled
	}
	
	function quickSearchForm_suspend (oSuspended) {
		quickSearchForm_SearchBar.suspended = oSuspended;
	}

	function quickSearchForm_isSuspended () {
		return quickSearchForm_SearchBar.suspended;  
	}

	function quickSearchForm_start (oStarted) {
		quickSearchForm_SearchBar.started = oStarted;
		if (oStarted) {
			quickSearchForm_SearchBar.timerID = setInterval( "quickSearchForm_searchTimer()", 100);		
		} else {
			clearInterval(quickSearchForm_SearchBar.timerID);
		}
	}

	function quickSearchForm_isStarted () {
		return quickSearchForm_SearchBar.started;  
	}    		 
			 
	function quickSearchForm_onMouseDown () {
		quickSearchForm_selectText(this.innerIndex);
		document.quickSearchForm.submit();
	}
	
	function quickSearchForm_onMouseOver () {
		quickSearchForm_selectIndex(this.innerIndex, true);
	}
	
	function quickSearchForm_onMouseOut () {
		quickSearchForm_selectIndex(-1, false);
	}

	function quickSearchForm_onFocus () { 
		quickSearchForm_SearchBar.AutoComplete.oText.value = "";
		quickSearchForm_SearchBar.lastSearchString = quickSearchForm_SearchBar.AutoComplete.oText.value;
		quickSearchForm_enable(true);  
	}
 	
	function quickSearchForm_onBlur () { 
		quickSearchForm_enable(false);
	}
   		   		 		
	function quickSearchForm_onKeyDown (e) { 
		var keycode = document.lcboLibrary.isIE() ? event.keyCode : e.which;

		switch(keycode) {   
		case 38: // Up arrow
			if (quickSearchForm_isEnabled())
				quickSearchForm_selectIndex(quickSearchForm_SearchBar.selectedIndex - 1, true);
			return false;
			break;    
		case 40: // Down arrow
			if (quickSearchForm_isEnabled())
				quickSearchForm_selectIndex(quickSearchForm_SearchBar.selectedIndex + 1, true);    
			return false;
			break; 
		case 37: // Left arrow
			break;
		case 39: // Right arrow
			break;      
		case 13: // Enter
			if (quickSearchForm_isVisible() && quickSearchForm_SearchBar.selectedIndex>=0)
				quickSearchForm_selectText(quickSearchForm_SearchBar.selectedIndex);
			quickSearchForm_visible(false);
			quickSearchForm_checkNameOrNumber();
			document.quickSearchForm.submit();
			return false;			
			break;
		default: 
			if (!quickSearchForm_isStarted())
				quickSearchForm_start(true);
			quickSearchForm_suspend(false);  
		}                 
		return true;
	}
	
	function quickSearchForm_selectIndex(oSelectedIndex, oSelectIndex) {
 	    quickSearchForm_suspend(true);

	   	var div = quickSearchForm_SearchBar.AutoComplete.oDiv;
	   	
	   	if (div.childNodes) {
			var rows = div.childNodes;
		   	if (rows.length > 0) {
			   	if (oSelectIndex) {
					if (oSelectedIndex <= -1)
						oSelectedIndex = rows.length - 1;
					else if (oSelectedIndex >= rows.length)
						oSelectedIndex = 0;					
				   	quickSearchForm_SearchBar.selectedIndex = oSelectedIndex;

				   	for (var i = 0; i < rows.length; i++) {
						if (i == oSelectedIndex)				
							rows[i].className = "AutoCompleteHighlight";       
						else
							rows[i].className = "AutoCompleteBackground";       
				   	}
			   	} else {
				   	quickSearchForm_SearchBar.selectedIndex = oSelectedIndex;
				   	for (var i = 0; i < rows.length; i++)
						rows[i].className = "AutoCompleteBackground";		   	
			   	}
		   	}
		}
	} 
	
	function quickSearchForm_selectText(oSelectedIndex) {
 	    quickSearchForm_suspend(true);
		quickSearchForm_visible(false);
 	    
	   	var div = quickSearchForm_SearchBar.AutoComplete.oDiv;  

	   	if (div.childNodes) {
			var rows = div.childNodes;
		   	if ((oSelectedIndex>=0)&& (oSelectedIndex<rows.length))
				quickSearchForm_SearchBar.AutoComplete.oText.value = rows[oSelectedIndex].innerHTML.replace(/&amp;/g, "&");
		}
		
	   	quickSearchForm_SearchBar.lastSearchString = quickSearchForm_SearchBar.AutoComplete.oText.value;
	} 
		   
	function quickSearchForm_doSearch(searchString) {
		var request = new document.lcboLibrary.Http.AjaxRequest();
		request.setCallBack(quickSearchForm_doSearchResult);	 
 	  	var URL = "/lcbo-ear/product/itemnameAutoComplete.do?language="+quickSearchForm_language+"&ITEM_NAME="+searchString+"&ITEM_NAME_RESULTS="+quickSearchForm_itemnameResults;
		request.call(URL);	         
	}

	function quickSearchForm_doSearchResult(HttpRequest) {
		var xmlDoc = document.lcboLibrary.getXMLDocFromText(HttpRequest.responseText);
		var elements = xmlDoc.getElementsByTagName("itemName"); 		
		var div = quickSearchForm_SearchBar.AutoComplete.oDiv;
		
		while (div.hasChildNodes())
			div.removeChild(div.firstChild);

		for (var i = 0; i < elements.length; i++ ) {
			var oDiv = document.createElement('div');
			div.appendChild(oDiv);
			oDiv.innerHTML = elements[i].childNodes[0].nodeValue;
			oDiv.innerIndex = i;
			oDiv.onmousedown = quickSearchForm_onMouseDown;
			oDiv.onmouseover = quickSearchForm_onMouseOver;
			oDiv.onmouseout = quickSearchForm_onMouseOut;
			oDiv.quickSearchForm_AutoComplete = this;			
		}

		quickSearchForm_visible(elements.length>0);
	}
	
	function quickSearchForm_searchTimer() {
		try {	 
			if (quickSearchForm_isEnabled()) {   
		     	if (quickSearchForm_isSuspended()) return;
   				if (quickSearchForm_SearchBar.lastSearchString != quickSearchForm_SearchBar.AutoComplete.oText.value) {
					quickSearchForm_SearchBar.lastSearchString = quickSearchForm_SearchBar.AutoComplete.oText.value;       
					quickSearchForm_doSearch(quickSearchForm_SearchBar.AutoComplete.oText.value);  
	 			}
	 		} else {                
				quickSearchForm_start(false);
			}   
		} catch(e) {    
			quickSearchForm_start(false);
		}
	}  
				   
	function SearchBar(oFormName, oTextName, oDivName) {
		this.enabled = false; 
		this.suspended = true;    
		this.started = false;
		this.visible = false;
		
		this.lastSearchString = "";  		                          
		this.selectedIndex = -1;
  	    	                                            
		this.AutoComplete = new AutoComplete(document.getElementById(oTextName), document.getElementById(oDivName));

		this.form = document.getElementById(oFormName);
		this.form.ITEM_NAME.onkeydown = quickSearchForm_onKeyDown;
		this.form.ITEM_NAME.onfocus = quickSearchForm_onFocus;		   
		this.form.ITEM_NAME.onblur = quickSearchForm_onBlur;
	}  
	
	function AutoComplete(oText, oDiv) {
		this.oText = oText;
		this.oDiv = oDiv;
	}
	
	var quickSearchForm_SearchBar = new SearchBar("quickSearchForm", "ITEM_NAME", "theDiv");
