﻿var hightlight =-1; 
var oInputField;	//考虑到很多函数中都要使用
var oPopDiv;		//因此采用全局变量的形式
var oconUl;
function judgediv()
{
    var newNode=document.createElement("div");
    newNode.setAttribute("id","popup");
    document.body.appendChild(newNode);
    var newUl=document.createElement("ul");
    newUl.setAttribute("id","con_ul");
    newNode.appendChild(newUl);
   
	oPopDiv = $("#popup");
	oconUl = $("#con_ul");
	var x =oInputField[0].offsetLeft;
	var y =oInputField[0].offsetTop+oInputField[0].offsetHeight;
	var e = oInputField[0];
	while(e=e.offsetParent)
    {
        x+=e.offsetLeft;
        y+=e.offsetTop;
    }
    newNode.style.top=y;
    newNode.style.left=x;
    newNode.style.width=oInputField[0].offsetWidth;
}
function initVars(){
	//初始化变量  
	if($("#key").val()!=null && $("#key").val()!="请输入房源特征,地点或小区名...")
	{
	  oInputField = $("#key");
	  judgediv();
	}
}
function clearcon(){
	//清除提示内容
	oconUl.empty();
	oPopDiv.removeClass("show");
}
function setcon(the_con){
	//显示提示框，传入的参数即为匹配出来的结果组成的数组
	clearcon();	//每输入一个字母就先清除原先的提示，再继续
	oPopDiv.addClass("show");
	for(var i=0;i<the_con.length;i++)
		//将匹配的提示结果逐一显示给用户
		oconUl.append($("<li>"+the_con[i].split("#")[0]+"<em style='float:right;color:#000000'>约"+the_con[i].split("#")[1]+"条</em></li>"));
	oconUl.find("li").click(function(){
		oInputField.val($(this)[0].firstChild.nodeValue);
		clearcon();
	}).hover(
		function(){$(this).addClass("mouseOver");},
		function(){$(this).removeClass("mouseOver");}
	);
}
var timeoutId=null;
function findcon(ev){
//search(ev);
window.clearTimeout(timeoutId);
timeoutId=(search(ev),500);
		
}
function search(ev)
{
	initVars();		//初始化变量
	var myEvent = ev|| window.event;
var keycode = myEvent.keyCode;   //获取键盘键值
if ((keycode >= 65 && keycode <= 90) || keycode==8 || keycode == 46||keycode==32||(keycode >= 48 && keycode <= 57)) {
		if(oInputField.val().length > 0){
			//获取异步数据
		//var url=escape( "handler/search.ashx?parms="+oInputField.val());
		$.ajax({
        type: "get",  
        url: "handler/search.ashx?parms="+$.trim(escape(oInputField.val()))+"&parms2="+$("select")[0].value, 
        dataType: 'text',
        success: function(result) {   
          var aResult = new Array();  
           if(result)
           {
			aResult = result.split(",");
			setcon(aResult);	//显示服务器结果
           }
           else
            clearcon();
        }  ,
        error:function(msg)
        {alert(msg)}  });
        }
        else
        {
          clearcon();	//无输入时清除提示框（例如用户按del键）
		  hightlight = -1
        }
	}else if(keycode==38||keycode==40){  //如果输入的是向上向下
            
			if(keycode==38){
			//向上
			  var autoNodes = oconUl.find("li");
			
			   if (hightlight != -1 ){
			   	//把高亮节点恢复
			   	autoNodes.eq(hightlight).removeClass("mouseOver");
				hightlight--;
			   }else{
			   	hightlight = autoNodes.length - 1
			   }
			   
			   if(hightlight == -1){
			   	//如果到顶 把高亮移动到最后
			   	hightlight = autoNodes.length - 1;
			   };
			   autoNodes.eq(hightlight).addClass("mouseOver");	
			}
			if(keycode==40){
			//向下
			   var autoNodes =oconUl.find("li");
			   if (hightlight != -1 ){
			   	//把高亮节点恢复
			   	autoNodes.eq(hightlight).removeClass("mouseOver");
			   }
			   hightlight++;
			   if(hightlight == autoNodes.length){
			   	//如果到顶 把高亮移动到最后
			   	hightlight = 0;
			   }
			   autoNodes.eq(hightlight).addClass("mouseOver");
			}		
		}else if (keycode==13){
			//如果输入的是回车			
			if(hightlight!=-1){
				//取出节点的内容				
				var context = oconUl.find("li").eq(hightlight)[0].firstChild.nodeValue;
				clearcon();
				hightlight = -1;
				oInputField.val(context);
			}
			document.getElementById("search").focus();
			
		}
}

