﻿/// <reference path="../k2046.js" />
K2046.Comment = {
    PostDelay: 10
        , IsPass: true
        , Init: function() {
            K2046.Users.GetLoginUser(function(args) {
                if (args.success) {
                    K2046.Comment.User.CallBack();
                }
                else {
                    K2046.Events.Attach("Post_Comment_Login_Button", "onclick", function() {
                        K2046.Comment.User.Login();
                    });
                    K2046.Events.Attach("Post_Comment_Login_vCode", "onkeydown", function(e) {
                        if (e.keyCode == 13) {
                            K2046.Comment.User.Login();
                            return false;
                        }
                    });
                    K2046.On("Post_Comment_Login_Preview", "click", function() { K2046.ValidateCode.Show("Post_Comment_Login_Preview", "Post_Comment_Login_Guid"); });
                }
            });
            K2046.Comment.List.Load();
        }
         , List: {
             Load: function(index) {
                 index = index || 1;
                 K2046.Ajax.Update("Comment_List_Panel", {
                     url: "/Request/Loader.aspx?Action=LoadCommentList&Page=" + index
                        , method: "post"
                        , data: "Target=" + K2046.$("Post_Comment_Target").value + "&Type=" + K2046.$("Post_Comment_Type").value
                        , regex: /<div class="t10 div_gray" id="Comment_List_Panel">([\s\S]+)<\/div>/g
                        , replace: "$1"
                 });
             }
         }
        , Post: {
            Send: function() {
                if (K2046.Validator.Validate([{ id: "Post_Comment_Content", Label: "评论内容", Default: "请输入您的评论内容.", AllowEmpty: false}])) {
                    if (!K2046.Comment.IsPass) {
                        alert("您发表评论的速度太快了,请稍候再发表.");
                        return;
                    }
                    K2046.$("Post_Comment_Button").disabled = "disabled";
                    K2046.Ajax.Request({
                        url: "/Ajax/AjaxRequest.aspx?Action=PostComment"
                        , method: "post"
                        , data: K2046.Collect("Post_Comment_Panel")
                        , callback: function(text) {
                            K2046.$("Post_Comment_Button").disabled = "";
                            if (text) {
                                var result = K2046.JsonParse(text);
                                if (result) {
                                    if (result.success) {
                                        K2046.Comment.IsPass = false;
                                        K2046.Comment.Post.Reset();
                                        K2046.Comment.List.Load(1);
                                        /*alert("评论发表成功!");*/
                                        var status = K2046.$("Post_Comment_Status");
                                        status.innerHTML = "评论发表成功!";
                                        status.style.color = "#FF0000";
                                        setTimeout(function() {
                                            status.innerHTML = "";
                                            K2046.Comment.IsPass = true;
                                        }, K2046.Comment.PostDelay * 1000);
                                        return;
                                    }
                                    else {
                                        alert(result.msg);
                                        return;
                                    }
                                }
                            }
                            alert("评论发表失败,请刷新页面后重试!");
                        }
                    });
                }
            }
            , Reset: function() {
                K2046.$("Post_Comment_Content").value = "";
                K2046.$("Post_Comment_Score_Default").checked = true;
            }
        }
        , User: {
            Login: function() {

                K2046.Ajax.Request({
                    url: "/Ajax/AjaxRequest.aspx?Action=PostCommentLogin"
                    , method: "post"
                    , data: K2046.Collect("Post_Comment_Login_Panel")
                    , callback: function(text) {
                        if (text == "success") {
                            K2046.Comment.User.CallBack();
                        }
                        else {
                            var result = K2046.JsonParse(text);
                            if (result && result.msg) {
                                K2046.$("Post_Comment_Login_vCode").value = "";
                                K2046.ValidateCode.Reload("Post_Comment_Login_Preview", "Post_Comment_Login_Guid");
                                alert(result.msg);
                            }
                        }
                    }
                });
            }
            , CallBack: function() {
                var panel = K2046.$("Post_Comment_Face_Panel");
                if (panel && panel.getElementsByTagName) {
                    var faces = panel.getElementsByTagName("img");
                    if (faces && faces.length) {
                        for (var x = 0; x < faces.length; x++) {
                            K2046.Events.Attach(faces[x], "onclick", function(args) {
                                if (K2046.$("Post_Comment_Content").value.trim() == "请输入您的评论内容.") {
                                    K2046.$("Post_Comment_Content").value = "";
                                }
                                K2046.$("Post_Comment_Content").value += "[EM:" + args.Index + "]";
                            }, { Index: x });
                        }
                    }
                }

                var scores = K2046.$("Post_Comment_Score_Panel");
                if (scores && scores.getElementsByTagName) {
                    var labels = scores.getElementsByTagName("label");
                    if (labels && labels.length) {
                        for (var x = 0; x < labels.length; x++) {
                            K2046.Events.Attach(labels[x], "onclick", function(args) {
                                var c = args.Element.getElementsByTagName("input");
                                if (c && c.length) {
                                    c[0].checked = true;
                                }
                            }, { Element: labels[x] });
                        }
                    }
                }

                K2046.Events.Attach("Post_Comment_Content", "onkeydown", function(e) {
                    if (e.keyCode == 13 && e.ctrlKey) {
                        K2046.Comment.Post.Send();
                        return false;
                    }
                });

                K2046.Events.Attach("Post_Comment_Button", "onclick", function() { K2046.Comment.Post.Send(); });
                K2046.Events.Attach("Post_Comment_Reset", "onclick", K2046.Comment.Post.Reset);
                K2046.$("Post_Comment_Content").value = "";
                K2046.DefaultText.Attach("Post_Comment_Content", { Default: "请输入您的评论内容." });
                K2046.$("Post_Comment_Content").disabled = "";
                K2046.$("Post_Comment_Button").disabled = "";
                K2046.$("Post_Comment_Reset").disabled = "";
                K2046.Dom.Remove("Post_Comment_Login_Panel");
            }
        }
};
//K2046.Events.Attach(window, "onload", function() {
K2046.Comment.Init();
//    return;
//});