Updating minified JavaScript files
authorwoltlab.com <woltlab@woltlab.com>
Fri, 12 Dec 2014 12:51:45 +0000 (13:51 +0100)
committerwoltlab.com <woltlab@woltlab.com>
Fri, 12 Dec 2014 12:51:45 +0000 (13:51 +0100)
wcfsetup/install/files/js/WCF.Combined.min.js

index b439010bb753fa0e35a7ab0653ffd6fec0de1afd..dd5048a943306519f1d3f219a28be6d8390d70f5 100755 (executable)
 //  - WCF.Label.min.js
 //  - WCF.Location.min.js
 //  - WCF.Message.min.js
-//  - WCF.Moderation.min.js
 //  - WCF.Poll.min.js
 //  - WCF.Search.Message.min.js
 //  - WCF.Tagging.min.js
 //  - WCF.User.min.js
+//  - WCF.Moderation.min.js
 
 // 3rdParty/jquery.ui.touch-punch.js
 (function (window, undefined) {/*!
@@ -108,9 +108,6 @@ window.matchMedia||(window.matchMedia=function(){var c=window.styleMedia||window
 // WCF.Message.js
 (function (window, undefined) {"use strict";WCF.Message={};WCF.Message.BBCode={};WCF.Message.BBCode.CodeViewer=Class.extend({_dialog:null,init:function(){this._dialog=null;this._initCodeBoxes();WCF.DOMNodeInsertedHandler.addCallback("WCF.Message.BBCode.CodeViewer",$.proxy(this._initCodeBoxes,this));WCF.DOMNodeInsertedHandler.execute()},_initCodeBoxes:function(){$(".codeBox:not(.jsCodeViewer)").each($.proxy(function(a,c){var b=$(c).addClass("jsCodeViewer");$('<span class="icon icon16 icon-copy pointer jsTooltip" title="'+WCF.Language.get("wcf.message.bbcode.code.copy")+'" />').appendTo(b.find("div > h3")).click($.proxy(this._click,this))},this))},_click:function(b){var a="";$(b.currentTarget).parents("div").next("ol").children("li").each(function(c,d){if(a){a+="\n"}a+=$(d).text().replace(/\n+$/,"")});if(this._dialog===null){this._dialog=$('<div><textarea cols="60" rows="12" readonly="readonly" /></div>').hide().appendTo(document.body);this._dialog.children("textarea").val(a);this._dialog.wcfDialog({title:WCF.Language.get("wcf.message.bbcode.code.copy")})}else{this._dialog.children("textarea").val(a);this._dialog.wcfDialog("open")}this._dialog.children("textarea").select()}});WCF.Message.EditHistory=Class.extend({_oldIDInputs:null,_newIDInputs:null,_containerSelector:"",_buttonSelector:".jsRevertButton",init:function(c,b,a,d){this._oldIDInputs=c;this._newIDInputs=b;this._containerSelector=a;this._buttonSelector=(d)?d:".jsRevertButton";this.proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._initInputs();this._initElements()},_initInputs:function(){var a=this;this._newIDInputs.change(function(c){var b=parseInt($(this).val());if($(this).val()==="current"){b=Infinity}a._oldIDInputs.each(function(d){var e=parseInt($(this).val());if($(this).val()==="current"){e=Infinity}if(e>=b){$(this).disable()}else{$(this).enable()}})});this._oldIDInputs.change(function(b){var c=parseInt($(this).val());if($(this).val()==="current"){c=Infinity}a._newIDInputs.each(function(e){var d=parseInt($(this).val());if($(this).val()==="current"){d=Infinity}if(d<=c){$(this).disable()}else{$(this).enable()}})});this._oldIDInputs.filter(":checked").change();this._newIDInputs.filter(":checked").change()},_initElements:function(){var a=this;$(this._containerSelector).each(function(c,b){var d=$(b);d.find(a._buttonSelector).click($.proxy(a._click,a))})},_click:function(c){var a=$(c.currentTarget);c.preventDefault();if(a.data("confirmMessage")){var b=this;WCF.System.Confirmation.show(a.data("confirmMessage"),function(d){if(d==="cancel"){return}b._sendRequest(a)})}else{this._sendRequest(a)}},_sendRequest:function(a){this.proxy.setOption("data",{actionName:"revert",className:"wcf\\data\\edit\\history\\entry\\EditHistoryEntryAction",objectIDs:[$(a).data("objectID")]});this.proxy.sendRequest()},_success:function(b,c,a){window.location.reload(true)}});WCF.Message.FormGuard=Class.extend({init:function(){var a=$("form.jsFormGuard").removeClass("jsFormGuard").submit(function(){$(this).find(".formSubmit input[type=submit]").disable()});$(window).unload(function(){a.find(".formSubmit input[type=submit]").enable()})}});WCF.Message.Preview=Class.extend({_className:"",_messageFieldID:"",_messageField:null,_proxy:null,_previewButton:null,_previewButtonLabel:"",init:function(b,a,c){this._className=b;this._messageFieldID=$.wcfEscapeID(a);this._messageField=$("#"+this._messageFieldID);if(!this._messageField.length){console.debug("[WCF.Message.Preview] Unable to find message field identified by '"+this._messageFieldID+"'");return}c=$.wcfEscapeID(c);this._previewButton=$("#"+c);if(!this._previewButton.length){console.debug("[WCF.Message.Preview] Unable to find preview button identified by '"+c+"'");return}this._previewButton.click($.proxy(this._click,this));this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),success:$.proxy(this._success,this)})},_click:function(b){var a=this._getMessage();if(a===null){console.debug("[WCF.Message.Preview] Unable to access Redactor instance of '"+this._messageFieldID+"'");return}this._proxy.setOption("data",{actionName:"getMessagePreview",className:this._className,parameters:this._getParameters(a)});this._proxy.sendRequest();this._previewButtonLabel=this._previewButton.html();this._previewButton.html(WCF.Language.get("wcf.global.loading")).disable();b.stopPropagation();return false},_getParameters:function(b){var a={};$("#settings_"+this._messageFieldID).find("input[type=checkbox]").each(function(c,e){var d=$(e);if(d.is(":checked")){a[d.prop("name")]=d.prop("value")}});return{data:{message:b},options:a}},_getMessage:function(){if(!$.browser.redactor){return $.trim(this._messageField.val())}else{if(this._messageField.data("redactor")){return this._messageField.redactor("wutil.getText")}}return null},_success:function(b,c,a){this._previewButton.html(this._previewButtonLabel).enable();this._messageField.parent().children("small.innerError").remove();this._handleResponse(b)},_handleResponse:function(a){},_failure:function(a){if(a===null||a.returnValues===undefined||a.returnValues.errorType===undefined){return true}this._previewButton.html(this._previewButtonLabel).enable();var b=this._messageField.next("small.innerError").empty();if(!b.length){b=$('<small class="innerError" />').appendTo(this._messageField.parent())}b.html(a.returnValues.errorType);return false}});WCF.Message.DefaultPreview=WCF.Message.Preview.extend({_attachmentObjectType:null,_attachmentObjectID:null,_tmpHash:null,init:function(b,a,c){this._super("wcf\\data\\bbcode\\MessagePreviewAction","text","previewButton");this._attachmentObjectType=b||null;this._attachmentObjectID=a||null;this._tmpHash=c||null},_handleResponse:function(b){var a=$("#previewContainer");if(!a.length){a=$('<div class="container containerPadding marginTop" id="previewContainer"><fieldset><legend>'+WCF.Language.get("wcf.global.preview")+"</legend><div></div></fieldset>").prependTo($("#messageContainer")).wcfFadeIn()}a.find("div:eq(0)").html(b.returnValues.message);new WCF.Effect.Scroll().scrollTo(a)},_getParameters:function(b){var a=this._super(b);if(this._attachmentObjectType!=null){a.attachmentObjectType=this._attachmentObjectType;a.attachmentObjectID=this._attachmentObjectID;a.tmpHash=this._tmpHash}return a}});WCF.Message.Multilingualism=Class.extend({_availableLanguages:{},_languageID:0,_languageInput:null,init:function(c,d,a){this._availableLanguages=d;this._languageID=c||0;this._languageInput=$("#languageID");this._updateLabel();this._languageInput.find(".dropdownMenu > li").click($.proxy(this._click,this));if(!a){var b=this._languageInput.find(".dropdownMenu");$('<li class="dropdownDivider" />').appendTo(b);$('<li><span><span class="badge">'+this._availableLanguages[0]+"</span></span></li>").click($.proxy(this._disable,this)).appendTo(b)}this._languageInput.parents("form").submit($.proxy(this._submit,this))},_click:function(a){this._languageID=$(a.currentTarget).data("languageID");this._updateLabel()},_disable:function(){this._languageID=0;this._updateLabel()},_updateLabel:function(){this._languageInput.find(".dropdownToggle > span").text(this._availableLanguages[this._languageID])},_submit:function(){this._languageInput.next("input[name=languageID]").prop("value",this._languageID)}});WCF.Message.SmileyCategories=Class.extend({_cache:[],_proxy:null,_wysiwygSelector:"",init:function(a){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._wysiwygSelector=a;$("#smilies-"+this._wysiwygSelector).on("messagetabmenushow",$.proxy(this._click,this))},_click:function(b,c){var a=parseInt(c.activeTab.tab.data("smileyCategoryID"));if(!a){return}if(c.activeTab.container.children("ul.smileyList").length){return}if(this._cache[a]!==undefined){c.activeTab.container.html(this._cache[a])}this._proxy.setOption("data",{actionName:"getSmilies",className:"wcf\\data\\smiley\\category\\SmileyCategoryAction",objectIDs:[a]});this._proxy.sendRequest()},_success:function(c,d,b){var a=parseInt(c.returnValues.smileyCategoryID);this._cache[a]=c.returnValues.template;$("#smilies-"+this._wysiwygSelector+"-"+a).html(c.returnValues.template)}});WCF.Message.Smilies=Class.extend({_redactor:null,_wysiwygSelector:"",init:function(a){this._wysiwygSelector=a;WCF.System.Dependency.Manager.register("Redactor_"+this._wysiwygSelector,$.proxy(function(){this._redactor=$("#"+this._wysiwygSelector).redactor("core.getObject");$(".messageTabMenu[data-wysiwyg-container-id="+this._wysiwygSelector+"]").on("click",".jsSmiley",$.proxy(this._smileyClick,this))},this))},_smileyClick:function(d){var b=$(d.currentTarget);var a=b.data("smileyCode");var c=b.data("smileyPath");this._redactor.wbbcode.insertSmiley(a,c,true)}});WCF.Message.QuickReply=Class.extend({_container:null,_messageField:null,_notification:null,_pendingSave:false,_proxy:null,_quickReplyButtons:null,_quoteManager:null,_scrollHandler:null,_successMessageNonVisible:"",init:function(d,b){this._container=$("#messageQuickReply");this._container.children(".message").addClass("jsInvalidQuoteTarget");this._messageField=$("#text");this._pendingSave=false;if(!this._container||!this._messageField){return}var a=this._container.find(".formSubmit");var c=a.find("button[data-type=save]").removeAttr("accesskey").click($.proxy(this._save,this));if(d){a.find("button[data-type=extended]").click($.proxy(this._prepareExtended,this))}a.find("button[data-type=cancel]").click($.proxy(this._cancel,this));if(b){this._quoteManager=b}this._quickReplyButtons=$(".jsQuickReply").data("__api",this).click($.proxy(this.click,this));this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),showLoadingOverlay:false,success:$.proxy(this._success,this)});this._scroll=new WCF.Effect.Scroll();this._notification=new WCF.System.Notification(WCF.Language.get("wcf.global.success.add"));this._successMessageNonVisible="";WCF.System.Event.addListener("com.woltlab.wcf.redactor","submitEditor_text",function(e){e.cancel=true;c.trigger("click")});WCF.System.Event.addListener("com.woltlab.wcf.message.quote","insert",(function(f){var e=false;if(this._container.is(":visible")){e=true}else{if(f.forceInsert){e=(this._messageField.redactor("wutil.isEmptyEditor")?false:true);this.click(null)}}if(e){this._messageField.redactor("wutil.selectionEndOfEditor");this._messageField.redactor("wbbcode.insertQuoteBBCode",f.quote.username,f.quote.link,f.quote.text,f.quote.text);this._scroll.scrollTo(this._container,true)}}).bind(this))},click:function(b){this._container.toggle();if(this._container.is(":visible")){this._quickReplyButtons.hide();setTimeout((function(){$(document).trigger("resize");if(!$.browser.mobile||!$.browser.chrome){this._scroll.scrollTo(this._container,true)}}).bind(this),100);WCF.Message.Submit.registerButton("text",this._container.find(".formSubmit button[data-type=save]"));if(this._quoteManager){var a=true;if($.browser.redactor){if(this._messageField.data("redactor")){this._editorCallback(this._messageField.redactor("wutil.isEmptyEditor"))}}else{a=(!this._messageField.val().length);this._editorCallback(a)}}}if(b!==null){b.stopPropagation();return false}},_editorCallback:function(a){if(a){this._quoteManager.insertQuotes(this._getClassName(),this._getObjectID(),$.proxy(this._insertQuotes,this))}if($.browser.redactor){this._messageField.redactor("focus.setEnd")}else{this._messageField.focus()}},getContainer:function(){return this._container},_insertQuotes:function(b){if(!b.returnValues.template){return}if($.browser.redactor){var a=WCF.String.unescapeHTML(b.returnValues.template);a=this._messageField.redactor("wbbcode.convertToHtml",a);a=a.replace(/<p><blockquote/,"<blockquote");a=a.replace(/blockquote><\/p>/,"blockquote>");this._messageField.redactor("focus.setEnd");this._messageField.redactor("wutil.insertDynamic",a,b.returnValues.template);this._messageField.redactor("wutil.selectionEndOfEditor");this._messageField.redactor("wbbcode._observeQuotes")}else{this._messageField.val(b.returnValues.template)}},_save:function(){if(this._pendingSave){return}var a="";if($.browser.redactor){a=this._messageField.redactor("wutil.getText")}else{a=$.trim(this._messageField.val())}var d=this._messageField.parent().find("small.innerError");if(a===""||a==="0"){if(!d.length){d=$('<small class="innerError" />').appendTo(this._messageField.parent())}d.html(WCF.Language.get("wcf.global.form.error.empty"));return}else{d.remove()}this._pendingSave=true;this._proxy.setOption("data",{actionName:"quickReply",className:this._getClassName(),interfaceName:"wcf\\data\\IMessageQuickReplyAction",parameters:this._getParameters(a)});this._proxy.sendRequest();var b=this._container.find(".messageQuickReplyContent .messageBody");$('<span class="icon icon48 icon-spinner" />').appendTo(b);var c=b.children(".redactor-box").hide();c.next().hide();b.next().hide()},_getParameters:function(b){var a={objectID:this._getObjectID(),data:{message:b},lastPostTime:this._container.data("lastPostTime"),pageNo:this._container.data("pageNo"),removeQuoteIDs:(this._quoteManager===null?[]:this._quoteManager.getQuotesMarkedForRemoval())};if(this._container.data("anchor")){a.anchor=this._container.data("anchor")}WCF.System.Event.fireEvent("com.woltlab.wcf.messageOptionsInline","submit_"+this._messageField.wcfIdentify(),a.data);return a},_cancel:function(){this._revertQuickReply(true);if($.browser.redactor){this._messageField.redactor("wutil.reset")}else{this._messageField.val("")}},_revertQuickReply:function(b){var a=this._container.find(".messageQuickReplyContent .messageBody");if(b){this._container.hide();a.children("small.innerError").remove()}a.children(".icon-spinner").remove();a.children(".redactor-box").show().next().show();a.next().show();this._quickReplyButtons.show()},_prepareExtended:function(){this._pendingSave=true;if(this._quoteManager!==null){this._quoteManager.markQuotesForRemoval()}var a="";if($.browser.redactor){a=this._messageField.redactor("wutil.getText");if(a.length){this._messageField.redactor("wutil.saveTextToStorage",true)}else{this._messageField.redactor("wutil.autosavePurge")}}else{a=$.trim(this._messageField.val())}new WCF.Action.Proxy({autoSend:true,data:{actionName:"jumpToExtended",className:this._getClassName(),interfaceName:"wcf\\data\\IExtendedMessageQuickReplyAction",parameters:{containerID:this._getObjectID(),message:a}},success:(function(b){this._messageField.redactor("wutil.saveTextToStorage");window.location=b.returnValues.url}).bind(this)})},_success:function(c,d,b){if($.browser.redactor){this._messageField.redactor("wutil.autosavePurge")}if(c.returnValues.url){window.location=c.returnValues.url}else{if(c.returnValues.template){var a=$(""+c.returnValues.template);if(this._container.data("sortOrder")=="DESC"){a.insertAfter(this._container)}else{a.insertBefore(this._container)}this._container.data("lastPostTime",c.returnValues.lastPostTime);this._notification.show(undefined,undefined,WCF.Language.get("wcf.global.success.add"));this._updateHistory(a.wcfIdentify())}else{var a=(this._successMessageNonVisible)?this._successMessageNonVisible:"wcf.global.success.add";this._notification.show(undefined,5000,WCF.Language.get(a))}if($.browser.redactor){this._messageField.redactor("wutil.reset")}else{this._messageField.val("")}this._revertQuickReply(true);if(this._quoteManager!==null){this._quoteManager.countQuotes()}this._pendingSave=false}},_failure:function(b){this._pendingSave=false;this._revertQuickReply(false);if(b===null||b.returnValues===undefined||b.returnValues.errorType===undefined){return true}var a=this._container.find(".messageQuickReplyContent .messageBody");var c=a.children("small.innerError").empty();if(!c.length){c=$('<small class="innerError" />').appendTo(a)}c.html(b.returnValues.errorType);return false},_getClassName:function(){return""},_getObjectID:function(){return 0},_updateHistory:function(a){window.location.hash=a}});WCF.Message.InlineEditor=Class.extend({_activeElementID:"",_container:{},_containerID:0,_dropdowns:{},_messageContainerSelector:".jsMessage",_messageEditorIDPrefix:"messageEditor",_notification:null,_proxy:null,_quoteManager:null,_supportExtendedForm:false,init:function(a,c,b){this._activeElementID="";this._container={};this._containerID=parseInt(a);this._dropdowns={};this._quoteManager=b||null;this._supportExtendedForm=(c)?true:false;this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),showLoadingOverlay:false,success:$.proxy(this._success,this)});this._notification=new WCF.System.Notification(WCF.Language.get("wcf.global.success.edit"));this.initContainers();WCF.DOMNodeInsertedHandler.addCallback("WCF.Message.InlineEditor",$.proxy(this.initContainers,this))},initContainers:function(){$(this._messageContainerSelector).each($.proxy(function(b,a){var e=$(a);var c=e.wcfIdentify();if(!this._container[c]){this._container[c]=e;if(e.data("canEditInline")){var d=e.find(".jsMessageEditButton:eq(0)").data("containerID",c).click($.proxy(this._clickInline,this));if(e.data("canEdit")){d.dblclick($.proxy(this._click,this))}}else{if(e.data("canEdit")){e.find(".jsMessageEditButton:eq(0)").data("containerID",c).click($.proxy(this._click,this))}}}},this))},_click:function(c,a){var b=(c===null)?a:$(c.currentTarget).data("containerID");if(this._activeElementID===""){this._activeElementID=b;this._prepare();this._proxy.setOption("data",{actionName:"beginEdit",className:this._getClassName(),interfaceName:"wcf\\data\\IMessageInlineEditorAction",parameters:{containerID:this._containerID,objectID:this._container[b].data("objectID")}});this._proxy.setOption("failure",$.proxy(function(){this._cancel()},this));this._proxy.sendRequest()}else{var d=new WCF.System.Notification(WCF.Language.get("wcf.message.error.editorAlreadyInUse"),"warning");d.show()}if(this._dropdowns[this._container[b].data("objectID")]){this._dropdowns[this._container[b].data("objectID")].removeClass("dropdownOpen")}if(c!==null){c.stopPropagation();return false}},_clickInline:function(c){var d=$(c.currentTarget);if(!d.hasClass("dropdownToggle")){var b=d.data("containerID");d.addClass("dropdownToggle").parent().addClass("dropdown");var a=$('<ul class="dropdownMenu" />').insertAfter(d);this._initDropdownMenu(b,a);WCF.DOMNodeInsertedHandler.execute();this._dropdowns[this._container[b].data("objectID")]=a;WCF.Dropdown.registerCallback(d.parent().wcfIdentify(),$.proxy(this._toggleDropdown,this));d.trigger("click")}c.stopPropagation();return false},_failure:function(b){this._revertEditor();if(b===null||b.returnValues===undefined||b.returnValues.errorType===undefined){return true}var a=this._container[this._activeElementID].find(".messageBody .messageInlineEditor");var c=a.children("small.innerError").empty();if(!c.length){c=$('<small class="innerError" />').insertBefore(a.children(".formSubmit"))}c.html(b.returnValues.errorType);return false},_toggleDropdown:function(a,b){WCF.Dropdown.getDropdown(a).parents(".messageOptions").toggleClass("forceOpen")},_initDropdownMenu:function(a,b){},_prepare:function(){var b=this._container[this._activeElementID].find(".messageBody");$('<span class="icon icon48 icon-spinner" />').appendTo(b);var a=b.find(".messageText").hide();a.parent().children(".jsInlineEditorHideContent").hide();b.children(".attachmentThumbnailList, .attachmentFileList").hide()},_cancel:function(){var b=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget");this._destroyEditor();var a=b.find(".messageBody");a.children(".icon-spinner").remove();a.find(".messageText").show();a.children(".attachmentThumbnailList, .attachmentFileList").show();a.find(".jsInlineEditorHideContent").show();this._container[this._activeElementID].find(".messageOptions").removeClass("forceHidden");this._activeElementID="";if(this._quoteManager){this._quoteManager.clearAlternativeEditor()}},_success:function(b,c,a){switch(b.returnValues.actionName){case"beginEdit":this._showEditor(b);break;case"save":this._showMessage(b);break}},_showEditor:function(g){this._proxy.setOption("failure",$.proxy(this._failure,this));var e=this._messageEditorIDPrefix+this._container[this._activeElementID].data("objectID");var d=this._container[this._activeElementID].addClass("jsInvalidQuoteTarget").find(".messageBody");d.children(".icon-spinner").remove();var c=d.children("div:eq(0)");$(""+g.returnValues.template).appendTo(c);var b=c.find(".formSubmit");var f=b.find("button[data-type=save]").click($.proxy(this._save,this));if(this._supportExtendedForm){b.find("button[data-type=extended]").click($.proxy(this._prepareExtended,this))}b.find("button[data-type=cancel]").click($.proxy(this._cancel,this));WCF.Message.Submit.registerButton(this._messageEditorIDPrefix+this._container[this._activeElementID].data("objectID"),f);WCF.System.Event.addListener("com.woltlab.wcf.redactor","submitEditor_"+e,function(h){h.cancel=true;f.trigger("click")});this._container[this._activeElementID].find(".messageOptions").addClass("forceHidden");var a=$("#"+e);if($.browser.redactor){new WCF.PeriodicalExecuter($.proxy(function(h){h.stop();if(this._quoteManager){this._quoteManager.setAlternativeEditor(a)}new WCF.Effect.Scroll().scrollTo(this._container[this._activeElementID],true)},this),250)}else{a.focus()}},_revertEditor:function(){var a=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget").find(".messageBody");a.children("span.icon-spinner").remove();a.children("div:eq(0)").children(":not(.messageText)").show();a.children(".attachmentThumbnailList, .attachmentFileList").show();a.find(".jsInlineEditorHideContent").show();if(this._quoteManager){this._quoteManager.clearAlternativeEditor()}},_save:function(){var d=this._container[this._activeElementID];var c=d.data("objectID");var a="";if($.browser.redactor){a=$("#"+this._messageEditorIDPrefix+c).redactor("wutil.getText")}else{a=$("#"+this._messageEditorIDPrefix+c).val()}var b={containerID:this._containerID,data:{message:a},objectID:c};WCF.System.Event.fireEvent("com.woltlab.wcf.messageOptionsInline","submit_"+this._messageEditorIDPrefix+c,b);this._proxy.setOption("data",{actionName:"save",className:this._getClassName(),interfaceName:"wcf\\data\\IMessageInlineEditorAction",parameters:b});this._proxy.sendRequest();this._hideEditor()},_prepareExtended:function(){var c=this._container[this._activeElementID];var b=c.data("objectID");var a="";if($.browser.redactor){a=$("#"+this._messageEditorIDPrefix+b).redactor("wutil.getText")}else{a=$("#"+this._messageEditorIDPrefix+b).val()}new WCF.Action.Proxy({autoSend:true,data:{actionName:"jumpToExtended",className:this._getClassName(),parameters:{containerID:this._containerID,message:a,messageID:b}},success:function(e,f,d){window.location=e.returnValues.url}})},_hideEditor:function(){var a=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget").find(".messageBody");$('<span class="icon icon48 icon-spinner" />').appendTo(a);a.children("div:eq(0)").children().hide();a.children(".attachmentThumbnailList, .attachmentFileList").show();a.find(".jsInlineEditorHideContent").show();if(this._quoteManager){this._quoteManager.clearAlternativeEditor()}},_showMessage:function(c){var d=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget");var b=d.find(".messageBody");b.children(".icon-spinner").remove();var a=b.children("div:eq(0)");a.parent().children(".jsInlineEditorHideContent").show();this._container[this._activeElementID].find(".messageOptions").removeClass("forceHidden");this._destroyEditor();a.children(".messageText").html(c.returnValues.message).show();if(c.returnValues.attachmentList==undefined){b.children(".attachmentThumbnailList, .attachmentFileList").show()}else{b.children(".attachmentThumbnailList, .attachmentFileList").remove();if(c.returnValues.attachmentList){$(c.returnValues.attachmentList).insertAfter(b.children("div:eq(0)"))}}this._activeElementID="";this._updateHistory(this._getHash(d.data("objectID")));this._notification.show();if(this._quoteManager){this._quoteManager.clearAlternativeEditor()}},_destroyEditor:function(){var b=this._container[this._activeElementID];if($.browser.redactor){var a=$("#"+this._messageEditorIDPrefix+b.data("objectID"));a.redactor("wutil.autosavePurge");a.redactor("core.destroy")}b.find(".messageBody > div > .messageInlineEditor").remove();WCF.System.Event.removeAllListeners("com.woltlab.wcf.messageOptionsInline","submit_"+this._messageEditorIDPrefix+b.data("objectID"))},_getClassName:function(){return""},_getHash:function(a){return"#message"+a},_updateHistory:function(a){window.location.hash=a}});WCF.Message.Submit={_buttons:{},registerButton:function(b,a){if(!WCF.Browser.isChrome()){return}this._buttons[b]=$(a)},execute:function(a){if(!this._buttons[a]){return}this._buttons[a].trigger("click")}};WCF.Message.Quote={};WCF.Message.Quote.Handler=Class.extend({_activeContainerID:"",_className:"",_containers:{},_containerSelector:"",_copyQuote:null,_message:"",_messageBodySelector:"",_objectID:0,_objectType:"",_proxy:null,_quoteManager:null,init:function(e,d,b,a,c,f,g){this._className=d;if(this._className==""){console.debug("[WCF.Message.QuoteManager] Empty class name given, aborting.");return}this._objectType=b;if(this._objectType==""){console.debug("[WCF.Message.QuoteManager] Empty object type name given, aborting.");return}this._containerSelector=a;this._message="";this._messageBodySelector=c;this._messageContentSelector=f;this._objectID=0;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._initContainers();g=(g&&e.supportPaste())?true:false;this._initCopyQuote(g);$(document).mouseup($.proxy(this._mouseUp,this));this._quoteManager=e;this._quoteManager.register(this._objectType,this);WCF.DOMNodeInsertedHandler.addCallback("WCF.Message.Quote.Handler"+b.hashCode(),$.proxy(this._initContainers,this))},_initContainers:function(){var a=this;$(this._containerSelector).each(function(c,b){var e=$(b);var d=e.wcfIdentify();if(!a._containers[d]){a._containers[d]=e;if(e.hasClass("jsInvalidQuoteTarget")){return true}if(a._messageBodySelector!==null){e=e.find(a._messageBodySelector).data("containerID",d)}e.mousedown($.proxy(a._mouseDown,a));a._containers[d].find(".jsQuoteMessage").click($.proxy(a._saveFullQuote,a))}})},_mouseDown:function(a){this._copyQuote.hide();var b=$(a.currentTarget);if(this._messageBodySelector){b=this._containers[b.data("containerID")]}if(b.hasClass("jsInvalidQuoteTarget")){this._activeContainerID="";return}this._activeContainerID=b.wcfIdentify();if($.browser.mozilla){b.find("img").each(function(){var c=$(this);c.data("__alt",c.attr("alt")).removeAttr("alt")})}},_getNodeText:function(d){var a=document.createTreeWalker(d,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,{acceptNode:function(e){if(e.tagName==="H3"){return NodeFilter.FILTER_REJECT}return NodeFilter.FILTER_ACCEPT}},true);var c="";while(a.nextNode()){var b=a.currentNode;if(b.nodeType===Node.ELEMENT_NODE){switch(b.tagName){case"BR":case"LI":case"UL":c+="\n";break;case"TD":if(!$.browser.msie){c+="\n"}break}}else{c+=a.currentNode.nodeValue}}return c},_mouseUp:function(a){if(this._activeContainerID==""){this._copyQuote.hide();return}var i=this._containers[this._activeContainerID];var c=this._getSelectedText();var f=$.trim(c);if(f==""){this._copyQuote.hide();return}var d=null;if(this._messageBodySelector){d=this._getNodeText(i.find(this._messageContentSelector)[0])}else{d=this._getNodeText(i[0])}if(this._normalize(d).indexOf(this._normalize(f))===-1){return}this._copyQuote.show();var g=this._getBoundingRectangle(i,window.getSelection());var e=this._copyQuote.getDimensions("outer");var b=(g.right-g.left)/2-(e.width/2)+g.left;this._copyQuote.css({top:g.top-e.height-7+"px",left:b+"px"});this._copyQuote.hide();this._activeContainerID="";var h=this;new WCF.PeriodicalExecuter(function(j){j.stop();var k=$.trim(h._getSelectedText());if(k!=""){h._copyQuote.show();h._message=k;h._objectID=i.data("objectID");if($.browser.mozilla){i.find("img").each(function(){var l=$(this);l.attr("alt",l.data("__alt"))})}}},10)},_normalize:function(a){return a.replace(/\r?\n|\r/g,"\n").replace(/\s/g," ").replace(/\s{2,}/g," ")},_getOffset:function(c,d){c.collapse(d);var f=WCF.getRandomID();var a=document.createElement("span");a.innerHTML='<span id="'+f+'"></span>';var g=document.createDocumentFragment(),b;while(b=a.firstChild){g.appendChild(b)}c.insertNode(g);a=$("#"+f);var e=a.offset();e.top=e.top-$(window).scrollTop();a.remove();return e},_getBoundingRectangle:function(a,d){var c=null;if(document.createRange&&typeof document.createRange().getBoundingClientRect!="undefined"){if(d.rangeCount>0){var b=d.getRangeAt(0).getBoundingClientRect();c={left:b.left,right:b.right,top:b.top+$(document).scrollTop()}}}else{if(document.selection&&document.selection.type!="Control"){var e=document.selection.createRange();c={left:e.boundingLeft,right:e.boundingRight,top:e.boundingTop}}}return c},_saveSelection:function(d){if(window.getSelection&&document.createRange){var c=window.getSelection().getRangeAt(0);var b=c.cloneRange();b.selectNodeContents(d);b.setEnd(c.startContainer,c.startOffset);var f=b.toString().length;return{start:f,end:f+c.toString().length}}else{var a=document.selection.createRange();var e=document.body.createTextRange();e.moveToElementText(d);e.setEndPoint("EndToStart",a);var f=e.text.length;return{start:f,end:f+a.text.length}}},_restoreSelection:function(j,k){if(window.getSelection&&document.createRange){var a=0,g=document.createRange();g.setStart(j,0);g.collapse(true);var f=[j],c,d=false,l=false;while(!l&&(c=f.pop())){if(c.nodeType==Node.TEXT_NODE){var h=a+c.length;if(!d&&k.start>=a&&k.start<=h){g.setStart(c,k.start-a);d=true}if(d&&k.end>=a&&k.end<=h){g.setEnd(c,k.end-a);l=true}a=h}else{var e=c.childNodes.length;while(e--){f.push(c.childNodes[e])}}}var b=window.getSelection();b.removeAllRanges();b.addRange(g)}else{var m=document.body.createTextRange();m.moveToElementText(j);m.collapse(true);m.moveEnd("character",k.end);m.moveStart("character",k.start);m.select()}},_initCopyQuote:function(b){this._copyQuote=$("#quoteManagerCopy");if(!this._copyQuote.length){this._copyQuote=$('<div id="quoteManagerCopy" class="balloonTooltip"><span class="jsQuoteManagerStore">'+WCF.Language.get("wcf.message.quote.quoteSelected")+'</span><span class="pointer"><span></span></span></div>').hide().appendTo(document.body);var a=this._copyQuote.children("span.jsQuoteManagerStore").click($.proxy(this._saveQuote,this));if(b){$('<span class="jsQuoteManagerQuoteAndInsert">'+WCF.Language.get("wcf.message.quote.quoteAndReply")+"</span>").click($.proxy(this._saveAndInsertQuote,this)).insertAfter(a)}}},_getSelectedText:function(){var a=window.getSelection();if(a.rangeCount){return this._getNodeText(a.getRangeAt(0).cloneContents())}return""},_saveFullQuote:function(b){var a=$(b.currentTarget);this._proxy.setOption("data",{actionName:"saveFullQuote",className:this._className,interfaceName:"wcf\\data\\IMessageQuoteAction",objectIDs:[a.data("objectID")]});this._proxy.sendRequest();if(a.data("isQuoted")){a.data("isQuoted",false).children("a").removeClass("active")}else{a.data("isQuoted",true).children("a").addClass("active")}var c=a.parents(".buttonGroupNavigation");if(c.hasClass("jsMobileButtonGroupNavigation")){c.children(".dropdownLabel").trigger("click")}b.stopPropagation();return false},_saveQuote:function(a){a=(a===true)?true:false;this._proxy.setOption("data",{actionName:"saveQuote",className:this._className,interfaceName:"wcf\\data\\IMessageQuoteAction",objectIDs:[this._objectID],parameters:{message:this._message,renderQuote:a}});this._proxy.sendRequest()},_saveAndInsertQuote:function(){this._saveQuote(true)},_success:function(c,d,b){if(c.returnValues.count!==undefined){if(c.returnValues.fullQuoteMessageIDs!==undefined){c.returnValues.fullQuoteObjectIDs=c.returnValues.fullQuoteMessageIDs}var a=(c.returnValues.fullQuoteObjectIDs!==undefined)?c.returnValues.fullQuoteObjectIDs:{};this._quoteManager.updateCount(c.returnValues.count,a)}switch(c.actionName){case"saveQuote":case"saveFullQuote":if(c.returnValues.renderedQuote){WCF.System.Event.fireEvent("com.woltlab.wcf.message.quote","insert",{forceInsert:(c.actionName==="saveQuote"?true:false),quote:c.returnValues.renderedQuote})}break}},updateFullQuoteObjectIDs:function(b){for(var a in this._containers){this._containers[a].find(".jsQuoteMessage").each(function(c,d){var e=$(d).data("isQuoted",0);e.children("a").removeClass("active");if(WCF.inArray(e.data("objectID"),b)){e.data("isQuoted",1).children("a").addClass("active")}})}}});WCF.Message.Quote.Manager=Class.extend({_buttons:{},_count:0,_dialog:null,_editorElement:null,_editorElementAlternative:null,_form:null,_handlers:{},_hasTemplate:false,_insertQuotes:true,_proxy:null,_removeOnSubmit:[],_showQuotes:null,_supportPaste:false,init:function(c,a,b,d){this._buttons={insert:null,remove:null};this._count=parseInt(c)||0;this._dialog=null;this._editorElement=null;this._editorElementAlternative=null;this._form=null;this._handlers={};this._hasTemplate=false;this._insertQuotes=true;this._removeOnSubmit=[];this._showQuotes=null;this._supportPaste=false;if(a){this._editorElement=$("#"+a);if(this._editorElement.length){this._supportPaste=true;this._form=this._editorElement.parents("form:eq(0)");if(this._form.length){this._form.submit($.proxy(this._submit,this));this._removeOnSubmit=d||[]}else{this._form=null;this._supportPaste=(b===true)?true:false}}}this._proxy=new WCF.Action.Proxy({showLoadingOverlay:false,success:$.proxy(this._success,this),url:"index.php/MessageQuote/?t="+SECURITY_TOKEN+SID_ARG_2ND});this._toggleShowQuotes()},setAlternativeEditor:function(a){this._editorElementAlternative=a},clearAlternativeEditor:function(){this._editorElementAlternative=null},register:function(a,b){this._handlers[a]=b},updateCount:function(d,c){this._count=parseInt(d)||0;this._toggleShowQuotes();for(var a in this._handlers){var b=c[a]||[];this._handlers[a].updateFullQuoteObjectIDs(b)}},insertQuotes:function(a,b,c){if(!this._insertQuotes){this._insertQuotes=true;return}new WCF.Action.Proxy({autoSend:true,data:{actionName:"getRenderedQuotes",className:a,interfaceName:"wcf\\data\\IMessageQuoteAction",parameters:{parentObjectID:b}},success:c})},_toggleShowQuotes:function(){if(!this._count){if(this._showQuotes!==null){this._showQuotes.hide()}}else{if(this._showQuotes===null){this._showQuotes=$("#showQuotes");if(!this._showQuotes.length){this._showQuotes=$('<div id="showQuotes" class="balloonTooltip" />').click($.proxy(this._click,this)).appendTo(document.body)}}var a=WCF.Language.get("wcf.message.quote.showQuotes").replace(/#count#/,this._count);this._showQuotes.text(a).show()}this._hasTemplate=false},_click:function(){if(this._hasTemplate){this._dialog.wcfDialog("open")}else{this._proxy.showLoadingOverlayOnce();this._proxy.setOption("data",{actionName:"getQuotes",supportPaste:this._supportPaste});this._proxy.sendRequest()}},renderDialog:function(c){if(this._dialog===null){this._dialog=$("#messageQuoteList");if(!this._dialog.length){this._dialog=$('<div id="messageQuoteList" />').hide().appendTo(document.body)}}this._dialog.html(c);var a=$('<div class="formSubmit" />').appendTo(this._dialog);if(this._supportPaste){this._buttons.insert=$('<button class="buttonPrimary">'+WCF.Language.get("wcf.message.quote.insertAllQuotes")+"</button>").click($.proxy(this._insertSelected,this)).appendTo(a)}this._buttons.remove=$("<button>"+WCF.Language.get("wcf.message.quote.removeAllQuotes")+"</button>").click($.proxy(this._removeSelected,this)).appendTo(a);this._dialog.wcfDialog({title:WCF.Language.get("wcf.message.quote.manageQuotes")});this._dialog.wcfDialog("render");this._hasTemplate=true;var d=this._dialog.find(".jsInsertQuote");if(this._supportPaste){d.click($.proxy(this._insertQuote,this))}else{d.hide()}this._dialog.find("input.jsCheckbox").change($.proxy(this._changeButtons,this));if(this._removeOnSubmit.length){var b=this;this._dialog.find("input.jsRemoveQuote").each(function(f,e){var g=$(e).change($.proxy(this._change,this));if(WCF.inArray(g.parent("li").attr("data-quote-id"),b._removeOnSubmit)){g.attr("checked","checked")}})}},_changeButtons:function(){if(this._dialog.find("input.jsCheckbox:checked").length){if(this._supportPaste){this._buttons.insert.html(WCF.Language.get("wcf.message.quote.insertSelectedQuotes"))}this._buttons.remove.html(WCF.Language.get("wcf.message.quote.removeSelectedQuotes"))}else{if(this._supportPaste){this._buttons.insert.html(WCF.Language.get("wcf.message.quote.insertAllQuotes"))}this._buttons.remove.html(WCF.Language.get("wcf.message.quote.removeAllQuotes"))}},_change:function(c){var d=$(c.currentTarget);var b=d.parent("li").attr("data-quote-id");if(d.prop("checked")){this._removeOnSubmit.push(b)}else{for(var a in this._removeOnSubmit){if(this._removeOnSubmit[a]==b){delete this._removeOnSubmit[a];break}}}},_insertSelected:function(){if(this._editorElementAlternative===null){var a=$(".jsQuickReply:eq(0)").data("__api");if(a&&!a.getContainer().is(":visible")){this._insertQuotes=false;a.click(null)}}if(!this._dialog.find("input.jsCheckbox:checked").length){this._dialog.find("input.jsCheckbox").prop("checked","checked")}this._dialog.find("input.jsCheckbox:checked").each($.proxy(function(c,b){this._insertQuote(null,b)},this));this._dialog.wcfDialog("close")},_insertQuote:function(a,h){var f=(a===null)?$(h).parents("li"):$(a.currentTarget).parents("li");var i=$.trim(f.children("div.jsFullQuote").text());var e=f.parents("article.message");if($.browser.redactor){if(this._editorElementAlternative===null){this._editorElement.redactor("wbbcode.insertQuoteBBCode",e.attr("data-username"),e.data("link"),i,i)}else{this._editorElementAlternative.redactor("wbbcode.insertQuoteBBCode",e.attr("data-username"),e.data("link"),i,i)}}else{i="[quote='"+e.attr("data-username")+"','"+e.data("link")+"']"+i+"[/quote]";var d=(this._editorElementAlternative===null)?this._editorElement:this._editorElementAlternative;var g=d.val();i+="\n\n";if(g.length==0){d.val(i)}else{var b=d.getCaret();d.val(g.substr(0,b)+i+g.substr(b))}}this._removeOnSubmit.push(f.attr("data-quote-id"));if(a!==null){this._dialog.wcfDialog("close")}if(a!==null&&this._editorElementAlternative===null){var c=$(".jsQuickReply:eq(0)").data("__api");if(c&&!c.getContainer().is(":visible")){this._insertQuotes=false;c.click(null)}}},_removeSelected:function(){if(!this._dialog.find("input.jsCheckbox:checked").length){this._dialog.find("input.jsCheckbox").prop("checked","checked")}var b=[];this._dialog.find("input.jsCheckbox:checked").each(function(e,d){b.push($(d).parents("li").attr("data-quote-id"))});if(b.length){var c=[];for(var a in this._handlers){c.push(a)}this._proxy.setOption("data",{actionName:"remove",getFullQuoteObjectIDs:this._handlers.length>0,objectTypes:c,quoteIDs:b});this._proxy.sendRequest();this._dialog.wcfDialog("close")}},_submit:function(){if(this._supportPaste&&this._removeOnSubmit.length>0){var a=this._form.find(".formSubmit");for(var b in this._removeOnSubmit){$('<input type="hidden" name="__removeQuoteIDs[]" value="'+this._removeOnSubmit[b]+'" />').appendTo(a)}}},getQuotesMarkedForRemoval:function(){return this._removeOnSubmit},markQuotesForRemoval:function(){if(this._removeOnSubmit.length){this._proxy.setOption("data",{actionName:"markForRemoval",quoteIDs:this._removeOnSubmit});this._proxy.suppressErrors();this._proxy.sendRequest()}},removeMarkedQuotes:function(){if(this._removeOnSubmit.length){this._proxy.setOption("data",{actionName:"removeMarkedQuotes",getFullQuoteObjectIDs:this._handlers.length>0});this._proxy.sendRequest()}},countQuotes:function(){var b=[];for(var a in this._handlers){b.push(a)}this._proxy.setOption("data",{actionName:"count",getFullQuoteObjectIDs:(b.length>0),objectTypes:b});this._proxy.sendRequest()},_success:function(c,d,b){if(c===null){return}if(c.count!==undefined){var a=(c.fullQuoteObjectIDs!==undefined)?c.fullQuoteObjectIDs:{};this.updateCount(c.count,a)}if(c.template!==undefined){if($.trim(c.template)==""){this.updateCount(0,{})}else{this.renderDialog(c.template)}}},supportPaste:function(){return this._supportPaste}});WCF.Message.Share={};WCF.Message.Share.Content=Class.extend({_cache:{},_dialog:null,init:function(){this._cache={};this._dialog=null;this._initLinks();WCF.DOMNodeInsertedHandler.addCallback("WCF.Message.Share.Content",$.proxy(this._initLinks,this))},_initLinks:function(){$("a.jsButtonShare").removeClass("jsButtonShare").click($.proxy(this._click,this))},_click:function(e){e.preventDefault();var a=$(e.currentTarget);var b=a.prop("href");var d=(a.data("linkTitle")?a.data("linkTitle"):b);var c=b.hashCode();if(this._cache[c]===undefined){var g=false;if(this._dialog===null){this._dialog=$("<div />").hide().appendTo(document.body);g=true}else{this._dialog.empty()}var f=$('<fieldset><legend><label for="__sharePermalink">'+WCF.Language.get("wcf.message.share.permalink")+"</label></legend></fieldset>").appendTo(this._dialog);$('<input type="text" id="__sharePermalink" class="long" readonly="readonly" />').attr("value",b).appendTo(f);var f=$('<fieldset><legend><label for="__sharePermalinkBBCode">'+WCF.Language.get("wcf.message.share.permalink.bbcode")+"</label></legend></fieldset>").appendTo(this._dialog);$('<input type="text" id="__sharePermalinkBBCode" class="long" readonly="readonly" />').attr("value","[url='"+b+"']"+d+"[/url]").appendTo(f);var f=$('<fieldset><legend><label for="__sharePermalinkHTML">'+WCF.Language.get("wcf.message.share.permalink.html")+"</label></legend></fieldset>").appendTo(this._dialog);$('<input type="text" id="__sharePermalinkHTML" class="long" readonly="readonly" />').attr("value",'<a href="'+b+'">'+WCF.String.escapeHTML(d)+"</a>").appendTo(f);this._cache[c]=this._dialog.html();if(g){this._dialog.wcfDialog({title:WCF.Language.get("wcf.message.share")})}else{this._dialog.wcfDialog("open")}}else{this._dialog.html(this._cache[c]).wcfDialog("open")}this._enableSelection()},_enableSelection:function(){var a=this._dialog.find("input").click(function(){$(this).select()});if(navigator.userAgent.match(/iP(ad|hone|od)/)){a.keydown(function(){return false}).removeAttr("readonly").click(function(){this.setSelectionRange(0,9999)})}}});WCF.Message.Share.Page=Class.extend({_dialog:null,_fetchObjectCount:false,_pageDescription:"",_pageURL:"",_privacySettings:{},_provider:{},_proxy:null,init:function(a,b){this._dialog=null;this._fetchObjectCount=(a===true)?true:false;this._pageDescription=encodeURIComponent($('meta[property="og:title"]').prop("content"));this._pageURL=encodeURIComponent($('meta[property="og:url"]').prop("content"));this._privacySettings=$.extend({facebook:false,google:false,twitter:false,reddit:false},b||{});this._proxy=null;this._initProvider()},_initProvider:function(){var c=$(".messageShareButtons");var a=this;this._provider={facebook:{fetch:function(){a._fetchFacebook()},link:c.find(".jsShareFacebook"),share:function(){a._share("facebook","https://www.facebook.com/sharer.php?u={pageURL}&t={text}",true)}},google:{fetch:undefined,link:c.find(".jsShareGoogle"),share:function(){a._share("google","https://plus.google.com/share?url={pageURL}",true)}},reddit:{fetch:function(){a._fetchReddit()},link:c.find(".jsShareReddit"),share:function(){a._share("reddit","https://ssl.reddit.com/submit?url={pageURL}",true)}},twitter:{fetch:function(){a._fetchTwitter()},link:c.find(".jsShareTwitter"),share:function(){a._share("twitter","https://twitter.com/share?url={pageURL}&text={text}",false)}}};$.each(this._provider,function(e,d){if(a._privacySettings[e]){if(a._fetchObjectCount&&d.fetch){d.fetch()}}else{d.link.addClass("disabled")}d.link.data("provider",e).click($.proxy(a._click,a))});if(WCF.User.userID){var b=$('<li class="jsShowPrivacySettings"><a><span class="icon icon32 fa-gear jsTooltip" title="'+WCF.Language.get("wcf.message.share.privacy")+'" /></a></li>');b.appendTo(c.children("ul")).children("a").click($.proxy(this._openPrivacySettings,this))}},_click:function(b){var a=$(b.currentTarget);var c=a.data("provider");if(a.hasClass("disabled")){if(WCF.User.userID){this._openPrivacySettings()}else{a.removeClass("disabled")}}else{this._provider[c].share()}},_openPrivacySettings:function(){if(this._proxy===null){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)})}this._proxy.setOption("data",{actionName:"getSocialNetworkPrivacySettings",className:"wcf\\data\\user\\UserAction"});this._proxy.sendRequest()},_success:function(b,c,a){switch(b.actionName){case"getSocialNetworkPrivacySettings":this._renderDialog(b);break;case"saveSocialNetworkPrivacySettings":this._updatePrivacySettings(b);break}},_renderDialog:function(a){if(this._dialog===null){this._dialog=$("<div />").hide().appendTo(document.body);this._dialog.html(a.returnValues.template);this._dialog.wcfDialog({title:WCF.Language.get("wcf.message.share.privacy")})}else{this._dialog.html(a.returnValues.template);this._dialog.wcfDialog("open")}this._dialog.find("input[type=submit]").click($.proxy(this._save,this))},_save:function(){this._proxy.setOption("data",{actionName:"saveSocialNetworkPrivacySettings",className:"wcf\\data\\user\\UserAction",parameters:{facebook:(this._dialog.find("input[name=facebook]").is(":checked")),google:(this._dialog.find("input[name=google]").is(":checked")),reddit:(this._dialog.find("input[name=reddit]").is(":checked")),twitter:(this._dialog.find("input[name=twitter]").is(":checked"))}});this._proxy.sendRequest();this._dialog.wcfDialog("close")},_updatePrivacySettings:function(b){this._privacySettings=$.extend(this._privacySettings,b.returnValues.settings);var a=this;$.each(b.returnValues.settings,function(d,c){a._privacySettings[d]=(c)?true:false;if(c){a._provider[d].link.removeClass("disabled");if(a._fetchObjectCount&&a._provider[d].fetch){a._provider[d].fetch()}}else{a._provider[d].link.addClass("disabled")}});new WCF.System.Notification().show()},_share:function(c,a,b){window.open(a.replace(/{pageURL}/,this._pageURL).replace(/{text}/,this._pageDescription+(b?" "+this._pageURL:"")),c,"height=600,width=600")},_fetchCount:function(b,d,c){var a={autoSend:true,dataType:"jsonp",showLoadingOverlay:false,success:d,suppressErrors:true,type:"GET",url:b.replace(/{pageURL}/,this._pageURL)};if(c){a.jsonp=c}new WCF.Action.Proxy(a)},_fetchFacebook:function(){this._fetchCount("https://graph.facebook.com/?id={pageURL}",$.proxy(function(a){if(a.shares){this._provider.facebook.link.children("span.badge").show().text(a.shares)}},this))},_fetchTwitter:function(){if(window.location.protocol.match(/^https/)){return}this._fetchCount("http://urls.api.twitter.com/1/urls/count.json?url={pageURL}",$.proxy(function(a){if(a.count){this._provider.twitter.link.children("span.badge").show().text(a.count)}},this))},_fetchReddit:function(){if(window.location.protocol.match(/^https/)){return}this._fetchCount("http://www.reddit.com/api/info.json?url={pageURL}",$.proxy(function(a){if(a.data.children.length){this._provider.reddit.link.children("span.badge").show().text(a.data.children[0].data.score)}},this),"jsonp")}});WCF.Message.UserMention=Class.extend({_caretPosition:null,_className:"wcf\\data\\user\\UserAction",_dropdown:null,_dropdownMenu:null,_itemIndex:-1,_lineHeight:null,_mentionStart:"",_redactor:null,_timer:null,init:function(a){if($.browser.mobile&&$.browser.mozilla){return}this._textarea=$("#"+a);this._redactor=this._textarea.redactor("core.getObject");this._dropdown=this._textarea.redactor("core.getEditor");this._dropdownMenu=$('<ul class="dropdownMenu userSuggestionList" />').appendTo(this._textarea.parent());WCF.Dropdown.initDropdownFragment(this._dropdown,this._dropdownMenu);this._proxy=new WCF.Action.Proxy({autoAbortPrevious:true,success:$.proxy(this._success,this)});WCF.System.Event.addListener("com.woltlab.wcf.redactor","keydown_"+a,$.proxy(this._keydown,this));WCF.System.Event.addListener("com.woltlab.wcf.redactor","keyup_"+a,$.proxy(this._keyup,this))},_clearList:function(){this._hideList();this._dropdownMenu.empty()},_click:function(a){if($.browser.mozilla&&this._caretPosition.startContainer.nodeName=="P"){var b=this._caretPosition.startContainer.childNodes[this._caretPosition.startOffset-1];this._caretPosition=document.createRange();this._caretPosition.selectNodeContents(b);this._caretPosition.collapse()}this._redactor.wutil.replaceRangesWith(this._caretPosition);this._setUsername($(a.currentTarget).data("username"))},_createListItem:function(c){var b=$("<li />").data("username",c.label).click($.proxy(this._click,this)).appendTo(this._dropdownMenu);var a=$("<div />").addClass("box16").appendTo(b);a.append($(c.icon).addClass("framed"));a.append($("<div />").append($("<span />").text(c.label)))},_getDropdownMenuPosition:function(){var e=getSelection().getRangeAt(0).cloneRange();var a=document.createRange();a.setStart(e.startContainer,e.startOffset-(this._mentionStart.length+1));a.setEnd(e.startContainer,e.startOffset);this._redactor.wutil.replaceRangesWith(a);var f=getSelection().getRangeAt(0);var b=f.getBoundingClientRect();var d=$(window);var c={top:Math.round(b.bottom)+d.scrollTop(),left:Math.round(b.left)+d.scrollLeft()};if(this._lineHeight===null){this._lineHeight=Math.round(b.bottom-b.top)}this._redactor.wutil.replaceRangesWith(e);this._caretPosition=e;return c},_setUsername:function(e){if(this._timer!==null){this._timer.stop();this._timer=null}this._proxy.abortPrevious();var c=getSelection().getRangeAt(0).cloneRange();this._redactor.buffer.set();var a=document.createRange();a.setStart(c.startContainer,c.startOffset-(this._mentionStart.length+1));a.setEnd(c.startContainer,c.startOffset);this._redactor.wutil.replaceRangesWith(a);var d=getSelection().getRangeAt(0);d.deleteContents();d.collapse(true);if(e.indexOf("'")!==-1){e=e.replace(/'/g,"''")}e="'"+e+"'";var b=document.createTextNode("@"+e);d.insertNode(b);var a=document.createRange();a.setStart(b,e.length+1);a.setEnd(b,e.length+1);this._redactor.wutil.replaceRangesWith(a);this._hideList()},_getParameters:function(){return{data:{includeUserGroups:false,searchString:this._mentionStart}}},_getTextLineInFrontOfCaret:function(){if(this._redactor.selection.getHtml().length){return""}var f=getSelection().getRangeAt(0);if($.browser.mozilla&&f.startContainer.nodeType==3){f.startContainer.parentNode.normalize()}var c=f.startContainer.textContent.substr(0,f.startOffset);var a=c;c="";var b=false;for(var e=0;e<a.length;e++){var d=a.charCodeAt(e).toString(16);if(d!="200b"&&(!/\s/.test(a[e])||((d=="a0"||d=="20")&&!b))){if(d=="a0"||d=="20"){b=true}if(a[e]==="@"&&e&&/\s/.test(a[e-1])){b=false;c=""}c+=a[e]}else{b=false;c=""}}return c},_hideList:function(){this._dropdown.removeClass("dropdownOpen");this._dropdownMenu.removeClass("dropdownOpen");this._itemIndex=-1},_keydown:function(a){if(this._redactor.wutil.inPlainMode()){return}if(this._dropdownMenu.is(":visible")){switch(a.event.which){case $.ui.keyCode.ENTER:a.event.preventDefault();a.cancel=true;this._dropdownMenu.children("li").eq(this._itemIndex).trigger("click");break;case $.ui.keyCode.UP:a.cancel=true;a.event.preventDefault();this._selectItem(this._itemIndex-1);break;case $.ui.keyCode.DOWN:a.cancel=true;a.event.preventDefault();this._selectItem(this._itemIndex+1);break}}},_keyup:function(c){if(this._redactor.wutil.inPlainMode()){return true}if(this._timer!==null){this._timer.stop();this._timer=null}this._proxy.abortPrevious();if(c.event.which===$.ui.keyCode.ENTER){return}if(this._dropdownMenu.is(":visible")&&c.event.which in {13:1,38:1,40:1}){return}var b=this._getTextLineInFrontOfCaret();if(b){var a=b.match(/@([^,]{3,})$/);if(a){if(!a.index||b[a.index-1].match(/\s/)){this._mentionStart=a[1];if(this._timer!==null){this._timer.stop()}this._timer=new WCF.PeriodicalExecuter($.proxy(function(){this._proxy.setOption("data",{actionName:"getSearchResultList",className:this._className,interfaceName:"wcf\\data\\ISearchAction",parameters:this._getParameters()});this._proxy.sendRequest();this._timer.stop();this._timer=null},this),500)}}else{this._hideList()}}else{this._hideList()}},_selectItem:function(a){var b=this._dropdownMenu.children("li");if(a<0){a=b.length-1}else{if(a+1>b.length){a=0}}b.removeClass("dropdownNavigationItem");b.eq(a).addClass("dropdownNavigationItem");this._itemIndex=a},_showList:function(){this._dropdown.addClass("dropdownOpen");this._dropdownMenu.addClass("dropdownOpen")},_success:function(c,e,b){this._clearList(false);if($.getLength(c.returnValues)){for(var d in c.returnValues){var a=c.returnValues[d];this._createListItem(a)}this._updateSuggestionListPosition();this._showList()}},_updateSuggestionListPosition:function(){try{var b=this._getDropdownMenuPosition();b.top+=5;this._dropdownMenu.css(b);this._selectItem(0);if(b.top+this._dropdownMenu.outerHeight()+10>$(window).height()+$(document).scrollTop()){this._dropdownMenu.addClass("dropdownArrowBottom");this._dropdownMenu.css({top:b.top-this._dropdownMenu.outerHeight()-2*this._lineHeight+5})}else{this._dropdownMenu.removeClass("dropdownArrowBottom")}}catch(a){}}});$.widget("wcf.messageTabMenu",{_tabs:[],_tabsByName:{},options:{collapsible:true},_create:function(){var c=this.element.find("> nav > ul > li:not(.jsFlexibleMenuDropdown)");var b=this.element.find("> div, > fieldset");if(c.length!=b.length){console.debug("[wcf.messageTabMenu] Amount of tabs does not equal amount of tab containers, aborting.");return}var a=this.element.data("preselect");this._tabs=[];this._tabsByName={};for(var g=0;g<c.length;g++){var f=$(c[g]);var d=$(b[g]);var h=f.data("name");if(h===undefined){var i=f.children("a").prop("href");if(i!==undefined){if(i.match(/#([a-zA-Z_-]+)$/)){h=RegExp.$1}}if(h===undefined){h=f.wcfIdentify();console.debug("[wcf.messageTabMenu] Missing name attribute, assuming generic ID '"+h+"'")}}this._tabs.push({container:d,name:h,tab:f});this._tabsByName[h]=g;var j=f.children("a").data("index",g).click($.proxy(this._showTab,this));if(a==h){j.trigger("click")}}if(a===true&&this._tabs.length){this._tabs[0].tab.children("a").trigger("click")}var e=this.element.data("collapsible");if(e!==undefined){this.options.collapsible=e}},destroy:function(){$.Widget.prototype.destroy.apply(this,arguments);this.element.remove()},_showTab:function(f,c,d){var b=(f===null)?c:$(f.currentTarget).data("index");d=(!this.options.collapsible||d===true)?true:false;var a=null;for(var g=0;g<this._tabs.length;g++){var e=this._tabs[g];if(g==b){if(!e.tab.hasClass("active")){e.tab.addClass("active");e.container.addClass("active");a=e;continue}else{if(d===true){continue}}}e.tab.removeClass("active");e.container.removeClass("active")}if(f!==null){f.preventDefault();f.stopPropagation()}if(a!==null){this._trigger("show",{},{activeTab:a})}},showTab:function(a,b){if(!$.isNumeric(a)){if(this._tabsByName[a]!==undefined){a=this._tabsByName[a]}}if(this._tabs[a]===undefined){console.debug("[wcf.messageTabMenu] Cannot locate tab identified by '"+a+"'");return}this._showTab(null,a,b)},getTab:function(a){if(this._tabsByName[a]!==undefined){return this._tabs[this._tabsByName[a]].tab}return null},getContainer:function(a){if(this._tabsByName[a]!==undefined){return this._tabs[this._tabsByName[a]].container}return null}}); })(this);
 
-// WCF.Moderation.js
-(function (window, undefined) {"use strict";WCF.Moderation={};WCF.Moderation.Management=Class.extend({_buttonSelector:"",_className:"",_confirmationTemplate:{},_dialog:null,_languageItem:"",_proxy:null,_queueID:0,_redirectURL:"",init:function(a,c,b){if(!this._buttonSelector){console.debug("[WCF.Moderation.Management] Missing button selector, aborting.");return}else{if(!this._className){console.debug("[WCF.Moderation.Management] Missing class name, aborting.");return}}this._dialog=null;this._queueID=a;this._redirectURL=c;this._languageItem=b;this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),success:$.proxy(this._success,this)});$(this._buttonSelector).click($.proxy(this._click,this));$("<a>"+WCF.Language.get("wcf.moderation.assignedUser.change")+"</a>").click($.proxy(this._clickAssignedUser,this)).insertAfter($("#moderationAssignedUserContainer > dd > span"))},_click:function(c){var b=$(c.currentTarget).wcfIdentify();var a="";if(this._confirmationTemplate[b]){a=this._confirmationTemplate[b]}WCF.System.Confirmation.show(WCF.Language.get(this._languageItem.replace(/{actionName}/,b)),$.proxy(function(e){if(e==="confirm"){var d={actionName:b,className:this._className,objectIDs:[this._queueID]};if(this._confirmationTemplate[b]){d.parameters={};a.find("input, textarea").each(function(g,i){var f=$(i);var h=f.val();if(f.getTagName()==="input"&&f.attr("type")==="checkbox"){if(!f.is(":checked")){h=null}}if(h!==null){d.parameters[f.attr("name")]=h}})}this._proxy.setOption("data",d);this._proxy.sendRequest();$(this._buttonSelector).disable()}},this),{},a)},_clickAssignedUser:function(){this._proxy.setOption("data",{actionName:"getAssignUserForm",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction",objectIDs:[this._queueID]});this._proxy.sendRequest()},_success:function(d,f,c){switch(d.actionName){case"getAssignUserForm":if(this._dialog===null){this._dialog=$("<div />").hide().appendTo(document.body);this._dialog.html(d.returnValues.template).wcfDialog({title:WCF.Language.get("wcf.moderation.assignedUser")})}else{this._dialog.html(d.returnValues.template).wcfDialog("open")}this._dialog.find("button[data-type=submit]").click($.proxy(this._assignUser,this));break;case"assignUser":var a=$("#moderationAssignedUserContainer > dd > span").empty();if(d.returnValues.userID){$('<a href="'+d.returnValues.link+'" data-user-id="'+d.returnValues.userID+'" class="userLink">'+WCF.String.escapeHTML(d.returnValues.username)+"</a>").appendTo(a)}else{a.append(d.returnValues.username)}a.append(" ");if(d.returnValues.newStatus){$("#moderationStatusContainer > dd").text(WCF.Language.get("wcf.moderation.status."+d.returnValues.newStatus))}this._dialog.wcfDialog("close");new WCF.System.Notification().show();break;default:var e=new WCF.System.Notification(WCF.Language.get("wcf.global.success"));var b=this;e.show(function(){window.location=b._redirectURL});break}},_failure:function(c,b,e,d){if(c.returnValues&&c.returnValues.fieldName&&c.returnValues.fieldName=="assignedUsername"){this._dialog.find("small.innerError").remove();var a="";switch(c.returnValues.errorType){case"empty":a=WCF.Language.get("wcf.global.form.error.empty");break;case"notAffected":a=WCF.Language.get("wcf.moderation.assignedUser.error.notAffected");break;default:a=WCF.Language.get("wcf.user.username.error."+c.returnValues.errorType,{username:this._dialog.find("#assignedUsername").val()});break}$('<small class="innerError">'+a+"</small>").insertAfter(this._dialog.find("#assignedUsername"));return false}return true},_assignUser:function(){var b=this._dialog.find("input[name=assignedUserID]:checked").val();var a="";if(b==-1){a=$.trim(this._dialog.find("#assignedUsername").val())}if(b==-1&&a.length==0){this._dialog.find("small.innerError").remove();$('<small class="innerError">'+WCF.Language.get("wcf.global.form.error.empty")+"</small>").insertAfter(this._dialog.find("#assignedUsername"));return}this._proxy.setOption("data",{actionName:"assignUser",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction",objectIDs:[this._queueID],parameters:{assignedUserID:b,assignedUsername:a}});this._proxy.sendRequest()}});WCF.Moderation.Queue={};WCF.Moderation.Queue.MarkAsRead=Class.extend({_proxy:null,init:function(){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});$(document).on("dblclick",".moderationList .new .columnAvatar",$.proxy(this._dblclick,this))},_dblclick:function(a){this._proxy.setOption("data",{actionName:"markAsRead",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction",objectIDs:[$(a.currentTarget).parents("tr:eq(0)").data("queueID")]});this._proxy.sendRequest()},_success:function(b,c,a){$(".moderationList .new").each(function(e,f){var d=$(f);if(WCF.inArray(d.data("queueID"),b.objectIDs)){d.removeClass("new");d.find(".columnAvatar").off("dblclick")}})}});WCF.Moderation.Queue.MarkAllAsRead=Class.extend({_proxy:null,init:function(){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});$(".markAllAsReadButton").click($.proxy(this._click,this))},_click:function(a){a.preventDefault();this._proxy.setOption("data",{actionName:"markAllAsRead",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction"});this._proxy.sendRequest()},_success:function(c,d,b){var a=$(".moderationList");a.find(".new").removeClass("new");a.find(".columnAvatar").off("dblclick")}});WCF.Moderation.Activation={};WCF.Moderation.Activation.Management=WCF.Moderation.Management.extend({init:function(a,b){this._buttonSelector="#enableContent, #removeContent";this._className="wcf\\data\\moderation\\queue\\ModerationQueueActivationAction";this._super(a,b,"wcf.moderation.activation.{actionName}.confirmMessage")}});WCF.Moderation.Report={};WCF.Moderation.Report.Content=Class.extend({_buttons:{},_buttonSelector:"",_dialog:null,_notification:null,_objectID:0,_objectType:"",_proxy:null,init:function(a,b){this._objectType=a;this._buttonSelector=b;this._buttons={};this._notification=null;this._objectID=0;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._initButtons();WCF.DOMNodeInsertedHandler.addCallback("WCF.Moderation.Report"+this._objectType.hashCode(),$.proxy(this._initButtons,this))},_initButtons:function(){var a=this;$(this._buttonSelector).each(function(c,d){var e=$(d);var b=e.wcfIdentify();if(!a._buttons[b]){a._buttons[b]=e;e.click($.proxy(a._click,a))}})},_click:function(a){a.preventDefault();this._objectID=$(a.currentTarget).data("objectID");this._proxy.setOption("data",{actionName:"prepareReport",className:"wcf\\data\\moderation\\queue\\ModerationQueueReportAction",parameters:{objectID:this._objectID,objectType:this._objectType}});this._proxy.sendRequest()},_success:function(b,c,a){if(b.returnValues.reported){if(this._notification===null){this._notification=new WCF.System.Notification(WCF.Language.get("wcf.moderation.report.success"))}this._dialog.wcfDialog("close");this._notification.show()}else{if(b.returnValues.template){this._showDialog(b.returnValues.template);if(!b.returnValues.alreadyReported){this._dialog.find(".jsSubmitReport").click($.proxy(this._submit,this))}}}},_showDialog:function(a){if(this._dialog===null){this._dialog=$("#moderationReport");if(!this._dialog.length){this._dialog=$('<div id="moderationReport" />').hide().appendTo(document.body)}}this._dialog.html(a).wcfDialog({title:WCF.Language.get("wcf.moderation.report.reportContent")}).wcfDialog("render")},_submit:function(){var a=this._dialog.find(".jsReportMessage").val();if(a==""){this._dialog.find("fieldset > dl").addClass("formError");if(!this._dialog.find(".innerError").length){this._dialog.find(".jsReportMessage").after($('<small class="innerError">'+WCF.Language.get("wcf.global.form.error.empty")+"</small>"))}return}this._proxy.setOption("data",{actionName:"report",className:"wcf\\data\\moderation\\queue\\ModerationQueueReportAction",parameters:{message:a,objectID:this._objectID,objectType:this._objectType}});this._proxy.sendRequest()}});WCF.Moderation.Report.Management=WCF.Moderation.Management.extend({init:function(a,b){this._buttonSelector="#removeContent, #removeReport";this._className="wcf\\data\\moderation\\queue\\ModerationQueueReportAction";this._super(a,b,"wcf.moderation.report.{actionName}.confirmMessage");this._confirmationTemplate.removeContent=$('<fieldset><dl><dt><label for="message">'+WCF.Language.get("wcf.moderation.report.removeContent.reason")+'</label></dt><dd><textarea name="message" id="message" cols="40" rows="3" /></dd></dl></fieldset>')}});WCF.Moderation.UserPanel=WCF.UserPanel.extend({_showAllLink:"",_deletedContentLink:"",init:function(a,b){this._noItems="wcf.moderation.noMoreItems";this._showAllLink=a;this._deletedContentLink=b;this._super("outstandingModeration")},_addDefaultItems:function(a){this._addDivider(a);$('<li><a href="'+this._showAllLink+'">'+WCF.Language.get("wcf.moderation.showAll")+"</a></li>").appendTo(a);this._addDivider(a);$('<li><a href="'+this._deletedContentLink+'">'+WCF.Language.get("wcf.moderation.showDeletedContent")+"</a></li>").appendTo(a)},_getParameters:function(){return{actionName:"getOutstandingQueues",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction"}}}); })(this);
-
 // WCF.Poll.js
 (function (window, undefined) {"use strict";WCF.Poll={};WCF.Poll.Management=Class.extend({_container:null,_count:0,_inputSize:0,_maxOptions:0,init:function(a,c,d){this._count=0;this._maxOptions=d||-1;this._container=$("#"+a).children("ol:eq(0)");if(!this._container.length){console.debug("[WCF.Poll.Management] Invalid container id given, aborting.");return}c=c||[];this._createOptionList(c);$(window).resize($.proxy(this._resize,this));this._container.parents("form").submit($.proxy(this._submit,this));new WCF.Sortable.List(a,"",undefined,undefined,true);this._resize();var b=this;this._container.closest(".messageTabMenu").on("messagetabmenushow",function(e,f){if(f.activeTab.name=="poll"){b._resize()}})},_createOptionList:function(b){for(var d=0,c=b.length;d<c;d++){var a=b[d];this._createOption(a.optionValue,a.optionID)}this._createOption()},_createOption:function(f,d,c){f=f||"";d=parseInt(d)||0;c=c||null;var b=$('<li class="sortableNode" />').data("optionID",d);if(c===null){b.appendTo(this._container)}else{b.insertAfter(c)}var a=$('<span class="sortableButtonContainer" />').appendTo(b);$('<span class="icon icon16 icon-plus jsTooltip jsAddOption pointer" title="'+WCF.Language.get("wcf.poll.button.addOption")+'" />').click($.proxy(this._addOption,this)).appendTo(a);$('<span class="icon icon16 icon-remove jsTooltip jsDeleteOption pointer" title="'+WCF.Language.get("wcf.poll.button.removeOption")+'" />').click($.proxy(this._removeOption,this)).appendTo(a);var e=$('<input type="text" value="'+f+'" maxlength="255" />').css({width:this._inputSize+"px"}).keydown($.proxy(this._keyDown,this)).appendTo(b);if(c!==null){e.focus()}WCF.DOMNodeInsertedHandler.execute();this._count++;if(this._count===this._maxOptions){this._container.find("span.jsAddOption").removeClass("pointer").addClass("disabled")}},_keyDown:function(a){if(a.which!==13){return true}$(a.currentTarget).prev(".sortableButtonContainer").children(".jsAddOption").trigger("click");a.preventDefault();a.stopPropagation();return false},_addOption:function(b){if(this._count===this._maxOptions){return false}var a=$(b.currentTarget).parents("li");this._createOption(undefined,undefined,a)},_removeOption:function(a){$(a.currentTarget).parents("li").remove();this._count--;this._container.find("span.jsAddOption").addClass("pointer").removeClass("disabled");if(this._container.children("li").length==0){this._createOption()}},_resize:function(){var d=this._container.innerWidth();var c=this._container.children("li:eq(0)");var b=c.children(".sortableButtonContainer").outerWidth();var a=d-b;if(a!=this._inputSize){this._inputSize=a;this._container.find("li > input").css({width:this._inputSize+"px"})}},_submit:function(){var a=[];this._container.children("li").each(function(f,i){var h=$(i);var g=$.trim(h.children("input").val());if(g!=""){a.push({optionID:h.data("optionID"),optionValue:g})}});if(a.length){var b=this._container.parents("form").find(".formSubmit");for(var e=0,d=a.length;e<d;e++){var c=a[e];$('<input type="hidden" name="pollOptions['+e+']" />').val(c.optionID+"_"+c.optionValue).appendTo(b)}}}});WCF.Poll.Manager=Class.extend({_cache:{},_canViewParticipants:{},_canViewResult:{},_canVote:{},_inputElements:{},_participants:{},_polls:{},_proxy:null,init:function(a){var c=$(a);if(!c.length){console.debug("[WCF.Poll.Manager] Given selector '"+a+"' does not match, aborting.");return}this._cache={};this._canViewParticipants={};this._canViewResult={};this._inputElements={};this._participants={};this._polls={};this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this),url:"index.php/Poll/?t="+SECURITY_TOKEN+SID_ARG_2ND});var b=this;c.each(function(e,g){var f=$(g);var d=f.data("pollID");if(b._polls[d]===undefined){b._cache[d]={result:"",vote:""};b._polls[d]=f;b._canViewParticipants[d]=(f.data("canViewParticipants"))?true:false;b._canViewResult[d]=(f.data("canViewResult"))?true:false;b._canVote[d]=(f.data("canVote"))?true:false;b._bindListeners(d);if(f.data("inVote")){b._prepareVote(d)}b._toggleButtons(d)}})},_bindListeners:function(a){this._polls[a].find(".jsButtonPollShowParticipants").data("pollID",a).click($.proxy(this._showParticipants,this));this._polls[a].find(".jsButtonPollShowResult").data("pollID",a).click($.proxy(this._showResult,this));this._polls[a].find(".jsButtonPollShowVote").data("pollID",a).click($.proxy(this._showVote,this));this._polls[a].find(".jsButtonPollVote").data("pollID",a).click($.proxy(this._vote,this))},_showResult:function(b,c){var a=(b===null)?c:$(b.currentTarget).data("pollID");if(!this._canViewResult[a]){return}if(!this._polls[a].data("inVote")){return}if(!this._cache[a].result){this._proxy.setOption("data",{actionName:"getResult",pollID:a});this._proxy.sendRequest()}else{this._polls[a].find(".pollInnerContainer").html(this._cache[a].result);this._polls[a].data("inVote",false);this._toggleButtons(a)}},_showParticipants:function(b){var a=$(b.currentTarget).data("pollID");if(!this._participants[a]){this._participants[a]=new WCF.User.List("wcf\\data\\poll\\PollAction",this._polls[a].data("question"),{pollID:a})}this._participants[a].open()},_showVote:function(b,c){var a=(b===null)?c:$(b.currentTarget).data("pollID");if(!this._canVote[a]){return}if(this._polls[a].data("inVote")){return}if(!this._cache[a].vote){this._proxy.setOption("data",{actionName:"getVote",pollID:a});this._proxy.sendRequest()}else{this._polls[a].find(".pollInnerContainer").html(this._cache[a].vote);this._polls[a].data("inVote",true);this._prepareVote(a);this._toggleButtons(a)}},_success:function(c,d,b){if(!c||!c.actionName){return}var a=c.pollID;if(c.resultTemplate){this._cache[a].result=c.resultTemplate}if(c.voteTemplate){this._cache[a].vote=c.voteTemplate}switch(c.actionName){case"getResult":this._showResult(null,a);break;case"getVote":this._showVote(null,a);break;case"vote":this._canViewResult[a]=true;this._canVote[a]=(c.canVote)?true:false;this._showResult(null,a);break}},_prepareVote:function(c){this._polls[c].find(".jsButtonPollVote").disable();var d=this._polls[c].find(".pollInnerContainer > .jsPollVote");var a=this;this._inputElements[c]=d.find("input").change(function(){a._handleVoteButton(c)});this._handleVoteButton(c);var b=d.data("maxVotes");if(this._inputElements[c].filter("[type=checkbox]").length){this._inputElements[c].change(function(){a._enforceMaxVotes(c,b)});this._enforceMaxVotes(c,b)}},_enforceMaxVotes:function(c,b){var a=this._inputElements[c];if(a.filter(":checked").length==b){a.filter(":not(:checked)").disable()}else{a.enable()}},_handleVoteButton:function(b){var a=this._inputElements[b];var c=this._polls[b].find(".jsButtonPollVote");if(a.filter(":checked").length){c.enable()}else{c.disable()}},_toggleButtons:function(c){var a=this._polls[c].children(".formSubmit");a.find(".jsButtonPollShowParticipants, .jsButtonPollShowResult, .jsButtonPollShowVote, .jsButtonPollVote").hide();var b=true;if(this._polls[c].data("inVote")){b=false;a.find(".jsButtonPollVote").show();if(this._canViewResult[c]){a.find(".jsButtonPollShowResult").show()}}else{if(this._canVote[c]){b=false;a.find(".jsButtonPollShowVote").show()}if(this._canViewParticipants[c]){b=false;a.find(".jsButtonPollShowParticipants").show()}}if(b){a.hide()}},_vote:function(c){var a=$(c.currentTarget).data("pollID");if(!this._canVote[a]){return}var b=[];this._inputElements[a].each(function(e,d){var f=$(d);if(f.is(":checked")){b.push(f.data("optionID"))}});if(b.length){this._proxy.setOption("data",{actionName:"vote",optionIDs:b,pollID:a});this._proxy.sendRequest()}}}); })(this);
 
@@ -121,5 +118,8 @@ window.matchMedia||(window.matchMedia=function(){var c=window.styleMedia||window
 (function (window, undefined) {"use strict";WCF.Tagging={};WCF.Tagging.TagList=WCF.EditableItemList.extend({_className:"wcf\\data\\tag\\TagAction",_maxLength:0,init:function(c,a,b){this._allowCustomInput=true;this._maxLength=b;this._super(c,a);this._data=[];this._search=new WCF.Tagging.TagSearch(this._searchInput,$.proxy(this.addItem,this));this._itemList.addClass("tagList");$(c).data("__api",this)},_keyDown:function(b){if(this._super(b)){if(b===null){return true}var a=b.which;if(a===8||a===27||a===13||a===46){return true}else{if(a>36&&a<41){return true}}if(this._searchInput.val().length>=this._maxLength){return false}return true}return false},_submit:function(){this._super();for(var b=0,a=this._data.length;b<a;b++){if(this._data[b]){$('<input type="hidden" name="tags[]" />').val(this._data[b]).appendTo(this._form)}}},addItem:function(b){if(!b.objectID&&b.label.length>this._maxLength){b.label=b.label.substr(0,this._maxLength)}if(WCF.inArray(b.label,this._data)){return true}var a=$('<li class="badge tag">'+WCF.String.escapeHTML(b.label)+"</li>").data("objectID",b.objectID).data("label",b.label).appendTo(this._itemList);a.click($.proxy(this._click,this));if(this._search){this._search.addExcludedSearchValue(b.label)}this._addItem(b.objectID,b.label);return true},_addItem:function(b,a){this._data.push(a)},clearList:function(){this._super();this._data=[]},getTags:function(){return this._data},_removeItem:function(d,a){for(var c=0,b=this._data.length;c<b;c++){if(this._data[c]===a){this._data.splice(c,1);return}}},load:function(a){if(a&&a.length){for(var c=0,b=a.length;c<b;c++){this.addItem({objectID:0,label:WCF.String.unescapeHTML(a[c])})}}}});WCF.Tagging.TagSearch=WCF.Search.Base.extend({_className:"wcf\\data\\tag\\TagAction",init:function(b,d,a,c){this._super(b,d,a,c,false)}}); })(this);
 
 // WCF.User.js
-(function (window, undefined) {"use strict";WCF.User.Login=Class.extend({_loginSubmitButton:null,_password:null,_passwordContainer:null,_useCookies:null,_useCookiesContainer:null,init:function(b){this._loginSubmitButton=$("#loginSubmitButton");this._password=$("#password"),this._passwordContainer=this._password.parents("dl");this._useCookies=$("#useCookies");this._useCookiesContainer=this._useCookies.parents("dl");var a=$("#loginForm");a.find("input[name=action]").change($.proxy(this._change,this));if(b){WCF.User.QuickLogin.init()}},_change:function(a){if($(a.currentTarget).val()==="register"){this._setState(false,WCF.Language.get("wcf.user.button.register"))}else{this._setState(true,WCF.Language.get("wcf.user.button.login"))}},_setState:function(b,a){if(b){this._password.enable();this._passwordContainer.removeClass("disabled");this._useCookies.enable();this._useCookiesContainer.removeClass("disabled")}else{this._password.disable();this._passwordContainer.addClass("disabled");this._useCookies.disable();this._useCookiesContainer.addClass("disabled")}this._loginSubmitButton.val(a)}});WCF.User.Panel={};WCF.User.Panel.Abstract=Class.extend({_badge:null,_dropdown:null,_identifier:"",_loadData:true,_markAllAsReadLink:null,_options:{},_proxy:null,_triggerElement:null,init:function(d,b,a){this._dropdown=null;this._identifier=b;this._triggerElement=d;this._options=a;this._proxy=new WCF.Action.Proxy({showLoadingOverlay:false,success:$.proxy(this._success,this)});this._triggerElement.click($.proxy(this.toggle,this));var c=this._triggerElement.find("span.badge");if(c.length){this._badge=c}},toggle:function(a){a.preventDefault();if(this._dropdown===null){this._dropdown=this._initDropdown()}if(this._dropdown.toggle()&&this._loadData){this._load()}return false},_initDropdown:function(){var a=WCF.Dropdown.Interactive.Handler.create(this._triggerElement,this._identifier,this._options);$('<li class="loading"><span class="icon icon24 fa-spinner" /> <span>'+WCF.Language.get("wcf.global.loading")+"</span></li>").appendTo(a.getItemList());return a},_load:function(){},_success:function(d){if(d.returnValues.template!==undefined){var e=this._dropdown.getItemList().empty();$(d.returnValues.template).appendTo(e);if(!e.children().length){$('<li class="noItems">'+this._options.noItems+"</li>").appendTo(e)}if(this._options.enableMarkAsRead){var b=this._dropdown.getItemList().children(".interactiveDropdownItemOutstanding");if(this._markAllAsReadLink===null&&b.length&&this._options.markAllAsReadConfirmMessage){var c=this._markAllAsReadLink=$('<li class="interactiveDropdownItemMarkAllAsRead"><a href="#" title="'+WCF.Language.get("wcf.user.panel.markAllAsRead")+'" class="jsTooltip"><span class="icon icon16 fa-check" /></a></li>').appendTo(this._dropdown.getLinkList());c.click((function(f){this._dropdown.close();WCF.System.Confirmation.show(this._options.markAllAsReadConfirmMessage,(function(g){if(g==="confirm"){this._markAllAsRead()}}).bind(this));return false}).bind(this))}b.each((function(g,i){var f=$(i).addClass("interactiveDropdownItemOutstandingIcon");var h=f.data("objectID");var j=$('<div class="interactiveDropdownItemMarkAsRead"><a href="#" title="'+WCF.Language.get("wcf.user.panel.markAsRead")+'" class="jsTooltip"><span class="icon icon16 fa-check" /></a></div>').appendTo(f);j.click((function(k){this._markAsRead(k,h);return false}).bind(this))}).bind(this))}this._dropdown.getItemList().children().each(function(h,i){var g=$(i);var f=g.data("link");if(f){if($.browser.msie){g.click(function(j){if(j.target.tagName!=="A"){window.location=f;return false}})}else{g.addClass("interactiveDropdownItemShadow");$('<a href="'+f+'" class="interactiveDropdownItemShadowLink" />').appendTo(g)}if(g.data("linkReplaceAll")){g.find("> .box32 a:not(.userLink)").prop("href",f)}}});this._dropdown.rebuildScrollbar()}if(d.returnValues.totalCount!==undefined){this.updateBadge(d.returnValues.totalCount)}if(this._options.enableMarkAsRead){if(d.returnValues.markAsRead){var a=this._dropdown.getItemList().children("li[data-object-id="+d.returnValues.markAsRead+"]");if(a.length){a.removeClass("interactiveDropdownItemOutstanding").data("isRead",true);a.children(".interactiveDropdownItemMarkAsRead").remove()}}else{if(d.returnValues.markAllAsRead){this.resetItems();this.updateBadge(0)}}}},_markAsRead:function(a,b){},_markAllAsRead:function(){},updateBadge:function(a){a=parseInt(a)||0;if(a){if(this._badge===null){this._badge=$('<span class="badge badgeInverse" />').appendTo(this._triggerElement.children("a"))}this._badge.text(a)}else{if(this._badge!==null){this._badge.remove()}}if(this._options.enableMarkAsRead){if(!a&&this._markAllAsReadLink!==null){this._markAllAsReadLink.remove();this._markAllAsReadLink=null}}},resetItems:function(){this._dropdown.resetItems()}});WCF.User.Panel.Notification=WCF.User.Panel.Abstract.extend({_favico:null,init:function(b){b.enableMarkAsRead=true;this._super($("#userNotifications"),"userNotifications",b);try{this._favico=new Favico({animation:"none",type:"circle"});if(this._badge!==null){var a=parseInt(this._badge.text())||0;this._favico.badge(a)}}catch(c){console.debug("[WCF.User.Panel.Notification] Failed to initialized Favico: "+c.message)}WCF.System.PushNotification.addCallback("userNotificationCount",$.proxy(this.updateUserNotificationCount,this))},_initDropdown:function(){var a=this._super();$('<li><a href="'+this._options.settingsLink+'" title="'+WCF.Language.get("wcf.user.panel.settings")+'" class="jsTooltip"><span class="icon icon16 fa-cog" /></a></li>').appendTo(a.getLinkList());return a},_load:function(){this._proxy.setOption("data",{actionName:"getOutstandingNotifications",className:"wcf\\data\\user\\notification\\UserNotificationAction"});this._proxy.sendRequest()},_markAsRead:function(a,b){this._proxy.setOption("data",{actionName:"markAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction",objectIDs:[b]});this._proxy.sendRequest()},_markAllAsRead:function(a){this._proxy.setOption("data",{actionName:"markAllAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction"});this._proxy.sendRequest()},_success:function(a){this._super(a);if(a.actionName==="markAllAsConfirmed"){this.resetItems();this.updateBadge(0)}},resetItems:function(){this._super();if(this._markAllAsReadLink){this._markAllAsReadLink.remove();this._markAllAsReadLink=null}},updateBadge:function(a){a=parseInt(a)||0;if(this._favico!==null){this._favico.badge(a)}this._super(a)},updateUserNotificationCount:function(a){if(this._dropdown!==null){this._dropdown.resetItems()}this.updateBadge(a)}});WCF.User.QuickLogin={_dialog:null,_loginMessage:null,init:function(){$(".loginLink").click($.proxy(this._render,this));$("#loginForm input[name=url]").val(function(a,b){return window.location.protocol+"//"+window.location.host+b})},show:function(a){if(a){if(this._loginMessage===null){this._loginMessage=$('<p class="info" />').hide().prependTo($("#loginForm > form"))}this._loginMessage.show().text(a)}else{if(this._loginMessage!==null){this._loginMessage.hide()}}this._render()},_render:function(a){if(a!==undefined){a.preventDefault()}if(this._dialog===null){this._dialog=$("#loginForm").wcfDialog({title:WCF.Language.get("wcf.user.login")});this._dialog.find("#username").focus()}else{this._dialog.wcfDialog("open")}}};WCF.User.Profile={};WCF.User.Profile.ActivityPointList={_cache:{},_dialog:null,_didInit:false,_proxy:null,init:function(){if(this._didInit){return}this._cache={};this._dialog=null;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._init();WCF.DOMNodeInsertedHandler.addCallback("WCF.User.Profile.ActivityPointList",$.proxy(this._init,this));this._didInit=true},_init:function(){$(".activityPointsDisplay").removeClass("activityPointsDisplay").click($.proxy(this._click,this))},_click:function(b){b.preventDefault();var a=$(b.currentTarget).data("userID");if(this._cache[a]===undefined){this._proxy.setOption("data",{actionName:"getDetailedActivityPointList",className:"wcf\\data\\user\\UserProfileAction",objectIDs:[a]});this._proxy.sendRequest()}else{this._show(a)}},_show:function(a){if(this._dialog===null){this._dialog=$("<div>"+this._cache[a]+"</div>").hide().appendTo(document.body);this._dialog.wcfDialog({title:WCF.Language.get("wcf.user.activityPoint")})}else{this._dialog.html(this._cache[a]);this._dialog.wcfDialog("open")}},_success:function(b,c,a){this._cache[b.returnValues.userID]=b.returnValues.template;this._show(b.returnValues.userID)}};WCF.User.Profile.Follow=Class.extend({_button:null,_following:false,_proxy:null,_userID:0,init:function(a,b){this._following=b;this._userID=a;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._createButton();this._showButton()},_createButton:function(){this._button=$('<li id="followUser"><a href="#" class="button jsTooltip" title="'+WCF.Language.get("wcf.user.button."+(this._following?"un":"")+"follow")+'"><span class="icon icon16 icon-plus"></span> <span class="invisible">'+WCF.Language.get("wcf.user.button."+(this._following?"un":"")+"follow")+"</span></a></li>").prependTo($("#profileButtonContainer"));this._button.click($.proxy(this._execute,this))},_execute:function(b){b.preventDefault();var a=(this._following)?"unfollow":"follow";this._proxy.setOption("data",{actionName:a,className:"wcf\\data\\user\\follow\\UserFollowAction",parameters:{data:{userID:this._userID}}});this._proxy.sendRequest()},_showButton:function(){if(this._following){this._button.find(".button").data("tooltip",WCF.Language.get("wcf.user.button.unfollow")).addClass("active").children(".icon").removeClass("icon-plus").addClass("icon-minus")}else{this._button.find(".button").data("tooltip",WCF.Language.get("wcf.user.button.follow")).removeClass("active").children(".icon").removeClass("icon-minus").addClass("icon-plus")}},_success:function(b,d,a){this._following=b.returnValues.following;this._showButton();var c=new WCF.System.Notification();c.show()}});WCF.User.Profile.IgnoreUser=Class.extend({_button:null,_isIgnoredUser:false,_proxy:null,_userID:0,init:function(b,a){this._userID=b;this._isIgnoredUser=a;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._updateButton();this._button.click($.proxy(this._click,this))},_click:function(a){a.preventDefault();var b=(this._isIgnoredUser)?"unignore":"ignore";this._proxy.setOption("data",{actionName:b,className:"wcf\\data\\user\\ignore\\UserIgnoreAction",parameters:{data:{ignoreUserID:this._userID}}});this._proxy.sendRequest()},_success:function(b,d,a){this._isIgnoredUser=b.returnValues.isIgnoredUser;this._updateButton();var c=new WCF.System.Notification();c.show()},_updateButton:function(){if(this._button===null){this._button=$('<li id="ignoreUser"><a href="#" class="button jsTooltip" title="'+WCF.Language.get("wcf.user.button."+(this._isIgnoredUser?"un":"")+"ignore")+'"><span class="icon icon16 icon-ban-circle"></span> <span class="invisible">'+WCF.Language.get("wcf.user.button."+(this._isIgnoredUser?"un":"")+"ignore")+"</span></a></li>").prependTo($("#profileButtonContainer"))}this._button.find(".button").data("tooltip",WCF.Language.get("wcf.user.button."+(this._isIgnoredUser?"un":"")+"ignore"));if(this._isIgnoredUser){this._button.find(".button").addClass("active").children(".icon").removeClass("icon-ban-circle").addClass("icon-circle-blank")}else{this._button.find(".button").removeClass("active").children(".icon").removeClass("icon-circle-blank").addClass("icon-ban-circle")}}});WCF.User.Profile.TabMenu=Class.extend({_hasContent:{},_profileContent:null,_proxy:null,_userID:0,init:function(a){this._profileContent=$("#profileContent");this._userID=a;var c=this._profileContent.data("active");var b=false;this._profileContent.find("div.tabMenuContent").each($.proxy(function(e,d){var f=$(d).wcfIdentify();if(c===f){this._hasContent[f]=true}else{this._hasContent[f]=false;b=true}},this));if(b){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._profileContent.on("wcftabsbeforeactivate",$.proxy(this._loadContent,this));this._profileContent.find("> nav.tabMenu > ul > li").each($.proxy(function(d,f){var e=$(f);if(e.hasClass("ui-state-active")){if(d){this._loadContent(null,{newPanel:$("#"+e.attr("aria-controls"))})}return false}},this))}},_loadContent:function(b,c){var d=$(c.newPanel);var a=d.attr("id");if(!this._hasContent[a]){this._proxy.setOption("data",{actionName:"getContent",className:"wcf\\data\\user\\profile\\menu\\item\\UserProfileMenuItemAction",parameters:{data:{containerID:a,menuItem:d.data("menuItem"),userID:this._userID}}});this._proxy.sendRequest()}},_success:function(d,e,c){var b=d.returnValues.containerID;this._hasContent[b]=true;var a=this._profileContent.find("#"+b);$("<div>"+d.returnValues.template+"</div>").hide().appendTo(a);a.children("div").wcfBlindIn()}});WCF.User.Profile.Editor=Class.extend({_actionName:"",_buttons:{},_cachedTemplate:"",_proxy:null,_tab:null,_userID:0,init:function(a,b){this._actionName="";this._cachedTemplate="";this._tab=$("#about");this._userID=a;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._initButtons();if(b){this._beginEdit()}},_initButtons:function(){var a=$("#profileButtonContainer");this._buttons={beginEdit:$('<li><a class="button"><span class="icon icon16 icon-pencil" /> <span>'+WCF.Language.get("wcf.user.editProfile")+"</span></a></li>").click($.proxy(this._beginEdit,this)).appendTo(a)}},_beginEdit:function(){this._actionName="beginEdit";this._buttons.beginEdit.hide();$("#profileContent").wcfTabs("select","about");this._proxy.setOption("data",{actionName:"beginEdit",className:"wcf\\data\\user\\UserProfileAction",objectIDs:[this._userID]});this._proxy.sendRequest()},_save:function(){this._actionName="save";var b=/values\[([a-zA-Z0-9._-]+)\]/;var a={};this._tab.find("input, textarea, select").each(function(e,g){var d=$(g);var f=null;switch(d.getTagName()){case"input":var c=d.attr("type");if((c==="radio"||c==="checkbox")&&!d.prop("checked")){return}break;case"textarea":if(d.data("redactor")){f=d.redactor("wutil.getText")}break}var h=d.attr("name");if(b.test(h)){a[RegExp.$1]=(f===null)?d.val():f}});this._proxy.setOption("data",{actionName:"save",className:"wcf\\data\\user\\UserProfileAction",objectIDs:[this._userID],parameters:{values:a}});this._proxy.sendRequest()},_restore:function(){this._actionName="restore";this._buttons.beginEdit.show();this._destroyEditor();this._tab.html(this._cachedTemplate).children().css({height:"auto"})},_success:function(b,c,a){switch(this._actionName){case"beginEdit":this._prepareEdit(b);break;case"save":if(b.returnValues.success){this._cachedTemplate=b.returnValues.template;this._restore()}else{this._prepareEdit(b,true)}break}},_prepareEdit:function(b,c){this._destroyEditor();var a=this;this._tab.html(function(e,d){if(c!==true){a._cachedTemplate=d}return b.returnValues.template});this._tab.find("input[type=text]").attr("autocomplete","off");this._tab.find(".formSubmit > button[data-type=save]").click($.proxy(this._save,this));this._tab.find(".formSubmit > button[data-type=restore]").click($.proxy(this._restore,this));this._tab.find("input").keyup(function(d){if(d.which===$.ui.keyCode.ENTER){a._save();d.preventDefault();return false}})},_destroyEditor:function(){this._tab.find("textarea").each(function(b,a){var c=$(a);if(c.data("redactor")){c.redactor("core.destroy")}})}});WCF.User.Registration={};WCF.User.Registration.Validation=Class.extend({_actionName:"",_className:"",_confirmElement:null,_element:null,_errorMessages:{},_options:{},_proxy:null,init:function(b,c,a){this._element=b;this._element.blur($.proxy(this._blur,this));this._confirmElement=c||null;if(this._confirmElement!==null){this._confirmElement.blur($.proxy(this._blurConfirm,this))}a=a||{};this._setOptions(a);this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this),showLoadingOverlay:false});this._setErrorMessages()},_setOptions:function(a){},_setErrorMessages:function(){this._errorMessages={ajaxError:"",notEqual:""}},_blur:function(b){var a=this._element.val();if(!a){return this._showError(this._element,WCF.Language.get("wcf.global.form.error.empty"))}if(this._confirmElement!==null){var c=this._confirmElement.val();if(c!=""&&a!=c){return this._showError(this._confirmElement,this._errorMessages.notEqual)}}if(!this._validateOptions()){return}this._proxy.setOption("data",{actionName:this._actionName,className:this._className,parameters:this._getParameters()});this._proxy.sendRequest()},_getParameters:function(){return{}},_validateOptions:function(){return true},_blurConfirm:function(b){var a=this._confirmElement.val();if(!a){return this._showError(this._confirmElement,WCF.Language.get("wcf.global.form.error.empty"))}this._blur(b)},_success:function(b,c,a){if(b.returnValues.isValid){this._showSuccess(this._element);if(this._confirmElement!==null&&this._confirmElement.val()){this._showSuccess(this._confirmElement)}}else{this._showError(this._element,WCF.Language.get(this._errorMessages.ajaxError+b.returnValues.error))}},_showError:function(a,b){a.parent().parent().addClass("formError").removeClass("formSuccess");var c=a.parent().find("small.innerError");if(!c.length){c=$("<small />").addClass("innerError").insertAfter(a)}c.text(b)},_showSuccess:function(a){a.parent().parent().addClass("formSuccess").removeClass("formError");a.next("small.innerError").remove()}});WCF.User.Registration.Validation.Username=WCF.User.Registration.Validation.extend({_actionName:"validateUsername",_className:"wcf\\data\\user\\UserRegistrationAction",_setOptions:function(a){this._options=$.extend(true,{minlength:3,maxlength:25},a)},_setErrorMessages:function(){this._errorMessages={ajaxError:"wcf.user.username.error."}},_validateOptions:function(){var a=this._element.val();if(a.length<this._options.minlength||a.length>this._options.maxlength){this._showError(this._element,WCF.Language.get("wcf.user.username.error.notValid"));return false}return true},_getParameters:function(){return{username:this._element.val()}}});WCF.User.Registration.Validation.EmailAddress=WCF.User.Registration.Validation.extend({_actionName:"validateEmailAddress",_className:"wcf\\data\\user\\UserRegistrationAction",_getParameters:function(){return{email:this._element.val()}},_setErrorMessages:function(){this._errorMessages={ajaxError:"wcf.user.email.error.",notEqual:WCF.Language.get("wcf.user.confirmEmail.error.notEqual")}}});WCF.User.Registration.Validation.Password=WCF.User.Registration.Validation.extend({_actionName:"validatePassword",_className:"wcf\\data\\user\\UserRegistrationAction",_getParameters:function(){return{password:this._element.val()}},_setErrorMessages:function(){this._errorMessages={ajaxError:"wcf.user.password.error.",notEqual:WCF.Language.get("wcf.user.confirmPassword.error.notEqual")}}});WCF.User.Registration.LostPassword=Class.extend({_email:null,_username:null,init:function(){this._email=$("#emailInput");this._username=$("#usernameInput");this._email.keyup($.proxy(this._checkEmail,this));this._username.keyup($.proxy(this._checkUsername,this));if($.browser.mozilla&&$.browser.touch){this._email.on("input",$.proxy(this._checkEmail,this));this._username.on("input",$.proxy(this._checkUsername,this))}this._checkEmail();this._checkUsername()},_checkEmail:function(){if(this._email.val()==""){this._username.enable();this._username.parents("dl:eq(0)").removeClass("disabled")}else{this._username.disable();this._username.parents("dl:eq(0)").addClass("disabled")}},_checkUsername:function(){if(this._username.val()==""){this._email.enable();this._email.parents("dl:eq(0)").removeClass("disabled")}else{this._email.disable();this._email.parents("dl:eq(0)").addClass("disabled")}}});WCF.Notification={};WCF.Notification.List=Class.extend({_proxy:null,init:function(){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});$(".contentNavigation .jsMarkAllAsConfirmed").click(function(){WCF.System.Confirmation.show(WCF.Language.get("wcf.user.notification.markAllAsConfirmed.confirmMessage"),function(a){if(a==="confirm"){new WCF.Action.Proxy({autoSend:true,data:{actionName:"markAllAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction"},success:function(){window.location.reload()}})}})});this._convertList()},_convertList:function(){$(".userNotificationItemList > .notificationItem").each((function(c,d){var a=$(d);if(!a.data("isRead")){a.find("a:not(.userLink)").prop("href",a.data("link"));var b=$('<a href="#" class="icon icon24 fa-check notificationItemMarkAsConfirmed jsTooltip" title="'+WCF.Language.get("wcf.user.notification.markAsConfirmed")+'" />').appendTo(a);b.click($.proxy(this._markAsConfirmed,this))}}).bind(this));WCF.DOMNodeInsertedHandler.execute()},_markAsConfirmed:function(a){a.preventDefault();var b=$(a.currentTarget).parents(".notificationItem:eq(0)").data("objectID");this._proxy.setOption("data",{actionName:"markAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction",objectIDs:[b]});this._proxy.sendRequest();return false},_success:function(c,d,b){var a=$(".userNotificationItemList > .notificationItem[data-object-id="+c.returnValues.markAsRead+"]");a.data("isRead",true);a.find(".newContentBadge").remove();a.find(".notificationItemMarkAsConfirmed").remove();a.removeClass("notificationUnconfirmed")}});WCF.Notification.UserPanel=WCF.UserPanel.extend({_favico:null,_proxy:null,_showAllLink:"",init:function(b){this._favico=null;try{this._favico=new Favico({animation:"none",type:"circle",})}catch(a){}this._noItems="wcf.user.notification.noMoreNotifications";this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._showAllLink=b;this._super("userNotifications");if(this._container.data("count")&&this._favico!==null){this._favico.badge(this._container.data("count"))}WCF.System.PushNotification.addCallback("userNotificationCount",$.proxy(this.updateUserNotificationCount,this))},_addDefaultItems:function(a){this._addDivider(a);$('<li><a href="'+this._showAllLink+'">'+WCF.Language.get("wcf.user.notification.showAll")+"</a></li>").appendTo(a);this._addDivider(a);$('<li id="userNotificationsMarkAllAsConfirmed"><a>'+WCF.Language.get("wcf.user.notification.markAllAsConfirmed")+"</a></li>").click($.proxy(this._markAllAsConfirmed,this)).appendTo(a)},_getParameters:function(){return{actionName:"getOutstandingNotifications",className:"wcf\\data\\user\\notification\\UserNotificationAction"}},_click:function(c){if(this._didLoad){var d=this._container.find(".badge");if(d.length&&parseInt(d.text())>0){var a=WCF.Dropdown.getDropdownMenu(this._container.wcfIdentify());var b=a.children("li.notificationUnconfirmed").length;if(!b&&b!=d.text()&&!a.is(":visible")){this._resetList();this._super(c)}}}else{this._super(c)}},_after:function(b){var d=WCF.Dropdown.getDropdownMenu(this._container.wcfIdentify()).children("li.jsNotificationItem");var a=null;d.each((function(g,h){var e=$(h);var i=e.data("isConfirmed");if(!$.browser.msie){e.addClass("notificationItemLink");$('<a href="'+(i?e.data("link"):e.data("confirmLink"))+'" />').appendTo(e)}if(!i){e.find("a:not(.userLink)").prop("href",e.data("confirmLink"));if(!$.browser.mobile){var f=$('<a href="#" class="icon icon24 fa-check green notificationItemMarkAsConfirmed jsTooltip" title="'+WCF.Language.get("wcf.user.notification.markAsConfirmed")+'" />').prependTo(e.find("> span.box24 > .framed"));f.click($.proxy(this._markAsConfirmed,this))}}if(!e.data("isConfirmed")){a=e}e.click(function(j){if(j.target.tagName!=="A"){window.location=e.data("link")}})}).bind(this));if(a!==null){if(a.next(".notificationItem").length){$('<li class="dropdownDivider" />').insertAfter(a)}}var c=this._container.find(".badge");if(!c.length){this._removeMarkAllAsConfirmed()}},_markAsConfirmed:function(a){a.preventDefault();var b=$(a.currentTarget).parents(".notificationItem:eq(0)").data("notificationID");this._proxy.setOption("data",{actionName:"markAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction",objectIDs:[b]});this._proxy.sendRequest();return false},_markAllAsConfirmed:function(){WCF.System.Confirmation.show(WCF.Language.get("wcf.user.notification.markAllAsConfirmed.confirmMessage"),$.proxy(function(a){if(a==="confirm"){this._proxy.setOption("data",{actionName:"markAllAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction"});this._proxy.sendRequest()}},this))},_success:function(b,c,a){switch(b.actionName){case"markAsConfirmed":WCF.Dropdown.getDropdownMenu(this._container.wcfIdentify()).children("li.jsNotificationItem").each(function(e,f){var d=$(f);if(d.data("notificationID")==b.returnValues.notificationID){d.data("isConfirmed",true);d.find(".notificationItemMarkAsConfirmed").remove();d.find(".newContentBadge").remove();d.removeClass("notificationUnconfirmed");return false}});this._updateBadge(b.returnValues.totalCount);break;case"markAllAsConfirmed":this._resetList();this._updateBadge(0);this._removeMarkAllAsConfirmed();break;case"getOutstandingNotifications":if(!b.returnValues||!b.returnValues.template){this._removeMarkAllAsConfirmed()}this._super(b,c,a);break}},_updateBadge:function(a){a=parseInt(a)||0;this._super(a);if(this._favico!==null){this._favico.badge(a)}if(a===0){this._removeMarkAllAsConfirmed()}},_resetList:function(){var a=WCF.Dropdown.getDropdownMenu(this._container.wcfIdentify());a.children("li.jsNotificationItem").remove();$('<li class="jsDropdownPlaceholder"><span>'+WCF.Language.get("wcf.global.loading")+"</span></li>").prependTo(a);a.children(".dropdownDivider + .dropdownDivider").remove();this._didLoad=false},_removeMarkAllAsConfirmed:function(){$("#userNotificationsMarkAllAsConfirmed").hide().prev(".dropdownDivider").hide()},updateUserNotificationCount:function(a){WCF.Dropdown.close("userNotifications");this._resetList();this._updateBadge(a);if(parseInt(a)>0){$("#userNotificationsMarkAllAsConfirmed").show().prev(".dropdownDivider").show()}}});WCF.User.SignaturePreview=WCF.Message.Preview.extend({_handleResponse:function(b){var a=$("#previewContainer");if(!a.length){a=$('<fieldset id="previewContainer"><legend>'+WCF.Language.get("wcf.global.preview")+"</legend><div></div></fieldset>").insertBefore($("#signatureContainer")).wcfFadeIn()}a.children("div").first().html(b.returnValues.message)}});WCF.User.RecentActivityLoader=Class.extend({_container:null,_filteredByFollowedUsers:false,_loadButton:null,_proxy:null,_userID:0,init:function(b,a){this._container=$("#recentActivities");this._filteredByFollowedUsers=(a===true);this._userID=b;if(this._userID!==null&&!this._userID){console.debug("[WCF.User.RecentActivityLoader] Invalid parameter 'userID' given.");return}this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});if(this._container.children("li").length){this._loadButton=$('<li class="recentActivitiesMore"><button class="small">'+WCF.Language.get("wcf.user.recentActivity.more")+"</button></li>").appendTo(this._container);this._loadButton=this._loadButton.children("button").click($.proxy(this._click,this))}else{$('<li class="recentActivitiesMore"><small>'+WCF.Language.get("wcf.user.recentActivity.noMoreEntries")+"</small></li>").appendTo(this._container)}if(WCF.User.userID){$(".jsRecentActivitySwitchContext .button").click($.proxy(this._switchContext,this))}},_click:function(){this._loadButton.enable();var a={lastEventID:this._container.data("lastEventID"),lastEventTime:this._container.data("lastEventTime")};if(this._userID){a.userID=this._userID}else{if(this._filteredByFollowedUsers){a.filteredByFollowedUsers=1}}this._proxy.setOption("data",{actionName:"load",className:"wcf\\data\\user\\activity\\event\\UserActivityEventAction",parameters:a});this._proxy.sendRequest()},_switchContext:function(a){a.preventDefault();if(!$(a.currentTarget).hasClass("active")){new WCF.Action.Proxy({autoSend:true,data:{actionName:"switchContext",className:"wcf\\data\\user\\activity\\event\\UserActivityEventAction"},success:function(){window.location.hash="#dashboardBoxRecentActivity";window.location.reload()}})}},_success:function(b,c,a){if(b.returnValues.template){$(b.returnValues.template).insertBefore(this._loadButton.parent());this._container.data("lastEventTime",b.returnValues.lastEventTime);this._container.data("lastEventID",b.returnValues.lastEventID);this._loadButton.enable()}else{$("<small>"+WCF.Language.get("wcf.user.recentActivity.noMoreEntries")+"</small>").appendTo(this._loadButton.parent());this._loadButton.remove()}}});WCF.User.LikeLoader=Class.extend({_container:null,_likeType:"received",_likeValue:1,_loadButton:null,_noMoreEntries:null,_proxy:null,_userID:0,init:function(a){this._container=$("#likeList");this._userID=a;if(!this._userID){console.debug("[WCF.User.RecentActivityLoader] Invalid parameter 'userID' given.");return}this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});var b=$('<li class="likeListMore recentActivitiesMore"><button class="small">'+WCF.Language.get("wcf.like.likes.more")+"</button><small>"+WCF.Language.get("wcf.like.likes.noMoreEntries")+"</small></li>").appendTo(this._container);this._loadButton=b.children("button").click($.proxy(this._click,this));this._noMoreEntries=b.children("small").hide();if(this._container.find("> li").length==2){this._loadButton.hide();this._noMoreEntries.show()}$("#likeType .button").click($.proxy(this._clickLikeType,this));$("#likeValue .button").click($.proxy(this._clickLikeValue,this))},_clickLikeType:function(a){var b=$(a.currentTarget);if(this._likeType!=b.data("likeType")){this._likeType=b.data("likeType");$("#likeType .button").removeClass("active");b.addClass("active");this._reload()}},_clickLikeValue:function(a){var b=$(a.currentTarget);if(this._likeValue!=b.data("likeValue")){this._likeValue=b.data("likeValue");$("#likeValue .button").removeClass("active");b.addClass("active");$("#likeType > li:first-child > .button").text(WCF.Language.get("wcf.like."+(this._likeValue==-1?"dis":"")+"likesReceived"));$("#likeType > li:last-child > .button").text(WCF.Language.get("wcf.like."+(this._likeValue==-1?"dis":"")+"likesGiven"));this._reload()}},_reload:function(){this._container.find("> li:not(:first-child):not(:last-child)").remove();this._container.data("lastLikeTime",0);this._click()},_click:function(){this._loadButton.enable();var a={lastLikeTime:this._container.data("lastLikeTime"),userID:this._userID,likeType:this._likeType,likeValue:this._likeValue};this._proxy.setOption("data",{actionName:"load",className:"wcf\\data\\like\\LikeAction",parameters:a});this._proxy.sendRequest()},_success:function(b,c,a){if(b.returnValues.template){$(b.returnValues.template).insertBefore(this._loadButton.parent());this._container.data("lastLikeTime",b.returnValues.lastLikeTime);this._noMoreEntries.hide();this._loadButton.show().enable()}else{this._noMoreEntries.show();this._loadButton.hide()}}});WCF.User.ProfilePreview=WCF.Popover.extend({_proxy:null,_userProfiles:{},init:function(){this._super(".userLink");this._proxy=new WCF.Action.Proxy({showLoadingOverlay:false});WCF.System.ObjectStore.add("WCF.User.ProfilePreview",this)},_loadContent:function(){var a=$("#"+this._activeElementID);var c=a.data("userID");if(this._userProfiles[c]){this._insertContent(this._activeElementID,this._userProfiles[c],true)}else{this._proxy.setOption("data",{actionName:"getUserProfile",className:"wcf\\data\\user\\UserProfileAction",objectIDs:[c]});var d=this._activeElementID;var b=this;this._proxy.setOption("success",function(f,g,e){b._userProfiles[c]=f.returnValues.template;b._insertContent(d,f.returnValues.template,true)});this._proxy.setOption("failure",function(f,e,h,g){b._userProfiles[c]=f.message;b._insertContent(d,f.message,true);return false});this._proxy.sendRequest()}},purge:function(a){delete this._userProfiles[a];this._data={}}});WCF.User.Action={};WCF.User.Action.Follow=Class.extend({_containerList:null,_followButtonSelector:".jsFollowButton",_userID:0,init:function(b,a){if(!b.length){return}this._containerList=b;if(a){this._followButtonSelector=a}this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._containerList.each($.proxy(function(d,c){$(c).find(this._followButtonSelector).click($.proxy(this._click,this))},this))},_click:function(b){b.preventDefault();var a=$(b.target);if(!a.is("a")){a=a.closest("a")}this._userID=a.data("objectID");this._proxy.setOption("data",{actionName:a.data("following")?"unfollow":"follow",className:"wcf\\data\\user\\follow\\UserFollowAction",parameters:{data:{userID:this._userID}}});this._proxy.sendRequest()},_success:function(c,e,b){this._containerList.each($.proxy(function(g,f){var h=$(f).find(this._followButtonSelector).get(0);if(h&&$(h).data("objectID")==this._userID){h=$(h);if(c.returnValues.following){h.data("tooltip",WCF.Language.get("wcf.user.button.unfollow")).children(".icon").removeClass("icon-plus").addClass("icon-minus")}else{h.data("tooltip",WCF.Language.get("wcf.user.button.follow")).children(".icon").removeClass("icon-minus").addClass("icon-plus")}h.data("following",c.returnValues.following);return false}},this));var d=new WCF.System.Notification();d.show();var a=this;WCF.System.ObjectStore.invoke("WCF.User.ProfilePreview",function(f){f.purge(a._userID)})}});WCF.User.Action.Ignore=Class.extend({_containerList:null,_ignoreButtonSelector:".jsIgnoreButton",_userID:0,init:function(a,b){if(!a.length){return}this._containerList=a;if(b){this._ignoreButtonSelector=b}this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._containerList.each($.proxy(function(d,c){$(c).find(this._ignoreButtonSelector).click($.proxy(this._click,this))},this))},_click:function(b){b.preventDefault();var a=$(b.target);if(!a.is("a")){a=a.closest("a")}this._userID=a.data("objectID");this._proxy.setOption("data",{actionName:a.data("ignored")?"unignore":"ignore",className:"wcf\\data\\user\\ignore\\UserIgnoreAction",parameters:{data:{ignoreUserID:this._userID}}});this._proxy.sendRequest()},_success:function(c,e,b){this._containerList.each($.proxy(function(g,f){var h=$(f).find(this._ignoreButtonSelector).get(0);if(h&&$(h).data("objectID")==this._userID){h=$(h);if(c.returnValues.isIgnoredUser){h.data("tooltip",WCF.Language.get("wcf.user.button.unignore")).children(".icon").removeClass("icon-ban-circle").addClass("icon-circle-blank")}else{h.data("tooltip",WCF.Language.get("wcf.user.button.ignore")).children(".icon").removeClass("icon-circle-blank").addClass("icon-ban-circle")}h.data("ignored",c.returnValues.isIgnoredUser);return false}},this));var d=new WCF.System.Notification();d.show();var a=this;WCF.System.ObjectStore.invoke("WCF.User.ProfilePreview",function(f){f.purge(a._userID)})}});WCF.User.Avatar={};WCF.User.Avatar.Crop=Class.extend({_cropX:0,_cropY:0,_dialog:null,_proxy:null,MAX_THUMBNAIL_SIZE:128,init:function(a){this._avatarID=a;if(this._dialog){this.destroy()}this._dialog=null;if(!this._proxy){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)})}$(".userAvatarCrop").click($.proxy(this._showCropDialog,this))},destroy:function(){this._dialog.remove()},_crop:function(a){this._proxy.setOption("data",{actionName:"cropAvatar",className:"wcf\\data\\user\\avatar\\UserAvatarAction",objectIDs:[this._avatarID],parameters:{cropX:this._cropX,cropY:this._cropY}});this._proxy.sendRequest()},_getCropDialog:function(b){if(!this._dialog){this._dialog=$("<div />").hide().appendTo(document.body);this._dialog.wcfDialog({title:WCF.Language.get("wcf.user.avatar.type.custom.crop")})}this._dialog.html(b.returnValues.template);this._dialog.find('button[data-type="save"]').click($.proxy(this._crop,this));this._cropX=b.returnValues.cropX;this._cropY=b.returnValues.cropY;var a=$("#userAvatarCropSelection > img");$("#userAvatarCropSelection").css({height:a.height()+"px",width:a.width()+"px"});$("#userAvatarCropOverlaySelection").css({"background-image":"url("+a.attr("src")+")","background-position":-this._cropX+"px "+-this._cropY+"px",left:this._cropX+"px",top:this._cropY+"px"}).draggable({containment:"parent",drag:$.proxy(this._updateSelection,this),stop:$.proxy(this._updateSelection,this)});this._dialog.find('button[data-type="save"]').click($.proxy(this._save,this));this._dialog.wcfDialog("render")},_showCropDialog:function(){if(!this._dialog){this._proxy.setOption("data",{actionName:"getCropDialog",className:"wcf\\data\\user\\avatar\\UserAvatarAction",objectIDs:[this._avatarID]});this._proxy.sendRequest()}else{this._dialog.wcfDialog("open")}},_success:function(b,d,a){switch(b.actionName){case"getCropDialog":this._getCropDialog(b);break;case"cropAvatar":$("#avatarUpload > dt > img").replaceWith($('<img src="'+b.returnValues.url+'" alt="" class="userAvatarCrop jsTooltip" title="'+WCF.Language.get("wcf.user.avatar.type.custom.crop")+'" />').css({width:"96px",height:"96px"}).click($.proxy(this._showCropDialog,this)));WCF.DOMNodeInsertedHandler.execute();this._dialog.wcfDialog("close");var c=new WCF.System.Notification();c.show();break}},_updateSelection:function(a,b){this._cropX=b.position.left;this._cropY=b.position.top;$("#userAvatarCropOverlaySelection").css({"background-position":-b.position.left+"px "+-b.position.top+"px"})}});WCF.User.Avatar.Upload=WCF.Upload.extend({_avatarCrop:null,_userID:0,init:function(b,a){this._super($("#avatarUpload > dd > div"),undefined,"wcf\\data\\user\\avatar\\UserAvatarAction");this._userID=b||0;this._avatarCrop=a;$("#avatarForm input[type=radio]").change(function(){if($(this).val()=="custom"){$("#avatarUpload > dd > div").show()}else{$("#avatarUpload > dd > div").hide()}});if(!$("#avatarForm input[type=radio][value=custom]:checked").length){$("#avatarUpload > dd > div").hide()}},_initFile:function(a){return $("#avatarUpload > dt > img")},_success:function(c,a){if(a.returnValues.url){this._updateImage(a.returnValues.url,a.returnValues.canCrop);if(a.returnValues.canCrop){if(!this._avatarCrop){this._avatarCrop=new WCF.User.Avatar.Crop(a.returnValues.avatarID)}else{this._avatarCrop.init(a.returnValues.avatarID)}}else{if(this._avatarCrop){this._avatarCrop.destroy();this._avatarCrop=null}}$("#avatarUpload > dd > .innerError").remove();var b=new WCF.System.Notification(WCF.Language.get("wcf.user.avatar.upload.success"));b.show()}else{if(a.returnValues.errorType){this._getInnerErrorElement().text(WCF.Language.get("wcf.user.avatar.upload.error."+a.returnValues.errorType))}}},_updateImage:function(b,a){$("#avatarUpload > dt > img").remove();var c=$('<img src="'+b+'" alt="" />').css({height:"auto","max-height":"96px","max-width":"96px",width:"auto"});if(a){c.addClass("userAvatarCrop").addClass("jsTooltip");c.attr("title",WCF.Language.get("wcf.user.avatar.type.custom.crop"))}$("#avatarUpload > dt").prepend(c);WCF.DOMNodeInsertedHandler.execute()},_getInnerErrorElement:function(){var a=$("#avatarUpload > dd > .innerError");if(!a.length){a=$('<small class="innerError"></span>');$("#avatarUpload > dd").append(a)}return a},_getParameters:function(){return{userID:this._userID}},});WCF.User.List=Class.extend({_additionalParameters:{},_cache:{},_className:"",_dialog:null,_dialogTitle:"",_pageCount:0,_pageNo:1,_proxy:null,init:function(c,a,b){this._additionalParameters=b||{};this._cache={};this._className=c;this._dialog=null;this._dialogTitle=a;this._pageCount=0;this._pageNo=1;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)})},open:function(){this._pageNo=1;this._showPage()},_showPage:function(b,c){if(c&&c.activePage){this._pageNo=c.activePage}if(this._pageCount!=0&&(this._pageNo<1||this._pageNo>this._pageCount)){console.debug("[WCF.User.List] Cannot access page "+this._pageNo+" of "+this._pageCount);return}if(this._cache[this._pageNo]){var a=false;if(this._dialog===null){this._dialog=$('<div id="userList'+this._className.hashCode()+'" />').hide().appendTo(document.body);a=true}this._dialog.empty();this._dialog.html(this._cache[this._pageNo]);if(this._pageCount>1){this._dialog.find(".jsPagination").wcfPages({activePage:this._pageNo,maxPage:this._pageCount}).on("wcfpagesswitched",$.proxy(this._showPage,this))}if(a){this._dialog.wcfDialog({title:this._dialogTitle})}else{this._dialog.wcfDialog("open").wcfDialog("render")}}else{this._additionalParameters.pageNo=this._pageNo;this._proxy.setOption("data",{actionName:"getGroupedUserList",className:this._className,interfaceName:"wcf\\data\\IGroupedUserListAction",parameters:this._additionalParameters});this._proxy.sendRequest()}},_success:function(b,c,a){if(b.returnValues.pageCount){this._pageCount=b.returnValues.pageCount}this._cache[this._pageNo]=b.returnValues.template;this._showPage()}});WCF.User.ObjectWatch={};WCF.User.ObjectWatch.Subscribe=Class.extend({_buttonSelector:".jsSubscribeButton",_buttons:{},_dialog:null,_notification:null,_reloadOnUnsubscribe:false,init:function(a){this._buttons={};this._notification=null;this._reloadOnUnsubscribe=(a===true);this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});$(this._buttonSelector).each($.proxy(function(b,c){var e=$(c);var d=e.data("objectID");this._buttons[d]=e.click($.proxy(this._click,this))},this));WCF.System.Event.addListener("com.woltlab.wcf.objectWatch","update",$.proxy(this._updateSubscriptionStatus,this))},_click:function(a){a.preventDefault();var b=$(a.currentTarget);this._proxy.setOption("data",{actionName:"manageSubscription",className:"wcf\\data\\user\\object\\watch\\UserObjectWatchAction",parameters:{objectID:b.data("objectID"),objectType:b.data("objectType")}});this._proxy.sendRequest()},_success:function(c,e,b){if(c.actionName==="manageSubscription"){if(this._dialog===null){this._dialog=$("<div>"+c.returnValues.template+"</div>").hide().appendTo(document.body);this._dialog.wcfDialog({title:WCF.Language.get("wcf.user.objectWatch.manageSubscription")})}else{this._dialog.html(c.returnValues.template);this._dialog.wcfDialog("open")}this._dialog.find(".formSubmit > .jsButtonSave").data("objectID",c.returnValues.objectID).click($.proxy(this._save,this));var a=this._dialog.find("input[name=enableNotification]").disable();this._dialog.find("input[name=subscribe]").change(function(f){var g=$(f.currentTarget);if(g.val()==1){a.enable()}else{a.disable()}});var d=this._dialog.find("input[name=subscribe]:checked");if(d.length&&d.val()==1){a.enable()}}else{if(c.actionName==="saveSubscription"&&this._dialog.is(":visible")){this._dialog.wcfDialog("close");this._updateSubscriptionStatus({isSubscribed:c.returnValues.subscribe,objectID:c.returnValues.objectID});if(this._notification===null){this._notification=new WCF.System.Notification(WCF.Language.get("wcf.global.success.edit"))}this._notification.show()}}},_save:function(b){var d=this._buttons[$(b.currentTarget).data("objectID")];var c=this._dialog.find("input[name=subscribe]:checked").val();var a=(this._dialog.find("input[name=enableNotification]").is(":checked"))?1:0;this._proxy.setOption("data",{actionName:"saveSubscription",className:"wcf\\data\\user\\object\\watch\\UserObjectWatchAction",parameters:{enableNotification:a,objectID:d.data("objectID"),objectType:d.data("objectType"),subscribe:c}});this._proxy.sendRequest()},_updateSubscriptionStatus:function(c){var b=$(this._buttonSelector+"[data-object-id="+c.objectID+"]");var a=b.children(".icon");if(c.isSubscribed){a.removeClass("icon-bookmark-empty").addClass("icon-bookmark");b.data("isSubscribed",true)}else{a.removeClass("icon-bookmark").addClass("icon-bookmark-empty");b.data("isSubscribed",false);if(this._reloadOnUnsubscribe){window.location.reload();return}}WCF.System.Event.fireEvent("com.woltlab.wcf.objectWatch","updatedSubscription",c)}});WCF.User.InlineEditor=WCF.InlineEditor.extend({_additionalOptions:{},_dialog:null,_permissions:{},init:function(a){this._super(a);WCF.System.ObjectStore.add("WCF.User.InlineEditor",this)},_execute:function(b,d){if(!this._validate(b,d)){return false}var c={};var a=$("#"+b);if(this._additionalOptions[d]!==undefined){this._additionalOptions[d].callback(b)}else{switch(d){case"unban":case"enableAvatar":case"enableSignature":switch(d){case"unban":c.banned=0;break;case"enableAvatar":c.disableAvatar=0;break;case"enableSignature":c.disableSignature=0;break}this._proxy.setOption("data",{actionName:d,className:"wcf\\data\\user\\UserAction",objectIDs:[a.data("objectID")]});this._proxy.sendRequest();break;case"ban":case"disableAvatar":case"disableSignature":if(d=="ban"){c.banned=1}else{c[d]=1}this._showReasonDialog(a.data("objectID"),d);break;case"advanced":window.location=this._getTriggerElement(a).attr("href");break}}if($.getLength(c)){this._updateData.push({data:c,elementID:b,})}},_executeReasonAction:function(c,d,f){var b=this._dialog.data("optionName");this._dialog.find(".innerError").remove();var a="";if(!$("#"+b+"NeverExpires").is(":checked")){a=$("#"+b+"ExpiresDatePicker").val();if(!a){this._dialog.find("#"+b+"ExpiresSettings > dd > small").prepend($('<small class="innerError" />').text(WCF.Language.get("wcf.global.form.error.empty")));return}}var e={};e[b+"Reason"]=$("#"+b+"Reason").val();e[b+"Expires"]=a;this._proxy.setOption("data",{actionName:b,className:"wcf\\data\\user\\UserAction",objectIDs:[this._dialog.data("userID")],parameters:e});this._proxy.sendRequest()},_getPermission:function(a){if(this._permissions[a]){return this._permissions[a]}return 0},_getTriggerElement:function(a){return a.find(".jsUserInlineEditor")},_setOptions:function(){this._options=[{label:WCF.Language.get("wcf.user.ban"),optionName:"ban"},{label:WCF.Language.get("wcf.user.unban"),optionName:"unban"},{label:WCF.Language.get("wcf.user.disableAvatar"),optionName:"disableAvatar"},{label:WCF.Language.get("wcf.user.enableAvatar"),optionName:"enableAvatar"},{label:WCF.Language.get("wcf.user.disableSignature"),optionName:"disableSignature"},{label:WCF.Language.get("wcf.user.enableSignature"),optionName:"enableSignature"}];for(var a in this._additionalOptions){this._options.push({label:this._additionalOptions[a].label,optionName:a})}this._options.push({optionName:"divider"});this._options.push({label:WCF.Language.get("wcf.user.edit"),optionName:"advanced"})},_show:function(c){var a=$(c.currentTarget);var d=a.data("elementID");if(!this._dropdowns[d]){var b=a.next(".dropdownMenu");if(b){this._dropdowns[d]=b;WCF.Dropdown.initDropdown(this._getTriggerElement(this._elements[d]),true)}}return this._super(c)},_showReasonDialog:function(a,b){if(this._dialog){this._dialog.remove()}this._dialog=$("<div />").hide().appendTo(document.body);this._dialog.append($('<fieldset><dl><dt><label for="'+b+'Reason">'+WCF.Language.get("wcf.global.reason")+'</label></dt><dd><textarea id="'+b+'Reason" cols="40" rows="3" />'+(WCF.Language.get("wcf.user."+b+".reason.description")!="wcf.user."+b+".reason.description"?"<small>"+WCF.Language.get("wcf.user."+b+".reason.description")+"</small>":"")+'</dd></dl><dl><dt></dt><dd><label for="'+b+'NeverExpires"><input type="checkbox" name="'+b+'NeverExpires" id="'+b+'NeverExpires" checked="checked" /> '+WCF.Language.get("wcf.user."+b+".neverExpires")+'</label></dd></dl><dl id="'+b+'ExpiresSettings" style="display: none;"><dt><label for="'+b+'Expires">'+WCF.Language.get("wcf.user."+b+".expires")+'</label></dt><dd><input type="date" name="'+b+'Expires" id="'+b+'Expires" class="medium" min="'+new Date(TIME_NOW*1000).toISOString()+'" data-ignore-timezone="true" /><small>'+WCF.Language.get("wcf.user."+b+".expires.description")+"</small></dd></dl></fieldset>"));this._dialog.append($('<div class="formSubmit"><button class="buttonPrimary" accesskey="s">'+WCF.Language.get("wcf.global.button.submit")+"</button></div>"));this._dialog.data("optionName",b).data("userID",a);this._dialog.find("#"+b+"NeverExpires").change(function(){$("#"+b+"ExpiresSettings").toggle()});this._dialog.find("button").click($.proxy(this._executeReasonAction,this));this._dialog.wcfDialog({title:WCF.Language.get("wcf.user."+b+".confirmMessage")})},_updateState:function(d){this._notification.show();for(var f=0,e=this._updateData.length;f<e;f++){var b=this._updateData[f];var a=$("#"+b.elementID);for(var c in b.data){a.data(c,b.data[c])}}if(d.actionName=="ban"||d.actionName=="disableAvatar"||d.actionName=="disableSignature"){this._dialog.wcfDialog("close")}if(d.actionName=="unban"){$(".userHeadline .jsUserBanned").remove()}},_validate:function(a,b){var c=$("#"+a);if(this._additionalOptions[b]!==undefined){return true}switch(b){case"ban":case"unban":if(!this._getPermission("canBanUser")){return false}if(b=="ban"){return !c.data("banned")}else{return c.data("banned")}break;case"disableAvatar":case"enableAvatar":if(!this._getPermission("canDisableAvatar")){return false}if(b=="disableAvatar"){return !c.data("disableAvatar")}else{return c.data("disableAvatar")}break;case"disableSignature":case"enableSignature":if(!this._getPermission("canDisableSignature")){return false}if(b=="disableSignature"){return !c.data("disableSignature")}else{return c.data("disableSignature")}break;case"advanced":return this._getPermission("canEditUser");break}return false},addOption:function(a,b,c){if(!$.isFunction(c)){console.debug("[WCF.User.InlineEditor] Missing callback")}if(this._additionalOptions[b]!==undefined){console.debug('[WCF.User.InlineEditor] Additional option with name "'+b+"' already exists")}this._additionalOptions[b]={callback:c,label:a};this._setOptions()},setPermission:function(a,b){this._permissions[a]=b},setPermissions:function(a){for(var b in a){this.setPermission(b,a[b])}}}); })(this);
+(function (window, undefined) {"use strict";WCF.User.Login=Class.extend({_loginSubmitButton:null,_password:null,_passwordContainer:null,_useCookies:null,_useCookiesContainer:null,init:function(b){this._loginSubmitButton=$("#loginSubmitButton");this._password=$("#password"),this._passwordContainer=this._password.parents("dl");this._useCookies=$("#useCookies");this._useCookiesContainer=this._useCookies.parents("dl");var a=$("#loginForm");a.find("input[name=action]").change($.proxy(this._change,this));if(b){WCF.User.QuickLogin.init()}},_change:function(a){if($(a.currentTarget).val()==="register"){this._setState(false,WCF.Language.get("wcf.user.button.register"))}else{this._setState(true,WCF.Language.get("wcf.user.button.login"))}},_setState:function(b,a){if(b){this._password.enable();this._passwordContainer.removeClass("disabled");this._useCookies.enable();this._useCookiesContainer.removeClass("disabled")}else{this._password.disable();this._passwordContainer.addClass("disabled");this._useCookies.disable();this._useCookiesContainer.addClass("disabled")}this._loginSubmitButton.val(a)}});WCF.User.Panel={};WCF.User.Panel.Abstract=Class.extend({_badge:null,_dropdown:null,_identifier:"",_loadData:true,_markAllAsReadLink:null,_options:{},_proxy:null,_triggerElement:null,init:function(d,b,a){this._dropdown=null;this._identifier=b;this._triggerElement=d;this._options=a;this._proxy=new WCF.Action.Proxy({showLoadingOverlay:false,success:$.proxy(this._success,this)});this._triggerElement.click($.proxy(this.toggle,this));var c=this._triggerElement.find("span.badge");if(c.length){this._badge=c}},toggle:function(b){b.preventDefault();if(this._dropdown===null){this._dropdown=this._initDropdown()}if(this._dropdown.toggle()){if(!this._loadData){if(this._badge!==null){var a=parseInt(this._badge.text())||0;if(a&&!this._dropdown.getItemList().children(".interactiveDropdownItemOutstanding").length){this._loadData=true}}}if(this._loadData){this._loadData=false;this._load()}}return false},_initDropdown:function(){var a=WCF.Dropdown.Interactive.Handler.create(this._triggerElement,this._identifier,this._options);$('<li class="loading"><span class="icon icon24 fa-spinner" /> <span>'+WCF.Language.get("wcf.global.loading")+"</span></li>").appendTo(a.getItemList());return a},_load:function(){},_success:function(d){if(d.returnValues.template!==undefined){var e=this._dropdown.getItemList().empty();$(d.returnValues.template).appendTo(e);if(!e.children().length){$('<li class="noItems">'+this._options.noItems+"</li>").appendTo(e)}if(this._options.enableMarkAsRead){var b=this._dropdown.getItemList().children(".interactiveDropdownItemOutstanding");if(this._markAllAsReadLink===null&&b.length&&this._options.markAllAsReadConfirmMessage){var c=this._markAllAsReadLink=$('<li class="interactiveDropdownItemMarkAllAsRead"><a href="#" title="'+WCF.Language.get("wcf.user.panel.markAllAsRead")+'" class="jsTooltip"><span class="icon icon16 fa-check" /></a></li>').appendTo(this._dropdown.getLinkList());c.click((function(f){this._dropdown.close();WCF.System.Confirmation.show(this._options.markAllAsReadConfirmMessage,(function(g){if(g==="confirm"){this._markAllAsRead()}}).bind(this));return false}).bind(this))}b.each((function(g,i){var f=$(i).addClass("interactiveDropdownItemOutstandingIcon");var h=f.data("objectID");var j=$('<div class="interactiveDropdownItemMarkAsRead"><a href="#" title="'+WCF.Language.get("wcf.user.panel.markAsRead")+'" class="jsTooltip"><span class="icon icon16 fa-check" /></a></div>').appendTo(f);j.click((function(k){this._markAsRead(k,h);return false}).bind(this))}).bind(this))}this._dropdown.getItemList().children().each(function(h,i){var g=$(i);var f=g.data("link");if(f){if($.browser.msie){g.click(function(j){if(j.target.tagName!=="A"){window.location=f;return false}})}else{g.addClass("interactiveDropdownItemShadow");$('<a href="'+f+'" class="interactiveDropdownItemShadowLink" />').appendTo(g)}if(g.data("linkReplaceAll")){g.find("> .box32 a:not(.userLink)").prop("href",f)}}});this._dropdown.rebuildScrollbar()}if(d.returnValues.totalCount!==undefined){this.updateBadge(d.returnValues.totalCount)}if(this._options.enableMarkAsRead){if(d.returnValues.markAsRead){var a=this._dropdown.getItemList().children("li[data-object-id="+d.returnValues.markAsRead+"]");if(a.length){a.removeClass("interactiveDropdownItemOutstanding").data("isRead",true);a.children(".interactiveDropdownItemMarkAsRead").remove()}}else{if(d.returnValues.markAllAsRead){this.resetItems();this.updateBadge(0)}}}},_markAsRead:function(a,b){},_markAllAsRead:function(){},updateBadge:function(a){a=parseInt(a)||0;if(a){if(this._badge===null){this._badge=$('<span class="badge badgeInverse" />').appendTo(this._triggerElement.children("a"))}this._badge.text(a)}else{if(this._badge!==null){this._badge.remove()}}if(this._options.enableMarkAsRead){if(!a&&this._markAllAsReadLink!==null){this._markAllAsReadLink.remove();this._markAllAsReadLink=null}}},resetItems:function(){this._dropdown.resetItems()}});WCF.User.Panel.Notification=WCF.User.Panel.Abstract.extend({_favico:null,init:function(b){b.enableMarkAsRead=true;this._super($("#userNotifications"),"userNotifications",b);try{this._favico=new Favico({animation:"none",type:"circle"});if(this._badge!==null){var a=parseInt(this._badge.text())||0;this._favico.badge(a)}}catch(c){console.debug("[WCF.User.Panel.Notification] Failed to initialized Favico: "+c.message)}WCF.System.PushNotification.addCallback("userNotificationCount",$.proxy(this.updateUserNotificationCount,this))},_initDropdown:function(){var a=this._super();$('<li><a href="'+this._options.settingsLink+'" title="'+WCF.Language.get("wcf.user.panel.settings")+'" class="jsTooltip"><span class="icon icon16 fa-cog" /></a></li>').appendTo(a.getLinkList());return a},_load:function(){this._proxy.setOption("data",{actionName:"getOutstandingNotifications",className:"wcf\\data\\user\\notification\\UserNotificationAction"});this._proxy.sendRequest()},_markAsRead:function(a,b){this._proxy.setOption("data",{actionName:"markAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction",objectIDs:[b]});this._proxy.sendRequest()},_markAllAsRead:function(a){this._proxy.setOption("data",{actionName:"markAllAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction"});this._proxy.sendRequest()},resetItems:function(){this._super();if(this._markAllAsReadLink){this._markAllAsReadLink.remove();this._markAllAsReadLink=null}},updateBadge:function(a){a=parseInt(a)||0;if(this._favico!==null){this._favico.badge(a)}this._super(a)},updateUserNotificationCount:function(a){if(this._dropdown!==null){this._dropdown.resetItems()}this.updateBadge(a)}});WCF.User.QuickLogin={_dialog:null,_loginMessage:null,init:function(){$(".loginLink").click($.proxy(this._render,this));$("#loginForm input[name=url]").val(function(a,b){return window.location.protocol+"//"+window.location.host+b})},show:function(a){if(a){if(this._loginMessage===null){this._loginMessage=$('<p class="info" />').hide().prependTo($("#loginForm > form"))}this._loginMessage.show().text(a)}else{if(this._loginMessage!==null){this._loginMessage.hide()}}this._render()},_render:function(a){if(a!==undefined){a.preventDefault()}if(this._dialog===null){this._dialog=$("#loginForm").wcfDialog({title:WCF.Language.get("wcf.user.login")});this._dialog.find("#username").focus()}else{this._dialog.wcfDialog("open")}}};WCF.User.Profile={};WCF.User.Profile.ActivityPointList={_cache:{},_dialog:null,_didInit:false,_proxy:null,init:function(){if(this._didInit){return}this._cache={};this._dialog=null;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._init();WCF.DOMNodeInsertedHandler.addCallback("WCF.User.Profile.ActivityPointList",$.proxy(this._init,this));this._didInit=true},_init:function(){$(".activityPointsDisplay").removeClass("activityPointsDisplay").click($.proxy(this._click,this))},_click:function(b){b.preventDefault();var a=$(b.currentTarget).data("userID");if(this._cache[a]===undefined){this._proxy.setOption("data",{actionName:"getDetailedActivityPointList",className:"wcf\\data\\user\\UserProfileAction",objectIDs:[a]});this._proxy.sendRequest()}else{this._show(a)}},_show:function(a){if(this._dialog===null){this._dialog=$("<div>"+this._cache[a]+"</div>").hide().appendTo(document.body);this._dialog.wcfDialog({title:WCF.Language.get("wcf.user.activityPoint")})}else{this._dialog.html(this._cache[a]);this._dialog.wcfDialog("open")}},_success:function(b,c,a){this._cache[b.returnValues.userID]=b.returnValues.template;this._show(b.returnValues.userID)}};WCF.User.Profile.Follow=Class.extend({_button:null,_following:false,_proxy:null,_userID:0,init:function(a,b){this._following=b;this._userID=a;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._createButton();this._showButton()},_createButton:function(){this._button=$('<li id="followUser"><a href="#" class="button jsTooltip" title="'+WCF.Language.get("wcf.user.button."+(this._following?"un":"")+"follow")+'"><span class="icon icon16 icon-plus"></span> <span class="invisible">'+WCF.Language.get("wcf.user.button."+(this._following?"un":"")+"follow")+"</span></a></li>").prependTo($("#profileButtonContainer"));this._button.click($.proxy(this._execute,this))},_execute:function(b){b.preventDefault();var a=(this._following)?"unfollow":"follow";this._proxy.setOption("data",{actionName:a,className:"wcf\\data\\user\\follow\\UserFollowAction",parameters:{data:{userID:this._userID}}});this._proxy.sendRequest()},_showButton:function(){if(this._following){this._button.find(".button").data("tooltip",WCF.Language.get("wcf.user.button.unfollow")).addClass("active").children(".icon").removeClass("icon-plus").addClass("icon-minus")}else{this._button.find(".button").data("tooltip",WCF.Language.get("wcf.user.button.follow")).removeClass("active").children(".icon").removeClass("icon-minus").addClass("icon-plus")}},_success:function(b,d,a){this._following=b.returnValues.following;this._showButton();var c=new WCF.System.Notification();c.show()}});WCF.User.Profile.IgnoreUser=Class.extend({_button:null,_isIgnoredUser:false,_proxy:null,_userID:0,init:function(b,a){this._userID=b;this._isIgnoredUser=a;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._updateButton();this._button.click($.proxy(this._click,this))},_click:function(a){a.preventDefault();var b=(this._isIgnoredUser)?"unignore":"ignore";this._proxy.setOption("data",{actionName:b,className:"wcf\\data\\user\\ignore\\UserIgnoreAction",parameters:{data:{ignoreUserID:this._userID}}});this._proxy.sendRequest()},_success:function(b,d,a){this._isIgnoredUser=b.returnValues.isIgnoredUser;this._updateButton();var c=new WCF.System.Notification();c.show()},_updateButton:function(){if(this._button===null){this._button=$('<li id="ignoreUser"><a href="#" class="button jsTooltip" title="'+WCF.Language.get("wcf.user.button."+(this._isIgnoredUser?"un":"")+"ignore")+'"><span class="icon icon16 icon-ban-circle"></span> <span class="invisible">'+WCF.Language.get("wcf.user.button."+(this._isIgnoredUser?"un":"")+"ignore")+"</span></a></li>").prependTo($("#profileButtonContainer"))}this._button.find(".button").data("tooltip",WCF.Language.get("wcf.user.button."+(this._isIgnoredUser?"un":"")+"ignore"));if(this._isIgnoredUser){this._button.find(".button").addClass("active").children(".icon").removeClass("icon-ban-circle").addClass("icon-circle-blank")}else{this._button.find(".button").removeClass("active").children(".icon").removeClass("icon-circle-blank").addClass("icon-ban-circle")}}});WCF.User.Profile.TabMenu=Class.extend({_hasContent:{},_profileContent:null,_proxy:null,_userID:0,init:function(a){this._profileContent=$("#profileContent");this._userID=a;var c=this._profileContent.data("active");var b=false;this._profileContent.find("div.tabMenuContent").each($.proxy(function(e,d){var f=$(d).wcfIdentify();if(c===f){this._hasContent[f]=true}else{this._hasContent[f]=false;b=true}},this));if(b){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._profileContent.on("wcftabsbeforeactivate",$.proxy(this._loadContent,this));this._profileContent.find("> nav.tabMenu > ul > li").each($.proxy(function(d,f){var e=$(f);if(e.hasClass("ui-state-active")){if(d){this._loadContent(null,{newPanel:$("#"+e.attr("aria-controls"))})}return false}},this))}},_loadContent:function(b,c){var d=$(c.newPanel);var a=d.attr("id");if(!this._hasContent[a]){this._proxy.setOption("data",{actionName:"getContent",className:"wcf\\data\\user\\profile\\menu\\item\\UserProfileMenuItemAction",parameters:{data:{containerID:a,menuItem:d.data("menuItem"),userID:this._userID}}});this._proxy.sendRequest()}},_success:function(d,e,c){var b=d.returnValues.containerID;this._hasContent[b]=true;var a=this._profileContent.find("#"+b);$("<div>"+d.returnValues.template+"</div>").hide().appendTo(a);a.children("div").wcfBlindIn()}});WCF.User.Profile.Editor=Class.extend({_actionName:"",_buttons:{},_cachedTemplate:"",_proxy:null,_tab:null,_userID:0,init:function(a,b){this._actionName="";this._cachedTemplate="";this._tab=$("#about");this._userID=a;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._initButtons();if(b){this._beginEdit()}},_initButtons:function(){var a=$("#profileButtonContainer");this._buttons={beginEdit:$('<li><a class="button"><span class="icon icon16 icon-pencil" /> <span>'+WCF.Language.get("wcf.user.editProfile")+"</span></a></li>").click($.proxy(this._beginEdit,this)).appendTo(a)}},_beginEdit:function(){this._actionName="beginEdit";this._buttons.beginEdit.hide();$("#profileContent").wcfTabs("select","about");this._proxy.setOption("data",{actionName:"beginEdit",className:"wcf\\data\\user\\UserProfileAction",objectIDs:[this._userID]});this._proxy.sendRequest()},_save:function(){this._actionName="save";var b=/values\[([a-zA-Z0-9._-]+)\]/;var a={};this._tab.find("input, textarea, select").each(function(e,g){var d=$(g);var f=null;switch(d.getTagName()){case"input":var c=d.attr("type");if((c==="radio"||c==="checkbox")&&!d.prop("checked")){return}break;case"textarea":if(d.data("redactor")){f=d.redactor("wutil.getText")}break}var h=d.attr("name");if(b.test(h)){a[RegExp.$1]=(f===null)?d.val():f}});this._proxy.setOption("data",{actionName:"save",className:"wcf\\data\\user\\UserProfileAction",objectIDs:[this._userID],parameters:{values:a}});this._proxy.sendRequest()},_restore:function(){this._actionName="restore";this._buttons.beginEdit.show();this._destroyEditor();this._tab.html(this._cachedTemplate).children().css({height:"auto"})},_success:function(b,c,a){switch(this._actionName){case"beginEdit":this._prepareEdit(b);break;case"save":if(b.returnValues.success){this._cachedTemplate=b.returnValues.template;this._restore()}else{this._prepareEdit(b,true)}break}},_prepareEdit:function(b,c){this._destroyEditor();var a=this;this._tab.html(function(e,d){if(c!==true){a._cachedTemplate=d}return b.returnValues.template});this._tab.find("input[type=text]").attr("autocomplete","off");this._tab.find(".formSubmit > button[data-type=save]").click($.proxy(this._save,this));this._tab.find(".formSubmit > button[data-type=restore]").click($.proxy(this._restore,this));this._tab.find("input").keyup(function(d){if(d.which===$.ui.keyCode.ENTER){a._save();d.preventDefault();return false}})},_destroyEditor:function(){this._tab.find("textarea").each(function(b,a){var c=$(a);if(c.data("redactor")){c.redactor("core.destroy")}})}});WCF.User.Registration={};WCF.User.Registration.Validation=Class.extend({_actionName:"",_className:"",_confirmElement:null,_element:null,_errorMessages:{},_options:{},_proxy:null,init:function(b,c,a){this._element=b;this._element.blur($.proxy(this._blur,this));this._confirmElement=c||null;if(this._confirmElement!==null){this._confirmElement.blur($.proxy(this._blurConfirm,this))}a=a||{};this._setOptions(a);this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this),showLoadingOverlay:false});this._setErrorMessages()},_setOptions:function(a){},_setErrorMessages:function(){this._errorMessages={ajaxError:"",notEqual:""}},_blur:function(b){var a=this._element.val();if(!a){return this._showError(this._element,WCF.Language.get("wcf.global.form.error.empty"))}if(this._confirmElement!==null){var c=this._confirmElement.val();if(c!=""&&a!=c){return this._showError(this._confirmElement,this._errorMessages.notEqual)}}if(!this._validateOptions()){return}this._proxy.setOption("data",{actionName:this._actionName,className:this._className,parameters:this._getParameters()});this._proxy.sendRequest()},_getParameters:function(){return{}},_validateOptions:function(){return true},_blurConfirm:function(b){var a=this._confirmElement.val();if(!a){return this._showError(this._confirmElement,WCF.Language.get("wcf.global.form.error.empty"))}this._blur(b)},_success:function(b,c,a){if(b.returnValues.isValid){this._showSuccess(this._element);if(this._confirmElement!==null&&this._confirmElement.val()){this._showSuccess(this._confirmElement)}}else{this._showError(this._element,WCF.Language.get(this._errorMessages.ajaxError+b.returnValues.error))}},_showError:function(a,b){a.parent().parent().addClass("formError").removeClass("formSuccess");var c=a.parent().find("small.innerError");if(!c.length){c=$("<small />").addClass("innerError").insertAfter(a)}c.text(b)},_showSuccess:function(a){a.parent().parent().addClass("formSuccess").removeClass("formError");a.next("small.innerError").remove()}});WCF.User.Registration.Validation.Username=WCF.User.Registration.Validation.extend({_actionName:"validateUsername",_className:"wcf\\data\\user\\UserRegistrationAction",_setOptions:function(a){this._options=$.extend(true,{minlength:3,maxlength:25},a)},_setErrorMessages:function(){this._errorMessages={ajaxError:"wcf.user.username.error."}},_validateOptions:function(){var a=this._element.val();if(a.length<this._options.minlength||a.length>this._options.maxlength){this._showError(this._element,WCF.Language.get("wcf.user.username.error.notValid"));return false}return true},_getParameters:function(){return{username:this._element.val()}}});WCF.User.Registration.Validation.EmailAddress=WCF.User.Registration.Validation.extend({_actionName:"validateEmailAddress",_className:"wcf\\data\\user\\UserRegistrationAction",_getParameters:function(){return{email:this._element.val()}},_setErrorMessages:function(){this._errorMessages={ajaxError:"wcf.user.email.error.",notEqual:WCF.Language.get("wcf.user.confirmEmail.error.notEqual")}}});WCF.User.Registration.Validation.Password=WCF.User.Registration.Validation.extend({_actionName:"validatePassword",_className:"wcf\\data\\user\\UserRegistrationAction",_getParameters:function(){return{password:this._element.val()}},_setErrorMessages:function(){this._errorMessages={ajaxError:"wcf.user.password.error.",notEqual:WCF.Language.get("wcf.user.confirmPassword.error.notEqual")}}});WCF.User.Registration.LostPassword=Class.extend({_email:null,_username:null,init:function(){this._email=$("#emailInput");this._username=$("#usernameInput");this._email.keyup($.proxy(this._checkEmail,this));this._username.keyup($.proxy(this._checkUsername,this));if($.browser.mozilla&&$.browser.touch){this._email.on("input",$.proxy(this._checkEmail,this));this._username.on("input",$.proxy(this._checkUsername,this))}this._checkEmail();this._checkUsername()},_checkEmail:function(){if(this._email.val()==""){this._username.enable();this._username.parents("dl:eq(0)").removeClass("disabled")}else{this._username.disable();this._username.parents("dl:eq(0)").addClass("disabled")}},_checkUsername:function(){if(this._username.val()==""){this._email.enable();this._email.parents("dl:eq(0)").removeClass("disabled")}else{this._email.disable();this._email.parents("dl:eq(0)").addClass("disabled")}}});WCF.Notification={};WCF.Notification.List=Class.extend({_proxy:null,init:function(){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});$(".contentNavigation .jsMarkAllAsConfirmed").click(function(){WCF.System.Confirmation.show(WCF.Language.get("wcf.user.notification.markAllAsConfirmed.confirmMessage"),function(a){if(a==="confirm"){new WCF.Action.Proxy({autoSend:true,data:{actionName:"markAllAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction"},success:function(){window.location.reload()}})}})});this._convertList()},_convertList:function(){$(".userNotificationItemList > .notificationItem").each((function(c,d){var a=$(d);if(!a.data("isRead")){a.find("a:not(.userLink)").prop("href",a.data("link"));var b=$('<a href="#" class="icon icon24 fa-check notificationItemMarkAsConfirmed jsTooltip" title="'+WCF.Language.get("wcf.user.notification.markAsConfirmed")+'" />').appendTo(a);b.click($.proxy(this._markAsConfirmed,this))}}).bind(this));WCF.DOMNodeInsertedHandler.execute()},_markAsConfirmed:function(a){a.preventDefault();var b=$(a.currentTarget).parents(".notificationItem:eq(0)").data("objectID");this._proxy.setOption("data",{actionName:"markAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction",objectIDs:[b]});this._proxy.sendRequest();return false},_success:function(c,d,b){var a=$(".userNotificationItemList > .notificationItem[data-object-id="+c.returnValues.markAsRead+"]");a.data("isRead",true);a.find(".newContentBadge").remove();a.find(".notificationItemMarkAsConfirmed").remove();a.removeClass("notificationUnconfirmed")}});WCF.Notification.UserPanel=WCF.UserPanel.extend({_favico:null,_proxy:null,_showAllLink:"",init:function(b){this._favico=null;try{this._favico=new Favico({animation:"none",type:"circle",})}catch(a){}this._noItems="wcf.user.notification.noMoreNotifications";this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._showAllLink=b;this._super("userNotifications");if(this._container.data("count")&&this._favico!==null){this._favico.badge(this._container.data("count"))}WCF.System.PushNotification.addCallback("userNotificationCount",$.proxy(this.updateUserNotificationCount,this))},_addDefaultItems:function(a){this._addDivider(a);$('<li><a href="'+this._showAllLink+'">'+WCF.Language.get("wcf.user.notification.showAll")+"</a></li>").appendTo(a);this._addDivider(a);$('<li id="userNotificationsMarkAllAsConfirmed"><a>'+WCF.Language.get("wcf.user.notification.markAllAsConfirmed")+"</a></li>").click($.proxy(this._markAllAsConfirmed,this)).appendTo(a)},_getParameters:function(){return{actionName:"getOutstandingNotifications",className:"wcf\\data\\user\\notification\\UserNotificationAction"}},_click:function(c){if(this._didLoad){var d=this._container.find(".badge");if(d.length&&parseInt(d.text())>0){var a=WCF.Dropdown.getDropdownMenu(this._container.wcfIdentify());var b=a.children("li.notificationUnconfirmed").length;if(!b&&b!=d.text()&&!a.is(":visible")){this._resetList();this._super(c)}}}else{this._super(c)}},_after:function(b){var d=WCF.Dropdown.getDropdownMenu(this._container.wcfIdentify()).children("li.jsNotificationItem");var a=null;d.each((function(g,h){var e=$(h);var i=e.data("isConfirmed");if(!$.browser.msie){e.addClass("notificationItemLink");$('<a href="'+(i?e.data("link"):e.data("confirmLink"))+'" />').appendTo(e)}if(!i){e.find("a:not(.userLink)").prop("href",e.data("confirmLink"));if(!$.browser.mobile){var f=$('<a href="#" class="icon icon24 fa-check green notificationItemMarkAsConfirmed jsTooltip" title="'+WCF.Language.get("wcf.user.notification.markAsConfirmed")+'" />').prependTo(e.find("> span.box24 > .framed"));f.click($.proxy(this._markAsConfirmed,this))}}if(!e.data("isConfirmed")){a=e}e.click(function(j){if(j.target.tagName!=="A"){window.location=e.data("link")}})}).bind(this));if(a!==null){if(a.next(".notificationItem").length){$('<li class="dropdownDivider" />').insertAfter(a)}}var c=this._container.find(".badge");if(!c.length){this._removeMarkAllAsConfirmed()}},_markAsConfirmed:function(a){a.preventDefault();var b=$(a.currentTarget).parents(".notificationItem:eq(0)").data("notificationID");this._proxy.setOption("data",{actionName:"markAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction",objectIDs:[b]});this._proxy.sendRequest();return false},_markAllAsConfirmed:function(){WCF.System.Confirmation.show(WCF.Language.get("wcf.user.notification.markAllAsConfirmed.confirmMessage"),$.proxy(function(a){if(a==="confirm"){this._proxy.setOption("data",{actionName:"markAllAsConfirmed",className:"wcf\\data\\user\\notification\\UserNotificationAction"});this._proxy.sendRequest()}},this))},_success:function(b,c,a){switch(b.actionName){case"markAsConfirmed":WCF.Dropdown.getDropdownMenu(this._container.wcfIdentify()).children("li.jsNotificationItem").each(function(e,f){var d=$(f);if(d.data("notificationID")==b.returnValues.notificationID){d.data("isConfirmed",true);d.find(".notificationItemMarkAsConfirmed").remove();d.find(".newContentBadge").remove();d.removeClass("notificationUnconfirmed");return false}});this._updateBadge(b.returnValues.totalCount);break;case"markAllAsConfirmed":this._resetList();this._updateBadge(0);this._removeMarkAllAsConfirmed();break;case"getOutstandingNotifications":if(!b.returnValues||!b.returnValues.template){this._removeMarkAllAsConfirmed()}this._super(b,c,a);break}},_updateBadge:function(a){a=parseInt(a)||0;this._super(a);if(this._favico!==null){this._favico.badge(a)}if(a===0){this._removeMarkAllAsConfirmed()}},_resetList:function(){var a=WCF.Dropdown.getDropdownMenu(this._container.wcfIdentify());a.children("li.jsNotificationItem").remove();$('<li class="jsDropdownPlaceholder"><span>'+WCF.Language.get("wcf.global.loading")+"</span></li>").prependTo(a);a.children(".dropdownDivider + .dropdownDivider").remove();this._didLoad=false},_removeMarkAllAsConfirmed:function(){$("#userNotificationsMarkAllAsConfirmed").hide().prev(".dropdownDivider").hide()},updateUserNotificationCount:function(a){WCF.Dropdown.close("userNotifications");this._resetList();this._updateBadge(a);if(parseInt(a)>0){$("#userNotificationsMarkAllAsConfirmed").show().prev(".dropdownDivider").show()}}});WCF.User.SignaturePreview=WCF.Message.Preview.extend({_handleResponse:function(b){var a=$("#previewContainer");if(!a.length){a=$('<fieldset id="previewContainer"><legend>'+WCF.Language.get("wcf.global.preview")+"</legend><div></div></fieldset>").insertBefore($("#signatureContainer")).wcfFadeIn()}a.children("div").first().html(b.returnValues.message)}});WCF.User.RecentActivityLoader=Class.extend({_container:null,_filteredByFollowedUsers:false,_loadButton:null,_proxy:null,_userID:0,init:function(b,a){this._container=$("#recentActivities");this._filteredByFollowedUsers=(a===true);this._userID=b;if(this._userID!==null&&!this._userID){console.debug("[WCF.User.RecentActivityLoader] Invalid parameter 'userID' given.");return}this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});if(this._container.children("li").length){this._loadButton=$('<li class="recentActivitiesMore"><button class="small">'+WCF.Language.get("wcf.user.recentActivity.more")+"</button></li>").appendTo(this._container);this._loadButton=this._loadButton.children("button").click($.proxy(this._click,this))}else{$('<li class="recentActivitiesMore"><small>'+WCF.Language.get("wcf.user.recentActivity.noMoreEntries")+"</small></li>").appendTo(this._container)}if(WCF.User.userID){$(".jsRecentActivitySwitchContext .button").click($.proxy(this._switchContext,this))}},_click:function(){this._loadButton.enable();var a={lastEventID:this._container.data("lastEventID"),lastEventTime:this._container.data("lastEventTime")};if(this._userID){a.userID=this._userID}else{if(this._filteredByFollowedUsers){a.filteredByFollowedUsers=1}}this._proxy.setOption("data",{actionName:"load",className:"wcf\\data\\user\\activity\\event\\UserActivityEventAction",parameters:a});this._proxy.sendRequest()},_switchContext:function(a){a.preventDefault();if(!$(a.currentTarget).hasClass("active")){new WCF.Action.Proxy({autoSend:true,data:{actionName:"switchContext",className:"wcf\\data\\user\\activity\\event\\UserActivityEventAction"},success:function(){window.location.hash="#dashboardBoxRecentActivity";window.location.reload()}})}},_success:function(b,c,a){if(b.returnValues.template){$(b.returnValues.template).insertBefore(this._loadButton.parent());this._container.data("lastEventTime",b.returnValues.lastEventTime);this._container.data("lastEventID",b.returnValues.lastEventID);this._loadButton.enable()}else{$("<small>"+WCF.Language.get("wcf.user.recentActivity.noMoreEntries")+"</small>").appendTo(this._loadButton.parent());this._loadButton.remove()}}});WCF.User.LikeLoader=Class.extend({_container:null,_likeType:"received",_likeValue:1,_loadButton:null,_noMoreEntries:null,_proxy:null,_userID:0,init:function(a){this._container=$("#likeList");this._userID=a;if(!this._userID){console.debug("[WCF.User.RecentActivityLoader] Invalid parameter 'userID' given.");return}this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});var b=$('<li class="likeListMore recentActivitiesMore"><button class="small">'+WCF.Language.get("wcf.like.likes.more")+"</button><small>"+WCF.Language.get("wcf.like.likes.noMoreEntries")+"</small></li>").appendTo(this._container);this._loadButton=b.children("button").click($.proxy(this._click,this));this._noMoreEntries=b.children("small").hide();if(this._container.find("> li").length==2){this._loadButton.hide();this._noMoreEntries.show()}$("#likeType .button").click($.proxy(this._clickLikeType,this));$("#likeValue .button").click($.proxy(this._clickLikeValue,this))},_clickLikeType:function(a){var b=$(a.currentTarget);if(this._likeType!=b.data("likeType")){this._likeType=b.data("likeType");$("#likeType .button").removeClass("active");b.addClass("active");this._reload()}},_clickLikeValue:function(a){var b=$(a.currentTarget);if(this._likeValue!=b.data("likeValue")){this._likeValue=b.data("likeValue");$("#likeValue .button").removeClass("active");b.addClass("active");$("#likeType > li:first-child > .button").text(WCF.Language.get("wcf.like."+(this._likeValue==-1?"dis":"")+"likesReceived"));$("#likeType > li:last-child > .button").text(WCF.Language.get("wcf.like."+(this._likeValue==-1?"dis":"")+"likesGiven"));this._reload()}},_reload:function(){this._container.find("> li:not(:first-child):not(:last-child)").remove();this._container.data("lastLikeTime",0);this._click()},_click:function(){this._loadButton.enable();var a={lastLikeTime:this._container.data("lastLikeTime"),userID:this._userID,likeType:this._likeType,likeValue:this._likeValue};this._proxy.setOption("data",{actionName:"load",className:"wcf\\data\\like\\LikeAction",parameters:a});this._proxy.sendRequest()},_success:function(b,c,a){if(b.returnValues.template){$(b.returnValues.template).insertBefore(this._loadButton.parent());this._container.data("lastLikeTime",b.returnValues.lastLikeTime);this._noMoreEntries.hide();this._loadButton.show().enable()}else{this._noMoreEntries.show();this._loadButton.hide()}}});WCF.User.ProfilePreview=WCF.Popover.extend({_proxy:null,_userProfiles:{},init:function(){this._super(".userLink");this._proxy=new WCF.Action.Proxy({showLoadingOverlay:false});WCF.System.ObjectStore.add("WCF.User.ProfilePreview",this)},_loadContent:function(){var a=$("#"+this._activeElementID);var c=a.data("userID");if(this._userProfiles[c]){this._insertContent(this._activeElementID,this._userProfiles[c],true)}else{this._proxy.setOption("data",{actionName:"getUserProfile",className:"wcf\\data\\user\\UserProfileAction",objectIDs:[c]});var d=this._activeElementID;var b=this;this._proxy.setOption("success",function(f,g,e){b._userProfiles[c]=f.returnValues.template;b._insertContent(d,f.returnValues.template,true)});this._proxy.setOption("failure",function(f,e,h,g){b._userProfiles[c]=f.message;b._insertContent(d,f.message,true);return false});this._proxy.sendRequest()}},purge:function(a){delete this._userProfiles[a];this._data={}}});WCF.User.Action={};WCF.User.Action.Follow=Class.extend({_containerList:null,_followButtonSelector:".jsFollowButton",_userID:0,init:function(b,a){if(!b.length){return}this._containerList=b;if(a){this._followButtonSelector=a}this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._containerList.each($.proxy(function(d,c){$(c).find(this._followButtonSelector).click($.proxy(this._click,this))},this))},_click:function(b){b.preventDefault();var a=$(b.target);if(!a.is("a")){a=a.closest("a")}this._userID=a.data("objectID");this._proxy.setOption("data",{actionName:a.data("following")?"unfollow":"follow",className:"wcf\\data\\user\\follow\\UserFollowAction",parameters:{data:{userID:this._userID}}});this._proxy.sendRequest()},_success:function(c,e,b){this._containerList.each($.proxy(function(g,f){var h=$(f).find(this._followButtonSelector).get(0);if(h&&$(h).data("objectID")==this._userID){h=$(h);if(c.returnValues.following){h.data("tooltip",WCF.Language.get("wcf.user.button.unfollow")).children(".icon").removeClass("icon-plus").addClass("icon-minus")}else{h.data("tooltip",WCF.Language.get("wcf.user.button.follow")).children(".icon").removeClass("icon-minus").addClass("icon-plus")}h.data("following",c.returnValues.following);return false}},this));var d=new WCF.System.Notification();d.show();var a=this;WCF.System.ObjectStore.invoke("WCF.User.ProfilePreview",function(f){f.purge(a._userID)})}});WCF.User.Action.Ignore=Class.extend({_containerList:null,_ignoreButtonSelector:".jsIgnoreButton",_userID:0,init:function(a,b){if(!a.length){return}this._containerList=a;if(b){this._ignoreButtonSelector=b}this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._containerList.each($.proxy(function(d,c){$(c).find(this._ignoreButtonSelector).click($.proxy(this._click,this))},this))},_click:function(b){b.preventDefault();var a=$(b.target);if(!a.is("a")){a=a.closest("a")}this._userID=a.data("objectID");this._proxy.setOption("data",{actionName:a.data("ignored")?"unignore":"ignore",className:"wcf\\data\\user\\ignore\\UserIgnoreAction",parameters:{data:{ignoreUserID:this._userID}}});this._proxy.sendRequest()},_success:function(c,e,b){this._containerList.each($.proxy(function(g,f){var h=$(f).find(this._ignoreButtonSelector).get(0);if(h&&$(h).data("objectID")==this._userID){h=$(h);if(c.returnValues.isIgnoredUser){h.data("tooltip",WCF.Language.get("wcf.user.button.unignore")).children(".icon").removeClass("icon-ban-circle").addClass("icon-circle-blank")}else{h.data("tooltip",WCF.Language.get("wcf.user.button.ignore")).children(".icon").removeClass("icon-circle-blank").addClass("icon-ban-circle")}h.data("ignored",c.returnValues.isIgnoredUser);return false}},this));var d=new WCF.System.Notification();d.show();var a=this;WCF.System.ObjectStore.invoke("WCF.User.ProfilePreview",function(f){f.purge(a._userID)})}});WCF.User.Avatar={};WCF.User.Avatar.Crop=Class.extend({_cropX:0,_cropY:0,_dialog:null,_proxy:null,MAX_THUMBNAIL_SIZE:128,init:function(a){this._avatarID=a;if(this._dialog){this.destroy()}this._dialog=null;if(!this._proxy){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)})}$(".userAvatarCrop").click($.proxy(this._showCropDialog,this))},destroy:function(){this._dialog.remove()},_crop:function(a){this._proxy.setOption("data",{actionName:"cropAvatar",className:"wcf\\data\\user\\avatar\\UserAvatarAction",objectIDs:[this._avatarID],parameters:{cropX:this._cropX,cropY:this._cropY}});this._proxy.sendRequest()},_getCropDialog:function(b){if(!this._dialog){this._dialog=$("<div />").hide().appendTo(document.body);this._dialog.wcfDialog({title:WCF.Language.get("wcf.user.avatar.type.custom.crop")})}this._dialog.html(b.returnValues.template);this._dialog.find('button[data-type="save"]').click($.proxy(this._crop,this));this._cropX=b.returnValues.cropX;this._cropY=b.returnValues.cropY;var a=$("#userAvatarCropSelection > img");$("#userAvatarCropSelection").css({height:a.height()+"px",width:a.width()+"px"});$("#userAvatarCropOverlaySelection").css({"background-image":"url("+a.attr("src")+")","background-position":-this._cropX+"px "+-this._cropY+"px",left:this._cropX+"px",top:this._cropY+"px"}).draggable({containment:"parent",drag:$.proxy(this._updateSelection,this),stop:$.proxy(this._updateSelection,this)});this._dialog.find('button[data-type="save"]').click($.proxy(this._save,this));this._dialog.wcfDialog("render")},_showCropDialog:function(){if(!this._dialog){this._proxy.setOption("data",{actionName:"getCropDialog",className:"wcf\\data\\user\\avatar\\UserAvatarAction",objectIDs:[this._avatarID]});this._proxy.sendRequest()}else{this._dialog.wcfDialog("open")}},_success:function(b,d,a){switch(b.actionName){case"getCropDialog":this._getCropDialog(b);break;case"cropAvatar":$("#avatarUpload > dt > img").replaceWith($('<img src="'+b.returnValues.url+'" alt="" class="userAvatarCrop jsTooltip" title="'+WCF.Language.get("wcf.user.avatar.type.custom.crop")+'" />').css({width:"96px",height:"96px"}).click($.proxy(this._showCropDialog,this)));WCF.DOMNodeInsertedHandler.execute();this._dialog.wcfDialog("close");var c=new WCF.System.Notification();c.show();break}},_updateSelection:function(a,b){this._cropX=b.position.left;this._cropY=b.position.top;$("#userAvatarCropOverlaySelection").css({"background-position":-b.position.left+"px "+-b.position.top+"px"})}});WCF.User.Avatar.Upload=WCF.Upload.extend({_avatarCrop:null,_userID:0,init:function(b,a){this._super($("#avatarUpload > dd > div"),undefined,"wcf\\data\\user\\avatar\\UserAvatarAction");this._userID=b||0;this._avatarCrop=a;$("#avatarForm input[type=radio]").change(function(){if($(this).val()=="custom"){$("#avatarUpload > dd > div").show()}else{$("#avatarUpload > dd > div").hide()}});if(!$("#avatarForm input[type=radio][value=custom]:checked").length){$("#avatarUpload > dd > div").hide()}},_initFile:function(a){return $("#avatarUpload > dt > img")},_success:function(c,a){if(a.returnValues.url){this._updateImage(a.returnValues.url,a.returnValues.canCrop);if(a.returnValues.canCrop){if(!this._avatarCrop){this._avatarCrop=new WCF.User.Avatar.Crop(a.returnValues.avatarID)}else{this._avatarCrop.init(a.returnValues.avatarID)}}else{if(this._avatarCrop){this._avatarCrop.destroy();this._avatarCrop=null}}$("#avatarUpload > dd > .innerError").remove();var b=new WCF.System.Notification(WCF.Language.get("wcf.user.avatar.upload.success"));b.show()}else{if(a.returnValues.errorType){this._getInnerErrorElement().text(WCF.Language.get("wcf.user.avatar.upload.error."+a.returnValues.errorType))}}},_updateImage:function(b,a){$("#avatarUpload > dt > img").remove();var c=$('<img src="'+b+'" alt="" />').css({height:"auto","max-height":"96px","max-width":"96px",width:"auto"});if(a){c.addClass("userAvatarCrop").addClass("jsTooltip");c.attr("title",WCF.Language.get("wcf.user.avatar.type.custom.crop"))}$("#avatarUpload > dt").prepend(c);WCF.DOMNodeInsertedHandler.execute()},_getInnerErrorElement:function(){var a=$("#avatarUpload > dd > .innerError");if(!a.length){a=$('<small class="innerError"></span>');$("#avatarUpload > dd").append(a)}return a},_getParameters:function(){return{userID:this._userID}},});WCF.User.List=Class.extend({_additionalParameters:{},_cache:{},_className:"",_dialog:null,_dialogTitle:"",_pageCount:0,_pageNo:1,_proxy:null,init:function(c,a,b){this._additionalParameters=b||{};this._cache={};this._className=c;this._dialog=null;this._dialogTitle=a;this._pageCount=0;this._pageNo=1;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)})},open:function(){this._pageNo=1;this._showPage()},_showPage:function(b,c){if(c&&c.activePage){this._pageNo=c.activePage}if(this._pageCount!=0&&(this._pageNo<1||this._pageNo>this._pageCount)){console.debug("[WCF.User.List] Cannot access page "+this._pageNo+" of "+this._pageCount);return}if(this._cache[this._pageNo]){var a=false;if(this._dialog===null){this._dialog=$('<div id="userList'+this._className.hashCode()+'" />').hide().appendTo(document.body);a=true}this._dialog.empty();this._dialog.html(this._cache[this._pageNo]);if(this._pageCount>1){this._dialog.find(".jsPagination").wcfPages({activePage:this._pageNo,maxPage:this._pageCount}).on("wcfpagesswitched",$.proxy(this._showPage,this))}if(a){this._dialog.wcfDialog({title:this._dialogTitle})}else{this._dialog.wcfDialog("open").wcfDialog("render")}}else{this._additionalParameters.pageNo=this._pageNo;this._proxy.setOption("data",{actionName:"getGroupedUserList",className:this._className,interfaceName:"wcf\\data\\IGroupedUserListAction",parameters:this._additionalParameters});this._proxy.sendRequest()}},_success:function(b,c,a){if(b.returnValues.pageCount){this._pageCount=b.returnValues.pageCount}this._cache[this._pageNo]=b.returnValues.template;this._showPage()}});WCF.User.ObjectWatch={};WCF.User.ObjectWatch.Subscribe=Class.extend({_buttonSelector:".jsSubscribeButton",_buttons:{},_dialog:null,_notification:null,_reloadOnUnsubscribe:false,init:function(a){this._buttons={};this._notification=null;this._reloadOnUnsubscribe=(a===true);this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});$(this._buttonSelector).each($.proxy(function(b,c){var e=$(c);var d=e.data("objectID");this._buttons[d]=e.click($.proxy(this._click,this))},this));WCF.System.Event.addListener("com.woltlab.wcf.objectWatch","update",$.proxy(this._updateSubscriptionStatus,this))},_click:function(a){a.preventDefault();var b=$(a.currentTarget);this._proxy.setOption("data",{actionName:"manageSubscription",className:"wcf\\data\\user\\object\\watch\\UserObjectWatchAction",parameters:{objectID:b.data("objectID"),objectType:b.data("objectType")}});this._proxy.sendRequest()},_success:function(c,e,b){if(c.actionName==="manageSubscription"){if(this._dialog===null){this._dialog=$("<div>"+c.returnValues.template+"</div>").hide().appendTo(document.body);this._dialog.wcfDialog({title:WCF.Language.get("wcf.user.objectWatch.manageSubscription")})}else{this._dialog.html(c.returnValues.template);this._dialog.wcfDialog("open")}this._dialog.find(".formSubmit > .jsButtonSave").data("objectID",c.returnValues.objectID).click($.proxy(this._save,this));var a=this._dialog.find("input[name=enableNotification]").disable();this._dialog.find("input[name=subscribe]").change(function(f){var g=$(f.currentTarget);if(g.val()==1){a.enable()}else{a.disable()}});var d=this._dialog.find("input[name=subscribe]:checked");if(d.length&&d.val()==1){a.enable()}}else{if(c.actionName==="saveSubscription"&&this._dialog.is(":visible")){this._dialog.wcfDialog("close");this._updateSubscriptionStatus({isSubscribed:c.returnValues.subscribe,objectID:c.returnValues.objectID});if(this._notification===null){this._notification=new WCF.System.Notification(WCF.Language.get("wcf.global.success.edit"))}this._notification.show()}}},_save:function(b){var d=this._buttons[$(b.currentTarget).data("objectID")];var c=this._dialog.find("input[name=subscribe]:checked").val();var a=(this._dialog.find("input[name=enableNotification]").is(":checked"))?1:0;this._proxy.setOption("data",{actionName:"saveSubscription",className:"wcf\\data\\user\\object\\watch\\UserObjectWatchAction",parameters:{enableNotification:a,objectID:d.data("objectID"),objectType:d.data("objectType"),subscribe:c}});this._proxy.sendRequest()},_updateSubscriptionStatus:function(c){var b=$(this._buttonSelector+"[data-object-id="+c.objectID+"]");var a=b.children(".icon");if(c.isSubscribed){a.removeClass("icon-bookmark-empty").addClass("icon-bookmark");b.data("isSubscribed",true)}else{a.removeClass("icon-bookmark").addClass("icon-bookmark-empty");b.data("isSubscribed",false);if(this._reloadOnUnsubscribe){window.location.reload();return}}WCF.System.Event.fireEvent("com.woltlab.wcf.objectWatch","updatedSubscription",c)}});WCF.User.InlineEditor=WCF.InlineEditor.extend({_additionalOptions:{},_dialog:null,_permissions:{},init:function(a){this._super(a);WCF.System.ObjectStore.add("WCF.User.InlineEditor",this)},_execute:function(b,d){if(!this._validate(b,d)){return false}var c={};var a=$("#"+b);if(this._additionalOptions[d]!==undefined){this._additionalOptions[d].callback(b)}else{switch(d){case"unban":case"enableAvatar":case"enableSignature":switch(d){case"unban":c.banned=0;break;case"enableAvatar":c.disableAvatar=0;break;case"enableSignature":c.disableSignature=0;break}this._proxy.setOption("data",{actionName:d,className:"wcf\\data\\user\\UserAction",objectIDs:[a.data("objectID")]});this._proxy.sendRequest();break;case"ban":case"disableAvatar":case"disableSignature":if(d=="ban"){c.banned=1}else{c[d]=1}this._showReasonDialog(a.data("objectID"),d);break;case"advanced":window.location=this._getTriggerElement(a).attr("href");break}}if($.getLength(c)){this._updateData.push({data:c,elementID:b,})}},_executeReasonAction:function(c,d,f){var b=this._dialog.data("optionName");this._dialog.find(".innerError").remove();var a="";if(!$("#"+b+"NeverExpires").is(":checked")){a=$("#"+b+"ExpiresDatePicker").val();if(!a){this._dialog.find("#"+b+"ExpiresSettings > dd > small").prepend($('<small class="innerError" />').text(WCF.Language.get("wcf.global.form.error.empty")));return}}var e={};e[b+"Reason"]=$("#"+b+"Reason").val();e[b+"Expires"]=a;this._proxy.setOption("data",{actionName:b,className:"wcf\\data\\user\\UserAction",objectIDs:[this._dialog.data("userID")],parameters:e});this._proxy.sendRequest()},_getPermission:function(a){if(this._permissions[a]){return this._permissions[a]}return 0},_getTriggerElement:function(a){return a.find(".jsUserInlineEditor")},_setOptions:function(){this._options=[{label:WCF.Language.get("wcf.user.ban"),optionName:"ban"},{label:WCF.Language.get("wcf.user.unban"),optionName:"unban"},{label:WCF.Language.get("wcf.user.disableAvatar"),optionName:"disableAvatar"},{label:WCF.Language.get("wcf.user.enableAvatar"),optionName:"enableAvatar"},{label:WCF.Language.get("wcf.user.disableSignature"),optionName:"disableSignature"},{label:WCF.Language.get("wcf.user.enableSignature"),optionName:"enableSignature"}];for(var a in this._additionalOptions){this._options.push({label:this._additionalOptions[a].label,optionName:a})}this._options.push({optionName:"divider"});this._options.push({label:WCF.Language.get("wcf.user.edit"),optionName:"advanced"})},_show:function(c){var a=$(c.currentTarget);var d=a.data("elementID");if(!this._dropdowns[d]){var b=a.next(".dropdownMenu");if(b){this._dropdowns[d]=b;WCF.Dropdown.initDropdown(this._getTriggerElement(this._elements[d]),true)}}return this._super(c)},_showReasonDialog:function(a,b){if(this._dialog){this._dialog.remove()}this._dialog=$("<div />").hide().appendTo(document.body);this._dialog.append($('<fieldset><dl><dt><label for="'+b+'Reason">'+WCF.Language.get("wcf.global.reason")+'</label></dt><dd><textarea id="'+b+'Reason" cols="40" rows="3" />'+(WCF.Language.get("wcf.user."+b+".reason.description")!="wcf.user."+b+".reason.description"?"<small>"+WCF.Language.get("wcf.user."+b+".reason.description")+"</small>":"")+'</dd></dl><dl><dt></dt><dd><label for="'+b+'NeverExpires"><input type="checkbox" name="'+b+'NeverExpires" id="'+b+'NeverExpires" checked="checked" /> '+WCF.Language.get("wcf.user."+b+".neverExpires")+'</label></dd></dl><dl id="'+b+'ExpiresSettings" style="display: none;"><dt><label for="'+b+'Expires">'+WCF.Language.get("wcf.user."+b+".expires")+'</label></dt><dd><input type="date" name="'+b+'Expires" id="'+b+'Expires" class="medium" min="'+new Date(TIME_NOW*1000).toISOString()+'" data-ignore-timezone="true" /><small>'+WCF.Language.get("wcf.user."+b+".expires.description")+"</small></dd></dl></fieldset>"));this._dialog.append($('<div class="formSubmit"><button class="buttonPrimary" accesskey="s">'+WCF.Language.get("wcf.global.button.submit")+"</button></div>"));this._dialog.data("optionName",b).data("userID",a);this._dialog.find("#"+b+"NeverExpires").change(function(){$("#"+b+"ExpiresSettings").toggle()});this._dialog.find("button").click($.proxy(this._executeReasonAction,this));this._dialog.wcfDialog({title:WCF.Language.get("wcf.user."+b+".confirmMessage")})},_updateState:function(d){this._notification.show();for(var f=0,e=this._updateData.length;f<e;f++){var b=this._updateData[f];var a=$("#"+b.elementID);for(var c in b.data){a.data(c,b.data[c])}}if(d.actionName=="ban"||d.actionName=="disableAvatar"||d.actionName=="disableSignature"){this._dialog.wcfDialog("close")}if(d.actionName=="unban"){$(".userHeadline .jsUserBanned").remove()}},_validate:function(a,b){var c=$("#"+a);if(this._additionalOptions[b]!==undefined){return true}switch(b){case"ban":case"unban":if(!this._getPermission("canBanUser")){return false}if(b=="ban"){return !c.data("banned")}else{return c.data("banned")}break;case"disableAvatar":case"enableAvatar":if(!this._getPermission("canDisableAvatar")){return false}if(b=="disableAvatar"){return !c.data("disableAvatar")}else{return c.data("disableAvatar")}break;case"disableSignature":case"enableSignature":if(!this._getPermission("canDisableSignature")){return false}if(b=="disableSignature"){return !c.data("disableSignature")}else{return c.data("disableSignature")}break;case"advanced":return this._getPermission("canEditUser");break}return false},addOption:function(a,b,c){if(!$.isFunction(c)){console.debug("[WCF.User.InlineEditor] Missing callback")}if(this._additionalOptions[b]!==undefined){console.debug('[WCF.User.InlineEditor] Additional option with name "'+b+"' already exists")}this._additionalOptions[b]={callback:c,label:a};this._setOptions()},setPermission:function(a,b){this._permissions[a]=b},setPermissions:function(a){for(var b in a){this.setPermission(b,a[b])}}}); })(this);
+
+// WCF.Moderation.js
+(function (window, undefined) {"use strict";WCF.Moderation={};WCF.Moderation.Management=Class.extend({_buttonSelector:"",_className:"",_confirmationTemplate:{},_dialog:null,_languageItem:"",_proxy:null,_queueID:0,_redirectURL:"",init:function(a,c,b){if(!this._buttonSelector){console.debug("[WCF.Moderation.Management] Missing button selector, aborting.");return}else{if(!this._className){console.debug("[WCF.Moderation.Management] Missing class name, aborting.");return}}this._dialog=null;this._queueID=a;this._redirectURL=c;this._languageItem=b;this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),success:$.proxy(this._success,this)});$(this._buttonSelector).click($.proxy(this._click,this));$("<a>"+WCF.Language.get("wcf.moderation.assignedUser.change")+"</a>").click($.proxy(this._clickAssignedUser,this)).insertAfter($("#moderationAssignedUserContainer > dd > span"))},_click:function(c){var b=$(c.currentTarget).wcfIdentify();var a="";if(this._confirmationTemplate[b]){a=this._confirmationTemplate[b]}WCF.System.Confirmation.show(WCF.Language.get(this._languageItem.replace(/{actionName}/,b)),$.proxy(function(e){if(e==="confirm"){var d={actionName:b,className:this._className,objectIDs:[this._queueID]};if(this._confirmationTemplate[b]){d.parameters={};a.find("input, textarea").each(function(g,i){var f=$(i);var h=f.val();if(f.getTagName()==="input"&&f.attr("type")==="checkbox"){if(!f.is(":checked")){h=null}}if(h!==null){d.parameters[f.attr("name")]=h}})}this._proxy.setOption("data",d);this._proxy.sendRequest();$(this._buttonSelector).disable()}},this),{},a)},_clickAssignedUser:function(){this._proxy.setOption("data",{actionName:"getAssignUserForm",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction",objectIDs:[this._queueID]});this._proxy.sendRequest()},_success:function(d,f,c){switch(d.actionName){case"getAssignUserForm":if(this._dialog===null){this._dialog=$("<div />").hide().appendTo(document.body);this._dialog.html(d.returnValues.template).wcfDialog({title:WCF.Language.get("wcf.moderation.assignedUser")})}else{this._dialog.html(d.returnValues.template).wcfDialog("open")}this._dialog.find("button[data-type=submit]").click($.proxy(this._assignUser,this));break;case"assignUser":var a=$("#moderationAssignedUserContainer > dd > span").empty();if(d.returnValues.userID){$('<a href="'+d.returnValues.link+'" data-user-id="'+d.returnValues.userID+'" class="userLink">'+WCF.String.escapeHTML(d.returnValues.username)+"</a>").appendTo(a)}else{a.append(d.returnValues.username)}a.append(" ");if(d.returnValues.newStatus){$("#moderationStatusContainer > dd").text(WCF.Language.get("wcf.moderation.status."+d.returnValues.newStatus))}this._dialog.wcfDialog("close");new WCF.System.Notification().show();break;default:var e=new WCF.System.Notification(WCF.Language.get("wcf.global.success"));var b=this;e.show(function(){window.location=b._redirectURL});break}},_failure:function(c,b,e,d){if(c.returnValues&&c.returnValues.fieldName&&c.returnValues.fieldName=="assignedUsername"){this._dialog.find("small.innerError").remove();var a="";switch(c.returnValues.errorType){case"empty":a=WCF.Language.get("wcf.global.form.error.empty");break;case"notAffected":a=WCF.Language.get("wcf.moderation.assignedUser.error.notAffected");break;default:a=WCF.Language.get("wcf.user.username.error."+c.returnValues.errorType,{username:this._dialog.find("#assignedUsername").val()});break}$('<small class="innerError">'+a+"</small>").insertAfter(this._dialog.find("#assignedUsername"));return false}return true},_assignUser:function(){var b=this._dialog.find("input[name=assignedUserID]:checked").val();var a="";if(b==-1){a=$.trim(this._dialog.find("#assignedUsername").val())}if(b==-1&&a.length==0){this._dialog.find("small.innerError").remove();$('<small class="innerError">'+WCF.Language.get("wcf.global.form.error.empty")+"</small>").insertAfter(this._dialog.find("#assignedUsername"));return}this._proxy.setOption("data",{actionName:"assignUser",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction",objectIDs:[this._queueID],parameters:{assignedUserID:b,assignedUsername:a}});this._proxy.sendRequest()}});WCF.Moderation.Queue={};WCF.Moderation.Queue.MarkAsRead=Class.extend({_proxy:null,init:function(){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});$(document).on("dblclick",".moderationList .new .columnAvatar",$.proxy(this._dblclick,this))},_dblclick:function(a){this._proxy.setOption("data",{actionName:"markAsRead",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction",objectIDs:[$(a.currentTarget).parents("tr:eq(0)").data("queueID")]});this._proxy.sendRequest()},_success:function(b,c,a){$(".moderationList .new").each(function(e,f){var d=$(f);if(WCF.inArray(d.data("queueID"),b.objectIDs)){d.removeClass("new");d.find(".columnAvatar").off("dblclick")}})}});WCF.Moderation.Queue.MarkAllAsRead=Class.extend({_proxy:null,init:function(){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});$(".markAllAsReadButton").click($.proxy(this._click,this))},_click:function(a){a.preventDefault();this._proxy.setOption("data",{actionName:"markAllAsRead",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction"});this._proxy.sendRequest()},_success:function(c,d,b){var a=$(".moderationList");a.find(".new").removeClass("new");a.find(".columnAvatar").off("dblclick")}});WCF.Moderation.Activation={};WCF.Moderation.Activation.Management=WCF.Moderation.Management.extend({init:function(a,b){this._buttonSelector="#enableContent, #removeContent";this._className="wcf\\data\\moderation\\queue\\ModerationQueueActivationAction";this._super(a,b,"wcf.moderation.activation.{actionName}.confirmMessage")}});WCF.Moderation.Report={};WCF.Moderation.Report.Content=Class.extend({_buttons:{},_buttonSelector:"",_dialog:null,_notification:null,_objectID:0,_objectType:"",_proxy:null,init:function(a,b){this._objectType=a;this._buttonSelector=b;this._buttons={};this._notification=null;this._objectID=0;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._initButtons();WCF.DOMNodeInsertedHandler.addCallback("WCF.Moderation.Report"+this._objectType.hashCode(),$.proxy(this._initButtons,this))},_initButtons:function(){var a=this;$(this._buttonSelector).each(function(c,d){var e=$(d);var b=e.wcfIdentify();if(!a._buttons[b]){a._buttons[b]=e;e.click($.proxy(a._click,a))}})},_click:function(a){a.preventDefault();this._objectID=$(a.currentTarget).data("objectID");this._proxy.setOption("data",{actionName:"prepareReport",className:"wcf\\data\\moderation\\queue\\ModerationQueueReportAction",parameters:{objectID:this._objectID,objectType:this._objectType}});this._proxy.sendRequest()},_success:function(b,c,a){if(b.returnValues.reported){if(this._notification===null){this._notification=new WCF.System.Notification(WCF.Language.get("wcf.moderation.report.success"))}this._dialog.wcfDialog("close");this._notification.show()}else{if(b.returnValues.template){this._showDialog(b.returnValues.template);if(!b.returnValues.alreadyReported){this._dialog.find(".jsSubmitReport").click($.proxy(this._submit,this))}}}},_showDialog:function(a){if(this._dialog===null){this._dialog=$("#moderationReport");if(!this._dialog.length){this._dialog=$('<div id="moderationReport" />').hide().appendTo(document.body)}}this._dialog.html(a).wcfDialog({title:WCF.Language.get("wcf.moderation.report.reportContent")}).wcfDialog("render")},_submit:function(){var a=this._dialog.find(".jsReportMessage").val();if(a==""){this._dialog.find("fieldset > dl").addClass("formError");if(!this._dialog.find(".innerError").length){this._dialog.find(".jsReportMessage").after($('<small class="innerError">'+WCF.Language.get("wcf.global.form.error.empty")+"</small>"))}return}this._proxy.setOption("data",{actionName:"report",className:"wcf\\data\\moderation\\queue\\ModerationQueueReportAction",parameters:{message:a,objectID:this._objectID,objectType:this._objectType}});this._proxy.sendRequest()}});WCF.Moderation.Report.Management=WCF.Moderation.Management.extend({init:function(a,b){this._buttonSelector="#removeContent, #removeReport";this._className="wcf\\data\\moderation\\queue\\ModerationQueueReportAction";this._super(a,b,"wcf.moderation.report.{actionName}.confirmMessage");this._confirmationTemplate.removeContent=$('<fieldset><dl><dt><label for="message">'+WCF.Language.get("wcf.moderation.report.removeContent.reason")+'</label></dt><dd><textarea name="message" id="message" cols="40" rows="3" /></dd></dl></fieldset>')}});WCF.User.Panel.Moderation=WCF.User.Panel.Abstract.extend({init:function(a){a.enableMarkAsRead=true;this._super($("#outstandingModeration"),"outstandingModeration",a)},_initDropdown:function(){var a=this._super();$('<li><a href="'+this._options.deletedContentLink+'" title="'+this._options.deletedContent+'" class="jsTooltip"><span class="icon icon16 fa-trash-o" /></a></li>').appendTo(a.getLinkList());return a},_load:function(){this._proxy.setOption("data",{actionName:"getOutstandingQueues",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction"});this._proxy.sendRequest()},_markAsRead:function(a,b){this._proxy.setOption("data",{actionName:"markAsRead",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction",objectIDs:[b]});this._proxy.sendRequest()},_markAllAsRead:function(a){this._proxy.setOption("data",{actionName:"markAllAsRead",className:"wcf\\data\\moderation\\queue\\ModerationQueueAction"});this._proxy.sendRequest()}}); })(this);