﻿var ArticleCategory = {
    Init: function() {
        $("#ArticleCategoryListID").empty();
        $.each(articleCategoryData, function(i, item) {
            $("<li></li>")
                    .val(item["id"])
                    .html("<input type='checkbox' id='c" + item["id"] + "' value='" + item["id"] + "' text='" + item["name"] + "' onclick='ArticleCategory.Check(this)'/>" + item["name"])
                    .appendTo($("#ArticleCategoryListID"));
        })

        var text = $("#" + ArticleCategoryHiddenClientID).val();
        var articleText = "";
        var articleCategoryJsonData = this.ParseJson(text);
        if (articleCategoryJsonData != null) {
            $("#ArticleCategoryList").empty();
            $.each(articleCategoryJsonData, function(i, item) {
                articleText += item["name"] + ",";
                $("<li></li>")
                    .attr("id", item["id"])
                    .attr("text", item["name"])//get text
                    .attr("value", item["id"])//get value
                    .html("<img src='/Images/del.gif' onclick='ArticleCategory.Delete(" + item["id"] + ")'/>" + item["name"])
                    .appendTo($("#ArticleCategoryList"));
            })
            if (articleText != "")
                $("#" + ArticleCategoryClientID).val(articleText.substr(0, articleText.length - 1));
            else
                $("#" + ArticleCategoryClientID).val("");
        }
    },
    ParseJson: function(text) {
        if (text != "") {
            var arr1 = text.split('|');
            var json = "";
            for (var i = 0; i < arr1.length; i++) {
                var arr2 = arr1[i].split(',');
                json += "{\"id\":" + arr2[1] + ",\"name\":" + "\"" + arr2[0] + "\"},";
            }
            if (json != "")
                return eval("[" + json.substr(0, json.length - 1) + "]"); //you must change value is object type, use 'eval' function 
        }
        return null;
    },
    Check: function(sender) {
        var ele = $("#ArticleCategoryList>li");
        //check box is checked and have some item in item container
        if (sender.checked && $("#" + sender.value).text() == "") {
            $("<li></li>")
                    .val(sender.value)
                    .attr("id", sender.value)
                    .attr("text", sender.text)//get text
                    .attr("value", sender.value)//get value
                    .html("<img src='/Images/del.gif' onclick='ArticleCategory.Delete(" + sender.value + ")'/>" + sender.text)
                    .appendTo($("#ArticleCategoryList"));

            this.SetValue();
        } else {
            alert("提示：请选择或已经存在");
            //Delete(sender.value);
            sender.checked = false;
            return;
        }
    },
    Delete: function(id) {
        if ($("#c" + id).val() != "" && $("#c" + id).get(0) != undefined)
            $("#c" + id).get(0).checked = false;
        $("#ArticleCategoryList #" + id).remove();
        this.SetValue();
    },
    SetValue: function() {
        var ele = $("#ArticleCategoryList>li");
        var keyvalue = "";
        var names = "";
        var json = "";
        $.each(ele, function(i, item) {
            names += item.text + ",";
            keyvalue += item.text + "," + item.value + "|";
            json += "{\"id\":" + item.value + ",\"name\":" + "\"" + item.text + "\"},";
        });

        if (names != "")
            $("#" + ArticleCategoryClientID).val(names.substr(0, names.length - 1));
        else
            $("#" + ArticleCategoryClientID).val("");

        if (keyvalue != "")
            $("#" + ArticleCategoryHiddenClientID).val(keyvalue.substr(0, keyvalue.length - 1));
        else
            $("#" + ArticleCategoryHiddenClientID).val("");
    }
}