﻿
var $ctag = function(tagName) {
    return document.createElement(tagName);
};
var $ajax = function createXMLHttpRequest() {
    var xmlHttp = false;
    try {
        xmlHttp = new XMLHttpRequest();
    }
    catch (trymicrosoft) {
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (othermicrosoft) {
            try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") }
            catch (failed) { }
        }
    }
    return xmlHttp;
};

var suggestDiv;// = $("search_suggest");

var keynodes;
var lastKey = "";
var selectedIndex = 0;
var showSuggest = function(inputObj, s) {
    var key = inputObj.value;
    if (key == lastKey) return false;
    else lastkey = key;
    if (/^\s*$/.test(key)) {
        jQuery(suggestDiv).hide();
        return false;
    };
    selectedIndex = -1;
        jQuery.ajax({
        url:"http://www.zjypw.com/zjypw/ajaxsuggest/search.aspx?s=" + s + "&skey=" + encodeURI(key) + "&t=" + new Date().getTime(),
        type: "post",
        cache:false,
        dataType:"xml",
        error: function(xhr){    
               //请求出错处理    
               alert("请求出错(请检查相关网络状况.)");}   ,
        success: function(msg){
                keynodes = msg.getElementsByTagName("key");
                suggestDiv.html("");
                if (keynodes.length > 0) {
                    for (var i = 0; i < keynodes.length; i++) {
                        var keyDiv = $ctag("div");
                        jQuery(keyDiv).css({width:"100%",padding:"0",margin:"2px 0 2px 0",height:"18px",lineHeight:"18px",cursor:"pointer",textIndent:"4px"});
                        jQuery(keyDiv).html(keynodes[i].getAttribute("value"));
                        jQuery(keyDiv).bind({mouseover:function(){                     
                                                selectedIndex = -1;    
                                                var divlist = suggestDiv.children("div");
                                                for (var k = 0; k < divlist.length; k++) {
                                                    divlist[k].className = "";
                                                    if (divlist[k] == this) selectedIndex = k;
                                                }
                                                jQuery(this).addClass("suggestOver");
                                            },
                                            mouseout:function(){
                                                jQuery(this).removeClass("suggestOver");
                                            },
                                            mousedown:function(){
                                                inputObj.value = jQuery(this).html();
                                                jQuery(suggestDiv).hide();
                                            }
                                            });
                        jQuery(suggestDiv).append(keyDiv);
                    }
                    jQuery(suggestDiv).show();
                
                } else {
                    jQuery(suggestDiv).hide();
                }
        }
    });
};
var changeSelect = function(isUp, inputObj) {
    if (isUp) selectedIndex++;
    else selectedIndex--;
    if (selectedIndex < 0) selectedIndex = 0;
    var divlist = suggestDiv.children("div");
    if (selectedIndex >= divlist.length)
        selectedIndex = divlist.length - 1;
    for (var i = 0; i < divlist.length; i++) {
        if (i == selectedIndex) {
            divlist[i].className = "suggestOver";
            inputObj.value = divlist[i].innerHTML.replace(/<[^>]+>/g, "");
        } else {
            divlist[i].className = "";
        }
    }
};
var suggest = function(evt, inputObj, s) {
    evt = (evt) ? evt : ((window.event) ? window.event : "") //兼容IE和Firefox获得keyBoardEvent对象
    var keyCode = window.event?evt.keyCode:evt.which;
    if (keyCode == 13) {
        if (selectedIndex != -1) {
            inputObj.value = keynodes[selectedIndex].getAttribute("value");
        }
    }
    if (keyCode == 40 || keyCode == 38) {
        var isUp = false;
        if (keyCode == 40) { isUp = true; }
        changeSelect(isUp, inputObj);
    } else {
        suggestDiv =jQuery("#"+s + "div");
        showSuggest(inputObj, s);
    }
};
var inputOnblur = function() {
    if (suggestDiv != null) {
        setTimeout('suggestDiv.style.display="none";', 100);
    } 
};


