﻿function loadComments(NewsId)
{ 
    engProfile.GetCommentsForNewsId(NewsId, callback_loadComments)
}

function callback_loadComments(res)
{
    var dt = res.value;
    var NewsId = getSpanValue('NewsId');
    var commentsList = document.getElementById('comments_' + NewsId);
    var commentsListHtml = "";
    
    var LoggedInUser = getSpanValue('spnUserId');

    if (dt.Rows.length > 0)
    {
        for (var i = 0; i < dt.Rows.length; i++)
        {
            var Username = dt.Rows[i].Username;
            var Time = dt.Rows[i].FormattedTime;            
            var Date = dt.Rows[i].FormattedDate;
            var CommentText = dt.Rows[i].Comment_Text;
            var CommentId = dt.Rows[i].Id;
            var UserId = dt.Rows[i].UserId;
            var OwnerUserId = dt.Rows[i].OwnerUserId;
            var Photo = dt.Rows[i].Photo_Filename;
            var Realname = dt.Rows[i].Realname;
            var ProfileUrl = encodeURI(dt.Rows[i].Username);
            var School = dt.Rows[i].SchoolName;
            var City = dt.Rows[i].City;
            var Country = dt.Rows[i].Country_Desc;
            var Location = ""
            var AccountId = dt.Rows[i].AccountId;
            var Status = dt.Rows[i].Status;
            
            if (City == "" && Country != "")
                Location = Country;
            else if (City != "" && Country == "")
                Location = City;
            else
                Location = City + ", " + Country;
            
            commentsListHtml += "<li id='comment_" + CommentId + "'>" +
                                    "<div><a href='/profile/" + ProfileUrl + ".aspx'" +
                                    "onmouseover=\"OpenPopUP(document.getElementById('PopUp'), this, '" + Photo + "', '" + Realname + "', '/profile/" + ProfileUrl + ".aspx', '" +
                                                    Status + "', '" + School + "', '" + Location + "', " + AccountId + ", " + UserId + ")\"" +
                                    " onmouseout = 'Popmouseout();'" +
                                    " class='commentUsername'>" + Username + "</a><span class='commentDatetime'>" + Date + " " + Time + "</span><br /></div>"+ CommentText;
                                    
            if (OwnerUserId == LoggedInUser)
                commentsListHtml += "<br /><a href='javascript:void(0);' onclick='deleteComment(" + CommentId + ");'>Delete</a></li>";
            else
                commentsListHtml += "</li>";
        }
    }
    
    commentsList.innerHTML = commentsListHtml;

    SplitWordsWithFixedLength(commentsList);    
    Effect.BlindDown('commentsContainer_' + NewsId, { duration: 0.5, queue: 'end' });
}

function addComment(NewsId)
{
    var txtCommentText = document.getElementById('commentText_' + NewsId);
    var Comment_Text = txtCommentText.value;
    
    if (Comment_Text != "")
    {
        engProfile.InsertNewsComment(NewsId, Comment_Text, callback_addComment);
    }
}

function callback_addComment(res)
{
    var dt = res.value;
    
    var NewsId = dt.Rows[0].NewsId;
    
    var commentsList = document.getElementById('comments_' + NewsId);
    var commentsContainer = document.getElementById('commentsContainer_' + NewsId);
    var commentsListHtml = "";
    
    var txtCommentText = document.getElementById('commentText_' + NewsId);
    var spnCommentsCount = document.getElementById('spnCommentsCount_' + NewsId);
    var commentsCount = spnCommentsCount.innerHTML;
    commentsCount++;
    
    var LoggedInUser = getSpanValue('spnUserId');
    
    var Username = dt.Rows[0].Username;
    var Time = dt.Rows[0].FormattedTime;            
    var Date = dt.Rows[0].FormattedDate;
    var CommentText = dt.Rows[0].Comment_Text;
    var CommentId = dt.Rows[0].Id;
    var UserId = dt.Rows[0].UserId;
    var OwnerUserId = dt.Rows[0].OwnerUserId;
    var Photo = dt.Rows[0].Photo_Filename;
    var Realname = dt.Rows[0].Realname;
    var ProfileUrl = encodeURI(dt.Rows[0].Username);
    var School = dt.Rows[0].SchoolName;
    var City = dt.Rows[0].City;
    var Country = dt.Rows[0].Country_Desc;
    var Location = ""
    var AccountId = dt.Rows[0].AccountId;
    var Status = dt.Rows[0].Status;
    
    if (City == "" && Country != "")
        Location = Country;
    else if (City != "" && Country == "")
        Location = City;
    else
        Location = City + ", " + Country;
    
    commentsListHtml += "<li id='comment_" + CommentId + "'>" +
                                    "<div><a href='/profile/" + Username + ".aspx'" +
                                    "onmouseover=\"OpenPopUP(document.getElementById('PopUp'), this, '" + Photo + "', '" + Realname + "', '/profile/" + ProfileUrl + ".aspx', '" +
                                                    Status + "', '" + School + "', '" + Location + "', " + AccountId + ", " + UserId + ")\"" +
                                    " onmouseout = 'Popmouseout();'" +
                                    " class='commentUsername'>" + Username + "</a><span class='commentDatetime'>" + Date + " " + Time + "</span></div>" + 
                                    "<br />" + CommentText;
                                    
    if (OwnerUserId == LoggedInUser)
        commentsListHtml += "<br /><a href='javascript:void(0);' onclick='deleteComment(" + CommentId + ");'>Delete</a></li>";
    else
        commentsListHtml += "</li>";
        

    spnCommentsCount.innerHTML = commentsCount;
    
    commentsList.innerHTML += commentsListHtml;
    
    Effect.Appear('comment_' + CommentId, {duration: 0.3});
                            
    txtCommentText.value = '';
    
    Effect.BlindUp('addCommentDiv_' + NewsId, { duration: 0.5 });
    if (commentsContainer.style.display == 'none')
        showComments(NewsId);
    
}

function showComments(NewsId)
{
    var commentsContainer = document.getElementById('commentsContainer_' + NewsId);
    setSpanValue('NewsId', NewsId);
    
    if (commentsContainer.style.display == 'none')
    {
        loadComments(NewsId);
    }
    else
    {
        Effect.BlindUp('commentsContainer_' + NewsId, { duration: 0.5 });
    }
}

function deleteComment(CommentId)
{
    engProfile.DeleteNewsComment(CommentId, callback_deleteComment);
}

function callback_deleteComment(res)
{
    var dt = res.value;
    var CommentId = dt.Rows[0].Id;
    var NewsId = dt.Rows[0].NewsId;
    
    var CommentLi = document.getElementById('comment_' + CommentId);
    var CommentList = document.getElementById('comments_' + NewsId);
    
    Effect.Fade('comment_' + CommentId, { duration:0.3 });
    
    var spnCommentsCount = document.getElementById('spnCommentsCount_' + NewsId);
    var commentsCount = spnCommentsCount.innerHTML;
    commentsCount--;
    
    spnCommentsCount.innerHTML = commentsCount;
}

function showAddComment(NewsId)
{
    var addCommentDiv = document.getElementById('addCommentDiv_' + NewsId);
    
    Effect.toggle('addCommentDiv_' + NewsId, 'blind', { duration: 0.5 });
}