﻿var j=-1;
var temp_str;

//由于document.getElementById经常被使用，我们用$来简写此函数
var $=function(node){
 return document.getElementById(node);
}

//对document.getElementsByTagName也做简写
var $$=function(node){
 return document.getElementsByTagName(node);
}

//异步读取数据库数据，将结果显示在suggest div中
function ajax_keyword(){
 var xmlhttp;
 try{
  xmlhttp=new XMLHttpRequest();
  }
 catch(e){
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 xmlhttp.onreadystatechange=function(){
 if (xmlhttp.readyState==4){
  if (xmlhttp.status==200){
   var data=xmlhttp.responseText;
   //对结果进行unescape解码以防止中文乱码
   $("suggest").innerHTML=unescape(data);
   j=-1;
   }
  }
 }
 xmlhttp.open("post", "/search/ajax_result.asp", true);
 xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
 xmlhttp.send("keyword="+escape($("keyword").value));
}

//处理按键动作
function keyupdeal(e){
 var keyc;
 if(window.event){
  keyc=e.keyCode;
 }
 else if(e.which){
  keyc=e.which;
 }
 if(keyc!=40 && keyc!=38){
  ajax_keyword();
  temp_str=$("keyword").value;
 }
}

//设置建议框的样式表，高亮显示
function set_style(num){
 for(var i=0;i<$$("dl").length;i++){
  var dl_node=$$("dl")[i];
  dl_node.className="search_li";
 }
 if(j>=0 && j<$$("dl").length){
  var i_node=$$("dl")[j];
  $$("dl")[j].className="search_select";
 }
}

//选定建议项时，高亮显示当前行
function mo(nodevalue){
 j=nodevalue;
 set_style(j);
}

//提交表单动作
function form_submit(){

  $("keyword").value=$$("dl")[j].childNodes[0].nodeValue;

 document.searchform.submit();
}

//隐藏建议框
function hide_suggest(){
 var nodes=document.body.childNodes
 for(var i=0;i<nodes.length;i++){
  if(nodes[i]!=$("keyword")){
   $("suggest").innerHTML="";
   }
  }
 }
 
//搜索框按键按下事件的动作
function keydowndeal(e){
 var keyc;
 if(window.event){
  keyc=e.keyCode;
  }
 else if(e.which){
  keyc=e.which;
  }
 if(keyc==40 || keyc==38){
 if(keyc==40){
  if(j<$$("dl").length){
   j++;
   if(j>=$$("dl").length){
    j=-1;
   }
  }
  if(j>=$$("dl").length){
    j=-1;
   }
 }
 if(keyc==38){
  if(j>=0){
   j--;
   if(j<=-1){
    j=$$("dl").length;
   }
  }
  else{
   j=$$("dl").length-1;
  }
 }
 set_style(j);
 if(j>=0 && j<$$("dl").length){
  $("keyword").value=$$("dl")[j].childNodes[0].nodeValue;
  }
 else{
  $("keyword").value=temp_str;
  }
 }
}
