/*=========================================================================
 * Intro       可接收返回值的多级联动下拉列表函数
 * FileName    ChangeSelect.js
 * Author      yongfa365
 * Version     v1.0
 * WEB         http://www.yongfa365.com
 * Email       yongfa365[at]qq.com
 * MadeTime    2007-11-13 17:09:46
 * LastModify  2007-11-13 17:09:46
 *==========================================================================*/


/*
数组数据源可以接受两种：
1.["CategoryName","ParentCategoryName"]  即：["当前名称","父级名称"]
2.['CategoryName','ParentId','NowId']    即：["当前名称","父级ID","当前ID"]
上面说的父级，如果本身就是最上一级，那么父级就写成0或"0"
调用方法：
网页各级联（联动）下拉列表必须含有两个属性：id,onchange.
最后一个下拉列表onchange=""(空，但必须写上)。
函数调用方法：ChangeSelect(上一级的值,下一级Select控件的ID值,下一级Select控件要选中的值(即value而非text),数据源数组名,"默认为空时显示的名称比如：请选择省，如果您没写这个参数会显示：请选择")，
举例：
第一级<select id="province"  onchange="ChangeSelect(this.value,'city','',ArrCity3)" ></select>
第二级<select id="city" onchange="ChangeSelect(this.value,'area','',ArrCity3)" ></select>
第三级<select id="area" onchange="" ></select>
设置网页加载完后运行一次，可以设置默认值，默认状态下第一个参数是0
<SCRIPT language=JavaScript>ChangeSelect('0','province','110000',ArrCity3) </SCRIPT>


*/
function ChangeSelect(ParentValue, NextId, NextSelectedValue, ArrObj,DefaultStr)
{
    StrObj = eval(document.getElementById(NextId));
    StrObj.length = 0;
    //判断它是二级数据源，还是三级
    if (ArrObj.length > 0)
    {
        if (ArrObj[0].length == 2)
        {ArrNum = 0;}
        else
        {ArrNum = 2;}
    }
    //显示所有列表
    for (i = 0; i < ArrObj.length; i++)
    {
        if (i == 0)
        {
        	if (DefaultStr == undefined ) DefaultStr="==请选择==";
            StrObj.options[StrObj.length] = new Option(DefaultStr, "");
        }
        if (ArrObj[i][1] == ParentValue)
        {
            StrObj.options[StrObj.length] = new Option(ArrObj[i][0],ArrObj[i][ArrNum]);
        }
    }
    //选中列表内某一项
    for (i = 0; i < StrObj.length; i++)
    {
        if (StrObj.options[i].value == NextSelectedValue)
        {
            StrObj.options[i].selected = true;
        }
    }
    //激发下一级的onchange事件以实现多级级联
    StrObj.onchange();
}
