﻿var commentTemplate = '<div class="articleComment">' 
                        +'<div class="articleCommentHeaderL">'
                            + '<div class="userpicHolder">'
                                + '<img alt="_userName_" src="_userPic_" width="50" height="50" border="0" />' 
                            + '</div>'
                        + '</div>'
                        + '<div class="userNameHolder">_userName_</div>'
                        + '<div class="timeComment">_commentDate_</div>'
                        + '<div class="commentRating">'
                            + '<div class="ratingUPbuttonComment" id="ratingUp__commentId_" onclick="javascript:RateUp(_commentId_)">'
                                + '<img alt="Проголосовать за" src="/images/ratingUP.gif" width="13" height="13" border="0" />'
                            + '</div>'
                            + '<div class="ratingHolderComment ratingCommentP" id="comment__commentId__rating">_comment_rating_</div>'
                            + '<div class="ratingDownButtonComment" id="ratingDown__commentId_" onclick="javascript:RateDown(_commentId_)">'
                                + '<img alt="Проголосовать против" src="/images/ratingDown.gif" width="13" height="13" border="0" />'
                            + '</div>'
                        + '</div>'
                        + '<div class="commentText" id="comment__commentId__text">_comment_text_</div>'
                    + '</div>';

function GetCommentsPage(page) {
    $.ajax({
        url: "/Handlers/TalkbacksPaged.ashx",
        processData: false,
        data: "articleID=" + currentArticleId + "&page=" + page + "&tile=" + Math.round(Math.random() * 100000000) % 100000000,
        dataType: "json",
        success: function(data, textStatus) {
            var resultHTML = "";

            for (var i = 0; i < data.length; i++) {
                resultHTML += commentTemplate.replace(/_userName_/g, data[i].Username)
                .replace(/_userPic_/g, data[i].UserAvatar)
                .replace(/_commentDate_/g, data[i].PostedDate)
                .replace(/_commentId_/g, data[i].Id)
                .replace(/_comment_rating_/g, data[i].TiotalRank)
                .replace(/_comment_text_/g, data[i].Text);
            }
            $("#commentsContainer").html("").html(resultHTML);
            $("#pageOf").text(page);
        }
    });
}

function GetEditor() {
    $.ajax({
        url: "/Handlers/GetTalkbacksEditor.ashx",
        cache: false,
        async: false,
        success: function(data, textStatus) {
            $("#editorPlaceHolder").html("").html(data);
        }
    });
}

function RateDown(commentId) {
    RankComment(commentId, -1);
}

function RateUp(commentId) {
    RankComment(commentId, 1);
}

function RankComment(commentId, rank) {
    $.ajax({
        url: "/Handlers/RankTalkback.ashx",
        async: true,
        data: "talkbackID=" + commentId + "&rank=" + rank,
        success: function(xml) {
            $("#comment_" + commentId + "_rating").html($(xml).find("totalRank").text());

            $("#ratingUp_" + commentId).attr("onclick", "");
            $("#ratingUp_" + commentId).unbind();

            $("#ratingDown_" + commentId).attr("onclick", "");
            $("#ratingDown_" + commentId).unbind();
        }
    });
}

function SetNextPageTo(page) {
    $(".paging_buttonCurrent").removeClass("paging_buttonCurrent");
    $("#page_button_" + page).addClass("paging_buttonCurrent");

    GetCommentsPage(page);
}

function SendComment() {
    var canSend = false;
    $("#systemMessages").text("");
    $("#systemMessages").css("display", "none");
    
    $.ajax({
        url: '/Handlers/verify.ashx',
        type: 'POST',
        async: false,
        data: { "s3capcha": $("input[name=s3capcha]:checked").val(), "commentText": escape($("#editorCommentText").val()), "articleID": currentArticleId },
        cache: false,
        success: function(data) {
            switch (data) {
                case "Success":
                    GetCapcha();
                    $("#editorCommentText").val("");
                    GetCommentsPage(1);
                    break;
                case "Failed":
                    $("#systemMessages").text("Не совпадает символподтверждения. Попробуйте еще раз.");
                    GetCapcha();
                    $("#systemMessages").css("display", "block");
                    break;
                case "ErrorOccured":
                    $("#systemMessages").text("Произошла ошибка. Повторите позже или свяжитесь с администрацией сайта");
                    $("#systemMessages").css("display", "block");
                    break;
                case "AuthorizationFailed":
                    $("#systemMessages").text("Вы не можете оставлять сообщения, так как Вы не авторизованы. Пожалуйста, введите свой логин и пароль или зарегистрируйтесь/");
                    $("#systemMessages").css("display", "block");
                    break;
                case "UserBanned":
                    $("#systemMessages").text("Вы не можете оставлять сообщения, так как были забанены");
                    $("#systemMessages").css("display", "block");
                    GetCapcha();
                    $("#editorCommentText").val("");
                    break;
            }
        }
    });
}

var GetCapcha = function() {
    if ($('#capcha').length > 0) {
        $.ajax({
            url: '/Handlers/s3capcha.ashx',
            async: false,
            cache: false,
            success: function(data) {
                $('#capcha').html(data).s3Capcha();
            }
        });
    }
}; 