﻿/*DTChooser脚本*/

function jso(id)
{
    return document.getElementById(id);
}

function DTChooser()
{
    //初始化方法
    var _clientId;
    this.init = function(ClientID, showSchool, showTeacher)
    {
        _clientId = ClientID;
        var clientCtls = " <select id='" + ClientID + "_ddlProvince' onchange='DTChooser.onProvinceChange(false,\"" + ClientID + "\");' ></select>&nbsp;省&nbsp;"
                        + "<select id='" + ClientID + "_ddlCity' onchange='DTChooser.onCityChange(false,\"" + ClientID + "\");'></select>&nbsp;市&nbsp;"
                        + "<select id='" + ClientID + "_ddlCounty' onchange='DTChooser.onCountyChange(false,\"" + ClientID + "\");'></select>&nbsp;县&nbsp;"
                        + "<select id='" + ClientID + "_ddlTown' onchange='DTChooser.onTownChange(false,\"" + ClientID + "\"," + showSchool + ");'></select>&nbsp;乡&nbsp;"
                        ;
        if (showSchool)
        {
            clientCtls += "<select id='" + ClientID + "_ddlSchool' onchange='DTChooser.onSchoolChange(false,\"" + ClientID + "\"," + showTeacher + ")'></select>";
            if (showTeacher)
            {
                clientCtls += " <select id='" + ClientID + "_ddlTeacher' onchange='DTChooser.onTeacherChange(false,\"" + ClientID + "\")'></select>";
            }
        }

        //输出控件
        document.write(clientCtls);

        //初始化数据
        DTChooser.doFillProvince(ClientID);
        jso(ClientID + "_ddlProvince").value = jso(ClientID + "_hProvince").value;
        DTChooser.onProvinceChange(true, ClientID);

        jso(ClientID + "_ddlCity").value = jso(ClientID + "_hCity").value;
        DTChooser.onCityChange(true, ClientID);

        jso(ClientID + "_ddlCounty").value = jso(ClientID + "_hCounty").value;
        DTChooser.onCountyChange(true, ClientID);

        jso(ClientID + "_ddlTown").value = String(jso(ClientID + "_hTown").value);

        DTChooser.onTownChange(true, ClientID, showSchool);

        if (showSchool)
        {

            jso(ClientID + "_ddlSchool").value = String(jso(ClientID + "_hSchool").value);

            if (showTeacher)
            {

                DTChooser.onSchoolChange(true, ClientID, showTeacher);

                jso(ClientID + "_ddlTeacher").value = String(jso(ClientID + "_hTeacher").value);
            }

        }

    }
    this.schoolId = function()
    {
        return jso(_clientId + "_hSchool").value;
    }
    this.districtId = function()
    {
        var v = jso(_clientId + "_hTown").value;
        if (v == "" || v == "-1")
            return -1;
        else
            return v;
    }
    this.province = function () {
        return jso(_clientId + "_hProvince").value;
    }
    this.city = function () {
        return jso(_clientId + "_hCity").value;
    }
    this.county = function () {
        return jso(_clientId+"_hCounty").value;
    }
    this.town = function () {
        return jso(_clientId+"_hTown").value;
    }
    this.teacher = function () {
        return jso(_clientId + "_hTeacher").value;
    }
 }

DTChooser.fillSelect = function(t, list)
{
    if (list == null)
        return;
    t.options[0] = new Option("未指定", "-1");
    var j = 1
    for (var i = 0; i < list.length; i++) //跳过System.string,System.String
    {
        t.options[j] = new Option(list[i][1], list[i][0]);
        j++;
    }
}

DTChooser.clearSelect = function(so, ho)
{
    if (so == null || ho == null) return;
    so.options.length = 1;
    ho.value = "-1";
}

DTChooser.doFillProvince = function(cid)
{
    var list = gsh.Endow.UI.Ajax.DTFacade.GetProvince().value;
    DTChooser.fillSelect(jso(cid + "_ddlProvince"), list);
}

DTChooser.onProvinceChange = function(isInit, cid)
{
    var list = gsh.Endow.UI.Ajax.DTFacade.GetCity(jso(cid + "_ddlProvince").value).value;
    if (!isInit)
    {
        jso(cid + "_hProvince").value = jso(cid + "_ddlProvince").value;
        DTChooser.clearSelect(jso(cid + "_ddlCity"), jso(cid + "_hCity")); //清除市
        DTChooser.clearSelect(jso(cid + "_ddlCounty"), jso(cid + "_hCounty")); //清除县
        DTChooser.clearSelect(jso(cid + "_ddlTown"), jso(cid + "_hTown")); //清除乡
        DTChooser.clearSelect(jso(cid + "_ddlSchool"), jso(cid + "_hSchool")); //清除学校
        DTChooser.clearSelect(jso(cid + "_ddlTeacher"), jso(cid + "_hTeacher")); //清除教师
    }
    if (jso(cid + "_hProvince").value != "-1")
        DTChooser.fillSelect(jso(cid + "_ddlCity"), list);
}

DTChooser.onCityChange = function(isInit, cid)
{

    var list = gsh.Endow.UI.Ajax.DTFacade.GetCounty(jso(cid + "_ddlCity").value).value;
    if (!isInit)
    {
        jso(cid + "_hCity").value = jso(cid + "_ddlCity").value;
        DTChooser.clearSelect(jso(cid + "_ddlCounty"), jso(cid + "_hCounty")); //清除县
        DTChooser.clearSelect(jso(cid + "_ddlTown"), jso(cid + "_hTown")); //清除乡
        DTChooser.clearSelect(jso(cid + "_ddlSchool"), jso(cid + "_hSchool")); //清除学校
        DTChooser.clearSelect(jso(cid + "_ddlTeacher"), jso(cid + "_hTeacher")); //清除教师
    }
    if (jso(cid + "_hCity").value != "-1")
        DTChooser.fillSelect(jso(cid + "_ddlCounty"), list);
}

DTChooser.onCountyChange = function(isInit, cid)
{

    var list = gsh.Endow.UI.Ajax.DTFacade.GetTown(jso(cid + "_ddlCounty").value).value;
    if (!isInit)
    {
        jso(cid + "_hCounty").value = jso(cid + "_ddlCounty").value;
        DTChooser.clearSelect(jso(cid + "_ddlTown"), jso(cid + "_hTown")); //清除乡
        DTChooser.clearSelect(jso(cid + "_ddlSchool"), jso(cid + "_hSchool")); //清除学校
        DTChooser.clearSelect(jso(cid + "_ddlTeacher"), jso(cid + "_hTeacher")); //清除教师
    }
    if (jso(cid + "_hCounty").value != "-1")
        DTChooser.fillSelect(jso(cid + "_ddlTown"), list);
}

DTChooser.onTownChange = function(isInit, cid, showSchool)
{
    jso(cid + "_hTown").value = jso(cid + "_ddlTown").value;
    if (!isInit)
    {
        DTChooser.clearSelect(jso(cid + "_ddlSchool"), jso(cid + "_hSchool")); //清除学校
        DTChooser.clearSelect(jso(cid + "_ddlTeacher"), jso(cid + "_hTeacher")); //清除教师
    }
    if (showSchool)
    {
        var list = gsh.Endow.UI.Ajax.DTFacade.GetSchool(jso(cid + "_ddlTown").value).value;
        if (jso(cid + "_hTown").value != "-1")
            DTChooser.fillSelect(jso(cid + "_ddlSchool"), list);
    }
}

DTChooser.onSchoolChange = function(isInit, cid, showTeacher)
{

    if (!isInit)
    {
        jso(cid + "_hSchool").value = jso(cid + "_ddlSchool").value;
        DTChooser.clearSelect(jso(cid + "_ddlTeacher"), jso(cid + "_hTeacher")); //清除教师
    }

    if (showTeacher)
    {
        var list = gsh.Endow.UI.Ajax.DTFacade.GetTeacher(jso(cid + "_ddlSchool").value).value;
        if (jso(cid + "_hSchool") != "-1")
            DTChooser.fillSelect(jso(cid + "_ddlTeacher"), list);
    }
}

DTChooser.onTeacherChange = function(isInit, cid)
{
    if (!isInit)
        jso(cid + "_hTeacher").value = jso(cid + "_ddlTeacher").value;
}

