function AutoCompleteControl(){
	this.txtSearchBoxId = '';
	this.btnSubmitId = ''
	this.init = function(strTxtBoxId, strItemSeparator, intWidth,strSearchURL, objExtraParams, intMax, intMinChars, intCacheLength, intDelay, strbtnId, strSearchPageURL){
		this.txtSearchBoxId = strTxtBoxId;
		this.btnSubmitId = strbtnId;
		
		$(document).ready(function(){
			$('#'+strTxtBoxId).autocomplete(strSearchURL, {
				extraParams: objExtraParams,
				width: intWidth,
				selectFirst: false,
				cacheLength: intCacheLength,
				minChars: intMinChars,
				delay: 100,
				lineSeparator: strItemSeparator,
				maxItemsToShow: intMax,
				onItemSelect: function(li){
					$('#'+strTxtBoxId).focus();
				},
				setToItemHighlighted: true,
				searchtextboxid: strTxtBoxId,
				changeresultset: function(q, data, intMaxRecords){
					var arrData = new Array();
					var strFirstChar = $.trim(q.substring(0,1).toLowerCase());
					var intCnt = 0;
					var strValue = '';
					var objNext2 = new Object();
					
					arrData = data[strFirstChar];
					for(intIndex=0;intIndex <= arrData.length-1;intIndex++){
						if(arrData[intIndex].substring(0,q.length).toLowerCase() == q.toLowerCase()){
							var strNext2 = $.trim(arrData[intIndex].toLowerCase().replace(q,'').replace(/\s/g,'')).substring(0,2);
							if(objNext2[strNext2] == null){		
								if(strValue.length == 0){
									strValue = arrData[intIndex];
								}else{
									strValue += strItemSeparator + arrData[intIndex];
								}
								intCnt++;
								objNext2[strNext2] = true;
							}
						}	
						
						if(intMaxRecords <= intCnt){
							break;	
						}
					}
					return strValue;
				},
				formatItem: function(row,i,num, intWidth){
					var strValue = row[0];
					var intChars = parseInt(intWidth/7);
					
					if(strValue.length > intChars){
						strValue = strValue.substring(0,intChars) + '...';
					}
					
					return strValue;
				}
			}).focus(function(){
				if($(this).attr('value') != null){
					if($.trim($(this).attr('value')).toLowerCase() == "product search"){
						$(this).attr('value', '');
					}
				}
			}).keyup(function(evt){
				if(evt.keyCode == "13"){
					$('.ac_results').hide();
					$('#'+ strbtnId).click();
				}
			});
			
			
					
			
			$('#'+ strbtnId).click(function(){
				if(btnSubmit_Click()){
					window.location = strSearchPageURL + '&terms=' + $('#'+strTxtBoxId).attr('value');
				}
			});
			
			//Checking the textbox
			function btnSubmit_Click(){
				var strSearchText = $('#'+strTxtBoxId).attr('value');
			
				if(strSearchText != null){
					if($.trim(strSearchText).length == 0 || $.trim(strSearchText.toLowerCase()) == "product search"){
						alert("Please enter something to search for");
						return false;
					}
				}
			
				return true;
			};
						
		});
		
	};
	
}