var Comments=new Class({Implements:[Events,Options],options:{comment_clone:new Element("li",{"class":"comment"}),comments_list:false,preview_module:new Element("div",{"class":"preview module"}),extra_actions:[],extra_actions_handler:$empty},initialize:function(A,C,B){this.container=$(A);if(!this.container){return false;}this.form=$(C);this.setOptions(B);this.initInterface(this.options.extra_actions);},toElement:function(){return this.form;},initInterface:function(A){if(!A.length){return false;}A.each(this.options.extra_actions_handler,this);
return this;},post:function(B){this.checkCommentsList();var A=this.options.comment_clone.clone().set("html",B).fade("hide").inject(this.comments_list,"top").fade("in");this.fireEvent("postComment",A);A=null;this.reset();},preview:function(A,B){A=A||false;if(A&&this.preview_module){this.preview_module.dispose();this.fireEvent("removePreview");}if(B){this.preview_module=this.options.preview_module.set("html",B).inject(this.container,"after");this.fireEvent("previewComment");}},reset:function(){this.preview(true);
this.form.reset();},update:function(A){this.checkCommentsList().set("html",A);this.fireEvent("updateComments",A);},checkCommentsList:function(){if(this.comments_list){return this.comments_list;}else{return this.comments_list=this.options.comments_list?$(this.options.comments_list):new Element("ul",{"class":"comments"}).inject(new Element("div",{"class":"body"}).inject(new Element("div",{"class":"posted_comments module contain_singles"}).inject(this.container,"after")));}}});Comments.ActionHandlers=new Class({initialize:function(A){this.handlers=A||{};
},set:function(A,B){return this.handlers[A]=B;},get:function(A){return this.handlers[A]||false;}});Comments.CustomInterface=new Class({Extends:Comments,options:{load_request_options:{},sort:2,comments_wrap:false,counter:false,comments_msg:new Element("p",{"class":"error_msg"})},initialize:function(A,C,B){this.parent(A,C,B);if(C){C.get("send").addEvents({success:this.formSuccess.bind(this),complete:this.formComplete.bind(this)});}this.comments_wrap=$(this.options.comments_wrap);},getLoadRequest:function(){if(this.load_request){return this.load_request;
}else{return this.load_request=new Request.JSON(this.options.load_request_options);}},ratings:function(A){if(!A){return false;}var B=A.getElements("a.agree, a.disagree");if(B.length>=1){new CommentThumbRater(B[0],B[1]);}return A;},setCommentMsg:function(A){if(!this.comments_msg){this.comments_msg=$(this.options.comments_msg);}return this.comments_msg.set("html",A).inject(this.container,"after");},setCounter:function(A){if($type(this.options.counter)==="element"){this.options.counter.set("html",A);
}},setTracking:function(A){if(A){new Element("img",{alt:"",src:A,"class":"tracking_gif"}).inject($(document.body),"top");}},formSuccess:function(C,A){var B=JSON.decode(C);if(B.data.has_validation_errors){this.preview(true);this.setCommentMsg(B.template);(function(){this.comments_msg.dispose();}).delay(3000,this);}else{if(["preview","spellcheck"].contains(this.submit_type)||!this.form.getElement("textarea").get("value")){this.preview(false,B.template);}else{if(B.data.msg_posted){this.post(B.template,B);
this.setCounter(B.data.topic.comment_count+" Comment"+((B.data.topic.comment_count!=1)?"s":""));if(B.publish_to_facebook){FB.ensureInit(function(){var D='I just commented on the story "'+B.publish_to_facebook["post-title"]+'", saying, "'+B.publish_to_facebook["comment-text"]+'"';var E={name:B.publish_to_facebook["post-title"],href:B.publish_to_facebook["post-url"]};FB.Connect.streamPublish(D,E);});}}}}if(B.data.useract){this.setTracking(B.data.useract_tracking_url);}this.submit_type=null;},formComplete:function(){switch(this.submit_type){case"preview":case"spellcheck":this.form.getElement("input[name=mode]").set("value","submit");
this.form.getElement("input[name=check_spelling]").set("value","");break;}}});(function(){var B=function(G,F){G.stop();this.submit_type=F.type;if(F.type==="spellcheck"){this.form.getElement("input[name=check_spelling]").set("value",true);}this.form.getElement("input[name=mode]").set("value","preview");this.form.send();},C=function(G,F){G.stop();this.reset();this.submit_type=null;},D=function(G,F){G.stop();F.comment.getElement("p.display_criteria").toggleClass("hide_comment");F.comment.getElement("div.wrap").toggleClass("hide_comment");
},E=function(H,F){H.stop();var G=F.element.getJSONData("rel")||{};(G.msg_sort)?(this.options.sort=G.msg_sort):(G.msg_sort=this.options.sort);this.getLoadRequest().send({data:G});},A=function(H,F){H.stop();this.checkCommentsList().slide("hide");this.setCommentMsg("Checking for new messages&hellip;");var G=F.comment_data.getJSONData("rel")||{};G.check_for_msgs=true;this.getLoadRequest().send({data:G});};Comments.CustomInterface.Handlers=new Comments.ActionHandlers({preview:B,spellcheck:B,reset:C,comment_toggle:D,misc:E,refresh:A});
})();Comments.CustomInterface.extra_actions_handler=function(C,B,A){var D=Comments.CustomInterface.Handlers.get(C.type);if(D){D=D.bindWithEvent(this,C);C.element.addEvent("click",D);return true;}else{return false;}};window.addEvent("domready",function(){var I={container_id:"generic_comments",form_wrapper:"div.add_comment",extra_actions_container:"ul.extra_actions",extra_actions_refresh:"div.head a",comment_data:"a.post_comment",extra_actions_misc:"ul.tabs a.firstlast, ul.tabs a.latest, div.story div.page_nav a",extra_actions_toggler:"a.toggle_comment",comments_list_wrap:"div.posted_comments div.body",comments_list:"div.posted_comments ul.comments",comment:"li.comment",details:"li.comment ul.details",counter:"h2"};
var C=$(I.container_id);if(!C){return false;}var E=C.getElement(I.form_wrapper),D=E.getElement("form");if(D){D.set("send",{url:"/pages/ajax/comment.php",link:"ignore"}).addEvent("submit",function(J){J.stop();(this.hasClass("edit_comment"))?D.submit():D.send();});}var F=[];if(D&&!D.hasClass("edit_comment")){var H=D.getElement(I.extra_actions_container);if(H){H.addClass("on").getElements("a").each(function(K,J){F.push({element:K,type:K.get("class")});});}}var G=C.getElement(I.extra_actions_refresh);
if(G){F.push({element:G,type:"refresh",comment_data:C.getElement(I.comment_data)});}var B=function(){var J=[];var L=C.getElements(I.extra_actions_misc).each(function(M){J.push({element:M,type:"misc"});});var K=C.getElements(I.comment).each(function(M){M.getElements(I.extra_actions_toggler).each(function(N){J.push({element:N,type:"comment_toggle",comment:M});});});return J;};var A=new Comments.CustomInterface(E,D,{load_request_options:{url:"/pages/ajax/load_comments.php",onSuccess:function(J,L){if(J.has_new_msgs){A.setCommentMsg("Found new messages, please wait&hellip;");
J.cpage=0;J.checkNew=true;if(A.comments_wrap){A.comments_wrap.addClass("loading").empty();}J.msg_sort=A.options.sort;this.send.delay(500,this,{data:J});}else{if(J.template&&J.template!=""){var K=A.comments_wrap.getParent().set("html",J.template);A.comments_wrap=C.getElement(I.comments_list_wrap);A.comments_list=C.getElement(I.comments_list);A.initInterface(B());new Moderation(A.comments_list.getElements("form"));A.comments_list.getElements(I.details).each(A.ratings);A.setCounter(J.topic.comment_count+" Comment"+((J.topic.comment_count!=1)?"s":""));
}else{A.setCommentMsg("No new messages found.");}}if(!J.template){(function(){this.comments_msg.dispose();this.comments_list.slide("show");}).delay(3000,A);}},onComplete:function(){A.comments_wrap.removeClass("loading");}},comments_wrap:C.getElement(I.comments_list_wrap),comments_list:C.getElement(I.comments_list),extra_actions:B().concat(F),extra_actions_handler:Comments.CustomInterface.extra_actions_handler,counter:C.getElement(I.counter),onPostComment:function(J){var K=J.getElement("form");if(!K){return false;
}new Moderation(K);this.ratings(J);}});C.getElements(I.details).each(A.ratings);});