var SITE_URL = "https://chatplayshare.com"; if(!URL_ROOT){ var URL_ROOT = "/"; } var plugin = { name : "comments", comments : {}, commentTimeout : null, commentsParsing : false, addingComment : false, replyingComment : false, newChild : false, newChildParent : false, options :{}, createOverlay: function(container, button){ button.html(""); container.append("
"); }, hideOverlay: function(container, button){ button.html(""); container.find(".details_overlay").remove(); }, integrate : function(plugins,options){ var framework = this; var headID = document.getElementsByTagName("head")[0]; if(document.getElementById("comments_plugin_css") == null){ var cssNode = document.createElement('link'); cssNode.id = "comments_plugin_css"; cssNode.type = 'text/css'; cssNode.rel = 'stylesheet'; cssNode.href = URLROOT + 'plugins/comments/css/comments.css'; cssNode.media = 'screen'; headID.appendChild(cssNode); } if(document.getElementById("comments_plugin_mobile_css") == null){ var cssNode = document.createElement('link'); cssNode.id = "comments_plugin_mobile_css"; cssNode.type = 'text/css'; cssNode.rel = 'stylesheet'; cssNode.href = URLROOT + 'plugins/comments/css/mobile/comments.css'; cssNode.media = 'screen'; headID.appendChild(cssNode); } var plugin = this; this.options = options; $(document).ready(function(){ var html = "\
"; if(options.title){ html = html + "

" + options.title + "

"; } if($d.session && $d.session.isLoggedIn()){ html += "
\
\
\
"; if(options.anonymous){ html += ""; } html += "\ \ \
\
\
"; }else{ html += ""; } html +="
\ \
\
    \
    \ "; var ele = $('#' + options.element) ele.append(html); if(typeof(uploader) != "undefined"){ new uploader({ field:ele.find(".comment_box_container"), button:ele.find(".upload_button").get(0), insertBefore:false, containField:false, stacked: false, fitted: true, floatRight:false }); ele.find(".comment_box_buttons").css({position:"absolute"}); } var textarea = ele.find("#comment"); var addComment = ele.find(".send_button"); if(addComment.length > 0){ addComment.click(function(){ framework.createOverlay(ele.find(".comment_box_container"),addComment); plugin.addComment(textarea,null,function(comment){ framework.hideOverlay(ele.find(".comment_box_container"),addComment); if(typeof(comment.error) == "undefined"){ textarea.html(""); } }); }); } var checkScroll = function(field){ console.log(field.clientHeight); if(field.clientHeight < field.scrollHeight || field.clientHeight >= 67){ ele.addClass("comment_scroll"); }else{ ele.removeClass("comment_scroll"); } }; textarea.keyup(function(e){ var Ucode = e.keyCode? e.keyCode : e.charCode; checkScroll(this); }); //setupCheckboxes(); plugin.comments = options.comments; if(typeof(plugin.comments) != "object"){ plugin.comments = {}; } plugin.processComments(plugin.comments, options.entityID); if($("#comment_sort").length > 0){ $("#comment_sort").change(function(){ $d.helpers.showOverlay($("#comments_list_container")); $d.network.post(URLROOT+"comments/sort/" + options.type,{entity:options.entityID,sort:$("#comment_sort").val(),session_id:""},function(result){ options.comments = result; plugin.processComments(result) }); }); } if("" != ""){ if(typeof(typeof window[""]) === "function"){ ; } } $d.initCheckboxes(ele); $d.initSelects(ele); }); }, processComment : function(comment,append,element,fadeIn){ var plugin = this; var framework = this; if(comment != null){ var image = ""; if(comment.image.startsWith("http")){ image = comment.image; }else{ image = SITE_URL + comment.image; } var commentUserImage = ""; var commentUsername = comment.username; if(comment.link && comment.link != "" && comment.deleted == false) { commentUserImage = ""; commentUsername = ""+comment.username+""; } var li = $(document.createElement("li")); li.addClass("comment_item clearfix"); li.attr("data-id",comment.id); li.attr("point-count",comment.score); li.attr("data-parent",comment.parent); li.attr("data-level",comment.level); li.attr("data-type",comment.type); li.attr("data-children",0); li.attr("data-guildings",comment.guilds); li.addClass("level-"+comment.level); if(comment.parent > 0){ var p = $("li[data-id="+comment.parent+"] > ul"); if(p.length > 0){ element = p; } } if(comment.level > 1){ li.addClass("sub-comment"); var parent = $(".comment_item[data-id='"+comment.parent+"']"); parent.addClass("has-children"); parent.data("children",parent.data("children") + 1); if(parent.length){ var setText = function(parent,e){ var text = "Show"; if(e.hasClass("collapsed")){ text = "Hide"; } var coText = "comment"; if(parent.data("children") > 1){ coText += "s"; } e.attr("title",text + " " + parent.data("children") + " " + coText); e.find(".comment_count").html(parent.data("children")); }; var e = parent.find("> .comment_container .collapse_comments"); if(e.length == 0){ parent.find(".comment_left").prepend("1"); e = parent.find("> .comment_container .collapse_comments"); console.log(e); e.click(function(){ var ele = $(this); if(parent.hasClass("collapsed")){ parent.removeClass("collapsed"); }else{ parent.addClass("collapsed"); } setText(parent,e); }); } if(e.length > 0){ setText(parent,e); } } } var container = $(document.createElement("div")); container.addClass("comment_container"); container.html("\
    \
    "+commentUserImage+"
    \
    \
    "+commentUsername+", "+comment.datetime+"
    \
    \
    \
    \
    \
    \
    \
    \
    \
    \
    \
    "+comment.score+" points
    \
    \
    \
    \ "); li.append(container); li.append(""); if(comment.loggedIn){ if(comment.deleted == false){ container.find(".comment_left").append(""); container.find(".comment_voting_buttons").append("\ "); var upvote = container.find(".upVote"); if(upvote.length > 0){ upvote.click(function(){ plugin.upvote(comment.id); }); } var downvote = container.find(".downVote"); if(downvote.length > 0){ downvote.click(function(){ plugin.downvote(comment.id); }); } var guildButton = container.find(".comment_guild"); var updateGuildCount = function(){ var con = guildButton.find(".comment_guilds"); if(li.data("guildings") > 0){ con.html(li.data("guildings")); li.addClass("guilded"); }else{ con.html(""); li.removeClass("guilded"); } }; updateGuildCount(); guildButton.click(function(){ var doGuild = function(){}; doGuild = function(c){ $d.network.post(URLROOT+"credits/guild",{entity:comment.id,type:"comment",uid:comment.user,confirm:c},function(data){ if(data == "confirm"){ if(confirm("You've already guilded this comment are you sure you'd like to give it another one?")){ doGuild(1); } }else{ if(data != false){ li.data("guildings",data); }else{ alert("You don't have enough credits"); } updateGuildCount(); } }); }; doGuild(0); }); var replyButton = $(""); container.find(".comment_buttons").append(replyButton); replyButton.click(function(){ var existing = $(".comment_reply_box[data-parent="+comment.id+"]"); $(".comment_reply_box").remove(); $(".replying").removeClass("replying"); if(!existing.length){ container.addClass("replying"); var replyBox = $("
  • \
    \
    \
    \ \ \
    \
    \
  • "); if(typeof(uploader) != "undefined"){ new uploader({ field:$(replyBox).find(".comment_reply_content"), button:$(replyBox).find(".upload_button").get(0), insertBefore:false, containField:false, stacked: false, fitted: true, floatRight:false }); }else{ replyBox.find(".upload_button").hide(); } var textarea = replyBox.find(".textarea"); if(comment.level == 21){ textarea.html("@"+comment.username + "  "); } var checkScroll = function(field){ if(field.clientHeight < field.scrollHeight || field.clientHeight >= 65){ $(replyBox).addClass("comment_scroll"); }else{ $(replyBox).removeClass("comment_scroll"); } }; textarea.keyup(function(e){ var Ucode = e.keyCode? e.keyCode : e.charCode; if(Ucode == 13) { if(e.shiftKey == false){ e.preventDefault(); $(this).parent().parent().parent().find(".send_button").click(); return false; }else{ checkScroll(this); } }else{ checkScroll(this); } }); replyBox.find(".send_button").click(function(){ var text = $(this).parent().parent().parent().find(".textarea"); var par = $(this).parent().parent().parent(); var button = $(this); framework.createOverlay(text.parent(),$(this)); var p = par.data("parent"); if(comment.level == 21){ p = par.data("cparent"); } plugin.addComment(text,p,function(comment){ if(typeof(comment.error) == "undefined"){ par.remove(); container.removeClass("replying"); }else{ framework.hideOverlay(text.parent(),button); } }); }); container.after(replyBox); textarea.focus(); } }); if(comment.delete == true){ li.addClass("deleteable"); var deleteButton = $(""); container.find(".comment_buttons").append(deleteButton); deleteButton.click(function(){ $(".comment_reply_box").remove(); container.removeClass("replying"); if(confirm("Are you sure you want to delete this comment?")){ var comment = $(this).attr("data-id"); var p = $(this).parent().parent().parent().parent(); var type = p.parent().data("type"); $d.helpers.showOverlay(p,"",false,false); $d.network.post(URLROOT+"comments/delete/" + type,{id:comment,session_id:""},function(){ plugin.comments[comment] = null; var children = $(".comment_item[data-parent="+comment+"]"); if(children.length > 0){ p.find(".comment_username").html("deleted"); p.find(".comment_reply").remove(); container.removeClass("replying"); p.find(".comment_delete").remove(); p.find(".comment_voting_buttons").remove(); p.addClass("comment_deleted"); p.find(".comment_content").html("[deleted]"); $d.helpers.hideOverlay(); }else{ p.remove(); } }); } }); } }else{ container.addClass("comment_deleted"); } } if(comment.previews && comment.previews.length > 0){ } var content = container.find(".comment_content"); if(content.length > 0) { content.html("

    "+comment.comment+"

    "); } if(fadeIn == true){ li.hide(); } if(typeof(append) != "undefined" && append == true && typeof(element) != "undefined" && element != null){ element.append(li); }else{ element.prepend(li); } if(fadeIn == true){ li.fadeIn(500); } if(typeof(comment.children) != "undefined" && comment.children != null){ for(var x in comment.children){ plugin.processComment(comment.children[x],true,element); } } return li; } }, processComments : function(comments, id) { var plugin = this; var process = function(comments) { if(comments && typeof(comments) != "undefined" && comments != null) { var element = $("#comments_list"); element.html(""); var count = 0; for(var commentIndex in comments) { var comment = comments[commentIndex]; if(comment != null){ plugin.processComment(comment,true,element); } } } }; if(comments && typeof(comments) != "undefined" && comments != null) { process(comments); plugin.updateList(); $d.helpers.hideOverlay(); } }, updateList : function(){ $("#comments_list li.comment_no_comment").remove(); var commentList = $("#comments_list li"); if(commentList.length > 1){ $("#comment_sort").css({display:"block"}); }else{ $("#comment_sort").css({display:"none"}); } if(commentList.length == 0){ var li = $(document.createElement("li")); li.addClass("comment_item clearfix comment_no_comment"); if($d.session && $d.session.isLoggedIn()){ li.html("
    Be the first to comment!
    "); }else{ //li.html("
    Login to comment
    "); } $("#comments_list").append(li); } }, addComment : function(element,parent,callback) { var plugin = this; if(typeof(parent) == "undefined" || parent == null){ parent = 0; } if(plugin.addingComment == false){ plugin.addingComment = true; if(typeof(element) != "undefined" && element != null){ var text = $(element); } else{ var text = $("#comment"); } if(text.length > 0) { var isDiv = false; if(text.is("div")){ isDiv = true; var content = $d.helpers.stripHTML(text.html()); }else{var content = text.val();} var domField = null; if(element){ domField = element.parent().get(0); if(domField.uploader){ var used = {}; for(var x in domField.uploader.uploads){ var upload = domField.uploader.uploads[x]; if(upload != null){ if(upload.url){ if(!used[upload.url]){ content += " " + upload.url.replace("%2F","/"); used[upload.url] = true; } } } } } } if(content == "") { alert("Please enter a comment"); plugin.addingComment = false; } else { var anonymous = false; if(plugin.options.anonymous){ var anonymous = document.getElementById("comment_anonymous").checked; } if(anonymous == true) {anonymous = 1;} else {anonymous = 0;} if(!isDiv){ text.attr("disabled",true); text.css({width:"69%"}); var loading = $("#comment_loading").css({display:"block"}); } $d.network.request({ type:"POST", url:URLROOT+"comments/save/" + plugin.options.type, data:{id:plugin.options.entityID, content:content, anonymous:anonymous, parent:parent, session_id:""} }).done(function(result){ if(result != "") { var newComment = JSON.parse(result); if(callback){ try{callback(newComment);} catch(e){} } if(typeof(newComment.error) == "undefined"){ if(domField != null && domField.uploader){ domField.uploader.clear(); } text.val(""); plugin.comments[newComment.id] = newComment; $("li[data-id="+newComment.parent+"]").addClass("collapsed"); var pComment = plugin.processComment(newComment,false,$("#comments_list"),true); plugin.updateList(); }else{ if(newComment.error == "spam"){ var element = $("#comments_list"); if($("#comments_list #spam_error_wait").length > 0){ $("#comments_list #spam_error_wait").html(newComment.wait); } else { element.prepend("

    You're doing the thing too quickly please wait " + newComment.wait + " seconds

    "); } } } } else { alert("Could not post your comment, please try again"); } }).always(function(result){ if(!isDiv){ text.attr("disabled",false); text.attr("style",''); loading.css({display:"none"}); } plugin.addingComment = false; }); } } } }, downvote : function(id) { var plugin = this; var uoption = $(".comment_upvote_"+id); var doption = $(".comment_downvote_"+id); var comment = $(".comment_item[data-id="+id+"]"); var points = parseInt(comment.attr("point-count")); if(doption.hasClass("selected")) { doption.removeClass("selected"); points++; } else if(uoption.hasClass("selected")) { uoption.removeClass("selected"); doption.addClass("selected"); points--; points--; } else { doption.addClass("selected"); points--; } if(plugin.comments[id]){ plugin.comments[id].upclass = ""; plugin.comments[id].downclass = ""; if(doption.hasClass("selected")){ plugin.comments[id].upclass = ""; plugin.comments[id].downclass = "selected"; }else if(uoption.hasClass("selected")){ plugin.comments[id].upclass = "selected"; plugin.comments[id].downclass = ""; } plugin.comments[id].score = points; } comment.attr("point-count",points); comment.find(".comment_score").first().html(points + " points"); $d.network.post(URLROOT+"comments/downVote/" + plugin.options.type, {cid:id,session_id:""}, function(result) {}); }, upvote : function(id) { var plugin = this; var uoption = $(".comment_upvote_"+id); var doption = $(".comment_downvote_"+id); var comment = $(".comment_item[data-id="+id+"]"); var index = id; var points = parseInt(comment.attr("point-count")); if(uoption.hasClass("selected")) { uoption.removeClass("selected"); points--; } else if(doption.hasClass("selected")) { doption.removeClass("selected"); uoption.addClass("selected"); points++; points++; } else { uoption.addClass("selected"); points++; } if(plugin.comments[id]){ plugin.comments[id].upclass = ""; plugin.comments[id].downclass = ""; if(doption.hasClass("selected")){ plugin.comments[id].upclass = ""; plugin.comments[id].downclass = "selected"; }else if(uoption.hasClass("selected")){ plugin.comments[id].upclass = "selected"; plugin.comments[id].downclass = ""; } plugin.comments[id].score = points; } comment.attr("point-count",points); comment.find(".comment_score").first().html(points + " points"); $d.network.post(URLROOT+"comments/upVote/" + plugin.options.type, {cid:id,session_id:""}, function(result) {}); } }; var options = { type:"topic", anonymous : "1", comments : [{"id":29677,"user":81802,"comment":"1+5","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/rhino.jpg","link":"\/profile\/fred0ne","date":"2018-04-06","delete":false,"datetime":"Apr 06th 2018 13:26","timestamp":1523021175,"loggedIn":false,"username":"fred0ne","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":29661,"user":84772,"comment":"Galaxy S9+","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/rhino.jpg","link":"\/profile\/QuantumShittingThroughTheNthDimension","date":"2018-04-04","delete":false,"datetime":"Apr 04th 2018 03:05","timestamp":1522811112,"loggedIn":false,"username":"QuantumShittingThroughTheNthDimension","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[{"id":29674,"user":85876,"comment":"Galaxy S8+ here, apart from the camera and different fingerprint layout they are basically the same, go for which ever is cheapest.","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/cat.jpg","link":"\/profile\/ayciate","date":"2018-04-06","delete":false,"datetime":"Apr 06th 2018 12:08","timestamp":1523016488,"loggedIn":false,"username":"ayciate","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":2,"children":[],"deleted":0,"parent":29661,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"}],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":29649,"user":31392,"comment":"Galaxy Note 3, this thing is a dinosaur.","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/rhino.jpg","link":"\/profile\/wowzies","date":"2018-04-01","delete":false,"datetime":"Apr 01st 2018 02:09","timestamp":1522548585,"loggedIn":false,"username":"wowzies","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":29644,"user":85684,"comment":"hotwav21
    \nChinese phone","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/rhino.jpg","link":"\/profile\/ahmed92","date":"2018-03-31","delete":false,"datetime":"Mar 31st 2018 16:28","timestamp":1522513727,"loggedIn":false,"username":"ahmed92","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":29042,"user":4859,"comment":"Galaxy S6. I was bummed because the phone company loaded it with bloatware, and the battery is NOT removable\/replaceable, and the whole thing is coated in glass. BUT before this I had the Galasy S3, which was SO MUCH WORSE despite having none of those problems. Would recommend. Would also recommend a case for impact.","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/rhino.jpg","link":"\/profile\/Leukocyte","date":"2017-12-01","delete":false,"datetime":"Dec 01st 2017 23:58","timestamp":1512172714,"loggedIn":false,"username":"Leukocyte","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":29039,"user":85411,"comment":"I've got a Samsung S6, had this baby for 2 years still going strong despite the numerous times I've dropped it. Won't get a new one until I absolutely have to. Newer Samsung phones are looking kinda bunk though....","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/cat.jpg","link":"\/profile\/absolutelyNotAnAlien","date":"2017-12-01","delete":false,"datetime":"Dec 01st 2017 07:57","timestamp":1512115039,"loggedIn":false,"username":"absolutelyNotAnAlien","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":2,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":29015,"user":29209,"comment":"I have a OnePlus 3t...the one currently oout if the OnePlus 5t which isn't all that different since he 3t is only a year old. It works great, I've never had a problem with it.","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/giraffe.jpg","link":"\/profile\/umbrena","date":"2017-11-26","delete":false,"datetime":"Nov 26th 2017 18:13","timestamp":1511720019,"loggedIn":false,"username":"umbrena","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":29014,"user":80775,"comment":"LG G5 with a customized rom and full file encryption with Direct Boot.","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/cat.jpg","link":"\/profile\/Rhodderz","date":"2017-11-26","delete":false,"datetime":"Nov 26th 2017 17:17","timestamp":1511716629,"loggedIn":false,"username":"Rhodderz","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":28842,"user":84909,"comment":"Moto X Pure. Customized back (real wood or leather in a bunch of colors for $25 extra, or standard rubber back), customized accent colors around camera, mic, speaker. Android, fast and solid wifi connections. Only downside is the battery life is pretty short and it gets super hot if you run GPS or while charging","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/giraffe.jpg","link":"\/profile\/justsky","date":"2017-10-23","delete":false,"datetime":"Oct 23rd 2017 00:02","timestamp":1508716942,"loggedIn":false,"username":"justsky","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":28841,"user":1,"comment":"Depending on your budget you can probably get a Pixel 1 quite cheap","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/cat.jpg","link":"\/profile\/TheBritishAreComing","date":"2017-10-23","delete":false,"datetime":"Oct 23rd 2017 00:01","timestamp":1508716874,"loggedIn":false,"username":"TheBritishAreComing","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":28840,"user":11418,"comment":"6 year old lg g2 :D It does not work for me bcus it literally does not work","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/rhino.jpg","link":"\/profile\/swelshie","date":"2017-10-23","delete":false,"datetime":"Oct 23rd 2017 00:00","timestamp":1508716844,"loggedIn":false,"username":"swelshie","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":28839,"user":82841,"comment":"LG G3, but currently looking at possibly getting a LG V20, or a Moto G5 Plus, or Pixel 2.","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/cat.jpg","link":"\/profile\/slimySumoCow","date":"2017-10-23","delete":false,"datetime":"Oct 23rd 2017 00:00","timestamp":1508716821,"loggedIn":false,"username":"slimySumoCow","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"},{"id":28838,"user":1,"comment":"I have a Galaxy Alpha","image":"https:\/\/chatplayshare.com\/themes\/default\/images\/profiles\/cat.jpg","link":"\/profile\/TheBritishAreComing","date":"2017-10-22","delete":false,"datetime":"Oct 22nd 2017 23:59","timestamp":1508716790,"loggedIn":false,"username":"TheBritishAreComing","upclass":"","downclass":"","upvoted":false,"downvoted":false,"score":1,"level":1,"children":[],"deleted":0,"parent":0,"previews":[],"entity":4201,"guilds":0,"type":"1","type_string":"topic"}], entityID : "4201", title : "Comments", element : "discussion_container", buttonText : "Add Comment", buttonClasses : "small_button small_button_green", answerClasses : "" }; if(typeof($d) == "undefined"){ $d = { initCheckboxes:function(element){ element.find("input[type=checkbox]").each(function(){ var c = $(this); if(!c.attr("checkbox_setup")){ c.attr("checkbox_setup",true); var id = c.attr("id"); var container = $(document.createElement("div")); container.addClass(c.get(0).className); c.get(0).className = ""; container.addClass("checkbox"); container.attr("id",id); container.prop("name",id); c.attr("id",id + "-checkbox"); container.prop("checked",c.get(0).checked); container.prop("value",c.val()); container.prop("type","checkbox"); container.attr("type","checkbox"); if(c.prop("title")){container.append(""+c.prop("title")+"");} c.before(container); c.remove(); container.append(c); if(c.get(0).checked){ container.addClass("checked"); } var checkUncheck = function(){ c.addClass("toSave"); if(c.get(0).checked){container.addClass("checked");} else{container.removeClass("checked");} }; container.click(function(){ var container = $(this); c.click(); container.prop("checked",c.get(0).checked); checkUncheck(); }); } }); }, initSelects: function(element){ try{ if(!this.helpers.isMobile()){ element.find("select").select2(); } }catch(e){} }, session: { isLoggedIn:function(){return false;} }, helpers: { stripHTML : function(string){ var div = $(document.createElement("div")); div.html(string.replace(/(
    ||
    )/gm,'\n').replace(/<\/p>/gm,'\n\n')); return div.text().trim(); }, showOverlay : function(containers, content, realignLeft, realignTop) { if(!content) {content = "";} // Adds a default loading icon if($.trim(content) == "") {content = "";} if(containers) { containers.each(function() { var container = $(this); container.append("
    "+content+"
    "); var contentDiv = $(".details_overlay_content"); if(typeof(realignLeft) == "undefined" || realignLeft == true || realignLeft == null){ var contentLeft = (container.outerWidth()/2)-(contentDiv.outerWidth()/2); contentDiv.css({left:contentLeft+"px"}); } if(typeof(realignTop) == "undefined" || realignTop == true || realignTop == null){ var contentTop = (container.outerHeight()/2)-(contentDiv.outerHeight()/2); contentDiv.css({top:contentTop+"px"}); } }); } }, hideOverlay : function(container) { if(container) {container.find("details_overlay").remove();} else { $(".details_overlay").each(function() { $(this).remove(); }); } }, }, network:{ request:$.ajax, post:$.post, get:$.get } } plugin.integrate(null,options); }else{ $d.plugins.add(plugin,options); $d.plugins.get("comments").integrate($d.plugins,options); $d.network.addHandler("comments", "update-score",function(data){ if(typeof(data) != "undefined" && data != null){ var comment = $(".comment_item[data-id="+data.comment+"]"); if(comment.length > 0){ if(typeof(plugin.comments[data.comment]) == "undefined"){ plugin.comments[data.comment] = {}; } if(typeof(plugin.comments[data.comment].score) == "undefined"){ plugin.comments[data.comment].score = 0; } plugin.comments[data.comment].score = data.score; comment.attr("point-count",data.score); comment.find(".comment_score").html(data.score + " points"); } } }); $d.network.addHandler("comments","deleted",function(data){ if(typeof(data) != "undefined" && data != null){ var p = $(".comment_item[data-id="+data+"]"); var children = $(".comment_item[data-parent="+data+"]"); if(children.length > 0){ p.find(".comment_username").html("deleted"); p.find(".comment_reply").remove(); p.find(".comment_delete").remove(); p.find(".comment_voting_buttons").remove(); p.addClass("comment_deleted"); p.find(".comment_content").html("[deleted]"); $d.helpers.hideOverlay(); }else{ p.remove(); } } }); $d.network.addHandler("comments","added",function(data){ if(typeof(data.comment) != "undefined"){ var newComment = data; if(typeof(newComment.error) == "undefined"){ if(!plugin.comments[newComment.id]){ setTimeout(function(){ plugin.comments[newComment.id] = newComment; var pComment = plugin.processComment(newComment,false,$("#comments_list"),true); $d.plugins.get("comments").updateList(); },1000); } } } }); }