﻿

function fsSetValue(ID, Value) {
    var Dom = document.getElementById(ID);
    if (Dom.value == "") {
        Dom.style.backgroundColor = "white";
        Dom.value = Value;
    }
}
function fsClearValue(ID, e) {
    var Dom = document.getElementById(ID);
    Dom.style.backgroundColor = "white";
    if (Dom.value == "代码/名称/拼音/别名")
        Dom.value = "";
    e = e || window.event;
    if (window.event)
        e.cancelBubble = true;
    else
        e.stopPropagation();
}
function fundSearch(instance, txtEnter, btnSearch, listSearch) {
    this.Instance = instance;
    this.enterValue = "";
    this.enterID = txtEnter;
    this.searchID = btnSearch;
    this.listID = listSearch;
    this.point = null;
    this.show_hide = "hide";
    this.focus = true;
    this.Time = true;
    this.Trs = null;
    this.Rows = null;
}
fundSearch.prototype = {
    fsFocus: function() {
        var instance = this.Instance;
        this.point = window.setInterval(instance + ".BindSearch()", 200);
        if (window.event)
            document.attachEvent("onclick", fsDocClick);

    },

    fsBlur: function() {
        window.clearInterval(this.point);
        fsSetValue(this.enterID, "代码/名称/拼音/别名");
        if (this.show_hide == "hide") {
            this.fsClear();
            if (window.event)
                document.detachEvent("onclick", fsDocClick);
        }
    },

    fsbClear: function() {
        this.fsClear();
        document.getElementById(this.enterID).value = "";
        fsSetValue(this.enterID, "代码/名称/拼音/别名");
    },

    fsClear: function() {
        document.getElementById(this.listID).style.display = "none";
        //iframe 背景层
        document.getElementById("bListKeyWord").style.display = "none";
        this.enterValue = "";
    },

    fsRedirect: function() {
        if (document.getElementById(this.enterID).title)
            window.open(document.getElementById(this.enterID).title);
    },

    fsFill: function(URL, Content) {
        var Dom = document.getElementById(this.enterID);
        Dom.value = Content;
        Dom.title = URL;
        this.fsClear();
        document.getElementById(this.searchID).focus();
    },

    fsMouseOver: function(e, i) {
        if (e != "div") {
            this.Trs[this.Rows].style.backgroundColor = "#FFF";
            this.Trs[this.Rows].style.color = "#333";
            e.style.backgroundColor = "#cedfe9";
            e.style.color = "#333";
            if (i == undefined)
                this.Rows = parseInt(e.title.split("|")[2]);
        }
        this.show_hide = "show";
    },

    fsMouseOut: function(e) {
        if (e != "div") {
            e.style.backgroundColor = "#FFF";
            e.style.color = "#333";
        }
        this.show_hide = "hide";
    },

    fsKeyUp: function(e) {
        e = e || window.event;
        if (e.keyCode == 13)    //enter
        {
            if (this.show_hide == "show" || document.getElementById(this.enterID).title == "") {
                var Title = this.Trs[this.Rows].title.split("|");
                if (Title) {
                    var Dom = document.getElementById(this.enterID);
                    Dom.value = Title[1];
                    Dom.title = Title[0];
                    document.getElementById(this.searchID).focus();
                    this.show_hide == "hide"
                    this.fsClear();
                    //this.fsRedirect();
                }
            }
            else if (this.show_hide == "hide") {
                this.fsRedirect();
            }
        }
        else if (e.keyCode == 8)     //backspace
        {
            if (document.getElementById(this.enterID).value == "") {
                this.fsClear();
            }
        }
    },

    fsKeyDown: function(e) {
        document.getElementById(this.enterID).title = "";

        e = e || window.event;
        if (e.keyCode == 38)//Up
        {
            if ((this.Rows > 0) && this.Rows) {
                var text;
                if (this.Rows - 1 > 0) {
                    text = this.Trs[this.Rows - 1].innerText || this.Trs[this.Rows - 1].textContent;
                    text = Trim(text);
                }
                else
                    return;
                if (text != "选项代码名称" && text != "选项功能拼音") {
                    this.fsMouseOver(this.Trs[this.Rows - 1], 0);
                    this.fsScroll(this.Trs[this.Rows - 1], -1, "up");
                    this.Rows -= 1;
                }
                else if (this.Rows - 2 > 0) {
                    this.fsMouseOver(this.Trs[this.Rows - 2], +2);
                    this.fsScroll(this.Trs[this.Rows - 2], -2, "up");
                    this.Rows -= 2;
                }
                this.show_hide = "hide";
            }
        }
        else if (e.keyCode == 40)//Down       
        {
            if ((this.Trs.length > this.Rows) && this.Rows) {
                var text;
                if (this.Rows + 1 < this.Trs.length) {
                    text = this.Trs[this.Rows + 1].innerText || this.Trs[this.Rows + 1].textContent;
                    text = Trim(text);
                }
                else
                    return;
                if (text != "选项代码名称" && text != "选项功能拼音") {
                    this.fsMouseOver(this.Trs[this.Rows + 1], 1);
                    this.fsScroll(this.Trs[this.Rows + 1], 1, "down");
                    this.Rows += 1;
                }
                else if (this.Trs.length > this.Rows + 2) {
                    this.fsMouseOver(this.Trs[this.Rows + 2], -2);
                    this.fsScroll(this.Trs[this.Rows + 2], 2, "down");
                    this.Rows += 2;
                }
                this.show_hide = "hide";
            }
        }
        else if ((e.keyCode == 27 || e.keyCode == 13)) {
            if (Browser.ie != 0) {
                window.event.keyCode = 0;
                window.event.returnValue = false;
            }
            else {
                e.preventDefault();
            }
        }
    },

    fsScroll: function(e, i, direction) {
        var Num;
        var Number;
        if (window.event) {
            Num = 19;
        }
        else {
            Num = 18;
        }
        Number = document.getElementById(this.listID).offsetHeight;
        var range = e.offsetTop - document.getElementById(this.listID).scrollTop;
        if (direction == "up") {
            if (range <= 0) {
                document.getElementById(this.listID).scrollTop += Num * i;
            }
        }
        else if (direction == "down") {
            if (range >= Number) {
                document.getElementById(this.listID).scrollTop += Num * i;
            }
        }
    },

    BindSearch: function() {
        var Dom = document.getElementById(this.enterID);
        if ((this.enterValue != Dom.value) && (Dom.value != "代码/名称/拼音/别名") && (Dom.value != "")) {
            var table = GetSearchData(Dom.value, this.Instance);
            if (table) {
                document.getElementById(this.listID).innerHTML = table;
                document.getElementById(this.listID).style.display = "block";

                //iframe 背景层
                document.getElementById("bListKeyWord").style.display = "block";

                this.Trs = document.getElementById(this.listID).getElementsByTagName("TR");
                this.Rows = 1;
                this.fsMouseOver(this.Trs[this.Rows], 1);
                document.getElementById(this.listID).scrollTop = 0;
                //                document.getElementById(this.enterID).title = "";//2009.8.5
                this.show_hide = "hide";

                var number;
                if (window.event)
                    number = 300;
                else
                    number = 301;
                if (document.getElementById(this.listID).scrollHeight < number) {
                    document.getElementById(this.listID).style.height = "auto";
                    //iframe 背景层
                    document.getElementById("bListKeyWord").style.height = document.getElementById(this.listID).scrollHeight;
                }
                else {
                    document.getElementById(this.listID).style.height = "300px";
                }
            }
            else {
                document.getElementById(this.listID).style.display = "none";
                //iframe 背景层
                document.getElementById("bListKeyWord").style.display = "none";
            }
            this.enterValue = Dom.value;
        }
    }
}

function GetSearchData(KeyWord, instance) {
    var Table = "";
    var fundTable = "";
    var index = IsWhat(KeyWord);
    var tr1, tr2, tr3;
//    if (index == 0) {
//        tr1 = "40%"; tr2 = "20%"; tr3 = "40%";
//    }
//    else {
//        tr1 = "30%"; tr2 = "30%"; tr3 = "40%";
//    }
    if (index == 0) {
        tr1 = "40%"; tr2 = "40%"; tr3 = "60%";
    }
    else {
        tr1 = "30%"; tr2 = "40%"; tr3 = "60%";
    }
    fundArray = fundArray_Open;
    KeyWord = KeyWord.toLowerCase();
    var Row = 1;
    var Len = fundArray.length;
    var sequeace = 1;
    for (var i = 0; i < Len; i++) {
        var URL = "/fund/index.aspx?code=" + fundArray[i][1];
        var Content = fundArray[i][0];
        var Title = URL + "|" + Content;

        if (index == 2 && (fundArray[i][index].split(",")).length > 1) {
            var sunArray = fundArray[i][index].split(",");
            for (var z = 0; z < sunArray.length; z++) {
                var sunItem = sunArray[z];
                var sunSubKW = sunItem.substr(0, KeyWord.length);
                if (sunSubKW == KeyWord && sunSubKW != -1) {
                    var select = "<span style='color:Red'>" + sunSubKW + "</span>";
                    select += sunItem.substr(KeyWord.length, sunItem.length - KeyWord.length);
                    //fundTable += "<tr title=\"" + Title + "|" + Row + "\" onclick='" + instance + ".fsFill(\"" + URL + "\",\"" + Content + "\");' onmouseover='" + instance + ".fsMouseOver(this);' onmouseout='" + instance + ".fsMouseOut(this);'><td>&nbsp;" + select + "</td>" + "<td>" + fundArray[i][1] + "</td>" + "<td>" + fundArray[i][0] + "</td></tr>";
                    fundTable += "<tr title=\"" + Title + "|" + Row + "\" onclick='" + instance + ".fsFill(\"" + URL + "\",\"" + Content + "\");' onmouseover='" + instance + ".fsMouseOver(this);' onmouseout='" + instance + ".fsMouseOut(this);'><td>" + fundArray[i][1] + "</td>" + "<td>" + fundArray[i][0] + "</td></tr>";
                    Row++;
                    break;
                }
            }
        }
        else {
            var item = fundArray[i][index];
            var subKW = item.substr(0, KeyWord.length);
            if (subKW == KeyWord && subKW != -1) {
                var select = "<span style='color:Red'>" + subKW + "</span>"
                select += item.substr(KeyWord.length, item.length - KeyWord.length);
                //fundTable += "<tr title=\"" + Title + "|" + Row + "\" onclick='" + instance + ".fsFill(\"" + URL + "\",\"" + Content + "\");' onmouseover='" + instance + ".fsMouseOver(this);' onmouseout='" + instance + ".fsMouseOut(this);'><td>&nbsp;" + select + "</td>" + "<td>" + fundArray[i][1] + "</td>" + "<td>" + fundArray[i][0] + "</td></tr>";
                fundTable += "<tr title=\"" + Title + "|" + Row + "\" onclick='" + instance + ".fsFill(\"" + URL + "\",\"" + Content + "\");' onmouseover='" + instance + ".fsMouseOver(this);' onmouseout='" + instance + ".fsMouseOut(this);'><td>" + fundArray[i][1] + "</td>" + "<td>" + fundArray[i][0] + "</td></tr>";
                Row++;
            }
        }
    }
    if (fundTable.indexOf("<td", 0) != -1) {
        //fundTable = "<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" class=\"titleCss\"><tr title=\"||" + sequeace + "\"><td width=\"" + tr1 + "\">&nbsp;选项</td><td width=\"" + tr2 + "\">代码</td><td width=\"" + tr3 + "\">名称</td></tr>" + fundTable + "</table>";
        fundTable = "<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" class=\"titleCss\"><tr title=\"||" + sequeace + "\"><td width=\"" + tr2 + "\">代码</td><td width=\"" + tr3 + "\">名称</td></tr>" + fundTable + "</table>";

    }
    else
        fundTable = "";

    if (fundTable.indexOf("<td", 0) == -1)
        return null;
    else
        return fundTable;
}

function IsWhat(value) {
    if (IsChinese(value))
        return 0;
    else if (IsNumber(value))
        return 1;
    else
        return 2;
}

function IsChinese(value) {
    value = value.charAt(0);
    var escape_v = escape(value);
    if (escape_v.length == (value.length) * 6 || value == "\r" || value == "\n")
        return true;
    else
        return false;
}

function IsNumber(value) {
    var num = parseInt(value);
    if (num == 0 || num)
        return true;
    else
        return false;
}

function Trim(value) {
    return value.replace(/^\s+|\s+$/g, "");
}

function ATrim(value) {
    return value.replace(/\s+/g, "");
}
//以下为最新添加

function fsDocClick() {
    if (fsClass.show_hide == "hide") {
        fsClass.fsClear();
        document.detachEvent("onclick", fsDocClick);
    }
}

function fsDataLoad() {
    var Dom = document.getElementById(fsClass.enterID);
    var Search = document.getElementById(fsClass.searchID);
    var Div = document.getElementById(fsClass.listID);
    if (window.detachEvent) {
        Dom.detachEvent("onclick", fsenterClick);
        Dom.detachEvent("onkeyup", fsenterKeyUp);
        Dom.detachEvent("onblur", fsenterBlur); //??
    }
    else {
        Dom.removeEventListener("click", fsenterClick, true);
        Dom.removeEventListener("keyup", fsenterKeyUp, true);
        Dom.removeEventListener("blur", fsenterBlur, true); //??
    }
    if (window.attachEvent) {
        Dom.attachEvent("onfocus", function() { fsClass.fsFocus(); });
        Dom.attachEvent("onblur", function() { fsClass.fsBlur(); }); //??
        Dom.attachEvent("onkeydown", function(e) { fsClass.fsKeyDown(e); });
        Dom.attachEvent("onkeyup", function(e) { fsClass.fsKeyUp(e); });
        Dom.attachEvent("onclick", function(e) { fsClearValue(fsClass.enterID, e); });

        Search.attachEvent("onclick", function() { fsClass.fsRedirect(); });
        Div.attachEvent("onmouseover", function() { fsClass.fsMouseOver("div"); });
        Div.attachEvent("onmouseout", function() { fsClass.fsMouseOut("div"); });
    }
    else {
        Dom.addEventListener("focus", function() { fsClass.fsFocus(); }, true);
        Dom.addEventListener("blur", function() { fsClass.fsBlur(); }, true); //??
        Dom.addEventListener("keydown", function(e) { fsClass.fsKeyDown(e); }, true);
        Dom.addEventListener("keyup", function(e) { fsClass.fsKeyUp(e); }, true);
        Dom.addEventListener("click", function(e) { fsClearValue(fsClass.enterID, e); }, false);
        Search.addEventListener("click", function() { fsClass.fsRedirect(); }, true);
        Div.addEventListener("mouseover", function() { fsClass.fsMouseOver("div"); }, true);
        Div.addEventListener("mouseout", function() { fsClass.fsMouseOut("div"); }, true);
    }
    fsClass.fsFocus();
}
function fsenterClick() {
    document.getElementById(fsClass.enterID).value = "";
    document.getElementById(fsClass.enterID).style.backgroundColor = "#FFF";
}
function fsenterBlur() {
    document.getElementById(fsClass.enterID).value = "代码/名称/拼音/别名";
    document.getElementById(fsClass.enterID).style.backgroundColor = "#FFFFCC";
}
function fsenterKeyUp() {
    if (document.getElementById(fsClass.enterID).value != "") {
        fsLoad();
        fsDataLoad();
    }
}

function fsenterKeyDown(e) {
    e = e || window.event;
    //仅在IE下有用,屏蔽ESC和Enter键
    if ((e.keyCode == 27 || e.keyCode == 13) && e.srcElement) {
        e.keyCode = 0;
        e.returnValue = false;
    }
    else if (e.keyCode == 13 && e.target) {//仅在FF下有用,屏蔽ESC和Enter键
        e.stopPropagation();
        return false;
    }
}

function fsLoad() {
    //document.getElementById(fsClass.listID).innerHTML = "<table border='0' width='100%' cellpadding='0' cellspacing='0' class=\"titleCss\"><tr><td width='30%'>&nbsp;选项</td><td width='30%'>代码</td><td width='40%'>名称</td></tr><tr><td><img alt='' src='http://fund.fund123.cn/images/loading.gif'/></td><td colspan='2'>数据加载中</td></tr></table>";
    document.getElementById(fsClass.listID).innerHTML = "<table border='0' width='100%' cellpadding='0' cellspacing='0' class=\"titleCss\"><tr><td width='40%'>代码</td><td width='60%'>名称</td></tr><tr><td><img alt='' src='http://fund.fund123.cn/images/loading.gif'/></td><td colspan='2'>数据加载中</td></tr></table>";
    document.getElementById(fsClass.listID).style.display = "block";
    document.getElementById(fsClass.listID).style.height = "auto";
}
//Execute                
var fsClass = new fundSearch("fsClass", "sKeyWord", "sbtnSearch", "sListKeyWord");
var fsEnter = document.getElementById(fsClass.enterID);
try {
    if (fsEnter) {
        if (window.attachEvent) {
            fsEnter.attachEvent("onclick", fsenterClick);
            fsEnter.attachEvent("onkeyup", fsenterKeyUp);
            fsEnter.attachEvent("onblur", fsenterBlur);
        }
        else {
            fsEnter.addEventListener("click", fsenterClick, true);
            fsEnter.addEventListener("keyup", fsenterKeyUp, true);
            fsEnter.addEventListener("blur", fsenterBlur, true);
        }
    }
}
catch (e) {
}

