
// ajax.js 输入提示(数据库)

var XMLHttpReq;
var completeDiv;
var inputField;
var completeTable;
var completeBody;
//创建XMLHttpRequest对象      
function createXMLHttpRequest() { 
var o//=============
      if(window.XMLHttpRequest) { //Mozilla 浏览器 
              o = new XMLHttpRequest(); 
      } 
      else if (window.ActiveXObject) { // IE浏览器 
              try { 
                    o = new ActiveXObject("Msxml2.XMLHTTP"); 
              } catch(e){ 
                    try{ 
                          o = new ActiveXObject("Microsoft.XMLHTTP"); 
                    } catch (e) {} 
              } 
      } 
return o;//=============
} 
function findNames() { 
      inputField = document.getElementById("names");          
      completeTable = document.getElementById("complete_table"); 
      completeDiv = document.getElementById("popup"); 
      completeBody = document.getElementById("complete_body");
	  type=document.getElementById("cid"); 
	  
      if (inputField.value.length > 0) { 
            var o=createXMLHttpRequest();          
            var url = "search.asp?names=" + escape(inputField.value)+"&ts="+new Date().toString(); 
			
            o.open("GET", url, true); 
            o.onreadystatechange = function(){
     if (o.readyState == 4) { // 判断对象状态 
          if (o.status == 200) { // 信息已经成功返回，开始处理信息 
                  setNames(o.responseXML.getElementsByTagName("res")); 
          }else { //页面不正常 
              window.alert("您所请求的页面有异常。"); 
          } 
      } 

};//指定响应函数 
            o.send(null); // 发送请求 
      } else { 
            clearNames(); 
      } 
} 


function findNamesByBH(BH) { 
      inputField = document.getElementById("names");          
      completeTable = document.getElementById("complete_table"); 
      completeDiv = document.getElementById("popup"); 
      completeBody = document.getElementById("complete_body");
	  type=document.getElementById("cid"); 
	  
      if (inputField.value.length > 0) { 
            var o=createXMLHttpRequest();          
            var url = "search.asp?names=" + escape(inputField.value)+"&BH="+BH+"&ts="+new Date().toString(); 
			
            o.open("GET", url, true); 
            o.onreadystatechange = function(){
     if (o.readyState == 4) { // 判断对象状态 
          if (o.status == 200) { // 信息已经成功返回，开始处理信息 
                  setNames(o.responseXML.getElementsByTagName("res")); 
          }else { //页面不正常 
              window.alert("您所请求的页面有异常。"); 
          } 
      } 

};//指定响应函数 
            o.send(null); // 发送请求 
      } else { 
            clearNames(); 
      } 
}

// 处理返回匹配信息函数
function processMatchResponse() { 
      if (XMLHttpReq.readyState == 4) { // 判断对象状态 
          if (XMLHttpReq.status == 200) { // 信息已经成功返回，开始处理信息 
                  alert("XMLHttpReq.responseText");   //输出看是否有乱码===============
                  setNames(XMLHttpReq.responseXML.getElementsByTagName("res")); 
          }else { //页面不正常 
              window.alert("您所请求的页面有异常。"); 
          } 
      } 
} 

//生成与输入内容匹配行
function setNames(names) {           
      clearNames();
      var size = names.length;
      setOffsets();
	  
	  var cellnum=3
	  
      var row, cell, txtNode;
      for (var i = 0; i < size; i++) {
		  row = document.createElement("tr");
		  
		  for (var si = 0; si<cellnum;si++ ){
			var nextNode = names[i].firstChild.data;
			
			var cell = document.createElement("td");    	  
			cell.onmouseout = function() {
              this.className='mouseOver';
			};
			cell.onmouseover = function() {
			  this.className='mouseOut';
			  this.style.cursor='hand';
			  this.style.background="blue";
			  this.style.color="white";
			};
			cell.onmouseout = function() {
			  this.style.background="white";
			  this.style.color="black";
			};
			cell.setAttribute("bgcolor", "#ffddcc");
			cell.setAttribute("border", "0");
			cell.onclick = function() {
				 completeField(this);
			} ;
			cell.width=(100/cellnum)+"%";
			
			txtNode = document.createTextNode(nextNode);
			cell.appendChild(txtNode);
			row.appendChild(cell);
			
			if(si+1<cellnum){
				i=i+1;
			}
			if (i >= size){
				break;	
			}
		  }
		   
          completeBody.appendChild(row);
      }
}

//设置显示位置                
function setOffsets() {
      //completeTable.style.width = "auto";    //显示自动完成的提示框宽度自动伸展或缩小
	  completeTable.style.width = "100%";   
      var left = calculateOffset(inputField, "offsetLeft");
      var top = calculateOffset(inputField, "offsetTop") + inputField. offsetHeight;
      completeDiv.style.border = "#EBEBEB 1px solid";
      completeDiv.style.left = left + "px";
      completeDiv.style.top = top + "px";
}

//计算显示位置
function calculateOffset(field, attr) {
      var offset = 0;
      while(field) {
          offset += field[attr];
          field = field.offsetParent;
      }
      return offset;
}

//填写输入框
function completeField(cell) {
      inputField.value = cell.firstChild.nodeValue;
      clearNames();
}

//清除自动完成行
function clearNames() {
	if(completeBody!=undefined){
      var ind = completeBody.childNodes.length;
      for (var i = ind - 1; i >= 0 ; i--) {
          completeBody.removeChild(completeBody.childNodes[i]);
      }
      completeDiv.style.border = "none";
	}
}

