<%
/*
<!--

  Copyright (C) 2003-2013 eXo Platform SAS.
 
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU Affero General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  GNU Affero General Public License for more details.
 
  You should have received a copy of the GNU Affero General Public License
  along with this program. If not, see <http://www.gnu.org/licenses/>.

-->
*/

%>
<%
  import org.apache.commons.lang.ArrayUtils;
  import org.exoplatform.portal.webui.util.Util;
  import org.exoplatform.webui.form.UIFormTextAreaInput;
  import org.exoplatform.social.core.service.LinkProvider;
  import org.exoplatform.social.core.space.model.Space;
  import org.exoplatform.social.webui.Utils;
  import org.exoplatform.social.core.service.LinkProvider;
  import org.apache.commons.lang.StringEscapeUtils;

  import static org.exoplatform.social.webui.activity.BaseUIActivity.TEMPLATE_PARAM_COMMENT;

  def pcontext = Util.getPortalRequestContext();
  def labelActivityHasBeenDeleted = _ctx.appRes("UIActivity.label.Activity_Has_Been_Deleted");
  def activity = uicomponent.getActivity();
  def activityDeletable = uicomponent.isActivityDeletable();
  def activityCommentAndLikable = uicomponent.isActivityCommentAndLikable();
  def streamOwner = activity.getStreamOwner();
  String viewActivityTip = _ctx.appRes("UIActivity.msg.ViewActivity");
  def deleteActivityTip = _ctx.appRes("UIActivity.msg.DeleteActivity");
%>

<% if (activity) { //process if not null

  def jsManager = pcontext.getJavascriptManager().require("SHARED/uiForm");

  def labelComment = _ctx.appRes("UIActivity.label.Comment");
  def labelCancel = _ctx.appRes("UIActivity.label.Cancel");
  def labelLike = _ctx.appRes("UIActivity.label.Like");
  def labelUpdate = _ctx.appRes("UIActivity.label.Update");
  def labelEdit = _ctx.appRes("UIActivity.label.Edit");
  def labelDelete = _ctx.appRes("UIActivity.label.Delete");
  def labelUnlike = _ctx.appRes("UIActivity.label.Unlike");
  def labelViewAllReplies = _ctx.appRes("UIActivity.label.ViewAllReplies");
  def labelSource = _ctx.appRes("UIActivity.label.Source");
  def inputWriteAComment = _ctx.appRes("UIActivity.input.Add_your_comment").replace("'", "\\'");
  def labelShowAllComments = _ctx.appRes("UIActivity.label.Show_All_Comments");
  def labelHideAllComments = _ctx.appRes("UIActivity.label.Hide_All_Comments");
  def labelShowPreviousComments = _ctx.appRes("UIActivity.label.Show_Previous_Comments");
  
  def labelOnePersonLikeThis=_ctx.appRes("UIActivity.label.One_Person_Like_This");
  def labelTwoPersonLikeThis=_ctx.appRes("UIActivity.label.Two_Person_Like_This");
  def labelOneAndOthersLikeThis=_ctx.appRes("UIActivity.label.One_And_Others_Like_This");
  def labelYouLikeThis=_ctx.appRes("UIActivity.label.You_Like_This");
  def labelYouAndOnePersonLikeThis=_ctx.appRes("UIActivity.label.You_And_One_Person_Like_This");
  def labelYouAndOthersLikeThis=_ctx.appRes("UIActivity.label.You_And_Others_Like_This");
  
  def captionConfirmation=StringEscapeUtils.escapeHtml(_ctx.appRes("UIActivity.label.Confirmation"));
  def labelConfirmbutton=StringEscapeUtils.escapeHtml(_ctx.appRes("UIActivity.label.Confirm_Delete_Activity-Button"));
  def labelClosebutton=StringEscapeUtils.escapeHtml(_ctx.appRes("UIActivity.label.Cancel_Delete_Activity-Button"));
  def labelToDeleteThisComment=StringEscapeUtils.escapeHtml(_ctx.appRes("UIActivity.msg.Are_You_Sure_To_Delete_This_Comment"));
  def labelToDeleteThisActivity=StringEscapeUtils.escapeHtml(_ctx.appRes("UIActivity.msg.Are_You_Sure_To_Delete_This_Activity"));

  def likeActivityAction = uicomponent.event("LikeActivity", "true");
  def unlikeActivityAction = uicomponent.event("LikeActivity", "false");

  def commentList = uicomponent.getComments();
  def allComments = uicomponent.getAllComments();
  def totalComments = uicomponent.getAllCommentSize();
  if (allComments) {
    labelShowAllComments = labelShowAllComments.replace("{0}", totalComments + "");
    labelHideAllComments = labelHideAllComments.replace("{0}", totalComments + "");

  }
  
  def parentCommentsSize = uicomponent.getParentCommentsSize(commentList);
  def commentsHidden = totalComments-parentCommentsSize;
  def displayedIdentityLikes = uicomponent.getDisplayedIdentityLikes();
  def identityLikesNum = 0;
  def totalLikesNum = uicomponent.getIdentityLikes().length;
  def labelLikes = null;
  def loadLikesAction = uicomponent.event("LoadLikes");
  if (displayedIdentityLikes != null) {
    identityLikesNum = displayedIdentityLikes.length;
  }
  
  def commentListStatus = uicomponent.getCommentListStatus();
  def commentFormDisplayed = uicomponent.isCommentFormDisplayed();
  def likesDisplayed = uicomponent.isAllLoaded();
  def placeholder = _ctx.appRes("UIActivity.comment.placeholder").replace("'", "\\'");

  def LikePopupTitleLabel = _ctx.appRes("UIActivity.title.PopupCommentLikers");
  def IgnoreLabel = _ctx.appRes("UserProfilePopup.label.Ignore");
  def ConnectLabel = _ctx.appRes("UserProfilePopup.label.Connect");
  def ConfirmLabel = _ctx.appRes("UserProfilePopup.label.Confirm");
  def CancelRequestLabel = _ctx.appRes("UserProfilePopup.label.CancelRequest");
  def RemoveConnectionLabel = _ctx.appRes("UserProfilePopup.label.RemoveConnection");
  def labels = """ {
    LikePopupTitle: '$LikePopupTitleLabel',
    Connect: '$ConnectLabel',
    Confirm: '$ConfirmLabel',
    CancelRequest: '$CancelRequestLabel',
    RemoveConnection: '$RemoveConnectionLabel',
    Ignore: '$IgnoreLabel'
  }"""
  def spaceGroupId = uicomponent.getSpaceGroupId();

  //params for init UIActivity javascript object
  def params = """ {
    activityId: '${activity.id}',
    placeholderComment: '${placeholder}',
    spaceGroupId: '$spaceGroupId',
    inputWriteAComment: '$inputWriteAComment',
    commentMinCharactersAllowed: '${uicomponent.getCommentMinCharactersAllowed()}',
    commentMaxCharactersAllowed: '${uicomponent.getCommentMaxCharactersAllowed()}',
    commentFormDisplayed: '$commentFormDisplayed',
    allCommentSize: '${allComments.size()}',
    commentFormFocused: '${uicomponent.isCommentFormFocused()}',
    labels: $labels
  } """

  jsManager.require("SHARED/jquery", "jq")
           .require("SHARED/bts_tooltip").addScripts("jq('*[rel=\"tooltip\"]').tooltip();")
           .require("SHARED/social-ui-activity", "activity").addScripts("activity.onLoad($params);");

  //make sures commentFormFocused is set to false to prevent any refresh to focus, only focus after post a comment
  uicomponent.setCommentFormFocused(false);
  def ownerName, ownerUri = "#", ownerAvatar, activityPostedTime;
  def listPeopleLikeBlockClass = "", listPeopleBGClass = "";

  if (!likesDisplayed) {
    listPeopleLikeBlockClass = "displayNone";
  }

  if (uicomponent.isLiked()) {
    if (totalLikesNum > 2) {
      labelLikes = labelYouAndOthersLikeThis.replace("{0}", totalLikesNum - 1 + "");
    } else if (totalLikesNum == 2) {
      def likeId = (displayedIdentityLikes[0] == Utils.getViewerIdentity().getId()) ? displayedIdentityLikes[1] : displayedIdentityLikes[0];
      def id = Utils.getIdentityManager().getIdentity(likeId);
      labelLikes = labelYouAndOnePersonLikeThis.replace("{0}", StringEscapeUtils.escapeHtml(id.profile.fullName));
    } else {
      labelLikes = labelYouLikeThis;
    }
  } else {
    if (totalLikesNum > 2) {
      def id = Utils.getIdentityManager().getIdentity(displayedIdentityLikes[0]);
      labelLikes = labelOneAndOthersLikeThis.replace("{0}", StringEscapeUtils.escapeHtml(id.profile.fullName)).replace("{1}", totalLikesNum - 1 + "");
    } else if (totalLikesNum == 1) {
      def id = Utils.getIdentityManager().getIdentity(displayedIdentityLikes[0]);
      labelLikes = labelOnePersonLikeThis.replace("{0}", StringEscapeUtils.escapeHtml(id.profile.fullName));
    } else if (totalLikesNum == 2) {
      def id1 = Utils.getIdentityManager().getIdentity(displayedIdentityLikes[0]);
      def id2 = Utils.getIdentityManager().getIdentity(displayedIdentityLikes[1]);
      labelLikes = labelTwoPersonLikeThis.replace("{0}", StringEscapeUtils.escapeHtml(id1.profile.fullName)).replace("{1}", StringEscapeUtils.escapeHtml(id2.profile.fullName));
    }
  }

  if (!labelLikes) {
   //hides diplayPeopleBG
   listPeopleBGClass = "displayNone";
  }

  activityPostedTime = uicomponent.getRelativeTimeLabel(_ctx, activity.postedTime);
  def ownerIdentity = uicomponent.ownerIdentity;
  def profile = ownerIdentity.profile;
  if (uicomponent.isUserActivity()) {
    ownerUri = LinkProvider.getUserProfileUri(ownerIdentity.getRemoteId());
    ownerAvatar = profile.avatarUrl;
    ownerName = StringEscapeUtils.escapeHtml(profile.fullName);
    if (!ownerAvatar) ownerAvatar= LinkProvider.PROFILE_DEFAULT_AVATAR_URL;
    if (spaceGroupId.length() > 0) {
      Space space = Utils.getSpaceService().getSpaceByGroupId(spaceGroupId);
      def spaceAvatar;
      if (space != null) {
        spaceAvatar = space.avatarUrl;
      }
      if (!spaceAvatar) spaceAvatar = LinkProvider.SPACE_DEFAULT_AVATAR_URL;
    }
  } else if(uicomponent.isSpaceActivity()){
    Space space = Utils.getSpaceService().getSpaceByPrettyName(ownerIdentity.remoteId);
    ownerUri = Utils.getSpaceHomeURL(space);
    ownerAvatar = space.avatarUrl;
    ownerName = space.displayName;
    ownerDescription = space.description;
    ownerMembers = space.members;
    if (!ownerAvatar) ownerAvatar = LinkProvider.SPACE_DEFAULT_AVATAR_URL;
  } else {
    ownerUri = profile.url;
    ownerAvatar = profile.avatarUrl;
    ownerName = StringEscapeUtils.escapeHtml(profile.fullName);
  }
  def currentTime = System.currentTimeMillis();

    def spaceSourceURI, spaceName, spaceImageSource, spaceID;
    if (uicomponent.isUserActivity() && uicomponent.isSpaceStreamOwner() && !uicomponent.isUISpaceActivitiesDisplay()) {

        Space spaceSource = Utils.getSpaceService().getSpaceByPrettyName(streamOwner);
        spaceID = spaceSource.getId();
        if (spaceSource != null) {
            spaceSourceURI = LinkProvider.getSpaceUri(spaceSource.url);
            spaceName = spaceSource.displayName;
            spaceImageSource = spaceSource.getAvatarUrl();
            if (spaceImageSource == null) {
                spaceImageSource = LinkProvider.SPACE_DEFAULT_AVATAR_URL;
            }
        } else {
            spaceSourceURI = LinkProvider.getActivityUriForSpace(streamOwner, streamOwner);
            spaceName = StringEscapeUtils.escapeHtml(Utils.getSpaceIdentity(streamOwner, false).profile.fullName);
            spaceImageSource = LinkProvider.SPACE_DEFAULT_AVATAR_URL;
        }
    }
  def viewerId = Utils.getViewerIdentity().getId();
  if (!uicomponent.isDeletedSpace(streamOwner)){
    def votes = uicomponent.getVotes();
    def numberOfVoters = uicomponent.getTotalOfVoters();
%>

<div class="activityStream uiPollActivity" id="activityContainer${activity.id}" >
  <% uiform.begin() %>
	 <div class="activityTimeLine pull-left">
		<div class="activityAvatar avatarCircle">
			<a title="$ownerName" href="$ownerUri">
			  <img alt="$ownerName" src="$ownerAvatar"/>
			</a>
		</div>
	</div><!--end activityTimeLine-->
<div class="boxContainer" id="boxContainer">
	<div id="ContextBox${activity.id}" class="uiBox contentBox">
		<div id="ActivityContextBox${activity.id}">
		  <div class="heading">
				<span class="arrowLeft"></span>
                <!--div class="pull-right"-->
			    <%
			  		if( activityDeletable ) {
			    %>
                    <div id="dropDownEditActivity${activity.id}" class="btn-group uiDropdownWithIcon actLink hidden-phone hidden-tablet">
                        <div class="dropdown-toggle" data-toggle="dropdown">
                            <i class="uiIconActivityAction uiIconLightGray">
                            </i>
                        </div>
                        <ul class="dropdown-menu pull-right" role="menu">
                            <%
							if (activityDeletable) {
                            %>
                            <li>
                                <a href="javascript:void(0)" data-confirm="$labelToDeleteThisActivity" data-caption="$captionConfirmation" data-close="$labelClosebutton" data-ok="$labelConfirmbutton"  data-delete="<%=uicomponent.event("DeleteActivity", uicomponent.getId(), "");%>" class="controllDelete" id="DeleteActivityButton${activity.id}">${labelDelete}</a>
                            </li>
                            <%}%>
                        </ul>
                    </div>
			    <%
			     }
			    %>
                <!--/div-->
				<div class="author">
       					<div class="hidden-desktop circleSpaceAvatar">
           				    <a href="$ownerUri">
                                 <img alt="$ownerName" src="$ownerAvatar"/>
                               </a>
                         </div>
						<% if (uicomponent.isUserActivity() && uicomponent.isSpaceStreamOwner() && !uicomponent.isUISpaceActivitiesDisplay()) {
					%>
                        <div class="ownerName">
   							<a title="$ownerName" href="$ownerUri">$ownerName</a>
   					 	</div>
						<a class="space-avatar spaceName" href="$spaceSourceURI" space-data="$spaceID"><span class="uiIconArrowRightMini uiIconLightGray"></span>
							<img  class="avatarMini" alt="$spaceName" src="$spaceImageSource"/>&nbsp;$spaceName
						</a>
					<%} else{%>
                        <div class="owner">
   							<a title="$ownerName" href="$ownerUri">$ownerName</a>
   					 	</div>
					<%}%>
				</div>
				<div class="dataInfor">
					<span class="dateTime"><i class="uiIconClock  uiIconLightGray"></i>&nbsp;<a id="EditActivityTime${activity.id}" rel="tooltip" data-placement="bottom" href="<%=uicomponent.getActivityPermalink(activity.id)%>">$activityPostedTime</a></span>
     				<div class=" actionLink hidden-desktop visible-tablet visible-phone">
     				  <a id="Permalink${activity.id}" class="uiIconLink uiIconLightGray" rel="tooltip" data-placement="bottom" title="$viewActivityTip" href="<%=uicomponent.getActivityPermalink(activity.id)%>"></a>
     				 <% if (activityDeletable) {%>
     					<a href="javascript:void(0)" data-confirm="$labelToDeleteThisActivity"
     					    data-caption="$captionConfirmation" data-close="$labelClosebutton"
     					    data-ok="$labelConfirmbutton"
     					    data-delete="<%=uicomponent.event("DeleteActivity", uicomponent.getId(), "");%>"
     					    class="uiIconClose uiIconLightGray controllDelete"
     					    rel="tooltip" data-placement="bottom" title="$deleteActivityTip"
     					    id="DeleteActivityButton${activity.id}"></a>
     				  <%}%>
     				</div>
				</div>
			</div><!--end heading-->
			<div class="uiBox roundedBottom introBox pollShare">
				<div class="clearfix pollTitle">
					<div class="pull-right">
						  <span class="numberVoted">$numberOfVoters</span>
					</div>
					<h5>
						 <a  href="${uicomponent.getLink()}">
							$activity.title
						  </a>
					</h5>
				</div>
				<!--begin hardcode-->
			     <div class="infoVote">

			     	<%
			         for (vote in votes) {
			           String solution = vote.key;
			           String percent = vote.value.get(0) + "%";
			           String nbVotes = vote.value.get(1);
            		%>
						     <div class="voteRow clearfix">
									<div class="progressing">
										$percent ($nbVotes)
									</div>
									<div class="titleVote" data-placement="bottom"data-original-title="${solution}">
										<span class="text-vote">$solution</span>
									</div>
									<div class="progressBar">
										<div class="progress">
											<div class="bar" style="width: ${percent};"></div>
										</div>
									</div>
							 </div>	<!--end voteRow-->
						<% } %>

                    <%
					 jsManager.require("SHARED/jquery", "jq")
                              .require("SHARED/bts_tooltip").addScripts("jq('.infoVote .titleVote .text-vote').each(function(){ var width = jq(this).width(); if(width >= 290){ jq(this).parent().addClass('has-tooltip'); } }); jq('.has-tooltip').tooltip();");
				    %>
				</div>		<!--end hardcode-->
			</div><!--end pollShare-->
            <div class="desktop-input clearfix">
                <div class="blastInputPeople hideEffect">
                    <div>
                    <% uicomponent.renderChild(uicomponent.COMPOSER_TEXT_AREA_EDIT_INPUT+activity.id); %>
                        <div class="uiAction paddingAction">
                            <button class="btn pull-left btn-primary" onclick="<%=uicomponent.event("EditActivity")%>" id="EditActivityButton${activity.id}">${labelUpdate}</button>&nbsp;
                            <button href="javascript:void(0)" data-cancel-edit-comment-id="${activity.id}" class="btn pull-left" id="DeleteEditCommentButton${activity.id}">${labelCancel}</button>
                        </div>
                    </div>
                </div>
            </div>
		<div class="actionBar clearfix ">
			 <% def toggleDisplayCommentAction = uicomponent.event('ToggleDisplayCommentForm', null, false);
						 def commentLink = "";
					  %>
			 <% if (! activity.isLocked()) { %>
			<ul class="pull-right statusAction">
				<li>
                    <a class="$commentLink"  id="CommentLink${activity.id}" data-activity="${activity.id}" href="javascript:void(0);">
						<i class="uiIconComment uiIconLightGray"></i>&nbsp;$totalComments
					</a>
				</li>
			  <% if (uicomponent.isLiked()) { %>
				<li>
					<a onclick="$unlikeActivityAction" rel="tooltip" data-placement="bottom" title="<%=_ctx.appRes("UIActivity.msg.UnlikeActivity"); %>" id="UnLikeLink${activity.id}" href="javascript:void(0);">
					   <i class="uiIconThumbUp uiIconBlue"></i>&nbsp;$totalLikesNum
					</a>
				</li>
			  <% } else { %>
				<li>
					<a onclick="$likeActivityAction" rel="tooltip" data-placement="bottom" title="<%=_ctx.appRes("UIActivity.msg.LikeActivity"); %>" id="LikeLink${activity.id}" href="javascript:void(0);">
					  <i class="uiIconThumbUp uiIconLightGray"></i>&nbsp;$totalLikesNum
					</a>
				</li>
			  <% }%>
			</ul>
			 <% }%>
			<div class="pull-left statusAction">
				 <a href="${uicomponent.getLink()}">
					 <i class="uiIconSocVote uiIconSocLightGray"></i>&nbsp;<%=_ctx.appRes("PollUIActivity.action.vote");%>
				  </a>
			</div>
			</div><!--end actionBar-->
			<% if (identityLikesNum > 0 || uicomponent.isLiked()) {%>
			<div class="listLikedBox $listPeopleBGClass">
				  <div class="listPeopleContent">
				  <% if (!labelLikes) { labelLikes = ""; } %>
							<p>$labelLikes</p>

					<% if (identityLikesNum > 0) {%>
					<div class="listLiked">
					<%
					displayedIdentityLikes.each({
					  def id = Utils.getIdentityManager().getIdentity(it);
					  personLikeFullName = StringEscapeUtils.escapeHtml(id.profile.fullName);
					  personLikeProfileUri = LinkProvider.getUserProfileUri(id.getRemoteId());
					  personLikeAvatarImageSource = id.profile.avatarUrl;
					  if (!personLikeAvatarImageSource) { personLikeAvatarImageSource = LinkProvider.PROFILE_DEFAULT_AVATAR_URL; }
					  %>
						<a class="avatarXSmall" title="$personLikeFullName" href="$personLikeProfileUri">
						  <img src="$personLikeAvatarImageSource" alt="$personLikeFullName" />
						</a>
					 <% })%>
            <button onclick="$loadLikesAction" class="btn">...</button>
					</div>
					<% }%>
				 </div>
			</div><!--end list like people-->
			<%}%>
			<div id="CommentBlockBound${activity.id}" class="commentBox ">
			  <% if (uicomponent.commentListToggleable()) {
			  def showAllCommentsAction = uicomponent.event("SetCommentListStatus", "all");
			  def hideAllCommentsAction = uicomponent.event("SetCommentListStatus", "none");
			  def loadPreviousCommentsAction = uicomponent.event("SetCommentListStatus", "all");
			  %>
			  <div class="commentListInfo clearfix">
				<div class="pull-right numberComment">$commentsHidden/$totalComments</div>
				<% if (commentListStatus.getStatus().equals("latest") || commentListStatus.getStatus().equals("none")) { %>
				  <a onclick="$showAllCommentsAction" href="javascript:void(0);">$labelShowAllComments</a>
				<% } else if (commentListStatus.getStatus().equals("all")) { %>
				      <% if (commentsHidden > 0) { %>
                <a onclick="$loadPreviousCommentsAction" href="javascript:void(0);">$labelShowPreviousComments</a>
              <% } else { %>
                <a onclick="$hideAllCommentsAction" href="javascript:void(0);">$labelHideAllComments</a>
              <% } %>
			  <% } %>
			  </div>
			<% } %>
			<div class="commentList">
			<%
			def commenterFullName, commenterProfileUri, commentMessage, commentPostedTime, commenterAvatarImgSrc, commentAbsolutePostedTime;
			def first = true, commentContentClass;
			def commentCounter = 0;
            def subCommentSize = 0;
            def subCommentIndex = 0;
            def subCommentClass = "";
            def hideSubComments = true;
            def updatedCommentId = uicomponent.getAndSetUpdatedCommentId(null);
            def showSubComments = false;
            def updatedComment;
            if (updatedCommentId) {
              updatedComment = Utils.getActivityManager().getActivity(updatedCommentId);
            }
            commentList.each({
              commentCounter++;
              if (first & !uicomponent.commentListToggleable()) {
                  commentContentClass = "commentContent";
                  first = false;
              } else {
                  commentContentClass = "";
              }
              def id = Utils.getIdentityManager().getIdentity(it.userId);
              commenterFullName = StringEscapeUtils.escapeHtml(id.profile.fullName);
              commenterProfileUri = LinkProvider.getUserProfileUri(id.getRemoteId());
              def commentParentClass = it.parentCommentId == null ? "CommentBlock" : (subCommentClass + " subCommentBlock");
              if(it.parentCommentId == null) {
                subCommentSize = uicomponent.getSubCommentsSize(commentList, it.id);
                subCommentIndex = 0;
                if (updatedCommentId) {
                  if(updatedComment.parentCommentId == it.id || updatedComment.id == it.id){
                    showSubComments = true;
                  } else{
                    showSubComments = false;
                  }
                }
                hideSubComments = subCommentSize > 2 && (updatedCommentId == null || !showSubComments);
                if(hideSubComments){
                  subCommentClass = "hidden";
                } else {
                  subCommentClass = "";
                }
              } else {
                   subCommentIndex++;
                   if(hideSubComments && subCommentIndex == subCommentSize) {
                       %>
                      <div class="commentItem clearfix subCommentBlock subCommentShowAll" id="SubCommentShowAll_$it.parentCommentId">
                        <a href="javascript:void(0)" class="subCommentShowAllLink" data-parent-comment="$it.parentCommentId">
                            <%=labelViewAllReplies.replace("{0}", String.valueOf(subCommentSize))%>
                        </a>
                      </div> 
                       <%
                   }
              }
			  commentMessage = it.title;
			  commentPostedTime = uicomponent.getRelativeTimeLabel(_ctx, it.postedTime);
			  commentEditedTime = uicomponent.getRelativeTimeLabel(_ctx, it.updated.getTime());
			  commentEditedTime = _ctx.appRes("UIActivity.label.EditedFrom").replace("{0}",commentEditedTime);
			  commentAbsolutePostedTime = uicomponent.getAbsolutePostedTime(it.postedTime);
			  commenterAvatarImgSrc = id.profile.avatarUrl;
			  if (!commenterAvatarImgSrc) commenterAvatarImgSrc = LinkProvider.PROFILE_DEFAULT_AVATAR_URL;
              def commentId = it.parentCommentId == null ? it.id : it.parentCommentId;
			%>
            <div id="commentContainer${it.id}" data-comment-id="$commentId" data-parent-comment="$it.parentCommentId" class="$commentParentClass">
			  <% if(commentCounter == commentList.size()) { %>
			  <div id="CommentBlock${activity.id}${commentCounter}" class="commentItem commentItemLast">
			  <% } else { %>
              <div id="CommentBlock${it.id}" class="commentItem">
			  <% }  %>
				<div class="commmentLeft">
					<a href="$commenterProfileUri" title="$commenterFullName" class="avatarXSmall">
					  <img alt="$commenterFullName" src="$commenterAvatarImgSrc" />
					</a>
				</div><!--end commentLeft-->
				<div class="commentRight">
					<div class="author">
						<a href="$commenterProfileUri">$commenterFullName</a>
					</div>
					<div class="contentComment">
						$commentMessage
					</div>
                    <div class="desktop-input clearfix">
                        <div class="blastInputPeople hideEffect">
                            <div>
                                <textarea class="textarea hideEffect paddingAction" name="composerEditComment${it.id}" id="composerEditComment${it.id}" rows="10" cols="30"></textarea>
                            </div>
                            <div class="uiAction">
                                <button class="btn pull-left btn-primary" data-edit-comment-id="${it.id}" data-edit-comment-activityid="${activity.id}" data-click="<%= uicomponent.event("EditComment","COMMENTID"); %>" id="EditCommentButton${it.id}">${labelUpdate}</button>&nbsp;
                                <button href="javascript:void(0)" data-cancel-edit-comment-id="${it.id}" class="btn pull-left" id="DeleteEditCommentButton${it.id}">${labelCancel}</button>
                            </div>
                        </div>
                    </div>
                    <%
                        _ctx.put(TEMPLATE_PARAM_COMMENT, it);
                        _ctx.put("authorName", id.remoteId);
                        _ctx.put("authorFullName", commenterFullName);
                        _ctx.put("activityID", activity.id);
                        _ctx.put("commentPostedTime", commentPostedTime);
                        _ctx.put("commentEditedTime", commentEditedTime);
                        _ctx.put("commentAbsolutePostedTime", commentAbsolutePostedTime);
                        def templateCommentActions = "war:/groovy/social/webui/activity/UIActivityCommentActions.gtmpl";
                        _ctx.include(templateCommentActions, uicomponent.getTemplateResourceResolver(_ctx.getRequestContext(), templateCommentActions));
                    %>
				</div><!--end commentRight-->
                <div class="clearfix"></div>
			  <%
			    def commentEditable = uicomponent.isActivityEditable(it);
			    def commentDeletable = uicomponent.isCommentDeletable(it.userId);
				  if(commentEditable || commentDeletable) {
			  %>
                        <div id="dropDownEditComment${it.id}" class="btn-group uiDropdownWithIcon actLink">
                            <div class="dropdown-toggle" data-toggle="dropdown">
                                <i class="uiIconActivityAction uiIconLightGray">
                                </i>
                            </div>
                            <ul class="dropdown-menu pull-right" role="menu">
								<% if(commentEditable) {%>
                                <li>
				                   <a id="CommentActivitylink${it.id}" data-edit-comment="${it.id}" class="" href="javascript:void(0)">${labelEdit}</a>
				                </li>
				                <%
								}
					                if (commentDeletable) {
					                String idDeleteComment = "DeleteCommentButton${it.id}";
				                %>
                                <li>
                                    <a href="javascript:void(0)" id="$idDeleteComment" data-confirm="$labelToDeleteThisComment" data-caption="$captionConfirmation" data-close="$labelClosebutton" data-ok="$labelConfirmbutton"  data-delete="<%= uicomponent.event("DeleteComment", uicomponent.id, it.id); %>"  class="controllDelete">${labelDelete}</a>
				                </li>
                                <% } %>
                            </ul>
                        </div>
				<%}%>
			  </div>
			 </div>
			<% }) %>
			</div> <!--end commentlist-->
			<div class="inputContainer" id="InputContainer${activity.id}">
			<%
			  def currentCommenterIdentity = uicomponent.getCommenterIdentity();
			  def currentCommenterUri = LinkProvider.getUserProfileUri(currentCommenterIdentity.getRemoteId());
			  def currentCommenterAvatar = currentCommenterIdentity.profile.avatarUrl;
			  def currentCommenterName = StringEscapeUtils.escapeHtml(currentCommenterIdentity.profile.fullName);
			  if (!currentCommenterAvatar) currentCommenterAvatar= LinkProvider.PROFILE_DEFAULT_AVATAR_URL;
			%>
			<% if (commentList.size() == 0) { %>
			  <div class="commentItem noCommentFormBox" id="CommentFormBlock${activity.id}">
			<% } else { %>
			  <div class="commentItem commentFormBox" id="CommentFormBlock${activity.id}">
			<% } %>
					<div class="commmentLeft">
						<a title="$currentCommenterName" href="$currentCommenterUri" class="avatarXSmall">
						   <img alt="$currentCommenterName" src="$currentCommenterAvatar"/>        
						</a>
					</div><!--end commentLeft--> 
					<div class="commentRight">
						<div class="commentInputBox ">
							<div class="commentInput"><% uicomponent.renderChild(UIFormTextAreaInput.class); %></div>
                            <button class="btn pull-left btn-primary" data-comment-button="${activity.id}" data-click="<%= uicomponent.event("PostComment", "COMMENTID") %>" id="CommentButton${activity.id}">$labelComment</button>
                            <button class="btn visible-phone" id="CancelButton${activity.id}">$labelCancel</button>
						</div>
					</div><!--end commentRight-->
                    <div class="clearfix"></div>
				</div> <!--end commentItem-->				
			  </div><!--end commentlist-->			  
			</div><!--end commentBox-->	
		</div><!--end #ActivityContextBox${activity.id}-->
	</div> <!--end ContextBox${activity.id}-->	
  </div> <!-- #boxContainer-->	  
  <% uiform.end() %>
</div><!--activityStream-->
<% } 
} else { %> <!-- activity deleted -->
<div class="activityStream deleted">$labelActivityHasBeenDeleted</div>
<% }%>
