	AutoComplete = function ()
{
	var hid;
	var bbb;
	var url;	
	var divId;
	var obj;
	var inputId;
	var tag=0;
	this.bind=function(bb,uu,dd,input)
	{
		bbb=bb;
		url=uu;
		divId= dd;
		inputId = input;
	}
		this.Apply = function (obj,autolist,al)
	{
		
		
		if (typeof (obj)=="string") obj = document.getElementById(obj);
		obj.setAttribute("autocomplete","off");
		al = al ? true : false;
		obj.className="autoCss";
		var div = document.createElement("div");
		div.selectbar = "true";
		div.style.display = "none";
		div.style.position = "absolute";
		div.style.width = "80px";
		div.style.border = "1px solid #000";
		div.style.backgroundColor = "#fff";
		div.style.lineHeight = "15px";
		div.style.cursor = "default";

		$(divId).appendChild(div) ;


		var sdiv=[],acdiv=-1;
		obj.onkeyup = function (e)
		{
			
			var e = e||event;
			if (e.keyCode==38||e.keyCode==40||e.keyCode==13) return false;
			var s = "";
			var j=0;
			for (var i=0; i<autolist.length&&j<8; i++){
				if (al ? (autolist[i].indexOf(this.value)!=-1) : (autolist[i].indexOf(this.value)==0)){
					j++;
					s += "<div style=\"width:100%;\" class=\"autoCss\" onmouseover=\"style.background=\'#009\';style.color=\'#fff\'\" onmouseout=\"style.background=\'#fff\';style.color=\'#000\'\">" + autolist[i] + "</div>";
				}
			}
			div.innerHTML = s;
			acdiv=-1;
			sdiv = div.getElementsByTagName("div");
			if (sdiv.length>10) {div.style.height="150px";div.style.overflow="hidden";}
			else {div.style.height=sdiv.length * 15 + "px";}
			div.style.display = (s=="")?"none":"block";
		}
		obj.onclick=function (e)
		{
			   if(tag==0){
				Event.observe(document, 'mousedown', 
				function (e){
					var e = e||event;
					var dobj = event.srcElement || e.target;
					
					if(dobj.className != 'autoCss'){
						
						insertvalue(obj.value);
						
						if($(bbb.toString()).value==""){
							
							
							obj.value="";
						}
						
					}
			}
	
	
			);
			tag=1; 
			}
			var e = e||event;
			if (e.keyCode==38||e.keyCode==40||e.keyCode==13) return false;
			var s = "";
			var j=0;
			for (var i=0; i<autolist.length&&j<8; i++){
				if (al ? (autolist[i].indexOf(this.value)!=-1) : (autolist[i].indexOf(this.value)==0)){
					j++;
					s += "<div style=\"width:100%;\" class=\"autoCss\" onmouseover=\"style.background=\'#009\';style.color=\'#fff\'\" onmouseout=\"style.background=\'#fff\';style.color=\'#000\'\">" + autolist[i] + "</div>";
				}
			}
			div.innerHTML = s;
			acdiv=-1;
			sdiv = div.getElementsByTagName("div");
			if (sdiv.length>10) {div.style.height="150px";div.style.overflow="hidden";}
			else {div.style.height=sdiv.length * 15 + "px";}
			div.style.display = (s=="")?"none":"block";
		}
		
		obj.onkeydown = function (e)
		{
			
			var e = e||event;
			
			switch (e.keyCode)
			{
				case 38:
					if (acdiv-1<0) return;
					if (sdiv[acdiv]) {sdiv[acdiv].style.background = "#fff";sdiv[acdiv].style.color="#000";}
					if (sdiv[acdiv-1]) {sdiv[--acdiv].style.background = "#009";sdiv[acdiv].style.color="#fff";}
					if (acdiv>9) div.scrollTop = acdiv * 15; else div.scrollTop=0;
					break;
				case 40:
					if (acdiv+1>=sdiv.length) return;
					if (sdiv[acdiv]) {sdiv[acdiv].style.background = "#fff";sdiv[acdiv].style.color="#000";}
					if (sdiv[acdiv+1]) {sdiv[++acdiv].style.background = "#009";sdiv[acdiv].style.color="#fff";}
					if (acdiv>9) div.scrollTop = acdiv * 15; else div.scrollTop=0;
					break;
				case 13:
					if (sdiv[acdiv]) {
						obj.value = sdiv[acdiv].innerHTML;
						$(bbb.toString()).value=hid[acdiv];
					}
					div.style.display = "none";
					break;
				default:
						
						break;
			}
		}
		function insertvalue(v1)
		{
				for (var j=0; j<autolist.length; j++)
				{
					if(autolist[j]==v1)
					{
						$(bbb.toString()).value=hid[j];
						 break;
					}
				}
				
				if(j>=autolist.length){
					$(bbb.toString()).value="";
				}
			
		}
		obj.onfocus=function()
		{
		searchSales("*");
	
		}
		obj.onblur = function () {
			if (document.activeElement && document.activeElement.selectbar=="true") return ;
			setTimeout(function (){div.style.display = "none"},100);
		}
		
		
		
		div.onmousedown = function (e)
		{
			
			
			var e = e||event;
			var srcElement = e.srcElement || e.target;
			
			if (srcElement.selectbar) return;
			obj.value = srcElement.innerHTML;
			insertvalue(srcElement.innerHTML);
			
			div.style.display = "none";
		}
			function searchSales(val)
			{		
			var pars = 'keyword=' +  val;
			
			showResponse();
			}
			
			function showResponse()
			{
				autolist = new Array();
				hid = new Array();
				var i=0;
				for(var e in direct){
					autolist[i]=direct[e];
					hid[i]=e;
					i++;
				}
			
	
			}		
	}
}
