Updating minified JavaScript files
authorwoltlab.com <woltlab@woltlab.com>
Mon, 24 Nov 2014 11:41:55 +0000 (12:41 +0100)
committerwoltlab.com <woltlab@woltlab.com>
Mon, 24 Nov 2014 11:41:55 +0000 (12:41 +0100)
wcfsetup/install/files/js/3rdParty/redactor/plugins/wcombined.min.js

index 09745d640343472f4cfb5860b3fef144fa690f61..c5fd8fa039f300c0416df9c61b1aa143affe62c7 100644 (file)
@@ -11,8 +11,8 @@ if(!RedactorPlugins){var RedactorPlugins={}}RedactorPlugins.wfontfamily=function
 // wfontsize.js
 if(!RedactorPlugins){var RedactorPlugins={}}RedactorPlugins.wfontsize=function(){return{init:function(){var a=this.button.addDropdown(this.button.get("fontsize"));this.wfontsize._createDropdown(a)},_createDropdown:function(g){var e=[8,10,12,14,18,24,36];var b=this;for(var f=0;f<e.length;f++){var c=e[f];var d=$('<li><a href="#">'+c+"</a></li>").appendTo(g);var a=d.children("a").data("fontSize",c).css("font-size",c+"pt");if(c>18){a.css("line-height","1em")}a.click(function(h){h.preventDefault();b.inline.format("span","style","font-size: "+$(this).data("fontSize")+"pt;")})}$('<li class="dropdownDivider" />').appendTo(g);var d=$('<li><a href="#">'+this.opts.curLang.none+"</a></li>").appendTo(g);d.children("a").click(function(h){h.preventDefault();b.inline.removeStyleRule("font-size")})}}};
 // wmonkeypatch.js
-if(!RedactorPlugins){var RedactorPlugins={}}RedactorPlugins.wmonkeypatch=function(){return{_range:null,init:function(){this.wmonkeypatch.button();this.wmonkeypatch.caret();this.wmonkeypatch.clean();this.wmonkeypatch.code();this.wmonkeypatch.dropdown();this.wmonkeypatch.image();this.wmonkeypatch.insert();this.wmonkeypatch.keydown();this.wmonkeypatch.link();this.wmonkeypatch.modal();this.wmonkeypatch.paste();this.wmonkeypatch.observe();this.wmonkeypatch.utils();this.wmonkeypatch.rebuildTemplates();this.wmonkeypatch.bindEvents();this.wmonkeypatch.fixWebKit()},saveSelection:function(){var a=getSelection();if(a.rangeCount){this.wmonkeypatch._range=a.getRangeAt(0)}},bindEvents:function(){var a=this.$textarea.wcfIdentify();this.wutil.setOption("keydownCallback",function(c){var b={cancel:false,event:c};WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","keydown_"+a,b);return(b.cancel?false:true)});this.wutil.setOption("keyupCallback",(function(c){this.wmonkeypatch.saveSelection();var b={cancel:false,event:c};WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","keyup_"+a,b);return(b.cancel?false:true)}).bind(this));if(this.opts.activeButtons){this.$editor.off("mouseup.redactor keyup.redactor focus.redactor");this.$editor.on("mouseup.redactor keyup.redactor focus.redactor",$.proxy(this.observe.buttons,this));this.$editor.on("keyup.redactor",$.proxy(this.keyup.init,this))}},button:function(){var a=this.button.addDropdown;this.button.addDropdown=(function(b,d){var c=a.call(this,b,d);if(!d){c.addClass("dropdownMenu")}return c}).bind(this)},caret:function(){this.caret.set=(function(g,f,d,b){if(!this.utils.browser("msie")){if(this.utils.isMobile()&&this.utils.browser("webkit")&&navigator.userAgent.match(/(iPad|iPhone|iPod)/i)){if(document.activeElement!==this.$editor[0]){this.$editor.focus()}}else{this.$editor.focus()}}g=g[0]||g;d=d[0]||d;if(this.utils.isBlockTag(g.tagName)&&g.innerHTML===""){g.innerHTML=this.opts.invisibleSpace}if(g.tagName=="BR"&&this.opts.linebreaks===false){var a=$(this.opts.emptyHtml)[0];$(g).replaceWith(a);g=a;d=g}this.selection.get();try{this.range.setStart(g,f);this.range.setEnd(d,b)}catch(c){}this.selection.addRange()}).bind(this);this.caret.setOffset=(function(g,a){if(typeof a=="undefined"){a=g}if(!this.focus.isFocused()){this.focus.setStart()}var b=document.createRange();var d=document.getSelection();var c,f=0;var e=document.createTreeWalker(this.$editor[0],NodeFilter.SHOW_TEXT,null,null);while(c=e.nextNode()){f+=c.nodeValue.length;if(f>g||(g===a&&f===g)){b.setStart(c,c.nodeValue.length+g-f);g=Infinity}if(f>=a){b.setEnd(c,c.nodeValue.length+a-f);break}}d.removeAllRanges();d.addRange(b)}).bind(this)},clean:function(){var a=this.clean.onPaste;this.clean.onPaste=(function(c,b){this.opts.replaceDivs=true;c=a.call(this,c,b);this.opts.replaceDivs=false;return c}).bind(this);this.clean.setVerified=(function(d){if(this.utils.browser("msie")){return d}d=d.replace(new RegExp("<img(.*?[^>])>","gi"),'<img$1 data-verified="redactor">');d=d.replace(new RegExp("<span(.*?)>","gi"),'<span$1 data-verified="redactor">');var f=d.match(new RegExp('<(span|img)(.*?)style="(.*?)"(.*?[^>])>',"gi"));if(f){var b=f.length;for(var c=0;c<b;c++){var e=f[c].replace(/style="(.*?)"/i,'style="$1" rel="$1"');d=d.replace(new RegExp(WCF.String.escapeRegExp(f[c]),"gi"),e)}}return d}).bind(this)},code:function(){var a=this.code.startSync;this.code.startSync=(function(){this.code.syncCode=undefined;a.call(this)}).bind(this)},dropdown:function(){this.dropdown.build=(function(c,e,d){e.addClass("dropdownMenu");$.each(d,(function(i,h){if(i=="dropdownDivider"){$('<li class="dropdownDivider" />').appendTo(e)}else{var g=$("<li />");var f=$('<a href="#" class="redactor-dropdown-'+i+'">'+h.title+"</a>");f.on("click",$.proxy(function(k){var j="func";var l=h.func;if(h.command){j="command";l=h.command}else{if(h.dropdown){j="dropdown";l=h.dropdown}}this.button.onClick(k,i,j,l)},this));f.appendTo(g);g.appendTo(e)}}).bind(this))}).bind(this);var a=this.dropdown.show;this.dropdown.show=$.proxy(function(f,c){var d=this.button.get(c).data("dropdown");b(d);a.call(this,f,c);d.off("mouseover mouseout")},this);var b=function(f){if(f.hasClass("dropdownMenu")){return}f.addClass("dropdownMenu");var e=f.children("a").detach();for(var d=0;d<e.length;d++){var c=$("<li />").appendTo(f);c.append(e[d])}}},image:function(){var b=this.image.setEditable;this.image.setEditable=(function(c){if(!c.hasClass("smiley")){b.call(this,c)}}).bind(this);var a=this.image.loadEditableControls;this.image.loadEditableControls=(function(c){var d=a.call(this,c);if(c.hasClass("redactorDisableResize")&&d!==false){d.hide()}return d}).bind(this);this.image.show=(function(){this.modal.load("image",this.lang.get("image"),0);var c=this.modal.createActionButton(this.lang.get("insert"));c.click($.proxy(this.wbutton._insertImage,this));this.selection.save();this.modal.show()}).bind(this);this.image.showEdit=(function(c){this.modal.load("imageEdit",this.lang.get("edit"),0);this.image.buttonSave=this.modal.createActionButton(this.lang.get("save"));this.image.buttonSave.click((function(){this.image.update(c)}).bind(this));$("#redactor-image-link-source").val(c.attr("src"));$("#redactor-image-align").val(c.css("float"));this.modal.show()}).bind(this);this.image.update=(function(c){this.image.hideResize();this.buffer.set();c.attr("src",$("#redactor-image-link-source").val());this.image.setFloating(c);this.modal.close();this.observe.images()}).bind(this)},insert:function(){var c=($.browser.webkit||document.documentElement.style.hasOwnProperty("WebkitAppearance")||window.hasOwnProperty("chrome"));var a=(function(){var g=this.$editor.html();if(this.utils.isEmpty(g)){this.$editor.focus();this.caret.setEnd(this.$editor.children("p:eq(0)"))}else{if(document.activeElement!==this.$editor[0]){this.$editor.focus();if(this.wmonkeypatch._range){var f=window.getSelection();f.removeAllRanges();f.addRange(this.wmonkeypatch._range);this.wmonkeypatch._range=null}}}}).bind(this);var b=(function(){this.$editor.find("span").each(function(){var f=$(this);if(f.data("verified")!=="redactor"){var g=$("<b>helper</b>").insertBefore(f);g.after(f.contents());g.remove();f.remove()}})}).bind(this);var e=this.insert.html;this.insert.html=(function(g,f){a();e.call(this,g,f);if(c){setTimeout(function(){b()},10)}}).bind(this);if(navigator.userAgent.match(/safari/i)){var d=this.insert.execHtml;this.insert.execHtml=(function(f){try{d.call(this,f)}catch(g){console.debug("[Redactor.wmonkeypatch] Suppressed error in Safari: "+g.message)}}).bind(this)}},keydown:function(){this.keydown.enterWithinBlockquote=false;var b=this.keydown.onTab;this.keydown.onTab=(function(f,c){var d=this.selection.getBlock();if(d&&d.tagName==="LI"){return b.call(this,f,c)}return true}).bind(this);var a=this.keydown.replaceDivToParagraph;this.keydown.replaceDivToParagraph=(function(){if(this.keydown.enterWithinBlockquote){this.keydown.enterWithinBlockquote=false}else{a.call(this)}}).bind(this)},link:function(){var a=this.link.insert;this.link.insert=(function(){a.call(this);this.selection.get();var b=this.selection.getCurrent();if(b.tagName==="A"){this.caret.setAfter(b)}}).bind(this)},modal:function(){this.modal.dialog=null;var b=this.modal.addTemplate;this.modal.addTemplate=(function(c,d){if(c!=="table"){b.call(this,c,d)}}).bind(this);this.modal.build=function(){};this.modal.load=(function(c,e,d){this.modal.templateName=c;this.modal.title=e;this.modal.dialog=$("<div />").hide().appendTo(document.body);this.modal.dialog.html(this.modal.getTemplate(this.modal.templateName));this.$modalFooter=null}).bind(this);this.modal.show=(function(){this.modal.dialog.wcfDialog({onClose:$.proxy(this.modal.close,this),title:this.modal.title});this.modal.dialog.find("input:first").focus()}).bind(this);var a=this.modal.createButton;this.modal.createButton=(function(c,d){if(this.$modalFooter===null){this.$modalFooter=$('<div class="formSubmit" />').appendTo(this.modal.dialog);this.modal.dialog.addClass("dialogForm")}return a.call(this,c,d)}).bind(this);this.modal.close=(function(){if(this.modal.dialog===null){return}try{this.modal.dialog.wcfDialog("close");this.modal.dialog.remove()}catch(c){}this.modal.dialog=null}).bind(this);this.modal.createCancelButton=function(){return $()};this.modal.createDeleteButton=function(){return $()}},observe:function(){var c=(function(i,d,g,e,h,j){var f=this.$toolbar.find(g);if(i&&i.closest(d,this.$editor[0]).length!=0){f[(e?"removeClass":"addClass")](h)}else{if(j&&!this.opts.visual){return}f[(e?"addClass":"removeClass")](h)}}).bind(this);var b=this.observe.buttons;this.observe.buttons=(function(f,g){b.call(this,f,g);var d=this.selection.getParent();d=(d===false)?null:$(d);c(d,"ul, ol","a.re-indent, a.re-outdent",true,"redactor-button-disabled");c(d,"blockquote.quoteBox","a.re-__wcf_quote",false,"redactor-button-disabled",true);c(d,"sub","a.re-subscript",false,"redactor-act");c(d,"sup","a.re-superscript",false,"redactor-act")}).bind(this);var a=this.observe.showTooltip;this.observe.showTooltip=(function(f){var d=$(f.target);if(!d.hasClass("redactorQuoteEdit")){a.call(this,f)}}).bind(this)},paste:function(){var b=(function(){var e=this.$editor[0].childNodes[0];var c=e;var d=null;while(c){e=c;c=e.nextSibling;if(e.nodeType===Element.ELEMENT_NODE){if(this.reIsBlock.test(e.tagName)){d=null}else{if(d===null){d=$("<p />").insertBefore(e)}d.append(e)}}else{if(e.nodeType===Element.TEXT_NODE){if(d===null){d=$("<p />").insertBefore(e)}d.append(e)}}}}).bind(this);var a=this.paste.insert;this.paste.insert=(function(c){a.call(this,c);setTimeout(b,20)}).bind(this)},utils:function(){this.utils.removeEmpty=function(a,b){}},rebuildTemplates:function(){this.opts.modal.image='<fieldset id="redactor-modal-image-edit"><dl><dt><label for="redactor-image-link-source">'+this.lang.get("link")+'</label></dt><dd><input type="text" id="redactor-image-link-source" class="long"  /></dd></dl><dl><dt><label for="redactor-image-align">'+this.opts.curLang.image_position+'</label></dt><dd><select id="redactor-image-align"><option value="none">'+WCF.Language.get("wcf.global.noSelection")+'</option><option value="left">'+this.lang.get("left")+'</option><option value="right">'+this.lang.get("right")+"</option></select></dd></dl></fieldset>";this.opts.modal.imageEdit=this.opts.modal.image;this.opts.modal.link='<fieldset id="redactor-modal-link"><dl><dt><label for="redactor-link-url" />URL</label></dt><dd><input type="url" id="redactor-link-url" /></dd></dl><dl><dt><label for="redactor-link-url-text">'+this.lang.get("text")+'</label></dt><dd><input type="text" id="redactor-link-url-text" /></dd></dl></fieldset>';this.opts.modal.quote='<fieldset><dl><dt><label for="redactorQuoteAuthor">'+WCF.Language.get("wcf.bbcode.quote.edit.author")+'</label></dt><dd><input type="text" id="redactorQuoteAuthor" class="long" /></dd></dl><dl><dt><label for="redactorQuoteLink">'+WCF.Language.get("wcf.bbcode.quote.edit.link")+'</label></dt><dd><input type="text" id="redactorQuoteLink" class="long" /></dd></dl></fieldset>';this.opts.modal.table='<fieldset id="redactor-modal-table-insert"><dl><dt><label for="redactor-table-rows">'+this.lang.get("rows")+'</label></dt><dd><input type="number" size="5" value="2" min="1" id="redactor-table-rows" class="tiny" /></dd></dl><dl><dt><label for="redactor-table-columns">'+this.lang.get("columns")+'</label></dt><dd><input type="number" size="5" value="3" min="1" id="redactor-table-columns" class="tiny" /></dd></dl></fieldset>'},fixWebKit:function(){return;if(!$.browser.webkit&&!document.documentElement.style.hasOwnProperty("WebkitAppearance")&&!window.hasOwnProperty("chrome")){return}var a={fontSize:this.$editor.css("font-size"),lineHeight:this.$editor.css("line-height")};var c=this.$editor.wcfIdentify();var b=document.createElement("style");b.type="text/css";b.innerHTML="#"+c+" span { font-size: "+a.fontSize+"; line-height: "+a.lineHeight+" }";document.head.appendChild(b)}}};
+if(!RedactorPlugins){var RedactorPlugins={}}RedactorPlugins.wmonkeypatch=function(){return{_range:null,init:function(){this.wmonkeypatch.button();this.wmonkeypatch.caret();this.wmonkeypatch.clean();this.wmonkeypatch.code();this.wmonkeypatch.dropdown();this.wmonkeypatch.image();this.wmonkeypatch.insert();this.wmonkeypatch.keydown();this.wmonkeypatch.link();this.wmonkeypatch.modal();this.wmonkeypatch.paste();this.wmonkeypatch.observe();this.wmonkeypatch.utils();this.wmonkeypatch.rebuildTemplates();this.wmonkeypatch.bindEvents();this.wmonkeypatch.fixWebKit()},saveSelection:function(){var a=getSelection();if(a.rangeCount){this.wmonkeypatch._range=a.getRangeAt(0)}},bindEvents:function(){var a=this.$textarea.wcfIdentify();this.wutil.setOption("keydownCallback",function(c){var b={cancel:false,event:c};WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","keydown_"+a,b);return(b.cancel?false:true)});this.wutil.setOption("keyupCallback",(function(c){this.wmonkeypatch.saveSelection();var b={cancel:false,event:c};WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","keyup_"+a,b);return(b.cancel?false:true)}).bind(this));if(this.opts.activeButtons){this.$editor.off("mouseup.redactor keyup.redactor focus.redactor");this.$editor.on("mouseup.redactor keyup.redactor focus.redactor",$.proxy(this.observe.buttons,this));this.$editor.on("keyup.redactor",$.proxy(this.keyup.init,this))}},button:function(){var a=this.button.addDropdown;this.button.addDropdown=(function(b,d){var c=a.call(this,b,d);if(!d){c.addClass("dropdownMenu")}return c}).bind(this)},caret:function(){this.caret.set=(function(g,f,d,b){if(!this.utils.browser("msie")){if(this.utils.isMobile()&&this.utils.browser("webkit")&&navigator.userAgent.match(/(iPad|iPhone|iPod)/i)){if(document.activeElement!==this.$editor[0]){this.$editor.focus()}}else{this.$editor.focus()}}g=g[0]||g;d=d[0]||d;if(this.utils.isBlockTag(g.tagName)&&g.innerHTML===""){g.innerHTML=this.opts.invisibleSpace}if(g.tagName=="BR"&&this.opts.linebreaks===false){var a=$(this.opts.emptyHtml)[0];$(g).replaceWith(a);g=a;d=g}this.selection.get();try{this.range.setStart(g,f);this.range.setEnd(d,b)}catch(c){}this.selection.addRange()}).bind(this);this.caret.setOffset=(function(g,a){if(typeof a=="undefined"){a=g}if(!this.focus.isFocused()){this.focus.setStart()}var b=document.createRange();var d=document.getSelection();var c,f=0;var e=document.createTreeWalker(this.$editor[0],NodeFilter.SHOW_TEXT,null,null);while(c=e.nextNode()){f+=c.nodeValue.length;if(f>g||(g===a&&f===g)){b.setStart(c,c.nodeValue.length+g-f);g=Infinity}if(f>=a){b.setEnd(c,c.nodeValue.length+a-f);break}}d.removeAllRanges();d.addRange(b)}).bind(this)},clean:function(){var a=this.clean.onPaste;this.clean.onPaste=(function(c,b){this.opts.replaceDivs=true;c=a.call(this,c,b);this.opts.replaceDivs=false;return c}).bind(this);this.clean.setVerified=(function(d){if(this.utils.browser("msie")){return d}d=d.replace(new RegExp("<img(.*?[^>])>","gi"),'<img$1 data-verified="redactor">');d=d.replace(new RegExp("<span(.*?)>","gi"),'<span$1 data-verified="redactor">');var f=d.match(new RegExp('<(span|img)(.*?)style="(.*?)"(.*?[^>])>',"gi"));if(f){var b=f.length;for(var c=0;c<b;c++){var e=f[c].replace(/style="(.*?)"/i,'style="$1" rel="$1"');d=d.replace(new RegExp(WCF.String.escapeRegExp(f[c]),"gi"),e)}}return d}).bind(this)},code:function(){var a=this.code.startSync;this.code.startSync=(function(){this.code.syncCode=undefined;a.call(this)}).bind(this)},dropdown:function(){this.dropdown.build=(function(c,e,d){e.addClass("dropdownMenu");$.each(d,(function(i,h){if(i=="dropdownDivider"){$('<li class="dropdownDivider" />').appendTo(e)}else{var g=$("<li />");var f=$('<a href="#" class="redactor-dropdown-'+i+'">'+h.title+"</a>");f.on("click",$.proxy(function(k){var j="func";var l=h.func;if(h.command){j="command";l=h.command}else{if(h.dropdown){j="dropdown";l=h.dropdown}}this.button.onClick(k,i,j,l)},this));f.appendTo(g);g.appendTo(e)}}).bind(this))}).bind(this);var a=this.dropdown.show;this.dropdown.show=$.proxy(function(f,c){var d=this.button.get(c).data("dropdown");b(d);a.call(this,f,c);d.off("mouseover mouseout")},this);var b=function(f){if(f.hasClass("dropdownMenu")){return}f.addClass("dropdownMenu");var e=f.children("a").detach();for(var d=0;d<e.length;d++){var c=$("<li />").appendTo(f);c.append(e[d])}}},image:function(){var b=this.image.setEditable;this.image.setEditable=(function(c){if(!c.hasClass("smiley")){b.call(this,c)}}).bind(this);var a=this.image.loadEditableControls;this.image.loadEditableControls=(function(c){var d=a.call(this,c);if(c.hasClass("redactorDisableResize")&&d!==false){d.hide()}return d}).bind(this);this.image.show=(function(){this.modal.load("image",this.lang.get("image"),0);var c=this.modal.createActionButton(this.lang.get("insert"));c.click($.proxy(this.wbutton._insertImage,this));this.selection.save();this.modal.show()}).bind(this);this.image.showEdit=(function(c){this.modal.load("imageEdit",this.lang.get("edit"),0);this.image.buttonSave=this.modal.createActionButton(this.lang.get("save"));this.image.buttonSave.click((function(){this.image.update(c)}).bind(this));$("#redactor-image-link-source").val(c.attr("src"));$("#redactor-image-align").val(c.css("float"));this.modal.show()}).bind(this);this.image.update=(function(c){this.image.hideResize();this.buffer.set();c.attr("src",$("#redactor-image-link-source").val());this.image.setFloating(c);this.modal.close();this.observe.images()}).bind(this)},insert:function(){var c=($.browser.webkit||document.documentElement.style.hasOwnProperty("WebkitAppearance")||window.hasOwnProperty("chrome"));var a=(function(){var g=this.$editor.html();if(this.utils.isEmpty(g)){this.$editor.focus();this.caret.setEnd(this.$editor.children("p:eq(0)"))}else{if(document.activeElement!==this.$editor[0]){this.$editor.focus();if(this.wmonkeypatch._range){var f=window.getSelection();f.removeAllRanges();f.addRange(this.wmonkeypatch._range);this.wmonkeypatch._range=null}}}}).bind(this);var b=(function(){var f=false;this.$editor.find("span").each(function(){var g=$(this);if(g.data("verified")!=="redactor"){var h=$("<b>helper</b>").insertBefore(g);h.after(g.contents());h.remove();g.remove();f=true}});if(f){this.wmonkeypatch.saveSelection()}}).bind(this);var e=this.insert.html;this.insert.html=(function(g,f){a();e.call(this,g,f);this.wmonkeypatch.saveSelection();if(c){setTimeout(function(){b()},10)}}).bind(this);if(navigator.userAgent.match(/safari/i)){var d=this.insert.execHtml;this.insert.execHtml=(function(f){try{d.call(this,f)}catch(g){console.debug("[Redactor.wmonkeypatch] Suppressed error in Safari: "+g.message)}}).bind(this)}},keydown:function(){this.keydown.enterWithinBlockquote=false;var b=this.keydown.onTab;this.keydown.onTab=(function(f,c){var d=this.selection.getBlock();if(d&&d.tagName==="LI"){return b.call(this,f,c)}return true}).bind(this);var a=this.keydown.replaceDivToParagraph;this.keydown.replaceDivToParagraph=(function(){if(this.keydown.enterWithinBlockquote){this.keydown.enterWithinBlockquote=false}else{a.call(this)}}).bind(this)},link:function(){var a=this.link.insert;this.link.insert=(function(){a.call(this);this.selection.get();var b=this.selection.getCurrent();if(b.tagName==="A"){this.caret.setAfter(b)}}).bind(this)},modal:function(){this.modal.dialog=null;var b=this.modal.addTemplate;this.modal.addTemplate=(function(c,d){if(c!=="table"){b.call(this,c,d)}}).bind(this);this.modal.build=function(){};this.modal.load=(function(c,e,d){this.modal.templateName=c;this.modal.title=e;this.modal.dialog=$("<div />").hide().appendTo(document.body);this.modal.dialog.html(this.modal.getTemplate(this.modal.templateName));this.$modalFooter=null}).bind(this);this.modal.show=(function(){this.modal.dialog.wcfDialog({onClose:$.proxy(this.modal.close,this),title:this.modal.title});this.modal.dialog.find("input:first").focus()}).bind(this);var a=this.modal.createButton;this.modal.createButton=(function(c,d){if(this.$modalFooter===null){this.$modalFooter=$('<div class="formSubmit" />').appendTo(this.modal.dialog);this.modal.dialog.addClass("dialogForm")}return a.call(this,c,d)}).bind(this);this.modal.close=(function(){if(this.modal.dialog===null){return}try{this.modal.dialog.wcfDialog("close");this.modal.dialog.remove()}catch(c){}this.modal.dialog=null}).bind(this);this.modal.createCancelButton=function(){return $()};this.modal.createDeleteButton=function(){return $()}},observe:function(){var c=(function(i,d,g,e,h,j){var f=this.$toolbar.find(g);if(i&&i.closest(d,this.$editor[0]).length!=0){f[(e?"removeClass":"addClass")](h)}else{if(j&&!this.opts.visual){return}f[(e?"addClass":"removeClass")](h)}}).bind(this);var b=this.observe.buttons;this.observe.buttons=(function(f,g){b.call(this,f,g);var d=this.selection.getParent();d=(d===false)?null:$(d);c(d,"ul, ol","a.re-indent, a.re-outdent",true,"redactor-button-disabled");c(d,"blockquote.quoteBox","a.re-__wcf_quote",false,"redactor-button-disabled",true);c(d,"sub","a.re-subscript",false,"redactor-act");c(d,"sup","a.re-superscript",false,"redactor-act")}).bind(this);var a=this.observe.showTooltip;this.observe.showTooltip=(function(f){var d=$(f.target);if(!d.hasClass("redactorQuoteEdit")){a.call(this,f)}}).bind(this)},paste:function(){var b=(function(){var e=this.$editor[0].childNodes[0];var c=e;var d=null;while(c){e=c;c=e.nextSibling;if(e.nodeType===Element.ELEMENT_NODE){if(this.reIsBlock.test(e.tagName)){d=null}else{if(d===null){d=$("<p />").insertBefore(e)}d.append(e)}}else{if(e.nodeType===Element.TEXT_NODE){if(d===null){d=$("<p />").insertBefore(e)}d.append(e)}}}}).bind(this);var a=this.paste.insert;this.paste.insert=(function(c){a.call(this,c);setTimeout(b,20)}).bind(this)},utils:function(){this.utils.removeEmpty=function(a,b){}},rebuildTemplates:function(){this.opts.modal.image='<fieldset id="redactor-modal-image-edit"><dl><dt><label for="redactor-image-link-source">'+this.lang.get("link")+'</label></dt><dd><input type="text" id="redactor-image-link-source" class="long"  /></dd></dl><dl><dt><label for="redactor-image-align">'+this.opts.curLang.image_position+'</label></dt><dd><select id="redactor-image-align"><option value="none">'+WCF.Language.get("wcf.global.noSelection")+'</option><option value="left">'+this.lang.get("left")+'</option><option value="right">'+this.lang.get("right")+"</option></select></dd></dl></fieldset>";this.opts.modal.imageEdit=this.opts.modal.image;this.opts.modal.link='<fieldset id="redactor-modal-link"><dl><dt><label for="redactor-link-url" />URL</label></dt><dd><input type="url" id="redactor-link-url" /></dd></dl><dl><dt><label for="redactor-link-url-text">'+this.lang.get("text")+'</label></dt><dd><input type="text" id="redactor-link-url-text" /></dd></dl></fieldset>';this.opts.modal.quote='<fieldset><dl><dt><label for="redactorQuoteAuthor">'+WCF.Language.get("wcf.bbcode.quote.edit.author")+'</label></dt><dd><input type="text" id="redactorQuoteAuthor" class="long" /></dd></dl><dl><dt><label for="redactorQuoteLink">'+WCF.Language.get("wcf.bbcode.quote.edit.link")+'</label></dt><dd><input type="text" id="redactorQuoteLink" class="long" /></dd></dl></fieldset>';this.opts.modal.table='<fieldset id="redactor-modal-table-insert"><dl><dt><label for="redactor-table-rows">'+this.lang.get("rows")+'</label></dt><dd><input type="number" size="5" value="2" min="1" id="redactor-table-rows" class="tiny" /></dd></dl><dl><dt><label for="redactor-table-columns">'+this.lang.get("columns")+'</label></dt><dd><input type="number" size="5" value="3" min="1" id="redactor-table-columns" class="tiny" /></dd></dl></fieldset>'},fixWebKit:function(){return;if(!$.browser.webkit&&!document.documentElement.style.hasOwnProperty("WebkitAppearance")&&!window.hasOwnProperty("chrome")){return}var a={fontSize:this.$editor.css("font-size"),lineHeight:this.$editor.css("line-height")};var c=this.$editor.wcfIdentify();var b=document.createElement("style");b.type="text/css";b.innerHTML="#"+c+" span { font-size: "+a.fontSize+"; line-height: "+a.lineHeight+" }";document.head.appendChild(b)}}};
 // wupload.js
 if(!RedactorPlugins){var RedactorPlugins={}}RedactorPlugins.wupload=function(){return{_boundGlobalUploadEvents:false,_dropArea:{},_timer:null,_isDragging:false,_isFile:false,init:function(){var a=".redactor_"+this.$textarea.wcfIdentify();$(document).on("dragover"+a,$.proxy(this.wupload._dragOver,this));$(document).on("dragleave"+a,$.proxy(this.wupload._dragLeave,this));$(document).on("drop"+a,(function(b){b.preventDefault();this.wupload._revertDropArea(undefined,this.$textarea.wcfIdentify())}).bind(this));if(!this.wupload._boundGlobalUploadEvents){this.wupload._boundGlobalUploadEvents=true;$(document).on("dragend",function(b){b.preventDefault()})}WCF.System.Event.addListener("com.woltlab.wcf.attachment","autoInsert_"+this.$textarea.wcfIdentify(),$.proxy(this.wupload.insertPastedImageAttachment,this))},_dragOver:function(d){d=d.originalEvent;if(!d.dataTransfer||!d.dataTransfer.types){return}var e=false;for(var c in d.dataTransfer){if(/^moz/.test(c)){e=true;break}}this.wupload._isFile=false;if(e){if(d.dataTransfer.types[0]==="application/x-moz-file"){this.wupload._isFile=true}}else{for(var g=0;g<d.dataTransfer.types.length;g++){if(d.dataTransfer.types[g]==="Files"){this.wupload._isFile=true;break}}}if(!this.wupload._isFile){return}this.wupload._isFile=true;d.preventDefault();if(!this.wupload._isDragging){var b=this.$textarea.wcfIdentify();if(this.wupload._dropArea[b]===undefined){this.wupload._dropArea[b]=$('<div class="redactorDropArea">'+WCF.Language.get("wcf.attachment.dragAndDrop.dropHere")+"</div>").hide().appendTo(document.body);this.wupload._dropArea[b].on("dragover",$.proxy(this.wupload._hoverDropArea,this)).on("dragleave",$.proxy(this.wupload._revertDropArea,this)).on("drop",$.proxy(this.wupload._drop,this))}var a=(this.wutil.inWysiwygMode())?this.$editor.getDimensions("outer"):this.$textarea.getDimensions("outer");var f=(this.wutil.inWysiwygMode())?this.$editor.getOffsets("offset"):this.$textarea.getOffsets("offset");this.wupload._dropArea[b].css({height:a.height+"px",left:f.left+"px",lineHeight:a.height+"px",top:f.top+"px",width:a.width+"px"}).show();this.wupload._isDragging=true}d.preventDefault()},_hoverDropArea:function(a){this.wupload._dropArea[this.$textarea.wcfIdentify()].addClass("active").text(WCF.Language.get("wcf.attachment.dragAndDrop.dropNow"))},_revertDropArea:function(c,a){if(!this.wupload._isFile){return}var b=a||this.$textarea.wcfIdentify();this.wupload._dropArea[b].removeClass("active").text(WCF.Language.get("wcf.attachment.dragAndDrop.dropHere"));if(a){this.wupload._dropArea[b].hide()}},_dragLeave:function(){if(!this.wupload._isDragging||!this.wupload._isFile){return}if(this.wupload._timer===null){this.wupload._timer=new WCF.PeriodicalExecuter((function(a){a.stop();if(!this.wupload._isDragging){this.wupload._dropArea[this.$textarea.wcfIdentify()].hide()}}).bind(this),100)}else{this.wupload._timer.resume()}this.wupload._isDragging=false},_drop:function(c){if(!this.wupload._isFile){return}c=c.originalEvent||c;if(c.dataTransfer&&c.dataTransfer.files.length){c.preventDefault();var b=this.$textarea.wcfIdentify();this.wupload._revertDropArea(undefined,b);for(var d=0;d<c.dataTransfer.files.length;d++){var a=c.dataTransfer.files[d];if(a.type){WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","upload_"+b,{file:a})}}}},pasteClipboardUploadMozilla:function(){this.$editor.find("img[data-mozilla-paste-image]").each($.proxy(function(d,g){var f=$(g);var a=f.prop("src").split(",");var e=a[0].split(";")[0].split(":")[1];var c=a[1];var b={blob:WCF.base64toBlob(c,e),uploadID:null};WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","upload_"+this.$textarea.wcfIdentify(),b);f.replaceWith('<span class="redactor-pastedImageFromClipboard-'+b.uploadID+'" />')},this))},insertPastedImageAttachment:function(b){var a=this.$editor.find("span.redactor-pastedImageFromClipboard-"+b.uploadID);a.before(b.attachment);a.remove()}}};
 // wutil.js
-if(!RedactorPlugins){var RedactorPlugins={}}RedactorPlugins.wutil=function(){var a="";var b=null;return{_autosaveWorker:null,init:function(){this.$textarea.parents("form").submit($.proxy(this.wutil.submit,this));if(this.wutil.getOption("woltlab.autosave").active){this.wutil.autosaveEnable();if(this.wutil.getOption("woltlab.autosave").saveOnInit||this.$textarea.data("saveOnInit")){this.wutil.setOption("woltlab.autosaveOnce",true)}else{this.wutil.autosaveRestore()}}this.wutil.setOption("autosave",false);var c=this.core.destroy;this.core.destroy=(function(){this.wutil.autosaveDisable();c.call(this)}).bind(this)},insertAtCaret:function(d){if(this.opts.visual){console.debug("insertAtCaret() failed: Editor is in WYSIWYG-mode.");return false}this.$textarea.focus();var e=this.$textarea.getCaret();if(e==-1){console.debug("insertAtCaret() failed: Source is not input[type=text], input[type=password] or textarea.")}var c=this.$textarea.val();c=c.substr(0,e)+d+c.substr(e);this.$textarea.val(c);return true},insertDynamic:function(c,d){if(this.wutil.inWysiwygMode()){this.insert.html(c,false)}else{if(d===undefined||d===null){d=c}this.wutil.insertAtCaret(d)}},setOption:function(c,d){if(c.indexOf(".")!==-1){c=c.split(".",2);this.opts[c[0]][c[1]]=d}else{this.opts[c]=d}},getOption:function(c){if(c.indexOf(".")!==-1){c=c.split(".",2);if(this.opts[c[0]][c[1]]){return this.opts[c[0]][c[1]]}}else{if(this.opts[c]){return this.opts[c]}}return null},inPlainMode:function(){return !this.opts.visual},inWysiwygMode:function(){return(this.opts.visual)},replaceRangesWith:function(c){getSelection().removeAllRanges();getSelection().addRange(c)},getText:function(){if(this.wutil.inWysiwygMode()){this.code.startSync();var c=this.$textarea.val();this.$textarea.val($.trim(this.wbbcode.convertFromHtml(c)))}return $.trim(this.$textarea.val())},isEmptyEditor:function(){if(this.opts.visual){return this.utils.isEmpty(this.$editor.html())}return(!$.trim(this.$textarea.val()))},submit:function(){if(this.wutil.inWysiwygMode()){this.code.startSync();this.$textarea.val($.trim(this.wbbcode.convertFromHtml(this.$textarea.val())))}this.wutil.autosavePurge()},reset:function(){if(this.opts.visual){this.$editor.html("<p>"+this.opts.invisibleSpace+"</p>");this.wmonkeypatch.saveSelection()}this.$textarea.val("");WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","reset",{wysiwygContainerID:this.$textarea.wcfIdentify()})},autosaveEnable:function(c){if(!this.wutil.getOption("woltlab.autosave").active){this.wutil.setOption("woltlab.autosave",{active:true,key:c})}if(this.wutil._autosaveWorker===null){this.wutil.autosavePurgeOutdated();this.wutil._autosaveWorker=new WCF.PeriodicalExecuter($.proxy(this.wutil.saveTextToStorage,this),60*1000)}return true},saveTextToStorage:function(){var c=this.wutil.getText();if(a==c){return}try{localStorage.setItem(this.wutil.getOption("woltlab.autosave").key,JSON.stringify({content:c,timestamp:Date.now()}));a=c;this.wutil.autosaveShowNotice("saved")}catch(d){console.debug("[wutil.saveTextToStorage] Unable to access local storage: "+d.message)}},autosaveDisable:function(){if(!this.wutil.getOption("woltlab.autosave").active){return false}this.wutil._autosaveWorker.stop();this.wutil._autosaveWorker=null;this.wutil.setOption("woltlab.autosave",{active:false,key:""});return true},autosavePurge:function(){try{localStorage.removeItem(this.wutil.getOption("woltlab.autosave").key)}catch(c){console.debug("[wutil.autosavePurge] Unable to access local storage: "+c.message)}},autosaveRestore:function(){var c=this.wutil.getOption("woltlab.autosave");var d=null;try{d=localStorage.getItem(c.key)}catch(f){console.debug("[wutil.autosaveRestore] Unable to access local storage: "+f.message)}try{d=(d===null)?null:JSON.parse(d)}catch(f){d=null}if(d===null||!d.content){return false}if(this.wutil.inWysiwygMode()){this.wutil.setOption("woltlab.originalValue",d.content)}else{this.$textarea.val(d.content)}this.wutil.autosaveShowNotice("restored",{timestamp:d.timestamp});WCF.DOMNodeInsertedHandler.execute();return true},autosaveShowNotice:function(e,g){if(b===null){b=$('<div class="redactorAutosaveNotice"><span class="redactorAutosaveMessage" /></div>');b.appendTo(this.$box);b.on("transitionend webkitTransitionEnd",(function(h){if(h.originalEvent.propertyName!=="opacity"){return}if(b.hasClass("open")){if(b.data("callbackOpen")){b.data("callbackOpen")()}}else{if(b.data("callbackClose")){b.data("callbackClose")()}b.removeData("callbackClose");b.removeData("callbackOpen");b.removeClass("redactorAutosaveNoticeRestore");b.empty();$('<span class="redactorAutosaveMessage" />').appendTo(b)}}).bind(this))}var d="";switch(e){case"restored":$('<span class="icon icon16 fa-info blue jsTooltip" title="'+WCF.Language.get("wcf.message.autosave.restored.version",{date:new Date(g.timestamp).toLocaleString()})+'"></span>').prependTo(b);var f=$('<span class="icon icon16 fa-check green pointer jsTooltip" title="'+WCF.Language.get("wcf.message.autosave.restored.confirm")+'"></span>').appendTo(b);var c=$('<span class="icon icon16 fa-times red pointer jsTooltip" title="'+WCF.Language.get("wcf.message.autosave.restored.revert")+'"></span>').appendTo(b);f.click(function(){b.removeClass("open")});c.click((function(){WCF.System.Confirmation.show(WCF.Language.get("wcf.message.autosave.restored.revert.confirmMessage"),(function(h){if(h==="confirm"){this.wutil.reset();this.wutil.autosavePurge();b.removeClass("open")}}).bind(this))}).bind(this));d=WCF.Language.get("wcf.message.autosave.restored");b.addClass("redactorAutosaveNoticeRestore");break;case"saved":if(b.hasClass("open")){return}b.data("callbackOpen",function(){setTimeout(function(){b.removeClass("open")},3000)});d=WCF.Language.get("wcf.message.autosave.saved");break}b.children("span.redactorAutosaveMessage").text(d);b.addClass("open")},autosavePurgeOutdated:function(){var h=0;var k=this.wutil.getOption("woltlab.autosave").prefix;var j=k+"_wcf_master";try{h=localStorage.getItem(j)}catch(i){console.debug("[wutil.autosavePurgeOutdated] Unable to access local storage: "+i.message)}if(h===0){return}var c=Date.now()-(7*24*3600*1000);if(h===null||h<c){var g=new RegExp("^"+k+"_");for(var f in localStorage){if(f.match(g)){var d=localStorage.getItem(f);try{d=JSON.parse(d)}catch(i){d={timestamp:0}}if(!d.timestamp||d.timestamp<c){try{localStorage.removeItem(f)}catch(i){console.debug("[wutil.autosavePurgeOutdated] Unable to access local storage: "+i.message)}}}}try{localStorage.setItem(j,Date.now())}catch(i){console.debug("[wutil.autosavePurgeOutdated] Unable to access local storage: "+i.message)}}},buttonReplace:function(f,d,g,i,h){var c=this.buttonGet(f);var e=this.buttonAddAfter(f,d,g,i,h);if(c.parent().hasClass("separator")){e.parent().addClass("separator")}c.parent().remove();return e},removeZeroWidthSpace:function(c){var d="";for(var g=0,f=c.length;g<f;g++){var e=c.charCodeAt(g).toString(16);if(e!="200b"){d+=c[g]}}return d},getSource:function(){return this.$textarea},getName:function(){return this.$textarea.wcfIdentify()},selectionEndOfEditor:function(){this.focus.setEnd();var c=this.$editor.children(":last")[0];if(c.tagName==="P"){if(c.innerHTML===""){c.remove();c=$(this.opts.emptyHtml).appendTo(this.$editor)[0]}if(c.lastChild.nodeType===Element.TEXT_NODE){this.caret.set(c.lastChild,c.lastChild.length,c.lastChild,c.lastChild.length)}else{this.caret.setEnd(c)}}else{this.wutil.setCaretAfter(c)}},isCaret:function(){this.selection.get();return this.range.collapsed},isEndOfElement:function(c){this.selection.get();if(!this.wutil.isCaret()){return false}if(this.range.endContainer.nodeType===Element.TEXT_NODE){if(this.range.endOffset<this.range.endContainer.length){return false}}if(!this.wutil.isNodeWithin(this.range.endContainer,c)){return false}var d=this.range.endContainer;while(d!==c){if(d.nextSibling){return false}d=d.parentNode}return true},isNodeWithin:function(e,d){var c=$(e);while(c[0]!==this.$editor[0]){if(c[0]===d){return true}c=c.parent()}return false},containsTag:function(d,c){switch(d.nodeType){case Element.ELEMENT_NODE:if(d.tagName===c){return true}case Element.DOCUMENT_FRAGMENT_NODE:for(var e=0;e<d.childNodes.length;e++){if(this.wutil.containsTag(d.childNodes[e],c)){return true}}return false;break;default:return false;break}},replaceText:function(e){var f=$(document);var c=f.scrollTop();var d=false;if(this.wutil.inWysiwygMode()){this.code.toggle();d=true}this.$textarea.val(e);if(d){this.code.toggle();f.scrollTop(c)}f.trigger("resize")},setCaretBefore:function(c){this.wutil._setCaret(c,true)},setCaretAfter:function(c){this.wutil._setCaret(c,false)},_setCaret:function(d,e){var c=$(this.opts.emptyHtml);c[(e?"insertBefore":"insertAfter")](d);this.caret.setStart(c[0])}}};
+if(!RedactorPlugins){var RedactorPlugins={}}RedactorPlugins.wutil=function(){var a="";var b=null;return{_autosaveWorker:null,init:function(){this.$textarea.parents("form").submit($.proxy(this.wutil.submit,this));if(this.wutil.getOption("woltlab.autosave").active){this.wutil.autosaveEnable();if(this.wutil.getOption("woltlab.autosave").saveOnInit||this.$textarea.data("saveOnInit")){this.wutil.setOption("woltlab.autosaveOnce",true)}else{this.wutil.autosaveRestore()}}this.wutil.setOption("autosave",false);var c=this.core.destroy;this.core.destroy=(function(){this.wutil.autosaveDisable();c.call(this)}).bind(this)},insertAtCaret:function(d){if(this.opts.visual){console.debug("insertAtCaret() failed: Editor is in WYSIWYG-mode.");return false}this.$textarea.focus();var e=this.$textarea.getCaret();if(e==-1){console.debug("insertAtCaret() failed: Source is not input[type=text], input[type=password] or textarea.")}var c=this.$textarea.val();c=c.substr(0,e)+d+c.substr(e);this.$textarea.val(c);return true},insertDynamic:function(c,d){if(this.wutil.inWysiwygMode()){this.insert.html(c,false)}else{if(d===undefined||d===null){d=c}this.wutil.insertAtCaret(d)}},setOption:function(c,d){if(c.indexOf(".")!==-1){c=c.split(".",2);this.opts[c[0]][c[1]]=d}else{this.opts[c]=d}},getOption:function(c){if(c.indexOf(".")!==-1){c=c.split(".",2);if(this.opts[c[0]][c[1]]){return this.opts[c[0]][c[1]]}}else{if(this.opts[c]){return this.opts[c]}}return null},inPlainMode:function(){return !this.opts.visual},inWysiwygMode:function(){return(this.opts.visual)},replaceRangesWith:function(c){getSelection().removeAllRanges();getSelection().addRange(c)},getText:function(){if(this.wutil.inWysiwygMode()){this.code.startSync();var c=this.$textarea.val();this.$textarea.val($.trim(this.wbbcode.convertFromHtml(c)))}return $.trim(this.$textarea.val())},isEmptyEditor:function(){if(this.opts.visual){return this.utils.isEmpty(this.$editor.html())}return(!$.trim(this.$textarea.val()))},submit:function(){if(this.wutil.inWysiwygMode()){this.code.startSync();this.$textarea.val($.trim(this.wbbcode.convertFromHtml(this.$textarea.val())))}this.wutil.autosavePurge()},reset:function(){if(this.opts.visual){this.$editor.html("<p>"+this.opts.invisibleSpace+"</p>");this.wmonkeypatch.saveSelection()}this.$textarea.val("");WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","reset",{wysiwygContainerID:this.$textarea.wcfIdentify()})},autosaveEnable:function(c){if(!this.wutil.getOption("woltlab.autosave").active){this.wutil.setOption("woltlab.autosave",{active:true,key:c})}if(this.wutil._autosaveWorker===null){this.wutil.autosavePurgeOutdated();this.wutil._autosaveWorker=new WCF.PeriodicalExecuter($.proxy(this.wutil.saveTextToStorage,this),60*1000)}return true},saveTextToStorage:function(){var c=this.wutil.getText();if(a==c){return}try{localStorage.setItem(this.wutil.getOption("woltlab.autosave").key,JSON.stringify({content:c,timestamp:Date.now()}));a=c;this.wutil.autosaveShowNotice("saved")}catch(d){console.debug("[wutil.saveTextToStorage] Unable to access local storage: "+d.message)}},autosaveDisable:function(){if(!this.wutil.getOption("woltlab.autosave").active){return false}this.wutil._autosaveWorker.stop();this.wutil._autosaveWorker=null;this.wutil.setOption("woltlab.autosave",{active:false,key:""});return true},autosavePurge:function(){try{localStorage.removeItem(this.wutil.getOption("woltlab.autosave").key)}catch(c){console.debug("[wutil.autosavePurge] Unable to access local storage: "+c.message)}},autosaveRestore:function(){var c=this.wutil.getOption("woltlab.autosave");var d=null;try{d=localStorage.getItem(c.key)}catch(f){console.debug("[wutil.autosaveRestore] Unable to access local storage: "+f.message)}try{d=(d===null)?null:JSON.parse(d)}catch(f){d=null}if(d===null||!d.content){return false}if(this.wutil.inWysiwygMode()){this.wutil.setOption("woltlab.originalValue",d.content)}else{this.$textarea.val(d.content)}this.wutil.autosaveShowNotice("restored",{timestamp:d.timestamp});WCF.DOMNodeInsertedHandler.execute();return true},autosaveShowNotice:function(e,g){if(b===null){b=$('<div class="redactorAutosaveNotice"><span class="redactorAutosaveMessage" /></div>');b.appendTo(this.$box);b.on("transitionend webkitTransitionEnd",(function(h){if(h.originalEvent.propertyName!=="opacity"){return}if(b.hasClass("open")){if(b.data("callbackOpen")){b.data("callbackOpen")()}}else{if(b.data("callbackClose")){b.data("callbackClose")()}b.removeData("callbackClose");b.removeData("callbackOpen");b.removeClass("redactorAutosaveNoticeRestore");b.empty();$('<span class="redactorAutosaveMessage" />').appendTo(b)}}).bind(this))}var d="";switch(e){case"restored":$('<span class="icon icon16 fa-info blue jsTooltip" title="'+WCF.Language.get("wcf.message.autosave.restored.version",{date:new Date(g.timestamp).toLocaleString()})+'"></span>').prependTo(b);var f=$('<span class="icon icon16 fa-check green pointer jsTooltip" title="'+WCF.Language.get("wcf.message.autosave.restored.confirm")+'"></span>').appendTo(b);var c=$('<span class="icon icon16 fa-times red pointer jsTooltip" title="'+WCF.Language.get("wcf.message.autosave.restored.revert")+'"></span>').appendTo(b);f.click(function(){b.removeClass("open")});c.click((function(){WCF.System.Confirmation.show(WCF.Language.get("wcf.message.autosave.restored.revert.confirmMessage"),(function(h){if(h==="confirm"){this.wutil.reset();this.wutil.autosavePurge();b.removeClass("open")}}).bind(this))}).bind(this));d=WCF.Language.get("wcf.message.autosave.restored");b.addClass("redactorAutosaveNoticeRestore");break;case"saved":if(b.hasClass("open")){return}setTimeout(function(){b.removeClass("open")},2000);d=WCF.Language.get("wcf.message.autosave.saved");break}b.children("span.redactorAutosaveMessage").text(d);b.addClass("open")},autosavePurgeOutdated:function(){var h=0;var k=this.wutil.getOption("woltlab.autosave").prefix;var j=k+"_wcf_master";try{h=localStorage.getItem(j)}catch(i){console.debug("[wutil.autosavePurgeOutdated] Unable to access local storage: "+i.message)}if(h===0){return}var c=Date.now()-(7*24*3600*1000);if(h===null||h<c){var g=new RegExp("^"+k+"_");for(var f in localStorage){if(f.match(g)){var d=localStorage.getItem(f);try{d=JSON.parse(d)}catch(i){d={timestamp:0}}if(!d.timestamp||d.timestamp<c){try{localStorage.removeItem(f)}catch(i){console.debug("[wutil.autosavePurgeOutdated] Unable to access local storage: "+i.message)}}}}try{localStorage.setItem(j,Date.now())}catch(i){console.debug("[wutil.autosavePurgeOutdated] Unable to access local storage: "+i.message)}}},buttonReplace:function(f,d,g,i,h){var c=this.buttonGet(f);var e=this.buttonAddAfter(f,d,g,i,h);if(c.parent().hasClass("separator")){e.parent().addClass("separator")}c.parent().remove();return e},removeZeroWidthSpace:function(c){var d="";for(var g=0,f=c.length;g<f;g++){var e=c.charCodeAt(g).toString(16);if(e!="200b"){d+=c[g]}}return d},getSource:function(){return this.$textarea},getName:function(){return this.$textarea.wcfIdentify()},selectionEndOfEditor:function(){this.focus.setEnd();var c=this.$editor.children(":last")[0];if(c.tagName==="P"){if(c.innerHTML===""){c.remove();c=$(this.opts.emptyHtml).appendTo(this.$editor)[0]}if(c.lastChild.nodeType===Element.TEXT_NODE){this.caret.set(c.lastChild,c.lastChild.length,c.lastChild,c.lastChild.length)}else{this.caret.setEnd(c)}}else{this.wutil.setCaretAfter(c)}},isCaret:function(){this.selection.get();return this.range.collapsed},isEndOfElement:function(c){this.selection.get();if(!this.wutil.isCaret()){return false}if(this.range.endContainer.nodeType===Element.TEXT_NODE){if(this.range.endOffset<this.range.endContainer.length){return false}}if(!this.wutil.isNodeWithin(this.range.endContainer,c)){return false}var d=this.range.endContainer;while(d!==c){if(d.nextSibling){return false}d=d.parentNode}return true},isNodeWithin:function(e,d){var c=$(e);while(c[0]!==this.$editor[0]){if(c[0]===d){return true}c=c.parent()}return false},containsTag:function(d,c){switch(d.nodeType){case Element.ELEMENT_NODE:if(d.tagName===c){return true}case Element.DOCUMENT_FRAGMENT_NODE:for(var e=0;e<d.childNodes.length;e++){if(this.wutil.containsTag(d.childNodes[e],c)){return true}}return false;break;default:return false;break}},replaceText:function(e){var f=$(document);var c=f.scrollTop();var d=false;if(this.wutil.inWysiwygMode()){this.code.toggle();d=true}this.$textarea.val(e);if(d){this.code.toggle();f.scrollTop(c)}f.trigger("resize")},setCaretBefore:function(c){this.wutil._setCaret(c,true)},setCaretAfter:function(c){this.wutil._setCaret(c,false)},_setCaret:function(d,e){var c=$(this.opts.emptyHtml);c[(e?"insertBefore":"insertAfter")](d);this.caret.setStart(c[0])}}};