        var xmlHttp;
        var completeDiv;
        var inputField;
		var keywordtype;
        var nameTable;
        var nameTableBody;
		
		var isOpen=false;
		var hvalue='';

        function createXMLHttpRequest() {
            if (window.ActiveXObject) {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if (window.XMLHttpRequest) {
                xmlHttp = new XMLHttpRequest();                
            }
        }

        function initVars() {
            inputField = document.getElementById("names");
			 
			inputField1= document.getElementById("keywordtype");
            nameTable = document.getElementById("name_table");
            completeDiv = document.getElementById("popup");
            nameTableBody = document.getElementById("name_table_body");
        }

        function findNames() {
            initVars();
            if (inputField.value.length > 0) {
                createXMLHttpRequest();            
                var url = "/Include/ss.htm?keywordtype="+escape(inputField1.value)+"&keyword="+escape(inputField.value);                       
                xmlHttp.open("GET", url, true);
                xmlHttp.onreadystatechange = callback;
                xmlHttp.send(null);
            } else {
                clearNames();
            }
        }

        function callback() {
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.status == 200) {
                    var name = xmlHttp.responseXML.getElementsByTagName("keyword")[0].firstChild.data;
                    setNames(xmlHttp.responseXML.getElementsByTagName("keyword"),xmlHttp.responseXML.getElementsByTagName("num"));
                } else if (xmlHttp.status == 204){
                    clearNames();
                }
            }
        }

        
        function setNames(the_names,the_names2) {  
		    hvalue='';
            clearNames();
            var size = the_names.length;
            setOffsets();

            var row, cell,cell2,txtNode,txtNode2;
            for (var i = 0; i < size; i++) {
                var nextNode = the_names[i].firstChild.data;
                row = document.createElement("tr");		       
                cell = document.createElement("td");
				cell2 = document.createElement("td");
                cell.setAttribute("keyvalue",the_names[i].firstChild.data);
                cell.onmouseout = function() {this.className='mouseOver'; };
                cell.onmouseover = function(e) {
				                                this.className='mouseOut';
												e=e || window.event;
	                                            var src=e.target || e.srcElement;
												hvalue=src.getAttribute('keyvalue');
												
											   };
				cell.setAttribute("width",'60%');  
                cell.setAttribute("bgcolor", "#FFFFFF");
                cell.setAttribute("border", "0");
			    cell.setAttribute("align", "left");
				cell.style.color="#0033FF";

                cell2.setAttribute("width",'40%');  
                cell2.setAttribute("bgcolor", "#FFFFFF");
                cell2.setAttribute("border", "0");
				cell2.setAttribute("align", "right");
				cell2.style.color="#999999";

				var nextNode2="(约"+the_names2[i].firstChild.data+"条结果)";
				
                cell.onclick = function() { populateName(this,the_names2); } ;
				
                txtNode = document.createTextNode(nextNode);
				txtNode2 = document.createTextNode(nextNode2);
                cell.appendChild(txtNode);
				cell2.appendChild(txtNode2);
                row.appendChild(cell);
				//row.appendChild(cell2); //统计结果
                nameTableBody.appendChild(row);
				
                completeDiv.style.visibility = 'visible';
				isOpen=true;
            }
        }


        function setOffsets() {
            var end = inputField.offsetWidth;
            var left = calculateOffsetLeft(inputField);
            var top = calculateOffsetTop(inputField) + inputField.offsetHeight;

            completeDiv.style.border = "#ff6633 1px solid";
            completeDiv.style.left = left + "px";
            completeDiv.style.top = top + "px";
            nameTable.style.width = end-2 + "px";
			
        }
        
        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 populateName(cell,the_names2) {
            inputField.value=hvalue;
			 hide();
			 
			 document.getElementById("names").focus();
        }

        function clearNames() {
            var ind = nameTableBody.childNodes.length;
            for (var i = ind - 1; i >= 0 ; i--) {
                 nameTableBody.removeChild(nameTableBody.childNodes[i]);
            }
            completeDiv.style.border = "none";
        }

	function iAttach() {
		var u = document.getElementById("names");
		var r= document.getElementById("name_table");
		iAttEvt( u , 'keyup' , findNames );
		iAttEvt( u, 'blur' , isClose );		
	}

	function iAttEvt( a , b , c ) {
		var d = 'on' + b;
		if ( a.addEventListener ) {
			a.addEventListener( b , c , false );
		}
		else if ( a.attachEvent ) {
			a.attachEvent( d , c );
		}
		else {
			//document.getElementById("names")[d] = c;
		}
	}

    function isClose(){
	 var inp=document.getElementById("names");
     if(inp.focus){
	  
	     if(isOpen){
	        completeDiv.style.visibility = 'hidden';
			 isOpen=false;
			 if( hvalue==''){
			    inputField.value=inputField.value;
			 }else{
			    inputField.value=hvalue;
			 }
          }
	   
	 }
	}
	     
	 

	function hide(){
	    completeDiv.style.visibility = 'hidden';
		 isOpen=false;
	}
	     
	 function mouseoverhandler(e){
	   e=e || window.event;
	   var src=e.target || e.srcElement;
	   alert(src);
	   var srcarr=src.value.split('\s');
	   return srcarr[0];
	 }

