/**
 * @name 首页拼音输入
 * @author MrJ
 * @E-Mail jindaibin@126.com
 * @Date   2009.11.10
 * @    jquery ajax支持
 */

 var BroserType = (function(){
							//检查浏览器类型 真为ie 假为非ie
							var temp = window.navigator.appName;
                            if(temp.indexOf("Microsoft")==-1)
                            {
                                //为非微软浏览器
	                            return false;
                             }
                             return true;
							
})();
 
 var configObj  = {
	   bool:true,           //判断是否为真
 	   box : '',            //容器
	   input:'',             //输出对象
	   b_colr       :"#ccc",          //外框颜色
	   b_bgclr      :"#fff",          //外框背景色
	   color        :"#EF7602",          //字体默认颜色
	   mcolor       :"#F5CC90",          //鼠标选中颜色
	   showboxmouse : 0,
	   boxchlid     : new Array()                      //框内对象
	   
	   };
 var menuBoxObj = new showBox(configObj);
 
 function inputobjs(obj)
 { //绑定控件对象
         configObj.input = obj; //输出对象
         
         //设置对象事件 兼任ie forefox
		 menuBoxObj.creatBox(menuBoxObj);
		 //创建对象
		 
		 
		 if(BroserType)
		 {
		   obj.onpropertychange=function(){
			    //alert('ie'+this.value);
				menuBoxObj.showData(this.value,menuBoxObj);
			   };
		 }//else if
		 else
		 {
		   obj.addEventListener("input",function(){
		   //ff 输入事件
		    //alert('ff'+this.value);
			menuBoxObj.showData(this.value,menuBoxObj);
		   },false);
		 }//end if
 }//end function


 function showBox(obj)
 { //显示框
     this.configObj = obj;
     this.nowid     = 0; //保存状态号码
	 
	 this.creatBox  = function(obj)
	 {
		 obj.configObj.showboxmouse  = 0;
		 if(obj.configObj.bool)
		 {
			obj.configObj.box = obj.creatTag(document.body,'div');
			obj.configObj.box.style.width = obj.configObj.input.clientWidth+"px";
			var A = obj.getXY(obj.configObj.input);
			
			obj.configObj.box.style.top      = A.y+obj.configObj.input.clientHeight+2+"px";
	        obj.configObj.box.style.left     = A.x+"px";
	        obj.configObj.box.style.position ="absolute";
			obj.configObj.box.style.zIndex   = 2000;
	        obj.configObj.box.style.border   ="1px solid "+obj.configObj.b_colr;
	        obj.configObj.box.style.border   ="1px solid "+obj.configObj.b_colr;
	        obj.configObj.box.style.color    =obj.configObj.color ;
			obj.configObj.box.style.backgroundColor=obj.configObj.b_bgclr;
			obj.configObj.box.innerHTML = "支持拼音或汉字查询";
			obj.configObj.bool = false;   //对话框显示
			obj.configObj.box.onmouseover   = function()
	        {
	             configObj.showboxmouse = 0;
	        }//end obj
	        obj.configObj.box.onmouseout    = function()
	        {  
	             configObj.showboxmouse = 1;
	        }//end obj
		   }// else
		   else
		   {
			   obj.configObj.box.style.display="block"; //开启对象
			   }//end if
		 };//end this.creatBox
	 this.creatTag = function(o,tag)
	 { //创建Tag
	   var a = document.createElement(tag);
		 //a.innerHTML='a';  // #test
         o.appendChild(a);
		 return a;
	 };//end this.creatTag
	 
	 this.getXY  = function(obj)
	 {
		 //获得控件位置
		var A = {x:0,y:0}; //保存对象
		var temp = obj;
	    do{
		  A.y+=temp.offsetTop;
		  A.x+=temp.offsetLeft;
		  temp=temp.offsetParent;
	    }while(temp.tagName!="BODY")
		return A;
	 };//end this.getXY
	 this.showData = function(str,obj)
	 {
		 //输出数据
		 if(str.length>0){
			 
			 var type = 1;       //中文输入
		     if(str.match(/^[a-zA-Z]+$/))
		     { //拼音查询
			    type = 2; //拼音
		        }//end if
			 //var data = [{a:1},{a:2},{a:3}]; 
			 $.get("/ajax.php",{'ac':'heard','type':type,'str':str},function(data){
								if(data.length>0){
								 obj.showList(eval(data));}//endif					  
													  });
			 //obj.showList(data);
			 
			 }//end if
			 
		 };//end this.showData
	  this.showList = function(data)
	  {//展示列表
	       var sHtml = '';
		   this.configObj.box.innerHTML = '';
		   this.configObj.boxchlid = new Array();
		   for(var i=0;i<data.length;i++)
		   {
			   sHtml = this.creatTag(this.configObj.box,'dt');
			   sHtml.innerHTML = data[i].name;
			   sHtml.style.listStyle ='none';
			   sHtml.style.padding   = 4+"px";
			   sHtml.style.margin    = 0+"px";
			   sHtml.style.color     = this.configObj.color;
			   sHtml.style.cursor    = 'pointer';
			   sHtml.setAttribute('value',i);
			   sHtml.onmouseover = function ()
			   {
				  var j = menuBoxObj.nowid;
				  menuBoxObj.nowid = this.value;
				  configObj.boxchlid[j].style.backgroundColor = configObj.b_bgclr;
				  this.style.backgroundColor = configObj.mcolor;
				   }//end onmouseover
			   sHtml.onclick = function ()
			   {//选中对象
			       menuBoxObj.selectNow();
		   
				   }
			   this.configObj.boxchlid.push(sHtml);
			   }
		  };//end this.showList
		  this.selectNow = function()
		  {
			  configObj.input.value = configObj.boxchlid[this.nowid].innerHTML;
			  configObj.box.style.display="none";
			  }//
 }//end function
 
 //##公共事件
if(typeof(configObj.box)=='object'){
document.onclick=function()
{
	
   if(configObj.showboxmouse)
   {
      configObj.box.style.display="none";
   }
}
	 
document.onkeyup=function(e)
{
   var evt = e;      //ie
   if(typeof(e)=='undefined')
   {
      evt = window.event;
   }
   var kyc = evt.keyCode;
   var num = configObj.boxchlid.length-1;
   var now = menuBoxObj.nowid;
   if(true)
   {
      if(kyc==38)
	  {
	      now--;
	  }
	  else if(kyc==40)
	  {
	     now++;
	  }
	  else if(kyc==13)
	  { 
	     menuBoxObj.selectNow();;
	  }
	  if(now<0)
	  {
	    now = num;
	  }
	  else if(now>num)
	  {
	    now = 0;
	  }
	  
	   var j = menuBoxObj.nowid;   //保存的对象
       configObj.boxchlid[j].style.backgroundColor  = configObj.b_bgclr;
	   configObj.boxchlid[now].style.backgroundColor=configObj.mcolor;
	   menuBoxObj.nowid = now;
   }//end if
}//end function	 
}//end if

