﻿
var $ =function(idName) {
    return document.getElementById(idName);
};

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 xmlHttp = $ajax();
    var key = inputObj.value;
    if (key == lastKey) return false;
    else lastkey = key;
    if (/^\s*$/.test(key)) {
        suggestDiv.style.display = "none";
        return false;
    };
    selectedIndex = -1;
    xmlHttp.open("get", "http://www.zjypw.com/ajaxsuggest/search.aspx?s=" + s + "&skey=" + encodeURI(key) + "&t=" + new Date().getTime(), true);
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
            var xmldoc = xmlHttp.responseXML;
            keynodes = xmldoc.getElementsByTagName("key");

            if (keynodes.length > 0) {
                suggestDiv.innerHTML = "";
                for (var i = 0; i < keynodes.length; i++) {
                    var keyDiv = $ctag("div");
                    keyDiv.style.width = "100%";
                    keyDiv.style.padding = "0";
                    keyDiv.style.margin = "2px 0 2px 0";
                    keyDiv.style.height = "18px";
                    keyDiv.style.lineHeight = "18px";
                    keyDiv.style.cursor = "hand"; //"default";
                    keyDiv.style.textIndent = "4px";

                    keyDiv.innerHTML = keynodes[i].getAttribute("value");

                    keyDiv.onmouseover = function() {
                        selectedIndex = -1;
                        divlist = suggestDiv.getElementsByTagName("div");
                        for (var k = 0; k < divlist.length; k++) {
                            divlist[k].className = "";
                            if (divlist[k] == this) selectedIndex = k;
                        }
                        this.className = "suggestOver";
                    };

                    keyDiv.onmouseout = function() {
                        this.className = "";
                    };

                    keyDiv.onmousedown = function() {
                    inputObj.value = this.innerHTML;
                        //这里写执行搜索的代码
                        //alert(inputObj.value);
                    };
                    suggestDiv.appendChild(keyDiv);
                };

                suggestDiv.style.display = "block";
            } else {
                suggestDiv.style.display = "none";
            }
        }
    };
    xmlHttp.send(null);
};
var changeSelect = function(isUp, inputObj) {
    if (isUp) selectedIndex++;
    else selectedIndex--;
    if (selectedIndex < 0) selectedIndex = 0;
    var divlist = suggestDiv.getElementsByTagName("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(event, inputObj, s) {
    event = event ? event : (window.event ? window.event : null);
    var keyCode = event.keyCode;

    if (keyCode == 13) {
        if (selectedIndex != -1) {
            inputObj.value = keynodes[selectedIndex].getAttribute("value");
        }
        //这里写执行搜索
        //alert(document.getElementById("tbxsearch").value);
//        for(i=0;i<keynodes.length;i++)
//        { 
//            for(j=0;j<keynodes[i].length;j++)
//            {
//                if(keynodes[j].substr(i, inputObj.value.length).toUpperCase()==inputObj.value.toUpperCase())
//                {
//                    inputObj.value = keynodes[selectedIndex].getAttribute("value");
//                }
//            }
//        }
    }

    if (keyCode == 40 || keyCode == 38) {
        var isUp = false;
        if (keyCode == 40) { isUp = true; }
        changeSelect(isUp, inputObj);
    } else {
        suggestDiv = $(s + "div");
        showSuggest(inputObj, s);
    }


};
var inputOnblur = function() {
    if (suggestDiv != null) {
        setTimeout('suggestDiv.style.display="none";', 100);
    } 
};

