<!--  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++] = "行政/人事类|行政/人事类"

    
        
    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++] = "化工类-涂料工程师|涂料工程师"
    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[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++] = "能源类-其它相关职位|其它相关职位"






    jj = 0
    // ii = 2
    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++] = "工程技术类-其它相关职位|其它相关职位"

    
    jj = 0
    // ii = 3
    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++] = "市场销售类-其它相关职位|其它相关职位"
    
    

    
    jj = 0
    // ii = 4
    CCLOptions[ii] = new Array()
    CCLOptions[ii][jj++] = "经营/管理类-总裁/总经理|总裁/总经理"
    CCLOptions[ii][jj++] = "经营/管理类-厂长/副厂长|厂长/副厂长"
    CCLOptions[ii][jj++] = "经营/管理类-技术总监CTO|技术总监CTO"
    CCLOptions[ii][jj++] = "经营/管理类-市场/营销总监|市场/营销总监"
    CCLOptions[ii][jj++] = "经营/管理类-人力资源总监|人力资源总监"
    CCLOptions[ii][jj++] = "经营/管理类-信息主管/CIO|信息主管/CIO"
    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 = 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++] = "财务/审(统)计类-其它相关职位|其它相关职位"
    

    
    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++] = "行政/人事类-秘书|秘书"
    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++] = "行政/人事类-绘图员/CAD|绘图员/CAD"
    CCLOptions[ii][jj++] = "行政/人事类-网站美工/设计|网站美工/设计"
    CCLOptions[ii][jj++] = "行政/人事类-网站程序设计|网站程序设计"
    CCLOptions[ii][jj++] = "行政/人事类-ERP|ERP"
    CCLOptions[ii][jj++] = "行政/人事类-数据库开发|数据库开发"
    CCLOptions[ii][jj++] = "行政/人事类-网站推广|网站推广"
    CCLOptions[ii][jj++] = "行政/人事类-网管|网管"
    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;
            }
        }
    }
}
