define(["jquery","pitLS","mustache","autosize","zenscroll","cookie-helper","masonry","jquery.vclick","jquery-animate3"],function(jq,pitLS,Mustache,autosize,zenscroll,cookie){require(["cookie-helper"],function(cookie){jq.ajaxPrefilter(function(options,origOptions,jqXHR){"post"==options.type.toLowerCase()&&(options.data=jq.param(jq.extend({},origOptions.data,{"XSRF-TOKEN":cookie.read("XSRF-TOKEN")}))),!1===/^(https?:)?\/\//.test(options.url+"")&&jqXHR.setRequestHeader("X-Forced-Referer",window.location.href)})});var $grid,discussion=jq("section.sect-community-discussion"),signon=!1,template=jq("script#discussion-questions-tpl").html(),showReplyBox=function(e){var _username=jq(this).attr("data-reply-username"),_replyform=jq(this).closest(".message").find(".replyform");if(_replyform.toggle(),_replyform.is(":visible"))return void 0!==_username&&!1!==_username?_replyform.find("textarea").removeClass("init").val("@"+_username+": "):_replyform.find("textarea").addClass("init").val(""),setTimeout(function(){_replyform.find("textarea").click().focus(),zenscroll.center(_replyform[0],300)}),!1},moreReplies=function(e){var reply_box=jq(this).parent().siblings(".replies"),lst=reply_box.children(".reply").eq(reply_box.hasClass("reverse")?0:-1),alst=reply_box.children(".reply").eq(reply_box.hasClass("reverse")?1:-2);jq(this).hasClass("opn")?(jq(this).removeClass("opn").addClass("cls"),reply_box.children(".reply.reveal").animate3({opacity:0},{duration:300,complete:function(){reply_box.children(".reply.reveal").removeClass("reveal")}})):(jq(this).removeClass("cls").addClass("opn"),reply_box.children(".reply").not(lst).not(alst).addClass("reveal").animate3({opacity:1},{duration:300}))},submitReply=function(){var _message=jq(this).closest(".message"),_reply=jq(this).closest(".replyform"),_content=jq.trim(_reply.find("textarea[name=reply]").val()),id_edu=jq(this).hasClass("edu-submit");if(""==_content)return window.alert("Please enter your reply."),_reply.find("textarea[name=reply]").focus(),!1;if(_content.length<25)return window.alert("You must enter at least 25 characters."),_reply.find("textarea[name=reply]").focus(),!1;if(_content.split(" ").length<3)return window.alert("We need at least 3 words and 25 characters"),_reply.find("textarea[name=reply]").focus(),!1;_reply.find("textarea").css({opacity:.5,backgroundColor:"#fff"}).attr("disabled"),_reply.find(".submit").css("opacity",.5);var ajax_params={action:"Discussion.Submit",url:window.location.href+"",mid:_message.attr("data-comment-id"),content:_content,just_data:!0};return id_edu&&(ajax_params={action:"Posts.AddComment",new_way:!0,pid:jq(this).attr("data-post-id"),parent:_message.attr("data-comment-id"),comment:_content}),jq.post("/ajax.php",ajax_params,function(_dta,_status){if(_dta.error)return"not loggedin"==_dta.message&&(gIsLoggedIn=!1),!1;_dta.guest?top.location.href=_dta.redirect:function(){var content=document.createElement("div"),rendered=Mustache.render(template,{avatars_on_demand:!1,main_avatar:_dta.user.avatar,comments:_dta.comment,edu_disc:id_edu,post_id:ajax_params.pid,children_in_reverse:discussionSection.children_in_reverse});content.innerHTML=rendered,ownership(content),setupCommonEvents(content);jq(content).children();_message.find("button.more-replies").hasClass("opn")?jq(content).find("button.more-replies").trigger("vclick"):jq(content).find("div.replies article.reply").eq(discussionSection.children_in_reverse?2:-3).addClass("reveal").css({opacity:1}),_message.replaceWith(jq(content).children()),discussion.find(".message").removeClass("message-first"),discussion.find(".message").eq(0).addClass("message-first")}()},"json"),!1},deleteComment=function(){var _message=jq(this).closest(".message"),is_edu=discussionSection.edu,ajax_params={action:is_edu?"Posts.DeleteComment":"Discussion.Delete"};if(jq(this).parent().parent().hasClass("message"))window.confirm("Are you sure you want to delete this comment and all its replies?")&&(_message.find("button.reply").unbind("vclick"),_message.find("button.delete").unbind("vclick"),_message.css("opacity",.5),discussion.find(".message .replyform").hide(),is_edu?ajax_params.cid=jq(this).attr("data-mid"):ajax_params.mid=jq(this).attr("data-mid"),jq.ajax({url:"/ajax.php",type:"POST",data:ajax_params,dataType:"json",success:function(_dta){discussionSection.rendered-=1,discussionSection.total-=1,_message.animate3({opacity:0},{duration:250,complete:function(){var cols=!!$grid&&salvattore.removeColumns($grid);_message.remove(),jq(cols).find(".message").length<1&&discussion.addClass("no-qs"),$grid&&salvattore.recreateColumns($grid,cols),discussion.find(".message").removeClass("message-first"),discussion.find(".message").eq(0).addClass("message-first"),controlMore()}})},error:function(xhr){401!=xhr.status?(window.alert("There was an error with your session. The page will now refresh."),top.location.reload()):top.location.href="/join/light?redirect_to="+encodeURIComponent(window.location.href)}}));else if(window.confirm("Are you sure you want to delete this reply?")){var _reply=jq(this).closest(".reply");_reply.find("button.reply").unbind("click"),_reply.find("button.delete").unbind("click"),_reply.css("opacity",.5),discussion.find(".message .replyform").hide(),is_edu?ajax_params.cid=jq(this).attr("data-rid"):(ajax_params.mid=_message.find(".actions button.delete[data-mid]").attr("data-mid"),ajax_params.rid=jq(this).attr("data-rid")),jq.post("/ajax.php",ajax_params,function(_dta,_status){if(_dta.error)return window.alert("There was an error with your session. The page will now refresh."),top.location.reload(),!1;var ct=parseFloat(_message.children(".actions").children("button.reply").attr("data-reply-count"));ct--,_message.children(".actions").children("button.reply").text("Reply"+(ct?" ("+ct+")":"")).attr("data-reply-count",ct),ct<=2&&_message.children(".actions").children(".more-replies").remove(),_reply.animate3({opacity:0},{duration:250,complete:function(){_reply.remove()}})},"json")}return!1},readMore=function(e){var content=jq(this).parent();return content.find(".hidden").is(":hidden")?(content.find(".hidden").show(),content.find(".more-ellipsis").hide(),$(this).text("show less")):(content.find(".hidden").hide(),content.find(".more-ellipsis").show(),$(this).text("read more")),e.preventDefault(),!1},readMoreDisc=function(e){return jq(this).parent().toggleClass("more"),e.preventDefault(),!1},flagComment=function(e){var url=jq(this).attr("data-flag-url");window.open(url,"_blank"),e.preventDefault(),e.stopPropagation()},ownership=function(box){jq(box).find(".message-notmine[data-uid="+signon.id+"]").removeClass("message-notmine"),jq(box).find(".reply-notmine[data-uid="+signon.id+"]").removeClass("reply-notmine"),jq(box).find(".replyform img").prop("src",signon.pp)},setupCommonEvents=function(box){jq(box).find(".message .actions button.reply").on("vclick",showReplyBox),jq(box).find(".message .actions button.more-replies").on("vclick",moreReplies),jq(box).find(".message .actions button.delete").on("vclick",deleteComment),jq(box).find(".replyform .submit button.whbl-link").on("vclick",submitReply),jq(box).find(".message .actions button.flag").on("vclick",flagComment),autosize&&jq(box).find("textarea").each(function(){autosize(this)}),jq(box).find(".message .content a.more").on("vclick",readMore)},controlMore=function(done){setTimeout(function(){(0<discussion.find(".message:hidden").length||discussionSection.rendered<discussionSection.total)&&discussion.find(".more-comm").show(),done&&done()})};if(0!=discussion.length){(signon=pitLS.getCookie("mw_signon"))&&(signon=decodeURIComponent(signon),"un"in(signon=JSON.parse(signon))&&"pp"in signon||(signon=null)),signon&&ownership(discussion),discussion.find(".discussionform form").on("submit",function(){var _scope=this,_content=jq.trim(jq(this).find("textarea[name=question]").val()),is_edu=discussionSection.edu;if(""==_content)return window.alert("Please enter your message."),jq(this).find("textarea[name=question]").focus(),!1;if(_content.length<25)return window.alert("You must enter at least 25 characters."),jq(this).find("textarea[name=question]").focus(),!1;if(_content.split(" ").length<3)return window.alert("We need at least 3 words and 25 characters"),jq(this).find("textarea[name=question]").focus(),!1;jq(this).find("textarea").css({opacity:.5,backgroundColor:"#fff"}).prop("disabled","disabled"),jq(this).find(".submit").css("opacity",.5);var ajax_params={action:"Discussion.Submit",url:window.location.href+"",content:_content,just_data:!0};return is_edu&&(ajax_params={action:"Posts.AddComment",pid:jq(_scope).attr("data-post-id"),comment:_content,new_way:!0}),jq.post("/ajax.php",ajax_params,function(_dta,_status){if(jq(_scope).find("textarea").css("opacity",1).attr("disabled",!1).val("").trigger("change"),jq(_scope).find(".submit").css("opacity",1),_dta.error)return"not loggedin"==_dta.message&&(gIsLoggedIn=!1),jq("div.discussion textarea").trigger("focus"),!1;if(_dta.guest)top.location.href=_dta.redirect;else{discussion.find(".message").removeClass("message-first");var content=document.createElement("div"),rendered=Mustache.render(template,{avatars_on_demand:!1,main_avatar:_dta.user.avatar,comments:_dta.comment,edu_disc:is_edu,post_id:ajax_params.pid});content.innerHTML=rendered,ownership(content),setupCommonEvents(content);var ct=jq(content).children(),cols=!!$grid&&salvattore.removeColumns($grid);($grid?jq(cols):discussion.find(".questions-container")).find("div.discussionform").after(ct),jq(_scope).find("textarea").css("height",""),$grid&&salvattore.recreateColumns($grid,cols),discussion.removeClass("no-qs"),controlMore(),discussionSection.rendered+=1,discussionSection.total+=1}},"json"),!1}),discussion.find("div.discussionform form .submit button.whbl-link").on("vclick",function(){jq(this).parents("form").trigger("submit")}),discussion.find("div.discussionform .discussion-disc .more-btn").on("vclick",readMoreDisc),discussion.find("div.discussionform .discussion-disc .less-btn").on("vclick",readMoreDisc),setupCommonEvents(discussion),discussion.find(".more-comm .btn").on("vclick",function(){var btn=jq(this),edu=discussionSection.edu,otext=btn.text();btn.hasClass("disabled")||(btn.addClass("disabled").html("<i class='bf-icon-spin5 animate-spin'></i>"),jq.ajax({method:"GET",url:"/ajax.php",data:{action:edu?"Posts.EduGetComments":"Discussion.GetComments",p:discussionSection.current_page+1,url:window.location.pathname,post_id:edu?discussion.find(".discussionform form").attr("data-post-id"):void 0},success:function(dta){1!=dta.pages&&dta.pages!=dta.page||btn.remove(),discussionSection.rendered+=dta.comments.length,discussionSection.total_pages=dta.pages,discussionSection.current_page=dta.page;var content=document.createElement("div");content.innerHTML=Mustache.render(template,{avatars_on_demand:!1,main_avatar:dta.user.avatar,comments:dta.comments}),ownership(content),setupCommonEvents(content),jq(content).children().each(function(){$grid?salvattore.appendElements($grid,[this]):(discussion.find(".questions-container").append(this),btn.css("opacity",0).animate3({opacity:1},{duration:300}))}),delete content,btn.removeClass("disabled").text(otext)}}))}),discussion.hasClass("full-page")&&($grid=discussion.find(".questions-container")[0],salvattore.init($grid),salvattore.rescanMediaQueries($grid),setTimeout(function(){discussion.find(".message").length<1&&discussion.addClass("no-qs"),salvattore.recreateColumns($grid)}),jq(window).on("resize",function(){$(document.activeElement).is("textarea")||salvattore.rescanMediaQueries($grid)})),jq(window).on("load",function(e){var id=function(name,url){url||(url=window.location.href),name=name.replace(/[\[\]]/g,"\\$&");var results=new RegExp("[?&]"+name+"(=([^&#]*)|&|#|$)").exec(url);return results?results[2]?decodeURIComponent(results[2].replace(/\+/g," ")):"":null}("comment-id",window.location.href);if(id){var scroller=discussion.find('[data-comment-id="'+id+'"]');if(!(scroller.length<1)){var scrTo=function(){zenscroll.to(scroller[0],300,160,function(){scroller.animate3({"background-color":"rgba(75, 201, 153, 0.1)"},{duration:100,complete:function(){scroller.animate3({"background-color":"rgba(255, 255, 255, 0)"},{duration:2e3})}})})},prnt=scroller;if($grid){scroller.hasClass("reply")&&(prnt=scroller.parents(".message")).find("button.more-replies.cls").trigger("vclick");var idx=prnt.index();discussion.find(".column").each(function(){jq(this).children().each(function(index){if(index==idx)return jq(this).prev(".message:hidden").add(this).addClass("reveal").animate3({opacity:1},{duration:300}),!1})}),scrTo()}else scroller.hasClass("reply")&&(prnt=scroller.parents(".message")).find("button.more-replies.cls").trigger("vclick"),prnt.prev(".message:hidden").add(prnt).addClass("reveal").animate3({opacity:1},{duration:300}),scrTo()}}});var interval,iterations=0,stopped=!1;interval=window.setInterval(function(){if("border-box"==discussion.css("box-sizing")||100<iterations)return controlMore(),window.clearInterval(interval),void(stopped=!0);iterations++},50),jq(document).ready(function(){window.clearInterval(interval),stopped||controlMore()})}});