Ka.Page.extend("Comments",{module:this,init:function(){var that=this;Ka.events.listen("ka-module-loaded",function(data){if(data.type==="comments"){that.Events.onModuleLoaded(data);}});},onDocReady:function(){},Ajax:{errorHandler:function(e){alert("Server Error: "+e);},getCustomPageComments:function(pageId,skip,limit,asId,callback){var errorHandler=this.errorHandler;DWREngine._execute(KickAppsBizComponent._path,"KickAppsBizComponent","getPageComments",pageId,skip,limit,asId,{callback:callback,errorHandler:this.errorHandler});},addComment:function(commentBody,pageId,userId,retcount,asId,callback){var errorHandler=this.errorHandler;DWREngine._execute(KickAppsBizComponent._path,"KickAppsBizComponent","addMediaComment",commentBody,pageId,"PAGE",userId,retcount,asId,{callback:callback,errorHandler:this.errorHandler});},loadComments:function(offset,limit,pageId,asId,callback){DWREngine._execute(KickAppsBizComponent._path,"KickAppsBizComponent","getPageComments",pageId,asId,offset,limit,{callback:callback,errorHandler:this.errorHandler});},deleteComment:function(commentId,userId,asId,mediaType,mediaId,role,callback){DWREngine._execute(KickAppsBizComponent._path,"KickAppsBizComponent","deleteComment",commentId,userId,asId,mediaType,mediaId,role,{callback:callback,errorHandler:this.errorHandler});},flagComment:function(commentId,reason,asId,callback){DWREngine._execute(KickAppsBizComponent._path,"KickAppsBizComponent","flagComment",commentId,"PAGE",reason,asId,{callback:callback,errorHandler:this.errorHandler});}},Actions:{updateFooterCounts:function($context,total){var visibleItemsCount=$context.find(".ka-item").alternate().length;$context.find(".ka-comments-footer .ka-pagination-total-visible").html(visibleItemsCount);$context.find(".ka-comments-footer .ka-pagination-total").html(total);var diff=total-visibleItemsCount;if(diff==0){$context.find(".ka-comments-footer a").remove();}if(diff>0){var limit=$context.find(".ka-pagination-load-next").data().limit;$context.find(".ka-pagination-total-next").html(diff>limit?limit:diff);}},incrementFooterCounts:function($context){var total=parseInt($context.find(".ka-pagination-total").html());this.updateFooterCounts($context,total+1);},decrementFooterCounts:function($context){var total=parseInt($context.find(".ka-pagination-total").html());this.updateFooterCounts($context,total-1);},toggleCommentForm:function($context){$context.find(".ka-add-comment-collapsed, .ka-add-comment-expanded").toggle();$context.find(".ka-add-comment-expanded:visible").ScrollTo();},displayCommentForm:function($context){if(!Ka.events.dispatchEvent("ka-modules-comments-before-display-comment-form")){return false;}this.toggleCommentForm($context);$context.find("textarea").val("");Ka.events.dispatchEvent("ka-modules-comments-after-display-comment-form");return false;},deleteComment:function(commentId,$context){var mod=Ka.Page.Modules.Comments;mod.Events.onDeleteComment(function(success){mod.Ajax.deleteComment(commentId,Ka.Info.USERID,Ka.Info.AFFILIATESITEID,"PAGE",Ka.Info.Page.PAGEID,Ka.Info.ROLENAME,function(success){mod.Events.onDeleteCommentCompleted(success,$context,commentId);
});});},flagComment:function(commentId,$context){var mod=Ka.Page.Modules.Comments;var tosHrf="/service/displayTOS.kickAction?as="+Ka.Info.AFFILIATESITEID;if(!Ka.events.dispatchEvent("custom-page-before-flag-comment",{commentId:commentId})){return false;}Ka.prompt(Ka.Messages.Common.flagCommentAsInappropriate.replace("($siteName)",Ka.Info.SITENAME).replace("($tosHref)",tosHrf),function(reason){mod.Events.onFlagComment(function(){mod.Ajax.flagComment(commentId,reason,Ka.Info.AFFILIATESITEID,function(success){mod.Events.onFlagCommentCompleted($context,success,commentId);});});});},addComment:function($context){var mod=Ka.Page.Modules.Comments;if(!Ka.events.dispatchEvent("ka-modules-comments-before-add-comment",{context:$context})){return false;}Ka.Page.Modules.RTE.saveAll();var that=this,commentBody=$context.find("textarea").val();mod.Ajax.addComment(commentBody,Ka.Info.Page.PAGEID,Ka.Info.USERID,5,Ka.Info.AFFILIATESITEID,function(result){mod.Events.onCommentAdded($context,commentBody,result);});return false;},cancelAddComment:function($context){if(!Ka.events.dispatchEvent("ka-modules-comments-before-cancel-add-comment",{context:$context})){return false;}this.toggleCommentForm($context);Ka.events.dispatchEvent("ka-modules-comments-after-cancel-add-comment",{context:$context});return false;},loadNext:function(data,$context){var mod=Ka.Page.Modules.Comments,offset=$context.find("li.ka-comment").length+1;mod.Ajax.loadComments(offset,data.limit,Ka.Info.Page.PAGEID,Ka.Info.AFFILIATESITEID,function(comments){mod.Events.onCommentsLoaded($context,comments);});}},Events:{mod:Ka.Page.Modules.Comments,onModuleLoaded:function(data){var mod=Ka.Page.Modules.Comments,$context=$j("#"+data.id);$context.find(".ka-pagination-load-next").data("limit",data.limit);$context.live("click",function(ev){var $target=$j(ev.target);switch(ev.target.tagName.toUpperCase()){case"BUTTON":if($target.hasClass("ka-add-comment-display-form")){mod.Actions.displayCommentForm($context);}else{if($target.hasClass("ka-add-comment-submit-form")){mod.Actions.addComment($context);}else{if($target.hasClass("ka-add-comment-hide-form")){mod.Actions.cancelAddComment($context);}else{return;}}}return false;case"A":if($target.hasClass("ka-pagination-load-next")){mod.Actions.loadNext($target.data(),$context);return false;}else{var $li=$target.parent(),commentIdAttr=$li.parents(".ka-comment").attr("id"),commentId=/.*-(\d*)/im.exec(commentIdAttr)[1];if($li.hasClass("ka-delete")){mod.Actions.deleteComment(commentId,$context);}else{if($li.hasClass("ka-flag")){mod.Actions.flagComment(commentId,$context);}else{return;}}}return false;}});$j(".ka-mod-comments").each(function(){$j(".ka-item",this).alternate();});},onCommentsLoaded:function($context,data){for(var i=0,len=data.comments.length;i<len;i++){var comment=data.comments[i];var newComment=$j("#comments-template").parseTemplate({createdAt:comment.createdAt,username:comment.username,body:comment.body,id:comment.messageId,userId:comment.fromUserId,pathToPreview:comment.pathToPhoto.supplant({"size":"48X48"})},false);
$context.find(".ka-comments-list").append(newComment);}Ka.Page.Modules.Comments.Actions.updateFooterCounts($context,data.totalComments);},onCommentsDisplayed:function(data){},onCommentAdded:function($context,body,id){var approved=true,mod=Ka.Page.Modules.Comments;if(id>0){mod.Actions.toggleCommentForm($context);var newComment=$j("#comments-template").parseTemplate({createdAt:Ka.Messages.CustomPages.JUST_NOW,username:Ka.Info.USERNAME,body:body,id:id,userId:Ka.Info.USERID,pathToPreview:Ka.Info.USERPHOTO},false);if(Ka.Info.AUTOAPPROVALCOMMENTS=="false"&&Ka.Info.AUTOAPPROVECONTENT!="T"){alert(Ka.Messages.InappFlag.YOURCOMMENTSHASBEENSUBMITTED);approved=false;}else{$context.find(".ka-comments-list").prepend(newComment);$context.find(".ka-item").alternate();Ka.Page.Modules.Comments.Actions.incrementFooterCounts($context);$context.find(".ka-no-comments").remove();}try{tinyMCE.editors["ka-comment-description"].setContent("");}catch(ex){$j("#ka-comment-description").val("");}}else{}Ka.events.dispatchEvent("ka-modules-comments-after-add-comment",{context:$context,approved:approved});},onDeleteComment:function(cb){cb();},onDeleteCommentCompleted:function(success,$context,commentId){if(success){$context.find("#ka-comment-"+commentId).slideUp();Ka.Page.Modules.Comments.Actions.decrementFooterCounts($context);}},onFlagComment:function(cb){cb();},onFlagCommentCompleted:function($context,success,commentId){if(success){var $flagLink=$context.find("#ka-comment-"+commentId).find(".ka-flag a");$flagLink.parent().removeClass("ka-flag").addClass("ka-flagged").append("<span>"+Ka.Messages.CustomPages.COMMENT_FLAGGED+"</span>");$flagLink.remove();}if(!Ka.events.dispatchEvent("custom-page-after-flag-comment",{commentId:commentId,success:success})){return false;}}}});
