<!--  Job Category Associate List script written entirely in JavaScript  -->
<!--  Written by WenWei, 2001-2004. E-mail: wenwei(AT)blueidea.com  -->

// 职位大类选项列表
var PCLOptions = new Array()

// 职位小类选项列表
var CCLOptions = new Array()

GenerateJobCategoryList();

// 生成职位类别选项列表
function GenerateJobCategoryList()
{
    var ii = 0
    var jj = 0
    
    PCLOptions[ii++] = "行政人事财务类|行政人事财务类"
    PCLOptions[ii++] = "设计类|设计类"
    PCLOptions[ii++] = "采购控制类|采购控制类"
    PCLOptions[ii++] = "仓储类|仓储类"
    PCLOptions[ii++] = "操作类|操作类"
    PCLOptions[ii++] = "业务类|业务类"
    PCLOptions[ii++] = "航空类|航空类"
    PCLOptions[ii++] = "海运类|海运类"
    PCLOptions[ii++] = "铁路类|铁路类"
    PCLOptions[ii++] = "公路货运类|公路货运类"
    PCLOptions[ii++] = "其他|其他"
    
    
    ii = 0
    jj = 0
    // ii = 0
    CCLOptions[ii] = new Array()
    CCLOptions[ii][jj++] = "行政人事财务类-前台客服|前台客服"
    CCLOptions[ii][jj++] = "行政人事财务类-办公文员|办公文员"
    CCLOptions[ii][jj++] = "行政人事财务类-文案策划|文案策划"
    CCLOptions[ii][jj++] = "行政人事财务类-经理助理|经理助理"
    CCLOptions[ii][jj++] = "行政人事财务类-会计|会计"
    CCLOptions[ii][jj++] = "行政人事财务类-出纳|出纳"
    CCLOptions[ii][jj++] = "行政人事财务类-统计|统计"
    CCLOptions[ii][jj++] = "行政人事财务类-财务主管|财务主管"
    CCLOptions[ii][jj++] = "行政人事财务类-人事助理|人事助理"
    CCLOptions[ii][jj++] = "行政人事财务类-人事主管|人事主管"
    CCLOptions[ii][jj++] = "行政人事财务类-法律顾问|法律顾问"
    CCLOptions[ii][jj++] = "行政人事财务类-法务人员|法务人员"
    CCLOptions[ii][jj++] = "行政人事财务类-高级物流师|高级物流师"
    CCLOptions[ii][jj++] = "行政人事财务类-培训讲师|培训讲师"
    CCLOptions[ii][jj++] = "行政人事财务类-货运监督专员|货运监督专员"
    CCLOptions[ii][jj++] = "行政人事财务类-项目经理|项目经理"
    CCLOptions[ii][jj++] = "行政人事财务类-物流运营/管理|物流运营/管理"
    CCLOptions[ii][jj++] = "行政人事财务类-物流专员|物流专员" 
    CCLOptions[ii][jj++] = "行政人事财务类-办事处主任|办事处主任"
    CCLOptions[ii][jj++] = "行政人事财务类-物流副/总经理/总监|物流副/总经理/总监" 
    CCLOptions[ii++][jj++] = "行政人事财务类-其他|其他"
    
    jj = 0
    // ii = 1
    CCLOptions
    CCLOptions[ii] = new Array()
    CCLOptions[ii][jj++] = "设计类-绘图员|绘图员"
    CCLOptions[ii][jj++] = "设计类-网站美工/平面设计|网站美工/平面设计"
    CCLOptions[ii][jj++] = "设计类-网站程序设计|网站程序设计"
    CCLOptions[ii][jj++] = "设计类-ERP|ERP"
    CCLOptions[ii][jj++] = "设计类-数据库开发|数据库开发"
    CCLOptions[ii][jj++] = "设计类-网站管理维护|网站管理维护"
    CCLOptions[ii++][jj++] = "设计类-其他|其他"
    
    jj = 0
    // ii = 2
    CCLOptions[ii] = new Array()
    CCLOptions[ii][jj++] = "采购控制类-采购|采购"
    CCLOptions[ii][jj++] = "采购控制类-物料管理|物料管理"
    CCLOptions[ii][jj++] = "采购控制类-质量控制|质量控制"
    CCLOptions[ii][jj++] = "采购控制类-成本控制人员|成本控制人员"
    CCLOptions[ii++][jj++] = "采购控制类-其他|其他"
    

    jj = 0
    // ii = 3
    CCLOptions[ii] = new Array()
    CCLOptions[ii][jj++] = "仓储类-仓储管理|仓储管理"
    CCLOptions[ii][jj++] = "仓储类-仓储助理|仓储助理"
    CCLOptions[ii][jj++] = "仓储类-理货员|理货员"
    CCLOptions[ii][jj++] = "仓储类-仓储操作员|仓储操作员"
    CCLOptions[ii++][jj++] = "仓储类-其他|其他"


    jj = 0
    // ii = 4
    CCLOptions[ii] = new Array()
    CCLOptions[ii][jj++] = "操作类-操作员|操作员"
    CCLOptions[ii][jj++] = "操作类-操作主管|操作主管"
    CCLOptions[ii][jj++] = "操作类-拼箱操作|拼箱操作"
    CCLOptions[ii][jj++] = "操作类-集装箱操作|集装箱操作"
    CCLOptions[ii++][jj++] = "操作类-其他|其他"

    jj = 0
    // ii = 5
    CCLOptions[ii] = new Array()             
    CCLOptions[ii][jj++] = "业务类-报关员|报关员"
    CCLOptions[ii][jj++] = "业务类-报检员|报检员"
    CCLOptions[ii][jj++] = "业务类-单证员|单证员"
    CCLOptions[ii][jj++] = "业务类-外销员|外销员"
    CCLOptions[ii][jj++] = "业务类-货运代理|货运代理"
    CCLOptions[ii][jj++] = "业务类-进/出口操作|进/出口操作"
    CCLOptions[ii][jj++] = "业务类-业务跟单|业务跟单"
    CCLOptions[ii][jj++] = "业务类-业务经理|业务经理"
    CCLOptions[ii][jj++] = "业务类-业务/销售/揽货|业务/销售/揽货"
    CCLOptions[ii][jj++] = "业务类-快递员|快递员"
    CCLOptions[ii][jj++] = "业务类-EDI预录入|EDI预录入"
    CCLOptions[ii++][jj++] = "业务类-其他|其他"
    
    jj = 0
    // ii = 6
    CCLOptions[ii] = new Array()       
   CCLOptions[ii][jj++] = "航空类-机场运营/管理|机场运营/管理"
    CCLOptions[ii][jj++] = "航空类-空运操作员|空运操作员"
    CCLOptions[ii][jj++] = "航空类-空运调度|空运调度"
    CCLOptions[ii][jj++] = "航空类-机务处理|机务处理"
    CCLOptions[ii][jj++] = "航空类-机场作业员|机场作业员"
    CCLOptions[ii][jj++] = "航空类-空运服务员|空运服务员"
    CCLOptions[ii][jj++] = "航空类-空乘人员|空乘人员"
    CCLOptions[ii][jj++] = "航空类-机长|机长"
    CCLOptions[ii][jj++] = "航空类-飞行员|飞行员"
    CCLOptions[ii++][jj++] = "航空类-其他|其他"
    
    jj = 0
    // ii = 7
    CCLOptions[ii] = new Array()            
    CCLOptions[ii][jj++] = "海运类-船舶设计|船舶设计"
    CCLOptions[ii][jj++] = "海运类-钢机构设计|钢机构设计"
    CCLOptions[ii][jj++] = "海运类-轮机设计|轮机设计"
    CCLOptions[ii][jj++] = "海运类-电气设计|电气设计"
    CCLOptions[ii][jj++] = "海运类-管系设计|管系设计"
    CCLOptions[ii][jj++] = "海运类-涂装工艺|涂装工艺"
    CCLOptions[ii][jj++] = "海运类-舾装工艺|舾装工艺"
    CCLOptions[ii][jj++] = "海运类-焊接工艺|焊接工艺"
    CCLOptions[ii][jj++] = "海运类-机械工程|机械工程"
    CCLOptions[ii][jj++] = "海运类-项目经理|项目经理"
    CCLOptions[ii][jj++] = "海运类-生产主管|生产主管"
    CCLOptions[ii][jj++] = "海运类-修船工程|修船工程"
    CCLOptions[ii][jj++] = "海运类-质量检验|质量检验"
    CCLOptions[ii][jj++] = "海运类-船务人员|船务人员"
    CCLOptions[ii][jj++] = "海运类-船舶管理|船舶管理"
    CCLOptions[ii][jj++] = "海运类-舾装工程师|舾装工程师"
    CCLOptions[ii][jj++] = "海运类-航线调度|航线调度"
    CCLOptions[ii][jj++] = "海运类-航运作业员|航运作业员"
    CCLOptions[ii][jj++] = "海运类-航运经理|航运经理"
    CCLOptions[ii][jj++] = "海运类-港口管理|港口管理"
    CCLOptions[ii][jj++] = "海运类-码头管理|码头管理"
    CCLOptions[ii][jj++] = "海运类-海运操作员|海运操作员"
    CCLOptions[ii][jj++] = "海运类-码头操作员|码头操作员"
    CCLOptions[ii][jj++] = "海运类-堆场作业员|堆场作业员"
    CCLOptions[ii][jj++] = "海运类-堆场器械操作员|堆场器械操作员"
    CCLOptions[ii][jj++] = "海运类-龙门吊师傅|龙门吊师傅"
    CCLOptions[ii][jj++] = "海运类-船长|船长"
    CCLOptions[ii][jj++] = "海运类-大副|大副"
    CCLOptions[ii][jj++] = "海运类-船员|船员"
    CCLOptions[ii][jj++] = "海运类-水手|水手"
    CCLOptions[ii++][jj++] = "海运类-其他|其他"
    
    jj = 0
    // ii = 8
    CCLOptions[ii] = new Array()         
    CCLOptions[ii][jj++] = "铁路类-列车长|列车长"
    CCLOptions[ii][jj++] = "铁路类-列车员|列车员"
    CCLOptions[ii][jj++] = "铁路类-列车司机|列车司机"
    CCLOptions[ii][jj++] = "铁路类-铁路货运员|铁路货运员"
    CCLOptions[ii][jj++] = "铁路类-铁路调度员|铁路调度员"
    CCLOptions[ii][jj++] = "铁路类-铁路站台服务人员|铁路站台服务人员"
    CCLOptions[ii++][jj++] = "铁路类-其他|其他"
    
    jj = 0
    // ii = 9
    CCLOptions[ii] = new Array()            
    CCLOptions[ii][jj++] = "公路货运类-供应链运营与管理|供应链运营与管理"
    CCLOptions[ii][jj++] = "公路货运类-供应链人员|供应链人员"
    CCLOptions[ii][jj++] = "公路货运类-危险品操作|危险品操作"
    CCLOptions[ii][jj++] = "公路货运类-车辆调度/管理|车辆调度/管理"
    CCLOptions[ii][jj++] = "公路货运类-车队作业员|车队作业员"
    CCLOptions[ii][jj++] = "公路货运类-运输作业员|运输作业员"
    CCLOptions[ii][jj++] = "公路货运类-车辆维修/保养|车辆维修/保养"
    CCLOptions[ii][jj++] = "公路货运类-拖头司机|拖头司机"
    CCLOptions[ii][jj++] = "公路货运类-叉车司机|叉车司机"
    CCLOptions[ii][jj++] = "公路货运类-吊车司机|吊车司机"
    CCLOptions[ii][jj++] = "公路货运类-货运司机|货运司机"
    CCLOptions[ii][jj++] = "公路货运类-罐装车司机|罐装车司机"
    CCLOptions[ii][jj++] = "公路货运类-客车司机|客车司机"
    CCLOptions[ii++][jj++] = "公路货运类-其他|其他"
    
    jj = 0
    // ii = 10
    CCLOptions[ii] = new Array()
    CCLOptions[ii++][jj++] = "其他-其它相关职位|其它相关职位"

    ii = 0
    jj = 0
}

// Job Category Associate List Object
function JobCategoryAssociateList(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             = InitJobCategorySelector;   // 初始化方法
    this.SetSelectedValue = SetSelectedValue;          // 设置选中值方法

    this.instance.associateObject = this;       // 关联对象与选择框
}

// 选择列表初始化方法
function InitJobCategorySelector()
{
    if( this.instance )                                         // 实例存在
    {
        var i, aIndex, aLength, aValueText;
        if( this.child )                                        // 子选择框存在, 则实例为父选择框
        {
           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;
                }
            }
            this.instance.onchange = parentCategoryChanged;
        }
        else if( this.parent )                                  // 父选择框存在, 则实例为子选择框
        {
			this.parent.onchange();
        }
    }
}

// 父选择列表值改变事件方法
function parentCategoryChanged()
{
    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;
            }
        }
    }
}
