<!--  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++] = "其他类|其他类"
    
    
    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++] = "经营管理类-其它相关职位|其它相关职位"
    
    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++] = "教务管理类-其它相关职位|其它相关职位"
    
    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++] = "培训教学类-其它相关职位|其它相关职位"
    
    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++] = "咨询/客服类-其它相关职位|其它相关职位"
    
    jj = 0
    // ii = 4
    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++] = "市场营销类-其它相关职位|其它相关职位"
    
    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++] = "财务/审(统)计类-统计|统计"
    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++] = "人事/行政类-其它相关职位|其它相关职位"
    
    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++] = "技术/设计类-其它相关职位|其它相关职位"

    jj = 0
    // ii = 8
    CCLOptions[ii] = new Array()
    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;
            }
        }
    }
}
