﻿//================================
//supnumb
//2007-3-8
//过时的；
//请使用 smart_key.js
//================================
var _allCodes;

function Z()
{}

//得到指定控件的位置宽
function getLeft(ob)
{
    var s_el=0;el=ob;
    while(el)
    {
        s_el=s_el+el.offsetLeft;
        el=el.offsetParent;
    }; 
    return s_el
}

//得到指定控件的位置高
function getTop(ob)
{
    var s_el=0;el=ob;
    while(el)
    {
        s_el=s_el+el.offsetTop;
        el=el.offsetParent;
    };
     return s_el
    }

//正则表达式验证数字
function IsNumber(s)
{ 
    var patrn=/^[0-9]+$/; 
    
    if (patrn.exec(s)) 
        return true 
    return false
}

//是否是中文
function IsGBCharacter(s)
{
    var patrn=/[^\u4E00-\u9FA5]/; 
    
    if (patrn.exec(s)) 
        return  false;
    return true;

}

GetCodes=function(url)
{
    var http = new ActiveXObject("Microsoft.XMLHTTP");

    if(http!=null)
    {
        http.onreadystatechange=function(fund)
        {
             if (http.readyState == 4)
		    {
                if (http.status == 200 && http.responseText)
			    {
			        //处理返回数据
			       // alert(http.responseText);
			        DoCodesItem(http.responseText);
			    }
		    }
        };
	    http.open("GET",url , true);
        http.send(null);
    }
}

function DoCodesItem(codes)
{
    _allCodes=codes.split('!');
}

//通过上下箭头选择代码
function MoveUpDown()
{
    var o=_gO("keyList");
    o.focus();
    o.options[0].selected=true;;
}

//隐藏选择框
function hideDiv()
{
    var oDiv=_gO("key_div");
    oDiv.style.display="none";
}

function showDiv()
{
    var oDiv=_gO("key_div");
    oDiv.style.top=getTop(Z.inputCtr)+23;
    oDiv.style.left=getLeft(Z.inputCtr);
    oDiv.style.display="block";
}

//在列表选择当前项
function Selected()
{
    var o=_gO("keyList");
    var o2=Z.inputCtr;
    
    var sArr=o.options[o.selectedIndex].text.split('-');
    o2.value=sArr[0];
    //给隐藏控件赋值
    setHideValue(o.options[o.selectedIndex].value);
    
    hideDiv();
    o2.focus();
}

function setHideValue(v)
{
    //Z.inputCtr.title=v;
    if(v.indexOf('-')>-1)
    {
        var vArr=v.split('-');
        
        if(Z.isHideMessage!="True")
        {
            Z.messageCtr.innerHTML="&nbsp;&nbsp;<strong>基金代码：</strong>"+vArr[4]+"&nbsp;<strong>基金公司：</strong>"+vArr[3]+"&nbsp;<strong>设立日期：</strong>"+vArr[2];
        }
    }

    Z.hideValue.value=v;

}

//列表框中的当前项
function onKeyDownForkeyList()
{
    //如果是回车就选择列表里的当前项;
    var keyCode=event.keyCode;
    if(keyCode==13)
    {
        Selected();
    }
}

//按键精灵筛选程序
function onKeyUp()
{
    var keyCode=event.keyCode;
    //处理回车
    if(keyCode==13)
        return;
    
    //处理上下箭关
    //如果是上下箭头就移动选择列表里的项;
    if(keyCode==40||keyCode==38)
    {
        MoveUpDown();
        return false;
    }

    //处理非数字和字符
    if((keyCode<48||keyCode>105)&&keyCode!=8&&keyCode!=32)
        return;
        
    if(keyCode==8&&Z.inputCtr.value=="")
    {
        hideDiv();
        return;
    }

    //显示列表区
    showDiv()

    var sub0=Z.inputCtr.value;
    
    //给隐藏控件赋值
    setHideValue(sub0);
    
    var cArr;
    
    if(IsGBCharacter(sub0))
    {
        cArr=SelectCodesforGB(sub0);
    }
    else if(IsNumber(sub0))
    {
        cArr=SelectCodesforCode(sub0);
    }
    else
    {
        cArr=SelectCodesforJC(sub0);
    }

    InitkeyList(cArr);
}

//根据中文简称筛选
function SelectCodesforGB(sub0)
{
    var len=_allCodes.length;
    var sLen=sub0.length;
    var subArr=new Array();
    
        var i=0;
    for(j=0;j<len;j++)
    {
        //代码|交易所代码|简称|拼音简称
        var iArr=_allCodes[j].split('|');
         
        if(iArr[2].indexOf(sub0)>-1)
        {
            subArr[i]=_allCodes[j];
            i++;
        }
        
        }
    return subArr;
}


//根据拼音简称(字符来筛选)
function SelectCodesforJC(sub0)
{
    var len=_allCodes.length;
    var sLen=sub0.length;
    var subArr=new Array();
    
    if(sLen>6)
        return subArr;
    
    var i=0;
    for(j=0;j<len;j++)
    {
        //代码|交易所代码|简称|拼音简称
        var iArr=_allCodes[j].split('|');

        iArr[3]=iArr[3].toUpperCase();
        sub0=sub0.toUpperCase();
        
        if(iArr[3].indexOf(sub0)>-1)
        {
            subArr[i]=_allCodes[j];
            i++;
        }        
    }
    return subArr;
}

//根据代码(数字来筛选)
function SelectCodesforCode(sub0)
{
    var len=_allCodes.length;
    var sLen=sub0.length;
    var subArr=new Array();
    
    if(sLen>6)
        return subArr;
    
    var i=0;
    
    for(j=0;j<len;j++)
    {
        //代码|交易所代码|简称|拼音简称
        var iArr=_allCodes[j].split('|');

        if(iArr[1].substring(0,sLen)==sub0)
        {
            subArr[i]=_allCodes[j];
            i++;
        }
    }
    
    return subArr;
}

//刷新选择框
function InitkeyList(codes)
{
    var o=_gO("keyList");

    var l=o.options.length;
    
    while(l--)
    {
    o.options[l]=null;
    }

    //代码|交易所代码|简称|拼音简称
    for(j=0;j<codes.length;j++)
    {
        var iArr=codes[j].split('|');
        var no=new Option;
        
        no.text=iArr[2]+"-"+iArr[3]+"-"+iArr[1];
        //no.value=iArr[0];
        if(Z.isHideMessage!="True")
        {
            no.value=iArr[0]+"-"+iArr[2]+"-"+iArr[4]+"-"+iArr[5]+"-"+iArr[1]+"-"+iArr[6]+"-"+iArr[7]+"-"+iArr[8];
        }
        else
        {
            no.value=iArr[0];
        }
        o.add(no);
    }
}
