  var completeDiv;
  var nameTable;
  var nameTableBody;
  var inputField;
  var divIframe;
  var isDivShow = false;
  var inTbodyLineNO = -1;
  
 function createXMLHttpRequest() {
      var xmlHttp;
      if(window.ActiveXObject){
	      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
	  } else if(window.XMLHttpRequest) {
          xmlHttp = new XMLHttpRequest();
	  }
	  return xmlHttp;
 }
 function initVars() {
     nameTableBody = document.getElementById("name_table_body");
	 nameTable = document.getElementById("name_table");
	 completeDiv = document.getElementById("popup");
	 inputField = document.frmsearch.keyword;
	 divIframe = document.getElementById("diviframe");
 }
 
 /* post  html 页面 调用接口,此方法异步调用Servlet方法 AutoCompleteServlet */
 function findNames(e) {  //alert("00000");
     initVars();
	 if(e.keyCode!=40 && e.keyCode!=38 && e.keyCode!=13 && e.keyCode!=27) {
	     if(inputField.value.length > 0) {  
	      	 var xmlHttp = createXMLHttpRequest();
			 var url = "/searchhistory/autoprompt.htm";
			 //var url = "/AutoPrompt";
			 var postPara = "content="+inputField.value;
			 postPara = encodeURI(postPara);
			 xmlHttp.open("post",url,true);  
             xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			 xmlHttp.send(postPara);
			 xmlHttp.onreadystatechange = function() {
			 	if(xmlHttp.readyState == 4) {          // alert("status: "+xmlHttp.status+"   text: "+xmlHttp.statusText);
					 if(xmlHttp.status == 200) {
						 var list = eval('(' + xmlHttp.responseText + ')'); 
							if(list!=undefined && list.length!=undefined && list.length>0){
						 		 clearNames();	 
								 var size = list.length;      //alert(size);
								 setOffsets();
								 
								 var row,cell1,cell2;
								 for(var i=0; i<size; i++) {
									 
									 isDivShow = true;
									 
									 row = document.createElement("tr");
									 nameTableBody.appendChild(row);
									 	
									 row.onmouseout = function(){this.cells[0].className='mouseOverKey';this.cells[1].className='mouseOverValue';};
									 row.onmouseover = function(){this.cells[0].className='mouseOut';this.cells[1].className='mouseOut';};
									 row.setAttribute("border","0");
									 
									 cell1 = document.createElement("td");
									 cell1.setAttribute("align","left");
									 cell1.setAttribute("width","60%");
									 cell1.appendChild(document.createTextNode(list[i].keyword));
									 
									 cell2 = document.createElement("td");
									 cell2.setAttribute("align","right");
									 cell2.className="mouseOverValue";
									 cell2.appendChild(document.createTextNode("约 " + list[i].value + " 条结果"));
									 
									 divIframe.style.display="";
							
									 row.appendChild(cell1);
									 row.appendChild(cell2);
									 
									 //2008-12-15 杨超添加
									 row.onmousedown = function() {
									 	document.getElementById("keyword").value = this.cells[0].firstChild.data;
									 	//document.frmsearch.submit();
									 };
								 }
							}
						 else
							clearNames();
					 } else {
						 clearNames();	
					 }
				 }	 
			 }
	     } else {
		     clearNames(); 
	     }
	 }
 }

 
  
 // div 的显示位置设置
 function setOffsets() {
	var end = inputField.offsetWidth;
	var left = calculateOffsetLeft(inputField);
	var top = calculateOffsetTop(inputField) + inputField.offsetHeight;
	completeDiv.style.border = "black 1px solid";
	completeDiv.style.left = left + "px";
	completeDiv.style.top = top + "px";
	nameTable.style.width = end + "px";
	divIframe.style.border="none";
 }
 
 function calculateOffsetLeft(field) {
	return calculateOffset(field,"offsetLeft"); 
 }
 
 function calculateOffsetTop(field){
	return calculateOffset(field,"offsetTop"); 
 }
 
 function calculateOffset(field, attr) {
	 var offset = 0;
	 while(field){
		offset += field[attr]; 
		field = field.offsetParent;
	 }
	 return offset;
 }
 
 // 对用户输入框取值 用户选择时调用
 function populateNames(row) {
	 var newInputValue = row.cells[0].firstChild.nodeValue;
	 inputField.value = newInputValue;	 
 }
 
 // 清空操作
 function clearNames() {
 	if(nameTableBody!=undefined){
     var ind = nameTableBody.childNodes.length;
     for(var i = ind - 1; i >= 0; i--){
         nameTableBody.removeChild(nameTableBody.childNodes[i]);
     }
     divIframe.style.display="none";
     completeDiv.style.border = "none";
     inTbodyLineNO = -1;  //2007-12-23
	 isDivShow = false;  //2007-12-23
	}
 } 
 
 function getKeyCode(oEvent) { 
	if(isDivShow) {  // 如果自动完成的层显示出来了
		 if(oEvent.keyCode == 40) {
	         MoveCursor(1);
	     } else if(oEvent.keyCode == 38) { // 
	         MoveCursor(-1);
	     } else if(oEvent.keyCode == 13) { // enter
	         selectValue();
	     } else if(oEvent.keyCode == 27) { // esc
	         clearNames();
	     }
	 }
  }
 
   //2007-12-23
 function MoveCursor(nFlag) {
		var lineNum = nameTableBody.rows.length;   
		inTbodyLineNO=inTbodyLineNO+nFlag;
		if(inTbodyLineNO<-1)
			inTbodyLineNO=-1;
		if(inTbodyLineNO>lineNum)
			inTbodyLineNO=lineNum;
		for(var i=0;i<lineNum;i++) {
			if(i==inTbodyLineNO) {
				nameTableBody.rows[i].cells[0].className = "mouseOut";
				nameTableBody.rows[i].cells[1].className = "mouseOut";
				selectValue();
			} else {
				nameTableBody.rows[i].cells[0].className = "mouseOverKey";
				nameTableBody.rows[i].cells[1].className = "mouseOverValue";
			}
		}
 }

  //2007-12-23
 function selectValue() {
	  if(inTbodyLineNO == -1) {
		   return;  
	  } else {
		  populateNames(nameTableBody.rows[inTbodyLineNO]);
	  }
 }