document.write("<style>");
document.write("#suggest{position:absolute;background:#fff;text-align:left;border:1px solid #999;height:auto!important;height:20px;min-height:20px;z-index:66}");
document.write("#suggest .suggestOver{background:#ccc;color:#ff9103;}");
document.write("</style>");
var Suggest=function(){
	var _this=this;
	_this.xmlFile="";
	var suggestDiv=g.createTag("div");
	var lastKey="";
	var selectedIndex=0;
	var inputObject=null;
	_this.show=function(inputObj){
		inputObject=inputObj;
		var key=g.trim(inputObj.value);
		if(key==lastKey) return false;
		else lastKey=key;
		suggestDiv.style.display="none";
		if(/^\s*$/.test(key)){
			return false;
		}
		selectedIndex=-1;
		var url="";
		if(_this.xmlFile.indexOf("?")<=0) url = _this.xmlFile + "?s=" + escape(key);
		else url = _this.xmlFile + "&s=" + escape(key);
		//document.write(url);
		g.ajaxGet(url,
				function(xmlHttp){
					 var xmldoc=xmlHttp.responseXML;
					 var keynodes=xmldoc.getElementsByTagName("key");
					 if(keynodes.length>0){
						suggestDiv.id="suggest";
						suggestDiv.style.width=inputObj.offsetWidth + "px";
						suggestDiv.innerHTML="";
						for(var i=0;i<keynodes.length;i++){
							var keyDiv=g.createTag("div");
							keyDiv.style.width="96%";
							keyDiv.style.padding="0";
							keyDiv.style.margin="2px 6px 2px 6px";
							keyDiv.style.height="18px";
							keyDiv.style.lineHeight="18px";
							var oText=document.createTextNode(keynodes[i].getAttribute("value"));
							keyDiv.appendChild(oText);
							var re = new RegExp(key, "gi");
							keyDiv.innerHTML=keyDiv.innerHTML.replace(re,"<span style='color:red'>" + key + "</span>");
							keyDiv.innerHTML="<span style='float:left'>" + keyDiv.innerHTML + "</span><span class='fre-frequency' style='color:green;float:right'>" + keynodes[i].getAttribute("frequency") + "</span>";
							keyDiv.onmouseover=function(){
								selectedIndex=-1;
								var divlist=suggestDiv.getElementsByTagName("div");
								for(var k=0;k<divlist.length;k++){
									divlist[k].className="";
									if(divlist[k]==this)selectedIndex=k;
								}
								this.className="suggestOver";
							}
							keyDiv.onmouseout=function(){
								this.className="";
							}
							keyDiv.onclick=function(){
								//var val=this.innerHTML.replace(/<span class='fre-frequency'[^>]*>\d+<\/span>/img,"");
								//inputObj.value=val.replace(/<[^>]*>/img,"");
								inputObj.value=getTextValue(this.innerHTML);
								var formObj=inputObj.parentNode;
								while(formObj){
									if(formObj.tagName.toLowerCase()=="form"){
										formObj.submit();break;
									}else{
										formObj=formObj.parentNode;
									}
								}
							}
							suggestDiv.appendChild(keyDiv);
						}//for
						suggestDiv.style.top=parseInt(g.getTop(inputObj) + inputObj.offsetHeight) + "px";
						suggestDiv.style.left=parseInt(g.getLeft(inputObj)) + "px";
						suggestDiv.style.display="block";
						document.body.appendChild(suggestDiv);
					 }
				}//function
		);//ajax
	};//show
	var getTextValue=function(val){
		val = val.replace(/<span\s*class=['"]?fre-frequency['"]?[^>]*>\d+<\/span>/img,"");
		return val.replace(/<[^>]*>/img,"");
	};
	var changeSelect=function(isUp,inputObj){
		if (isUp) selectedIndex++;
		else selectedIndex--;
		if(selectedIndex<0) selectedIndex=0;
		var divlist=suggestDiv.getElementsByTagName("div");
		if(selectedIndex>=divlist.length)
			selectedIndex=divlist.length-1;
		for(var i=0;i<divlist.length;i++){
			if(i==selectedIndex){
				divlist[i].className="suggestOver";
				inputObj.value=getTextValue(divlist[i].innerHTML);
				//alert(inputObj.value);
				//inputObj.value=divlist[i].innerHTML.replace(/<[^>]*>/img,"");
			}else{
				divlist[i].className="";
			}
		}
	};
	_this.init=function(event,inputObj,xmlFile){
		event = Utils.getEvent(event);
		if(xmlFile!=undefined) _this.xmlFile=xmlFile;
		var keyCode=event.keyCode;
		if(keyCode==40||keyCode==38){//下上
			var isUp=false;
			if(keyCode==40) isUp=true;
			changeSelect(isUp,inputObj);
		}else{
			_this.show(inputObj);
		}
	};
	Utils.addEventHandler(document,"click",function(event){
				event = Utils.getEvent(event);
				if(event.target!=suggestDiv && event.target!=inputObject)suggestDiv.style.display="none";
			});
};
