﻿$(document).ready(function() {

//加onkeyp事件，IE和firefox浏览器兼容的写法：--------------
if(document.addEventListener){
        document.addEventListener("keyup",kuhandler, false);
}else{
        document.attachEvent("onkeyup",kuhandler);
  }

//鼠标焦点时显示提示层
//$("#search_box").focus(function() {
//  sug($("#search_box").attr("value"),"wide");
//});

//失去焦点时隐藏提示层
//$("#search_box").blur(function() {
//  sugHidden();
//}); 


$(document).click(
 function(event){
  if(event.target.id!="gac_m" && event.target.id!="search_box") //这样会弹出你单击的元素的id,你可以在这里写你的程序了
    sugHidden();
  
});


});  

//增加鼠标效果
function MouseEffect(){
    $(".gac_m ul li").each(function() {
      if($(this).attr("id")!=menuFocusIndex){
          $(this).mouseover(function() {
            $(this).css({"background-color":"#ffbe8a","cursor":"pointer"});
          });
          $(this).mouseout(function() {
            $(this).css({"background-color":"#fff"});
          });
          $(this).click(function() {
            $("#search_box").val($(this).text());
            $("#formtoptravel").submit();
          });
      }
      else{
          $(this).css({"background-color":"#ffbe8a"});
      }
    });
}
 
//处理keyup事件，注意上下键的处理来选择结果，回车键的处理
//注意特殊按键等不触发智能搜索提示---------------------------------
function kuhandler(event){
    if($("#search_box").attr("value")=='') sugHidden();
    if(event.keyCode==27) sugHidden();  //Escape Escape
    else if(event.keyCode==40)  //Down
    {
         if(menuFocusIndex >= $(".gac_m ul li").length)
             menuFocusIndex=-1;
             
         menuFocusIndex+=1;    
          
          //当前聚焦大于提示层总个数时触发   
         if(menuFocusIndex==0){
            $("#search_box").val($("#initValue").attr("value"));
         }
          
         forceMenuItem( menuFocusIndex, "#search_box");
               
         if(menuFocusIndex>0)   
              givNumber(menuFocusIndex, "#search_box");   
        
    }else if(event.keyCode==38)  //Up
    {  
         menuFocusIndex-=1; 
         
         //Up跳出提示层时搜索框初始用户输入值
         if(menuFocusIndex==0){
            $("#search_box").val($("#initValue").attr("value"));
         }
         
         //用户刚开始即按Up键是光棒跳到提示层最后一项
         if(menuFocusIndex<0){
            menuFocusIndex=$(".gac_m ul li").length;
         }
         
         forceMenuItem(menuFocusIndex, "#search_box");
         if(menuFocusIndex>0){
             givNumber(menuFocusIndex,"#search_box");
         }    
           
        
    } 
    else if(event.keyCode==8){  //BackSpace
      sug($("#search_box").attr("value"),"wide");  
    }
    else if(!event.ctrlKey && (event.keyCode == 32 || (event.keyCode>=48 && event.keyCode<=57) || (event.keyCode>=65 && event.keyCode<=90))) {
          $("#initValue").val($("#search_box").attr("value"));
          sug($("#search_box").attr("value"),"wide");
    }
}
//从服务器端webservice取得智能搜索提示结果并显示--------------------------------
//getPosition函数取得相对位置，结果框能粘牢搜索框-----------------------
function sug(k, wide) {
    if ($.trim(k).length<= 1) return;
    $.get("/Search/SearchHandler.ashx", { f: k, type:$("#siteName_travel").val() }, function(result) {
        if (result.length > 0) {
            sugHidden();
            sugShow(result);
            MouseEffect();
            //alert(result);
            var txt = document.getElementById('search_box');
            var left_new = getPosition(txt)[1];
            var top_new = getPosition(txt)[0];
            $(".gac_m").css({ left: left_new + "px", top: (top_new + txt.clientHeight + 2) + "px" });
            menuFocusIndex = 0;
        } else { sugHidden(); }
   });
 }
//getPosition函数取得相对位置，结果框能粘牢搜索框-----------------------
 function getPosition( obj )
{ 
    var top = 0,left = 0;
    do{
      top += obj.offsetTop;
      left += obj.offsetLeft;
    }
    while ( obj = obj.offsetParent );     

    var arr = new Array();     
    arr[0] = top;
    arr[1] = left;      
    return arr;   
}
var menuFocusIndex=0;
//键盘上下键选择结果的效果，鼠标经过结果的效果-----------------------
function forceMenuItem(index, id)
{
      $(".gac_m li").each(function() {         if($(this).attr("id")=="menuItem"+index)             $(this).css({"background-color":"#ffbe8a"});
         else             $(this).css({"background-color":"#fff"});
      })
      $(id).focus();
}
//鼠标经过结果的效果-----------------------
function MouseOver(Tr){
  $("#"+Tr.id).css("background-color","#D2EAEC");
  $("#search_box").val($("#"+Tr.id+" a").text());
  $("#rjbtn").attr("role", $("#"+Tr.id+" a").attr("href"));
  $("#search_box").focus(); 
}
function MouseOut(Tr){ $("#"+Tr.id).css("background-color","#fff");}
//选中结果的效果-----------------------
function givNumber(index, id)
{
    if(index <= 0) return;
    var t = document.getElementById("menuItem"+index);
    if(t){
    $("#search_box").val($("#menuItem"+index+" a").text());
     $(id).focus(); 
    }
}

function sugShow(result){
  $(".gac_m").html(result);
  $(".gac_m").css({"display":""});
 
}

function sugHidden(){
  $(".gac_m").html("");
  $(".gac_m").css({"display":"none"});
}
