<!--  Place Associate List script written entirely in JavaScript  -->
<!--  Written by WenWei, 2001-2004. E-mail: wenwei(AT)blueidea.com  -->
// 地区选项列表
var ALOptions = new Array()

// 城市选项列表
var CLOptions = new Array()

GeneratePlaceList()

// 生成地区和城市选项列表
function GeneratePlaceList()
{
    var ii = 0
    var jj = 0
	
	
    ALOptions[ii++] = "山东-|济南"   
    ALOptions[ii++] = "山东-|青岛"
    ALOptions[ii++] = "山东-|淄博"
    ALOptions[ii++] = "山东-|枣庄"
    ALOptions[ii++] = "山东-|东营"
    ALOptions[ii++] = "山东-|烟台"
    ALOptions[ii++] = "山东-|潍坊"
    ALOptions[ii++] = "山东-|济宁"
    ALOptions[ii++] = "山东-|泰安"
    ALOptions[ii++] = "山东-|威海"
    ALOptions[ii++] = "山东-|日照"
    ALOptions[ii++] = "山东-|莱芜"
    ALOptions[ii++] = "山东-|临沂"
	ALOptions[ii++] = "山东-|德州"
    ALOptions[ii++] = "山东-|聊城"
    ALOptions[ii++] = "山东-|滨州"
    ALOptions[ii++] = "山东-|荷泽"
    ALOptions[ii++] = "山东-|其他"
    
    
    ii = 0

   
    jj = 0
    // ii = 3
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-济南|济南市"
    CLOptions[ii][jj++] = "山东-济南|济阳县"
    CLOptions[ii][jj++] = "山东-济南|平阴县"
    CLOptions[ii][jj++] = "山东-济南|商河县"
    CLOptions[ii][jj++] = "山东-济南|章丘市"
    CLOptions[ii++][jj++] = "山东-济南|└-其他"
    
    
	   jj = 0
    // ii = 11
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "青岛|--青岛市"
    CLOptions[ii][jj++] = "青岛|--胶南市"
    CLOptions[ii][jj++] = "青岛|--胶州市"
    CLOptions[ii][jj++] = "青岛|--莱西市"
    CLOptions[ii][jj++] = "青岛|--平度市"
	CLOptions[ii][jj++] = "青岛|--即墨市"
     CLOptions[ii++][jj++] = "青岛|└-其他"
    jj = 0
    // ii = 12
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-淄博|├-张店区"
    CLOptions[ii][jj++] = "山东-淄博|├-周村区"
    CLOptions[ii][jj++] = "山东-淄博|├-淄川区"
    CLOptions[ii][jj++] = "山东-淄博|├-临淄区"
    CLOptions[ii][jj++] = "山东-淄博|├-博山区"
    CLOptions[ii][jj++] = "山东-淄博|├-桓台县"
    CLOptions[ii][jj++] = "山东-淄博|├-高青县"
    CLOptions[ii][jj++] = "山东-淄博|├-沂源县"
    CLOptions[ii++][jj++] = "山东-淄博|└-其他"
    
    jj = 0
    // ii = 13
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-枣庄|├-枣庄"
    CLOptions[ii][jj++] = "山东-枣庄|├-滕州"
    CLOptions[ii++][jj++] = "山东-枣庄|└-其他"
    
    jj = 0
    // ii = 14
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-东营|├-东营"
    CLOptions[ii][jj++] = "山东-东营|├-广饶县"
    CLOptions[ii][jj++] = "山东-东营|├-垦利县"
    CLOptions[ii][jj++] = "山东-东营|├-利津县"
    CLOptions[ii++][jj++] = "山东-东营|└-其他"
    
    jj = 0
    // ii = 15

    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-烟台|├-长岛县"
    CLOptions[ii][jj++] = "山东-烟台|├-海阳市"
    CLOptions[ii][jj++] = "山东-烟台|├-莱阳市"
    CLOptions[ii][jj++] = "山东-烟台|├-莱州市"
    CLOptions[ii][jj++] = "山东-烟台|├-龙口市"
    CLOptions[ii][jj++] = "山东-烟台|├-蓬莱市"
    CLOptions[ii][jj++] = "山东-烟台|├-栖霞市"
    CLOptions[ii][jj++] = "山东-烟台|├-安庆市"
    CLOptions[ii][jj++] = "山东-烟台|├-烟台市"
    CLOptions[ii][jj++] = "山东-烟台|├-招远市"
    CLOptions[ii++][jj++] = "山东-烟台|└-其他"

    jj = 0
    // ii = 16
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-潍坊|├-安丘市"
    CLOptions[ii][jj++] = "山东-潍坊|├-昌乐县"
    CLOptions[ii][jj++] = "山东-潍坊|├-昌邑市"
    CLOptions[ii][jj++] = "山东-潍坊|├-高密市"
    CLOptions[ii][jj++] = "山东-潍坊|├-临朐县"
    CLOptions[ii][jj++] = "山东-潍坊|├-青州市"
    CLOptions[ii][jj++] = "山东-潍坊|├-寿光市"
    CLOptions[ii][jj++] = "山东-潍坊|├-潍坊市"
    CLOptions[ii][jj++] = "山东-潍坊|├-诸城市"
    CLOptions[ii++][jj++] = "山东-潍坊|└-其他"
    
    jj = 0
    // ii = 17
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-济宁|├-济宁市"
    CLOptions[ii][jj++] = "山东-济宁|├-嘉祥县"
    CLOptions[ii][jj++] = "山东-济宁|├-金乡县"
    CLOptions[ii][jj++] = "山东-济宁|├-梁山县"
    CLOptions[ii][jj++] = "山东-济宁|├-曲阜市"
    CLOptions[ii][jj++] = "山东-济宁|├-微山县"
    CLOptions[ii][jj++] = "山东-济宁|├-鱼台县"
    CLOptions[ii][jj++] = "山东-济宁|├-邹城市"
    CLOptions[ii][jj++] = "山东-济宁|├-兖州市"
    CLOptions[ii][jj++] = "山东-济宁|├-汶上县"
    CLOptions[ii++][jj++] = "山东-济宁|└-其他"
    
    jj = 0
    // ii = 18
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-泰安|├-东平县"
    CLOptions[ii][jj++] = "山东-泰安|├-肥城市"
    CLOptions[ii][jj++] = "山东-泰安|├-宁阳县"
    CLOptions[ii][jj++] = "山东-泰安|├-泰安市"
    CLOptions[ii][jj++] = "山东-泰安|├-新泰市"
    CLOptions[ii++][jj++] = "山东-泰安|└-其他"
    
    jj = 0
    // ii = 19
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-威海|├-荣成市"
    CLOptions[ii][jj++] = "山东-威海|├-威海市"
    CLOptions[ii][jj++] = "山东-威海|├-乳山市"
    CLOptions[ii][jj++] = "山东-威海|├-文登市"
    CLOptions[ii++][jj++] = "山东-威海|└-其他"
    
    jj = 0
    // ii = 20
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-日照|├-日照市"
    CLOptions[ii][jj++] = "山东-日照|├-五莲县"
    CLOptions[ii][jj++] = "山东-日照|├-莒县"
    CLOptions[ii++][jj++] = "山东-日照|└-其他"
    
    jj = 0
    // ii = 21
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-莱芜|├-莱芜"
    CLOptions[ii][jj++] = "山东-莱芜|├-莱芜市"
    CLOptions[ii++][jj++] = "山东-莱芜|└-其他"
  
    jj = 0
    // ii = 22
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-临沂|├-苍山县"
    CLOptions[ii][jj++] = "山东-临沂|├-费县"
    CLOptions[ii][jj++] = "山东-临沂|├-临沂市"
    CLOptions[ii][jj++] = "山东-临沂|├-临沭县"
    CLOptions[ii][jj++] = "山东-临沂|├-蒙阴县"
    CLOptions[ii][jj++] = "山东-临沂|├-平邑县"
    CLOptions[ii][jj++] = "山东-临沂|├-沂南县"
    CLOptions[ii][jj++] = "山东-临沂|├-沂水县"
    CLOptions[ii][jj++] = "山东-临沂|├-郯城县"
    CLOptions[ii][jj++] = "山东-临沂|├-莒南县"
    CLOptions[ii++][jj++] = "山东-临沂|└-其他"
    
    jj = 0
    // ii = 23
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-德州|├-德州"
    CLOptions[ii][jj++] = "山东-德州|├-德州市"
    CLOptions[ii][jj++] = "山东-德州|├-乐陵市"
    CLOptions[ii][jj++] = "山东-德州|├-临邑县"
    CLOptions[ii][jj++] = "山东-德州|├-陵县"
    CLOptions[ii][jj++] = "山东-德州|├-平原县"
    CLOptions[ii][jj++] = "山东-德州|├-齐河县"
    CLOptions[ii][jj++] = "山东-德州|├-庆云县"
    CLOptions[ii][jj++] = "山东-德州|├-武城县"
    CLOptions[ii][jj++] = "山东-德州|├-夏津县"
    CLOptions[ii++][jj++] = "山东-德州|└-其他"
    
    jj = 0
    // ii = 24
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-聊城|├-东阿县"
    CLOptions[ii][jj++] = "山东-聊城|├-聊城市"
    CLOptions[ii][jj++] = "山东-聊城|├-冠县"
    CLOptions[ii][jj++] = "山东-聊城|├-高唐县"
    CLOptions[ii][jj++] = "山东-聊城|├-临清市"
    CLOptions[ii][jj++] = "山东-聊城|├-阳谷县"
    CLOptions[ii][jj++] = "山东-聊城|├-茌平县"
    CLOptions[ii][jj++] = "山东-聊城|├-莘县"
    CLOptions[ii++][jj++] = "山东-聊城|└-其他"
    
    jj = 0
    // ii = 25
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-滨州|├-滨州市"
    CLOptions[ii][jj++] = "山东-滨州|├-博兴县"
    CLOptions[ii][jj++] = "山东-滨州|├-惠民县"
    CLOptions[ii][jj++] = "山东-滨州|├-无棣县"
    CLOptions[ii][jj++] = "山东-滨州|├-阳信县"
    CLOptions[ii][jj++] = "山东-滨州|├-沾化县"
    CLOptions[ii][jj++] = "山东-滨州|├-邹平县"
    CLOptions[ii++][jj++] = "山东-滨州|└-其他"
    
    jj = 0
    // ii = 26
    CLOptions[ii] = new Array()
    CLOptions[ii][jj++] = "山东-菏泽|├-曹县"
    CLOptions[ii][jj++] = "山东-菏泽|├-成武县"
    CLOptions[ii][jj++] = "山东-菏泽|├-单县"
    CLOptions[ii][jj++] = "山东-菏泽|├-定陶县"
    CLOptions[ii][jj++] = "山东-菏泽|├-东明县"
    CLOptions[ii][jj++] = "山东-菏泽|├-菏泽市"
    CLOptions[ii][jj++] = "山东-菏泽|├-巨野县"
    CLOptions[ii][jj++] = "山东-菏泽|├-郓城县"
    CLOptions[ii][jj++] = "山东-菏泽|├-鄄城县"
    CLOptions[ii++][jj++] = "山东-菏泽|└-其他"
    
   


}

// Place Associate List Object
function PlaceAssociateList(instance, parent, child, optionList)
{
    this.parent          = parent;              // 父选择框
    this.child           = child;               // 子选择框

    this.instance        = instance;            // 与对象关联的选择框实例

    this.optionList      = optionList;          // 选择框选项列表
    this.initValue       = null;                // 选择框初始值
    
    this.addedOptions    = null;                // 附加选项

    this.incPValue       = false;               // 包含父值
    this.incPValueFormat = "%PText%";           // 包含父值的选项的文本格式

    this.allowEmpty      = false;               // 允许空选项列表

    this.init            = InitPlaceSelector;   // 初始化方法
    this.SetSelectedValue = SetSelectedValue;          // 设置选中值方法

    this.instance.associateObject = this;       // 关联对象与选择框
}

// 选择列表初始化方法
function InitPlaceSelector()
{
    if( this.instance )                                         // 实例存在
    {
        var i, aIndex, aLength, aValueText;
        if( this.child || this.parent == null )                 // 子选择框存在, 则实例为父选择框;
        {
            this.instance.length = 0;                           // 清空实例
            if( this.addedOptions != null )                     // 附加选项
            {
                for( i = 0; i<this.addedOptions.length; i++ )
                {
                    aValueText = this.addedOptions[i].split("|");
                    if( aValueText.length > 0 )                 // 添加选项
                    {
                        this.instance.options[this.instance.length] = new Option(aValueText[1], aValueText[0]);
                        if( aValueText[0] == this.initValue )   // 选中初始值
                            this.instance.options[this.instance.length-1].selected = true;
                    }
                }
            }
            for( i = 0; i<this.optionList.length; i++ )
            {
                aValueText = this.optionList[i].split("|");
                if( aValueText.length > 0 )                     // 添加选项
                {
                    this.instance.options[this.instance.length] = new Option(aValueText[1], aValueText[0]);
                    if( aValueText[0] == this.initValue )       // 选中初始值
                        this.instance.options[this.instance.length-1].selected = true;
                }
            }
            if( this.child ) this.instance.onchange = areaChanged
        }
        else if( this.parent )                                  // 父选择框存在, 则实例为子选择框
        {
            this.parent.onchange();
        }
    }
}

// 父选择列表值改变事件方法
function areaChanged()
{
    if( this.associateObject )
    {
        var i, aLength, aObject, aChildObject, aIndex, aValueText;
        var aParentValue, aParentText;

        aObject = this.associateObject;
        aChildObject = aObject.child.associateObject;
        aParentValue = this.options[this.selectedIndex].value;
        aParentText  = this.options[this.selectedIndex].text;
        aLength = 0;

        aObject.child.length = 0;                               // 清空实例

        if( aObject.addedOptions )                              // 父选择框附加选项数
            aLength = aObject.addedOptions.length;

        if( this.selectedIndex >= aLength )                     // 父选择框选中项不在附加选项中
        {
            aIndex = this.selectedIndex - aLength;
            if( aChildObject.incPValue )                            // 包含父值
            {
                aObject.child.options[aObject.child.length] = new Option(
                    aChildObject.incPValueFormat.replace("%PText%", this.options[this.selectedIndex].text),
                    aParentValue);
                if( aParentValue == aChildObject.initValue )       // 选中初始值
                    aObject.child.options[aObject.child.length-1].selected = true;
            }

            for( i=0; i<aChildObject.optionList[aIndex].length; i++ )
            {
                aValueText = aChildObject.optionList[aIndex][i].split("|");
                if( aValueText.length > 0 && aValueText[0] != aParentValue)       // 添加选项
                {
                    aObject.child.options[aObject.child.length] = new Option(aValueText[1], aValueText[0]);
                    if( aValueText[0] == aChildObject.initValue )       // 选中初始值
                        aObject.child.options[aObject.child.length-1].selected = true;
                }
            }
            if( !aChildObject.allowEmpty && aObject.child.length == 0)
            {
                aObject.child.options[aObject.child.length] = new Option(aParentText, aParentValue);
            }
        }
        else
        {
            if( aChildObject.addedOptions != null )                  // 附加选项
            {
                for( i = 0;i<aChildObject.addedOptions.length; i++ )
                {
                    aValueText = aChildObject.addedOptions[i].split("|");
                    if( aValueText.length > 0 )                 // 添加选项
                    {
                        aObject.child.options[aObject.child.length] = new Option(aValueText[1], aValueText[0]);
                        if( aValueText[0] == aChildObject.initValue )   // 选中初始值
                            aObject.child.options[aObject.child.length-1].selected = true;
                    }
                }
            }
        }
    }
}

function SetSelectedValue(aValue, aWantProcessed)
{
    if( this.instance )
    {
        var optionValue = aValue;
        if( aWantProcessed )
        {
            var optionValues = optionValue.split("-");
            if( optionValues.length > 0 )
                optionValue = optionValues[0] + "-";
        }
       for( i = 0;i<this.instance.options.length; i++ )
        {
           if( this.instance.options[i].value == optionValue )
            {
                this.instance.options[i].selected = true;
                if( this.child )
                {
					this.instance.onchange();
                    this.child.associateObject.SetSelectedValue(aValue, false);
                }
                break;
            }
        }
    }
}
