
var bwesaNews = {
    CurrentPageNr: 1,
    Initialize: function(newsPageNr, newsID, langID) {
        if (newsID != null) {
            this.NewsLoadByID(newsID, langID);
            return;
        }

        if (newsPageNr == null) { newsPageNr = 1; }
        this.NewsLoadPage(newsPageNr);
    },
    InitializeNewComment: function() {
        $(".newCommentTransparent").css("opacity", "0.7");
        $(window).bind("scroll", bwesaNews.NewCommentPositionContainer);
        $(window).bind("resize", bwesaNews.NewCommentPositionContainer);
        this.NewCommentPositionContainer(true);
    },
    NewsLoadPage: function(pageNumber) {
        this.CurrentPageNr = pageNumber;
        var _news = callGetNewsByPage(pageNumber, mainMenu.CategoryID());
        if (_news != null) {
            if (_news[0] != null) {
                var pollTemplate = $.createTemplate($("#pollTemplate").html());
                $(".newsContainer .newsListContainer").setTemplate($("#newsListTemplate").html(), { pollTemplate: pollTemplate }, { filter_data: false })
                                                      .processTemplate(_news[0]);
            }
            if (_news[1] != null) {
                $(".newsContainer .newsPagerContainer").setTemplate($("#newsPagerTemplate").html())
                                                       .processTemplate({ currentPage: pageNumber * 1, pageCount: Math.ceil(_news[1] / 5) });
            }
            $(".newsContainer .newsListContainer .pollContainer .pollTable tr:even").addClass("rowItemZebra");
        }
    },
    NewsLoadByID: function(newsID, langID) {
        //alert("bwesaNews.NewsLoadByID");
        var _news = callGetNewsByID(newsID, langID);
        if (_news != null) {
            var pollTemplate = $.createTemplate($("#pollTemplate").html());
            $(".newsContainer .newsListContainer").setTemplate($("#newsListTemplate").html(), { pollTemplate: pollTemplate }, { filter_data: false })
                                                  .processTemplate(_news);
            $(".newsContainer .newsPagerContainer").html('<a class="newsPagerBack" href="#np=' + this.CurrentPageNr + '" rel="address:#np=' + this.CurrentPageNr + '">Go back to list</a>');
            $(".newsContainer .newsListContainer .pollContainer .pollTable tr:even").addClass("rowItemZebra");
            this.CommentsToggle(newsID);
        }
        scroll(0, 0);
    },
    NewsLoadListHeaders: function() {
        var _news = callGetNewsAll();
        if (_news != null) {
            if (_news != null) {
                if (_news != null) {
                    $(".newsContainer .newsListContainer").setTemplate($("#newsListHeadersListTemplate").html(), null, { filter_data: false })
                                                          .processTemplate(_news);
                    $(".newsContainer .newsPagerContainer").html('');
                    $(".newsContainer .newsListContainer .adminNewsItem:even").addClass("rowItemZebra");
                }
            }
        }
    },
    SelectListItem: function(newsID) {
        $(".newsContainer .newsListContainer .adminNewsItem").removeClass("rowItemSelected");
        if (newsID != null) {
            $(".newsContainer .newsListContainer #adminNewsItem" + newsID).addClass("rowItemSelected");
        }
    },
    CommentsLoad: function(newsID) {
        var _comments = callGetCommentsByNews(newsID);
        if (_comments != null && _comments.length > 0) {
            $(".newsContainer #commentContainer" + newsID).setTemplate($("#commentsTemplate").html())
                                                               .processTemplate(_comments)
                                                               .slideDown("slow")
                                                               .toggleClass("dontDisplay", false);
            this.CommentsUpdateCount(newsID, _comments.length);
            this.NewCommentToggle(false);
        }
    },
    CommentsUpdateCount: function(newsID, newCount) {
        $(".newsContainer .newsListContainer #newsItem" + newsID + " .newsCommentCount").text("COMMENTS(" + newCount + ")");
    },
    CommentsAddNew: function() {
        newsID = $(".newCommentContainer #newCommentNewsID").val();
        commentText = $(".newCommentContainer #newCommentContent").val().escapeHTML();
        author = $(".newCommentContainer #newCommentAuthor").val().escapeHTML();
        repliedToID = $(".newCommentContainer #newCommentReplyToID").val();
        var _result = callAddComment(newsID, commentText, author, repliedToID);
        //debugger
        if (_result == -1) {
            $(".newCommentContainer #newCommentInput").toggleClass("dontShow", true);
            this.NewCommentErrorMessage(true, " Could not add new comment. Please try again later. ");
            return;
        }
        else if (_result == -2) {
            return;
        }
        this.CommentsUpdateCount(newsID, _result);
        if (!$(".newsContainer #commentContainer" + newsID).hasClass("dontDisplay")) {
            $(".newsContainer #commentContainer" + newsID).slideDown("slow");
            this.CommentsLoad(newsID);
        }
        else {
            this.NewCommentToggle(false);
        }
    },
    CommentsToggle: function(newsID) {
        if ($(".newsContainer #commentContainer" + newsID).hasClass("dontDisplay")) {
            bwesaNews.CommentsLoad(newsID);
        }
        else {
            $(".newsContainer #commentContainer" + newsID).slideUp("slow").toggleClass("dontDisplay", true);
        }
    },
    NewCommentPositionContainer: function(force) {
        if (!$(".newCommentContainer").hasClass("dontDisplay") || force == true) {
            $(".newCommentContainer, .newCommentTransparent").css({ //"top": ($(window).scrollTop() + 30),
                "top": ($(window).height() / 2) + $(window).scrollTop() - ($(".newCommentContainer").outerHeight() / 2),
                "left": ($(".newsContainer").position().left + 10)
            });
            $(".newCommentTransparent").height($(".newCommentContainer").outerHeight());
            //                                   .width($(".newCommentContainer").outerWidth() - 20);
        }
    },
    NewCommentToggle: function(display) {
        mainCoverPanel.Toggle(display);
        $(".newCommentContainer, .newCommentTransparent").toggleClass("dontDisplay", !display);
        this.NewCommentPositionContainer(true);
    },
    NewCommentSetup: function(newsID, repliedToID) {
        if (newsID == null || newsID == NaN) { return; }
        $(".newCommentContainer #newCommentNewsID").val(newsID);
        $(".newCommentContainer #newCommentReplyToID").val(repliedToID);
        $(".newCommentContainer #newCommentInput").toggleClass("dontShow", false);
        this.NewCommentErrorMessage(false);
        $(".newCommentContainer .commentRepliedTo").toggleClass("dontDisplay", true);
        if (repliedToID != null && !isNaN(repliedToID)) {
            $(".newCommentContainer #repliedToAuthor").html($(".newsListContainer #newsItem" + newsID + " #commentItem" + repliedToID + " .commentAuthor").html());
            $(".newCommentContainer #repliedToContent").html($(".newsListContainer #newsItem" + newsID + " #commentItem" + repliedToID + " .commentContent").html());
            $(".newCommentContainer .commentRepliedTo").toggleClass("dontDisplay", false);
        }
        $(".newCommentContainer #newCommentContent").val("");
        $(".newCommentContainer #newCommentAuthor").val("");
        this.NewCommentToggle(true);
        $(".newCommentContainer #newCommentContent").focus();
    },
    NewCommentErrorMessage: function(display, msg) {
        if (display == true) {
            $(".newCommentContainer .inputAlert #alertText").html(msg);
        }
        $(".newCommentContainer .inputAlert").toggleClass("dontShow", !display);
    }
};


var bwesaPolls = {
    Vote: function(pollID) {
        // 1. find poll radio element checked.
        //var checkedValue = $(".newsContainer .newsListContainer .pollContainer input:radio[@name=" + pollID + "]:checked").val();
        var checkedValue = $(".newsContainer .newsListContainer #pollContainer" + pollID + " .pollTable .imitRadioChecked input:hidden").val();
        // 2. if nothing is selected stop processing.
        if (checkedValue == null) {
            alert("You have to select one of the options to vote.");
            return;
        }
        // 3. call server method to add vote
        var _result = callAddPollVote(pollID, checkedValue);
        bwesaNews.Initialize($.address.query.np(), $.address.query.nid(), $.address.query.lid());
    },
    Select: function(pollID, pollItemID) {
        $(".newsContainer .newsListContainer #pollContainer" + pollID + " .pollTable .imitRadio").removeClass("imitRadioChecked");
        $(".newsContainer .newsListContainer #pollContainer" + pollID + " .pollTable tr").removeClass("rowItemSelected");
        $(".newsContainer .newsListContainer #pollContainer" + pollID + " .pollTable #pollRow" + pollItemID + " .imitRadio").addClass("imitRadioChecked");
        $(".newsContainer .newsListContainer #pollContainer" + pollID + " .pollTable #pollRow" + pollItemID).addClass("rowItemSelected");
    }
};
