﻿
var Region = {
    Model: null,
    Init: function(model) {
        this.Model = model;
        if ($("#" + model.R1).val() == undefined) return; // if object value equast undefined
        var r1 = parseInt($("#" + model.R1).get(0).value);
        var r2 = parseInt($("#" + model.R2).get(0).value);
        var r3 = parseInt($("#" + model.R3).get(0).value);
        var r4 = parseInt($("#" + model.R4).get(0).value);

        if (r1 > 0) {
            $("#" + model.Pid).empty();
            $("<option></option>").val("0").text("--全部--").appendTo($("#" + model.Pid));
            $("#" + model.Cid).empty();
            $("<option></option>").val("").text("--城市--").appendTo($("#" + model.Cid));
        }
        if (r2 > 0) {
            $("#" + model.Did).empty();
            $("<option></option>").val("").text("--区县--").appendTo($("#" + model.Did));
        }
        if (r3 > 0) {
            $("#" + model.Tid).empty();
            $("<option></option>").val("").text("--镇街--").appendTo($("#" + model.Tid));
        }
        $.each(regionData, function(i, item) {
            if (item["pid"] == "0" && r1 > 0) {
                $("<option></option>")
                .val(item["id"])
                .text(item["name"])
                .appendTo($("#" + model.Pid));
            }

            if (item["pid"] == r1.toString() && r1 > 0) {
                $("<option></option>")
                .val(item["id"])
                .text(item["name"])
                .appendTo($("#" + model.Cid));
            }
            if (item["pid"] == r2.toString() && r2 > 0) {
                $("<option></option>")
                .val(item["id"])
                .text(item["name"])
                .appendTo($("#" + model.Did));
            }
            if (item["pid"] == r3.toString() && r3 > 0) {
                $("<option></option>")
                .val(item["id"])
                .text(item["name"])
                .appendTo($("#" + model.Tid));
            }
        })

        $("#" + model.Pid).val(r1);
        $("#" + model.Cid).val(r2);
        $("#" + model.Did).val(r3);
        $("#" + model.Tid).val(r4);
    },
    RegionInit: function(model) {
        this.Model = model;
        $("#" + model.Pid).empty();
        $("<option></option>").val("0").text("--全部--").appendTo($("#" + model.Pid));
        $.each(regionData, function(i, item) {
            if (item["pid"] == "0") {
                $("<option></option>")
                .val(item["id"])
                .text(item["name"])
                .appendTo($("#" + model.Pid));
            }
        })

        $("#" + model.Cid).empty();
        $("<option></option>").val("").text("--城市--").appendTo($("#" + model.Cid));

        $("#" + model.Did).empty();
        $("<option></option>").val("").text("--区县--").appendTo($("#" + model.Did));

        $("#" + model.Tid).empty();
        $("<option></option>").val("").text("--镇街--").appendTo($("#" + model.Tid));
    },
    getCity: function(sender, model, name) {
        this.Model = model;
        this.SetValue(sender);
        $("#" + model.Cid).empty();
        $("<option></option>").val("").text("--城市--").appendTo($("#" + model.Cid));

        $("#" + model.Did).empty();
        $("<option></option>").val("").text("--区县--").appendTo($("#" + model.Did));

        $("#" + model.Tid).empty();
        $("<option></option>").val("").text("--镇街--").appendTo($("#" + model.Tid));

        if (sender.value.toString() != "0") {
            $.each(regionData, function(i, item) {
                if (item["pid"].toString() == sender.value.toString()) {
                    $("<option></option>")
                .val(item["id"])
                .text(item["name"])
                .appendTo($("#" + model.Cid));
                }
            })
        }
        this.check()
        r1 = sender.value;
        $("#" + model.R1).val(sender.value);

    },
    getDistrict: function(sender, model, name) {
        this.Model = model;
        this.SetValue(sender);
        $("#" + model.Did).empty();
        $("<option></option>").val("").text("--区县--").appendTo($("#" + model.Did));

        $("#" + model.Tid).empty();
        $("<option></option>").val("").text("--镇街--").appendTo($("#" + model.Tid));

        $.each(regionData, function(i, item) {
            if (item["pid"].toString() == sender.value.toString()) {
                $("<option></option>")
                .val(item["id"])
                .text(item["name"])
                .appendTo($("#" + model.Did));
            }
        })
        this.check()
        r2 = sender.value;
        $("#" + model.R2).val(sender.value);
    },
    getTown: function(sender, model) {
        this.Model = model;
        this.SetValue(sender);
        $("#" + model.Tid).empty();
        $("<option></option>").val("").text("--镇街--").appendTo($("#" + model.Tid));

        $.each(regionData, function(i, item) {
            if (item["pid"].toString() == sender.value.toString()) {
                $("<option></option>")
                .val(item["id"])
                .text(item["name"])
                .appendTo($("#" + model.Tid));
            }
        })
        this.check()
        r3 = sender.value;
        $("#" + model.R3).val(sender.value);
    },
    getLast: function(sender, model) {
        this.Model = model;
        this.SetValue(sender);
        this.check()
        r4 = sender.value;
        $("#" + model.R4).val(sender.value);
    },
    check: function() {

    },
    GetName: function(id) {
        var returnName = "";
        $.each(regionData, function(i, item) {
            if (item["id"].toString() == id.toString()) {
                returnName = item["name"];
                return;
            }
        })
        return returnName;
    },
    GetParentID: function(id) {
        var rid = "";
        $.each(regionData, function(i, item) {
            if (item["id"].toString() == id.toString()) {
                rid = item["pid"];
                return;
            }
        })
        return rid;
    },
    SetValue: function(sender) {
        var id = sender.value;
        
        var elementID = $("#" + this.Model.ID).get(0);
        var elementName = $("#" + this.Model.Name).get(0);
        if (id == "") {
            elementID.value = this.GetParentID(elementID.value);
        } else {
            elementID.value = id;
        }

        var name = this.GetName(id);
        elementName.value = name;
        if (areaClientID != "") {
            $("#" + areaClientID).get(0).value = name
        }
        if (this.Model.Aid != "")
            $("#" + this.Model.Aid).val(name);
        return;
    }
}